From 119fe33efa3572676edbc62b29ba19efbba690ca4a5cf30b70159caafb823967 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Wed, 28 Aug 2024 15:39:48 +0000 Subject: [PATCH] - Add shell completions for bash, fish, and zsh. - Add nostrip.patch. * this solves the issue of already stripped binaries from rpmlint - Update specfile: * source now points to python hosted * use maturin now for builds * prep to be a rust+python package - Move to generic python package naming: python-uv - Update to version 0.2.33: * Add support for ksh to relocatable virtual environments * Add help sections for global options * Move --python and --python-version into the "Python options" help * Show help specific options (i.e. --no-pager) in uv help * Update top-level command descriptions * Remove lingering executables after failed installs * Switch from heuristic freshness lifetime to hard-coded value * Don't use equals signs for CLI options with values - Use upstream github sources in specfile. - Add zstd as build requirement. - Update to version 0.2.30. Changelog include since 0.1.47: * Infer missing `.exe` in Windows Python discovery * Make `--reinstall` imply `--refresh` * Add `--no-config` to replace `--isolated` * Cache metadata for source tree dependencies * Avoid canonicalizing executables on Windows * Set standard permissions for temporary files * Add `--ci` mode to `uv cache prune` * Display Python installation key for discovered interpreters * Allow symlinks to files in scripts directory * Always accept already-installed pre-releases * Validate successful metadata fetch for direct dependencies * Add warning to `--link-mode=symlink` documentation * Output stable ordering to `requirements.txt` in universal mode * Allow symlinks with `--find-links` * Add support for variations of `pythonw.exe` * Stylize `Requires-Python` consistently in CLI output * Add `--show-version-specifiers` to `tree` * Avoid always rebuilding dynamic metadata * Avoid URL parsing when deserializing wheels * Avoid cache prune failure due to removed interpreter * Avoid including empty extras in resolution * If multiple indices contain the same version, use the first index * Include URLs on graph edges * Match wheel tags against `Requires-Python` major-minor * Remove Simple API cache files for alternative indexes in `cache clean` * Remove extraneous `are` from wheel tag error messages * Allow conflicting prerelease strategies when forking * Use tag error rather than requires-python error for ABI filtering * Add GraalPy support * Add a `--verify-hashes` hash-checking mode * Discover all `python3.x` executables in the `PATH` * Support `--link-mode=symlink` * Warn about unconstrained direct deps in lowest resolution * Log origin of version selection * Key hash policy on version, rather than package * Make missing project table a tracing warning * Remove trailing period from user-facing messages * Make entrypoint writes atomic to avoid overwriting symlinks * Use `which`-retrieved path directly when spawning pager * Don't apply irrelevant constraints when validating site-packages * Respect local versions for all user requirements * Add `--no-progress` global option to hide all progress animations * Cache downloaded wheel when range requests aren't supported * Download wheel to disk when streaming unzip failed with HTTP streaming error * Filter out invalid wheels based on `requires-python` * Filter out none ABI wheels with mismatched Python versions * Lock Git cache on resolve * Change order of `pip compile` command checks to handle exact argument first * Document that `--universal` implies `--no-strip-markers` * Include PyPy-specific executables when creating virtual environments with `uv venv` * Add a custom error message for `--no-build-isolation` `torch` dependencies * Improve missing `wheel` error message with `--no-build-isolation` * Add `--no-pager` option in `help` command * Unhide `--isolated` global argument * Warn when unused `pyproject.toml` configuration is detected * Fall back to streaming wheel when `Content-Length` header is absent * Fix substring marker expression disjointness checks * Lock directories to synchronize wheel-install copies * Normalize out complementary == or != markers * Retry on permission errors when persisting extracted source distributions to the cache * Set absolute URLs prior to uploading to PyPI * Exclude `--upgrade-package` from the `pip compile` header * Exclude `--upgrade-package` when option and value are passed as a single argument * Add split to cover marker universe when existing splits are incomplete * Use correct `pyproject.toml` path in warnings * Fix `CONTRIBUTING.md` instructions to install multiple Python versions * Use versioned badges when uploading to PyPI * Add support for 'any' Python requests * Allow constraints to be provided in `--upgrade-package` * Add `manylinux_2_31` to supported `--python-platform` * Improve marker simplification * Display short help menu when `--help` is used * Allow `uv help` global options during `uv help` * Use paging for `uv help` display when available * Switch to single threaded async runtime * Avoid AND-ing multi-term specifiers in marker normalization * Avoid inferring package name for GitHub Archives * Retry on connection reset network errors * Apply extra to overrides and constraints * Allow `uv` crate to be used as a library * Update Windows trampoline binaries * Show user-facing warning when falling back to copy installs * Initialize all `--prefix` subdirectories * Respect `requires-python` when prefetching * Partially revert `Requires-Python` version narrowing * Add `--exclude-newer` to installer arguments * Bold durations in CLI messages * Drop crate description from the `uv` help menu * Update "about" in help menu * Add `UV_OVERRIDE` environment variable for `--override` * Always use release-only comparisons for `requires-python` * Avoid hangs before exiting CLI * Preserve verbatim URLs for `--find-links` * Fix issue where standalone installer failed to due missing `uvx.exe` binary on Windows * Differentiate `freeze` and `list` help text * Fix issue where the standalone installer failed due to a missing `uvx` binary * Indicate when we retried requests during network errors * Add `--disable-pip-version-check` to compatibility arguments * Allow `uv pip sync` to clear an environment with opt-in * Add `--invert` to `uv pip tree` * Omit `(*)` in `uv pip tree` for empty packages * Add `--package` to `uv pip tree` * Fix bug where git cache did not validate commits correctly * Narrow `requires-python` requirement in resolver forks * Fix bug when pruning the last package in `uv pip tree` * Make `--universal` and `--python-platform` mutually exclusive * Add `--depth` and `--prune` support to `pip tree` * Handle cycles when propagating markers * Ignore `py` not found errors during interpreter discovery * Merge markers when applying constraints * Retry on spurious failures when caching built wheels * Sort indexes during graph edge removal * Treat Python version as a lower bound in `--universal` * Fix the incorrect handling of markers in `pip tree` * Improve toolchain and environment missing error messages * Explicitly mention use of seed packages during `uv venv --seed` * Avoid enforcing extra-only constraints * Add a universal resolution mode to `uv pip compile` with `--universal` * Add support for `--no-strip-markers` in `uv pip compile` output * Add `--no-dedupe` support to `uv pip tree` * Enable more precise environment locking with `--prefix` * Allow local index references in `requirements.txt` files * Allow non-`file://` paths to serve as `--index-url` values * Make `.egg-info` filename parsing spec compliant * Gracefully handle non-existent packages in local indexes * Read content length from response rather than request * Read persistent configuration from non-workspace `pyproject.toml` * Avoid panic for invalid, non-base index URLs * Skip submodule update for fresh clones * Use shared client in Git fetch implementation * Add `--emit-build-options` flag to `uv pip compile` interface * Add `pythonw` support for gui scripts on Windows * Add `uv pip tree` * Adjust the docs for the pip CLI commands * Fix casing of `--no-compile` alias * Fix ordering of prefer-system toolchain preference * Respect index strategy in source distribution builds * Add documentation for using uv in a Docker image * Support toolchain requests with platform-tag style Python implementations and version * Use "Prepared" instead of "Downloaded" in logs * Treat mismatched directory and file urls as unsatisfied requirements * Add resolver tracing logs for when we filter requirements * Allow specific `--only-binary` and `--no-binary` packages to override `:all:` * Flatten ORs and ANDs in marker construction * Skip invalid interpreters when searching for requested interpreter executable name * Display keyring stderr during queries * Allow discovery of uv binary relative to package root * Use relative path for `lib64` symlink * Add uv version to debug output * Allow `--no-binary` with `uv pip compile` * Hide `--no-system` from the CLI * Make `--reinstall`, `--upgrade`, and `--refresh` shared arguments * Add `UV_EXCLUDE_NEWER` environment variable * Allow normalization to completely eliminate markers * Avoid treating direct path archives as always dynamic * De-duplicate markers during normalization * Fix incorrect parsing of requested Python version as empty version specifiers * Suggest correct command to create a virtual environment when encountering externally managed interpreters * Use consistent order for extra groups in lockfile * Add `pip-compile` defaults to `PIP_COMPATIBILITY.md` * Expand on `pip-compile` default differences * Tweak copy on some command-line arguments * Move the preview changelog so the GitHub Release shows stable changes * Add support for local directories with `--index-url` * Add mTLS support * Allow version specifiers to be used in Python version requests * Always install as editable when duplicate dependencies are requested * Avoid crash with `XDG_CONFIG_HOME=/dev/null` * Improve handling of missing interpreters during discovery * Make missing `METADATA` file a recoverable error * Represent build tag as `u64` * Document Windows 10 requirement * Re-add `aarch64-unknown-linux-gnu` binary to release assets * Accept `file://` URLs for `requirements.txt` et all references * Add support for `--prefix` * Add `pyproject.toml` to CLI help * Drop "registry" prefix from request timeout log * Allow transitive URLs via recursive extras * Avoid pre-fetching for unbounded minimum versions * Avoid showing dev hints for Python requirements * Include non-standard ports in keyring host queries * Omit URL dependencies from pre-release hints * Improve static metadata extraction for Poetry projects * Document bytecode compilation in pip compatibility guide * Fix PEP 508 link in preview doc `specifying_dependencies` * Clarify role of `--system` flag * Respect existing `.egg-link` files in site packages * Avoid extra-only filtering for constraints * Add install link for specific version to README * Fix `uv venv` handling when `VIRTUAL_ENV` refers to an non-existent environment * Support `NO_COLOR` and `FORCE_COLOR` environment variables * Avoid building packages with dynamic versions * Avoid work-stealing in bytecode compilation * Avoid dropping `pip sync` requirements with markers * Bias towards local directories for bare editable requirements * Preserve fragments when applying verbatim redirects * Avoid 'are incompatible' for singular bounded versions * Support PEP 508 requirements for editables * Discard fragments when parsing unnamed URLs * Port all Git functionality to use Git CLI * Use statically linked C runtime on Windows * Disable concurrent progress bars in Jupyter Notebooks * Initialize multi-progress state before individual bars * Add missing `i686` alias for `x86` * Add missing `ppc64le` alias for `powerpc64le` * Fix reference to `--python-version` patch behavior * Avoid race condition in `OnceMap` * Add support for x86 Windows * Add support for `prepare_metadata_for_build_editable` hook * Add concurrent progress bars for downloads * Update bundled Python URLs and add `"arm"` architecture variant * Allow `--system` and `--python` to be passed together * Ignore `libc` on other platforms * Incorporate build tag into wheel prioritization * Avoid displaying log for satisfied editables if none are requested * Improve logging during interpreter discovery * Improve logging for environment locking * Improve logging of interpreter implementation * Remove extra details from interpreter query traces * Use colon more consistently in error messages * Add JSON alias for `unsafe-any-match` * Remove redundant dynamically linked Linux binary again (#3762)" * Remove `aarch64-unknown-linux-gnu` from list of expected binaries * Always include package names for Git and HTTPS dependencies * Fix interpreter cache collisions for relative virtualenv paths * Ignore unnamed requirements in preferences * Search for `python3` in unix virtual environments * Use a cross-platform representation for relative paths in `pip compile` * Report yanks for cached and resolved packages * Improve error message when default Python is not found * Do not treat interpereters discovered via `CONDA_PREFIX` as system interpreters * Re-added the dynamically-linked Linux binary * Rewrite Python interpreter discovery * Add support for requesting `pypy` interpreters by implementation name * Discover and prefer the parent interpreter when invoked with `python -m uv` [#3736](https://github.com/astral-sh/uv/pull/3736) * Add PEP 714 support for HTML API client * Add PEP 714 support for JSON API client * Write relative paths with unnamed requirement syntax * Allow relative Python executable paths in Windows trampoline * Add support for clang and msvc in missing header error * Allow `--constraint` files in `pip sync` * Allow `--config-file` to be passed before or after command name * Make `--offline` a global argument * Improve performance in complex resolutions by reducing cost of PubGrub package clones * Evaluate arbitrary markers to `false` * Improve `DirWithoutEntrypoint` error message * Improve display of root package in range errors * Propagate URL errors in verbatim parsing * Report yanked packages in `--dry-run` * Drop native `manylinux` wheel in favor of dual-tagged wheel * The `python-patch` test feature is no longer on by default and must be manually enabled to test patch version behavior * Add `--prefix` link to compatibility guide * Add `--only-binary` to compatibility guide * Add instructions for building and updating `uv-trampolines` * Add notes for testing on Windows * Parse and store extras on editable requirements * Allow local versions in wheel filenames * Create lib64 symlink for 64-bit, non-macOS, POSIX environments * Add `UV_CONCURRENT_INSTALLS` variable in favor of `RAYON_NUM_THREADS` * Add serialization and deserialization for `--find-links` * Apply combination logic to merge CLI and persistent configuration * Parallelize resolver * Reduce sensitivity of unknown option error to discard Python 2 interpreters * Respect installed packages in `uv run` * Separate cache construction from initialization * Add missing `"directory"` branch in source match * Fix source annotation in pip compile `annotation-style=line` output * Run cargo update to pull in h2 * URL-decode hashes in HTML fragments * Always print JSON output with `--format` json * Add `UV_CONFIG_FILE` environment variable to documentation * Explicitly mention `--user` in compatibility guide * Add musl ppc64le support * Retag musl aarch64 for manylinux2014 * Reverts "Use manylinux: auto to enable `musllinux_1_2` aarch64 builds The manylinux change appeared to introduce SSL errors when building aarch64 Docker images, e.g., > invalid peer certificate: BadSignature - Initial package. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-uv?expand=0&rev=1 --- .gitattributes | 23 ++++ .gitignore | 1 + _service | 9 ++ nostrip.patch | 16 +++ python-uv.changes | 321 ++++++++++++++++++++++++++++++++++++++++++++++ python-uv.spec | 131 +++++++++++++++++++ uv-0.2.33.tar.gz | 3 + vendor.tar.zst | 3 + 8 files changed, 507 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _service create mode 100644 nostrip.patch create mode 100644 python-uv.changes create mode 100644 python-uv.spec create mode 100644 uv-0.2.33.tar.gz create mode 100644 vendor.tar.zst diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..37b026b --- /dev/null +++ b/_service @@ -0,0 +1,9 @@ + + + + + uv*.tar.gz + zst + true + + diff --git a/nostrip.patch b/nostrip.patch new file mode 100644 index 0000000..1be2141 --- /dev/null +++ b/nostrip.patch @@ -0,0 +1,16 @@ +--- a/pyproject.toml.orig 2024-08-12 21:16:52.378413303 +0800 ++++ b/pyproject.toml 2024-08-12 22:18:53.406540014 +0800 +@@ -36,11 +36,12 @@ + Documentation = "https://github.com/astral-sh/uv" + + [tool.maturin] ++profile = "profiling" + bindings = "bin" + manifest-path = "crates/uv/Cargo.toml" + module-name = "uv" + python-source = "python" +-strip = true ++strip = false + include = [{ path = "rust-toolchain.toml", format = ["sdist", "wheel"] }, { path = "LICENSE-APACHE", format = "sdist" }, { path = "LICENSE-MIT", format = "sdist" }] + + [tool.rooster] diff --git a/python-uv.changes b/python-uv.changes new file mode 100644 index 0000000..e413ecd --- /dev/null +++ b/python-uv.changes @@ -0,0 +1,321 @@ +------------------------------------------------------------------- +Mon Aug 12 14:19:56 UTC 2024 - Soc Virnyl Estela + +- Add shell completions for bash, fish, and zsh. + +------------------------------------------------------------------- +Mon Aug 12 13:19:35 UTC 2024 - Soc Virnyl Estela + +- Add nostrip.patch. + * this solves the issue of already stripped binaries from rpmlint + +------------------------------------------------------------------- +Mon Aug 5 13:31:13 UTC 2024 - Soc Virnyl Estela + +- Update specfile: + * source now points to python hosted + * use maturin now for builds + * prep to be a rust+python package +- Move to generic python package naming: python-uv + +------------------------------------------------------------------- +Mon Aug 5 08:16:32 UTC 2024 - Soc Virnyl Estela + +- Update to version 0.2.33: + * Add support for ksh to relocatable virtual environments + * Add help sections for global options + * Move --python and --python-version into the "Python options" help + * Show help specific options (i.e. --no-pager) in uv help + * Update top-level command descriptions + * Remove lingering executables after failed installs + * Switch from heuristic freshness lifetime to hard-coded value + * Don't use equals signs for CLI options with values + +------------------------------------------------------------------- +Sat Jul 27 13:35:25 UTC 2024 - Soc Virnyl Estela + +- Use upstream github sources in specfile. +- Add zstd as build requirement. +- Update to version 0.2.30. Changelog include since 0.1.47: + * Infer missing `.exe` in Windows Python discovery + * Make `--reinstall` imply `--refresh` + * Add `--no-config` to replace `--isolated` + * Cache metadata for source tree dependencies + * Avoid canonicalizing executables on Windows + * Set standard permissions for temporary files + * Add `--ci` mode to `uv cache prune` + * Display Python installation key for discovered interpreters + * Allow symlinks to files in scripts directory + * Always accept already-installed pre-releases + * Validate successful metadata fetch for direct dependencies + * Add warning to `--link-mode=symlink` documentation + * Output stable ordering to `requirements.txt` in universal mode + * Allow symlinks with `--find-links` + * Add support for variations of `pythonw.exe` + * Stylize `Requires-Python` consistently in CLI output + * Add `--show-version-specifiers` to `tree` + * Avoid always rebuilding dynamic metadata + * Avoid URL parsing when deserializing wheels + * Avoid cache prune failure due to removed interpreter + * Avoid including empty extras in resolution + * If multiple indices contain the same version, use the first index + * Include URLs on graph edges + * Match wheel tags against `Requires-Python` major-minor + * Remove Simple API cache files for alternative indexes in `cache clean` + * Remove extraneous `are` from wheel tag error messages + * Allow conflicting prerelease strategies when forking + * Use tag error rather than requires-python error for ABI filtering + * Add GraalPy support + * Add a `--verify-hashes` hash-checking mode + * Discover all `python3.x` executables in the `PATH` + * Support `--link-mode=symlink` + * Warn about unconstrained direct deps in lowest resolution + * Log origin of version selection + * Key hash policy on version, rather than package + * Make missing project table a tracing warning + * Remove trailing period from user-facing messages + * Make entrypoint writes atomic to avoid overwriting symlinks + * Use `which`-retrieved path directly when spawning pager + * Don't apply irrelevant constraints when validating site-packages + * Respect local versions for all user requirements + * Add `--no-progress` global option to hide all progress animations + * Cache downloaded wheel when range requests aren't supported + * Download wheel to disk when streaming unzip failed with HTTP streaming error + * Filter out invalid wheels based on `requires-python` + * Filter out none ABI wheels with mismatched Python versions + * Lock Git cache on resolve + * Change order of `pip compile` command checks to handle exact argument first + * Document that `--universal` implies `--no-strip-markers` + * Include PyPy-specific executables when creating virtual environments with `uv venv` + * Add a custom error message for `--no-build-isolation` `torch` dependencies + * Improve missing `wheel` error message with `--no-build-isolation` + * Add `--no-pager` option in `help` command + * Unhide `--isolated` global argument + * Warn when unused `pyproject.toml` configuration is detected + * Fall back to streaming wheel when `Content-Length` header is absent + * Fix substring marker expression disjointness checks + * Lock directories to synchronize wheel-install copies + * Normalize out complementary == or != markers + * Retry on permission errors when persisting extracted source distributions to the cache + * Set absolute URLs prior to uploading to PyPI + * Exclude `--upgrade-package` from the `pip compile` header + * Exclude `--upgrade-package` when option and value are passed as a single argument + * Add split to cover marker universe when existing splits are incomplete + * Use correct `pyproject.toml` path in warnings + * Fix `CONTRIBUTING.md` instructions to install multiple Python versions + * Use versioned badges when uploading to PyPI + * Add support for 'any' Python requests + * Allow constraints to be provided in `--upgrade-package` + * Add `manylinux_2_31` to supported `--python-platform` + * Improve marker simplification + * Display short help menu when `--help` is used + * Allow `uv help` global options during `uv help` + * Use paging for `uv help` display when available + * Switch to single threaded async runtime + * Avoid AND-ing multi-term specifiers in marker normalization + * Avoid inferring package name for GitHub Archives + * Retry on connection reset network errors + * Apply extra to overrides and constraints + * Allow `uv` crate to be used as a library + * Update Windows trampoline binaries + * Show user-facing warning when falling back to copy installs + * Initialize all `--prefix` subdirectories + * Respect `requires-python` when prefetching + * Partially revert `Requires-Python` version narrowing + * Add `--exclude-newer` to installer arguments + * Bold durations in CLI messages + * Drop crate description from the `uv` help menu + * Update "about" in help menu + * Add `UV_OVERRIDE` environment variable for `--override` + * Always use release-only comparisons for `requires-python` + * Avoid hangs before exiting CLI + * Preserve verbatim URLs for `--find-links` + * Fix issue where standalone installer failed to due missing `uvx.exe` binary on Windows + * Differentiate `freeze` and `list` help text + * Fix issue where the standalone installer failed due to a missing `uvx` binary + * Indicate when we retried requests during network errors + * Add `--disable-pip-version-check` to compatibility arguments + * Allow `uv pip sync` to clear an environment with opt-in + * Add `--invert` to `uv pip tree` + * Omit `(*)` in `uv pip tree` for empty packages + * Add `--package` to `uv pip tree` + * Fix bug where git cache did not validate commits correctly + * Narrow `requires-python` requirement in resolver forks + * Fix bug when pruning the last package in `uv pip tree` + * Make `--universal` and `--python-platform` mutually exclusive + * Add `--depth` and `--prune` support to `pip tree` + * Handle cycles when propagating markers + * Ignore `py` not found errors during interpreter discovery + * Merge markers when applying constraints + * Retry on spurious failures when caching built wheels + * Sort indexes during graph edge removal + * Treat Python version as a lower bound in `--universal` + * Fix the incorrect handling of markers in `pip tree` + * Improve toolchain and environment missing error messages + * Explicitly mention use of seed packages during `uv venv --seed` + * Avoid enforcing extra-only constraints + * Add a universal resolution mode to `uv pip compile` with `--universal` + * Add support for `--no-strip-markers` in `uv pip compile` output + * Add `--no-dedupe` support to `uv pip tree` + * Enable more precise environment locking with `--prefix` + * Allow local index references in `requirements.txt` files + * Allow non-`file://` paths to serve as `--index-url` values + * Make `.egg-info` filename parsing spec compliant + * Gracefully handle non-existent packages in local indexes + * Read content length from response rather than request + * Read persistent configuration from non-workspace `pyproject.toml` + * Avoid panic for invalid, non-base index URLs + * Skip submodule update for fresh clones + * Use shared client in Git fetch implementation + * Add `--emit-build-options` flag to `uv pip compile` interface + * Add `pythonw` support for gui scripts on Windows + * Add `uv pip tree` + * Adjust the docs for the pip CLI commands + * Fix casing of `--no-compile` alias + * Fix ordering of prefer-system toolchain preference + * Respect index strategy in source distribution builds + * Add documentation for using uv in a Docker image + * Support toolchain requests with platform-tag style Python implementations and version + * Use "Prepared" instead of "Downloaded" in logs + * Treat mismatched directory and file urls as unsatisfied requirements + * Add resolver tracing logs for when we filter requirements + * Allow specific `--only-binary` and `--no-binary` packages to override `:all:` + * Flatten ORs and ANDs in marker construction + * Skip invalid interpreters when searching for requested interpreter executable name + * Display keyring stderr during queries + * Allow discovery of uv binary relative to package root + * Use relative path for `lib64` symlink + * Add uv version to debug output + * Allow `--no-binary` with `uv pip compile` + * Hide `--no-system` from the CLI + * Make `--reinstall`, `--upgrade`, and `--refresh` shared arguments + * Add `UV_EXCLUDE_NEWER` environment variable + * Allow normalization to completely eliminate markers + * Avoid treating direct path archives as always dynamic + * De-duplicate markers during normalization + * Fix incorrect parsing of requested Python version as empty version specifiers + * Suggest correct command to create a virtual environment when encountering externally managed interpreters + * Use consistent order for extra groups in lockfile + * Add `pip-compile` defaults to `PIP_COMPATIBILITY.md` + * Expand on `pip-compile` default differences + * Tweak copy on some command-line arguments + * Move the preview changelog so the GitHub Release shows stable changes + * Add support for local directories with `--index-url` + * Add mTLS support + * Allow version specifiers to be used in Python version requests + * Always install as editable when duplicate dependencies are requested + * Avoid crash with `XDG_CONFIG_HOME=/dev/null` + * Improve handling of missing interpreters during discovery + * Make missing `METADATA` file a recoverable error + * Represent build tag as `u64` + * Document Windows 10 requirement + * Re-add `aarch64-unknown-linux-gnu` binary to release assets + * Accept `file://` URLs for `requirements.txt` et all references + * Add support for `--prefix` + * Add `pyproject.toml` to CLI help + * Drop "registry" prefix from request timeout log + * Allow transitive URLs via recursive extras + * Avoid pre-fetching for unbounded minimum versions + * Avoid showing dev hints for Python requirements + * Include non-standard ports in keyring host queries + * Omit URL dependencies from pre-release hints + * Improve static metadata extraction for Poetry projects + * Document bytecode compilation in pip compatibility guide + * Fix PEP 508 link in preview doc `specifying_dependencies` + * Clarify role of `--system` flag + * Respect existing `.egg-link` files in site packages + * Avoid extra-only filtering for constraints + * Add install link for specific version to README + * Fix `uv venv` handling when `VIRTUAL_ENV` refers to an non-existent environment + * Support `NO_COLOR` and `FORCE_COLOR` environment variables + * Avoid building packages with dynamic versions + * Avoid work-stealing in bytecode compilation + * Avoid dropping `pip sync` requirements with markers + * Bias towards local directories for bare editable requirements + * Preserve fragments when applying verbatim redirects + * Avoid 'are incompatible' for singular bounded versions + * Support PEP 508 requirements for editables + * Discard fragments when parsing unnamed URLs + * Port all Git functionality to use Git CLI + * Use statically linked C runtime on Windows + * Disable concurrent progress bars in Jupyter Notebooks + * Initialize multi-progress state before individual bars + * Add missing `i686` alias for `x86` + * Add missing `ppc64le` alias for `powerpc64le` + * Fix reference to `--python-version` patch behavior + * Avoid race condition in `OnceMap` + * Add support for x86 Windows + * Add support for `prepare_metadata_for_build_editable` hook + * Add concurrent progress bars for downloads + * Update bundled Python URLs and add `"arm"` architecture variant + * Allow `--system` and `--python` to be passed together + * Ignore `libc` on other platforms + * Incorporate build tag into wheel prioritization + * Avoid displaying log for satisfied editables if none are requested + * Improve logging during interpreter discovery + * Improve logging for environment locking + * Improve logging of interpreter implementation + * Remove extra details from interpreter query traces + * Use colon more consistently in error messages + * Add JSON alias for `unsafe-any-match` + * Remove redundant dynamically linked Linux binary again (#3762)" + * Remove `aarch64-unknown-linux-gnu` from list of expected binaries + * Always include package names for Git and HTTPS dependencies + * Fix interpreter cache collisions for relative virtualenv paths + * Ignore unnamed requirements in preferences + * Search for `python3` in unix virtual environments + * Use a cross-platform representation for relative paths in `pip compile` + * Report yanks for cached and resolved packages + * Improve error message when default Python is not found + * Do not treat interpereters discovered via `CONDA_PREFIX` as system interpreters + * Re-added the dynamically-linked Linux binary + * Rewrite Python interpreter discovery + * Add support for requesting `pypy` interpreters by implementation name + * Discover and prefer the parent interpreter when invoked with `python -m uv` [#3736](https://github.com/astral-sh/uv/pull/3736) + * Add PEP 714 support for HTML API client + * Add PEP 714 support for JSON API client + * Write relative paths with unnamed requirement syntax + * Allow relative Python executable paths in Windows trampoline + * Add support for clang and msvc in missing header error + * Allow `--constraint` files in `pip sync` + * Allow `--config-file` to be passed before or after command name + * Make `--offline` a global argument + * Improve performance in complex resolutions by reducing cost of PubGrub package clones + * Evaluate arbitrary markers to `false` + * Improve `DirWithoutEntrypoint` error message + * Improve display of root package in range errors + * Propagate URL errors in verbatim parsing + * Report yanked packages in `--dry-run` + * Drop native `manylinux` wheel in favor of dual-tagged wheel + * The `python-patch` test feature is no longer on by default and must be manually enabled to test patch version behavior + * Add `--prefix` link to compatibility guide + * Add `--only-binary` to compatibility guide + * Add instructions for building and updating `uv-trampolines` + * Add notes for testing on Windows + * Parse and store extras on editable requirements + * Allow local versions in wheel filenames + * Create lib64 symlink for 64-bit, non-macOS, POSIX environments + * Add `UV_CONCURRENT_INSTALLS` variable in favor of `RAYON_NUM_THREADS` + * Add serialization and deserialization for `--find-links` + * Apply combination logic to merge CLI and persistent configuration + * Parallelize resolver + * Reduce sensitivity of unknown option error to discard Python 2 interpreters + * Respect installed packages in `uv run` + * Separate cache construction from initialization + * Add missing `"directory"` branch in source match + * Fix source annotation in pip compile `annotation-style=line` output + * Run cargo update to pull in h2 + * URL-decode hashes in HTML fragments + * Always print JSON output with `--format` json + * Add `UV_CONFIG_FILE` environment variable to documentation + * Explicitly mention `--user` in compatibility guide + * Add musl ppc64le support + * Retag musl aarch64 for manylinux2014 + * Reverts "Use manylinux: auto to enable `musllinux_1_2` aarch64 builds + The manylinux change appeared to introduce SSL errors when building aarch64 Docker images, e.g., + > invalid peer certificate: BadSignature + +------------------------------------------------------------------- +Sun May 12 16:21:29 UTC 2024 - Atri Bhattacharya + +- Initial package. diff --git a/python-uv.spec b/python-uv.spec new file mode 100644 index 0000000..688a37b --- /dev/null +++ b/python-uv.spec @@ -0,0 +1,131 @@ +# +# spec file for package python-uv +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_without libalternatives +%{?sle15_python_module_pythons} +Name: python-uv +Version: 0.2.33 +Release: 0 +Summary: A Python package installer and resolver, written in Rust +License: Apache-2.0 OR MIT +URL: https://github.com/astral-sh/uv +Source0: https://files.pythonhosted.org/packages/source/r/uv/uv-%{version}.tar.gz +Source1: vendor.tar.zst +Patch1: nostrip.patch +BuildRequires: %{python_module maturin} +BuildRequires: %{python_module pip} +BuildRequires: alts +BuildRequires: cargo-packaging +BuildRequires: cmake +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildRequires: rust >= 1.80 +BuildRequires: zstd +Obsoletes: uv < %{version} +Provides: uv = %{version} +Requires: alts +Requires: python3 + +%package fish-completion +Summary: Fish Completion for %{name} +Group: System/Shells +Supplements: (%{name} and fish) +Requires: fish +BuildArch: noarch + +%description fish-completion +Fish command-line completion support for %{name}. + +%package zsh-completion +Summary: Zsh Completion for %{name} +Group: System/Shells +Supplements: (%{name} and zsh) +Requires: zsh +BuildArch: noarch + +%description zsh-completion +Zsh command-line completion support for %{name}. + +%package bash-completion +Summary: Bash Completion for %{name} +Group: System/Shells +Supplements: (%{name} and bash-completion) +Requires: bash-completion +BuildArch: noarch + +%description bash-completion +Bash command-line completion support for %{name}. + +%python_subpackages + +%description +uv is a Python package installer and resolver, written in Rust. Designed as a +drop-in replacement for common pip and pip-tools workflows. + +%prep +%autosetup -p1 -a1 -n uv-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitearch} +%python_clone -a %{buildroot}%{_bindir}/uv +%python_group_libalternatives uv +%python_clone -a %{buildroot}%{_bindir}/uvx +%python_group_libalternatives uvx + +export PATH="%{buildroot}%{_bindir}:${PATH}" +mkdir -p %{buildroot}%{_datadir}/bash-completion/completions +mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d +mkdir -p %{buildroot}%{_datadir}/zsh/site-functions +%{python_expand # avoid whitespace when using this macro so putting random comment for that + uv-%{$python_bin_suffix} --generate-shell-completion bash > %{buildroot}%{_datadir}/bash-completion/completions/uv-%{$python_bin_suffix} + uv-%{$python_bin_suffix} --generate-shell-completion fish > %{buildroot}%{_datadir}/fish/vendor_completions.d/uv-%{$python_bin_suffix}.fish + uv-%{$python_bin_suffix} --generate-shell-completion zsh > %{buildroot}%{_datadir}/zsh/site-functions/_uv-%{$python_bin_suffix} +} + +%pre +%python_libalternatives_reset_alternative uv +%python_libalternatives_reset_alternative uvx + +%files %{python_files} +%license LICENSE-* +%doc README.md +%python_alternative %{_bindir}/uv +%python_alternative %{_bindir}/uvx +%{python_sitearch}/uv +%{python_sitearch}/uv-%{version}.dist-info + +%files %{python_files bash-completion} +%dir %{_datadir}/bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/uv-%{python_bin_suffix} + +%files %{python_files fish-completion} +%dir %{_datadir}/fish +%dir %{_datadir}/fish/vendor_completions.d +%{_datadir}/fish/vendor_completions.d/uv-%{python_bin_suffix}.fish + +%files %{python_files zsh-completion} +%dir %{_datadir}/zsh +%dir %{_datadir}/zsh/site-functions +%{_datadir}/zsh/site-functions/_uv-%{python_bin_suffix} + +%changelog diff --git a/uv-0.2.33.tar.gz b/uv-0.2.33.tar.gz new file mode 100644 index 0000000..6a03e68 --- /dev/null +++ b/uv-0.2.33.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:714351e10f27e41052897e26cd4acfe66e35250903fdc20f762d29461cf3ec4a +size 1114271 diff --git a/vendor.tar.zst b/vendor.tar.zst new file mode 100644 index 0000000..0044377 --- /dev/null +++ b/vendor.tar.zst @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5205dff501fb3a0c4a1bd55617294d8291b8184f5c1ecf4259b0433df207d18f +size 59428600