summaryrefslogtreecommitdiff
path: root/dev-python/uv
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/uv')
-rw-r--r--dev-python/uv/Manifest5
-rw-r--r--dev-python/uv/files/uv-0.1.24-skip-tests.patch192
-rw-r--r--dev-python/uv/uv-0.1.24.ebuild107
3 files changed, 304 insertions, 0 deletions
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index f070e36305a0..d66220cdb31a 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -1,7 +1,12 @@
AUX uv-0.1.13-skip-tests.patch 2450 BLAKE2B ab33cab9edb39b4d675f219552b89d7dc4e187a3794628de88ea7274e0834193afcfdd25780f886f058cf1ac4b34311026233082018c78c1731f8a7b0203eb3a SHA512 3f0afac1a5c3aa9ae3c86a7479b458e750ab0e4ddf9179151c57cd7f8c3db9618b949a6a3371b9db0c0a0e15e4a7146468d77930be4122df0642b1ed52a9118d
+AUX uv-0.1.24-skip-tests.patch 6070 BLAKE2B 10c111a2782bc0de45317dc4b6d7f7d66474aec38d61992a63686678a70685aa030acc2b96cb5cced70cf2b290e6f69cdb3e5c42464e04b937a9ef9cb2d7f9f7 SHA512 84fa60b254b3d14fbae337aceba1f34e9f4cd35e0d8da7e90c4ef75c81ccc5268dbfe3e46967ba05899af7862331cade50dcd4a364acd51fcb04a0923cbf7688
DIST pubgrub-aab132a3d4d444dd8dd41d8c4e605abd69dacfe1.gh.tar.gz 73856 BLAKE2B 9e30babd5159de0f80a69de082e990cade3768a4f62c64ecec46253b1c8a3da56a61d096f0cd2e74da436cbabb444c5acbfe27cc55160a5c0c99205c0317612a SHA512 f49c63df7394fcd4ce6a616e3c8d7893274f4bbe4d451f3fb46eed80a3e03eb345818c5ff87e9d3ac23c80ea7ffee5de01237a5dfff40f740f88a6d61eab5f81
+DIST pubgrub-e981e4dfe315582e84e2fd724832fb0e0c50b7aa.gh.tar.gz 76914 BLAKE2B e7039f3b2fdc2a702f4824ff99acba9549e916c211290b79ec710060369b2c76e518c210c109103bf5ba50cbb373d0a4e3185df09935d7e47241ec25da259776 SHA512 94cfc88b6736ffd78bcbcc3f4cd9940d27c902bf2dfca38dddb470b8a6a0bb3a8e4a61dd1b2654e49327c9386c3ac2a7f090f9a6c2426b19ecf00d9f9716d400
DIST rs-async-zip-d76801da0943de985254fc6255c0e476b57c5836.gh.tar.gz 95906 BLAKE2B a5a0e4d20926d637cbfa25cb486580de6682365c588a9653c873622424ec28ac8c7380d1c99ec260cd342b214aacd5124b51fc5e5646f15f76db4148aada2f41 SHA512 dd5b61bfc913a94822d74f1dac3b30f7a3979a641c3b08ccb5fa84cfbb2bfd8c0f807a30cc4ae0abfe5df7079011c20e1f8a642fd439ce6ba2c404ddee06baf5
DIST uv-0.1.13-crates.tar.xz 47903460 BLAKE2B da7a2f023054197820cd1bcd13c6e4ff6d4c4bc4780fa109b2c5b796830333f21bc4c7f426052f7ed31a6c02f4e28694cfd94b1aa9d3044ebde49570e565c04b SHA512 cce73590c12a082fed36092bada42b878437cc44137f47c47b4e0e6fae214295867fbda90576d8ed47b025d873dc5655ab74c9914d6ccbaf6cea994b793800d5
DIST uv-0.1.13.gh.tar.gz 1860446 BLAKE2B e5c209e11ea10a0aa8a88d4d40b40fe84cdd764cab1e852b49a52d8ff8749aac59d62234626fa768e6b1c304ee7b7a54cf99f5af4ecf21b368a1b521a8f903df SHA512 dc00cc26bc3b8e30edcc619bd49ff44962180623be8d1e2d7dc7c2b1c29969c8b393eda31b1392d90f0d72c15f2cb19af489e1e44f857225e461393c4b4b96c1
+DIST uv-0.1.24-crates.tar.xz 64420840 BLAKE2B 7324461092a07c86aadaddf051aaa7454ec08085940f34d07d8a8dc7171abcbf94409df5cd8afd71f1022adb2e76c0aeb1eabe9190598cad4d06e390ccd612f4 SHA512 6701a768a8a1d48ac43038e5161b578b684abed1c2055cc4b7fb5656ec40118287893ee2674b7161292ce7c3e4c062c32ff0038f1548c8f79f4df473d8d26f30
+DIST uv-0.1.24.gh.tar.gz 899637 BLAKE2B fab26ba9934fc5f586505b5ac1fa386c11f07e51ca2bb2a79f46d5dec9475ba8d75ad8587223d5149df5f2a225146d020a49b7ff81ed26b949cff55892738c2d SHA512 520b47a096b50fce9e7b7af5bca203df9bf4c2d0aafbe28a3dcfe0592d8ddcaa7b58d52300c67454f6aeecfd196f1592be18e45c95b7c67257361917cdb0154d
EBUILD uv-0.1.13-r1.ebuild 2130 BLAKE2B 136f4c90c5d9efcac30138a7ac8f7a877dbbd22f2cf3934172ea6ad73e5d4965665b891f8ae077bf38bb3d021e2359f0961a5d0dfcecda66cccabe69e4ff8726 SHA512 798c04eb2d7b14f6e874e3d2108c3373acc5f8ea0a4845edbff5764056b5452de179734b90d90c21116adfc674c68470535ee30c005066c5a95658e9e7c7efdc
+EBUILD uv-0.1.24.ebuild 2152 BLAKE2B 384e1839440ef165afb10e50a201eb2eb2d3106cadebadfb2c81c9aea0a67a299cfc628bf867536b282c978ab68fc9382caa0d1d15f17e2c91b06d2a25c72882 SHA512 b52c15fd7cf4fe5107dde5f5f3f27ab2c139d156d5ef937d4767b88a35c9ea79a5867d6c6f5224de3c3198b022523c92094a60490037827ee411bfd6a0eb8a7d
MISC metadata.xml 336 BLAKE2B 4b5933e24e3e9450dde5da099185dcdf3afb5916b55cffa7c2f3f6fac77e439197cbe4ba529a87f83442d8f87d238e8abef06dc052ce9a62659060ffea9fdb47 SHA512 9910fd10ebbc395b9c330774b74798c9ffdba3bb368347658380a22e01d6dc9d1961ea50fbfb4a904c9db84b94c713c054e418a7294425b86ff41a607fd3e310
diff --git a/dev-python/uv/files/uv-0.1.24-skip-tests.patch b/dev-python/uv/files/uv-0.1.24-skip-tests.patch
new file mode 100644
index 000000000000..e9efee5e8d89
--- /dev/null
+++ b/dev-python/uv/files/uv-0.1.24-skip-tests.patch
@@ -0,0 +1,192 @@
+diff --git a/crates/uv/tests/pip_compile.rs b/crates/uv/tests/pip_compile.rs
+index 1fc08d1b..60675de4 100644
+--- a/crates/uv/tests/pip_compile.rs
++++ b/crates/uv/tests/pip_compile.rs
+@@ -5140,7 +5140,6 @@ fn expand_env_var_requirements_txt() -> Result<()> {
+ }
+
+ /// Raise an error when an editable's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_editable() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+@@ -5392,7 +5391,6 @@ fn no_stream() -> Result<()> {
+ }
+
+ /// Raise an error when a direct URL dependency's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_direct_url() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/pip_install.rs b/crates/uv/tests/pip_install.rs
+index 6dfbd764..ddc5f37b 100644
+--- a/crates/uv/tests/pip_install.rs
++++ b/crates/uv/tests/pip_install.rs
+@@ -912,7 +912,6 @@ fn install_no_index_version() {
+ /// package in.)
+ ///
+ /// Ref: <https://github.com/astral-sh/uv/issues/1600>
+-#[test]
+ fn install_extra_index_url_has_priority() {
+ let context = TestContext::new("3.12");
+
+@@ -2344,7 +2343,6 @@ requires-python = ">=3.11,<3.13"
+ }
+
+ /// Raise an error when an editable's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_editable() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+@@ -2792,7 +2790,6 @@ fn dry_run_install_then_upgrade() -> std::result::Result<(), Box<dyn std::error:
+ }
+
+ /// Raise an error when a direct URL's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_direct_url() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/pip_install_scenarios.rs b/crates/uv/tests/pip_install_scenarios.rs
+index 29ec3483..a538291d 100644
+--- a/crates/uv/tests/pip_install_scenarios.rs
++++ b/crates/uv/tests/pip_install_scenarios.rs
+@@ -2244,7 +2244,6 @@ fn post_greater_than_or_equal_post() {
+ /// └── a
+ /// └── a-1.2.3.post1
+ /// ```
+-#[test]
+ fn post_less_than_or_equal() {
+ let context = TestContext::new("3.8");
+
+@@ -2283,7 +2282,6 @@ fn post_less_than_or_equal() {
+ /// └── a
+ /// └── a-1.2.3.post1
+ /// ```
+-#[test]
+ fn post_less_than() {
+ let context = TestContext::new("3.8");
+
+@@ -2320,7 +2318,6 @@ fn post_less_than() {
+ /// ├── a-1.2.3.post1
+ /// └── a-1.2.3.post1+local
+ /// ```
+-#[test]
+ fn post_local_greater_than() {
+ let context = TestContext::new("3.8");
+
+@@ -2361,7 +2358,6 @@ fn post_local_greater_than() {
+ /// ├── a-1.2.3.post1
+ /// └── a-1.2.3.post1+local
+ /// ```
+-#[test]
+ fn post_local_greater_than_post() {
+ let context = TestContext::new("3.8");
+
+@@ -2529,7 +2525,6 @@ fn post_greater_than_post_not_available() {
+ /// └── a
+ /// └── a-1.0.0a1
+ /// ```
+-#[test]
+ fn package_only_prereleases() {
+ let context = TestContext::new("3.8");
+
+@@ -3652,7 +3647,6 @@ fn package_prereleases_specifier_boundary() {
+ /// └── a-1.0.0
+ /// └── requires python>=3.30 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_version_does_not_exist() {
+ let context = TestContext::new("3.8");
+
+@@ -3694,7 +3688,6 @@ fn python_version_does_not_exist() {
+ /// └── a-1.0.0
+ /// └── requires python<=3.8 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_less_than_current() {
+ let context = TestContext::new("3.9");
+
+@@ -3736,7 +3729,6 @@ fn python_less_than_current() {
+ /// └── a-1.0.0
+ /// └── requires python>=3.10 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_greater_than_current() {
+ let context = TestContext::new("3.9");
+
+@@ -3778,7 +3770,6 @@ fn python_greater_than_current() {
+ /// └── a-1.0.0
+ /// └── requires python>=3.8.14 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_greater_than_current_patch() {
+ let context = TestContext::new("3.8.12");
+
+@@ -3942,7 +3933,6 @@ fn python_greater_than_current_backtrack() {
+ /// └── a-4.0.0
+ /// └── requires python>=3.12 (incompatible with environment)
+ /// ```
+-#[test]
+ fn python_greater_than_current_excluded() {
+ let context = TestContext::new("3.9");
+
+diff --git a/crates/uv/tests/pip_list.rs b/crates/uv/tests/pip_list.rs
+index 15d784c1..f15f14b1 100644
+--- a/crates/uv/tests/pip_list.rs
++++ b/crates/uv/tests/pip_list.rs
+@@ -100,7 +100,6 @@ fn list_single_no_editable() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn list_editable() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+@@ -197,7 +196,6 @@ fn list_editable() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn list_editable_only() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+@@ -323,7 +321,6 @@ fn list_editable_only() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn list_exclude() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/pip_sync.rs b/crates/uv/tests/pip_sync.rs
+index af3f4946..0df9ed80 100644
+--- a/crates/uv/tests/pip_sync.rs
++++ b/crates/uv/tests/pip_sync.rs
+@@ -1447,7 +1447,6 @@ fn install_git_source_dist_cached() -> Result<()> {
+ }
+
+ /// Check that we show the right messages on cached, registry source distribution installs.
+-#[test]
+ fn install_registry_source_dist_cached() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+@@ -2955,7 +2954,6 @@ fn compile_invalid_pyc_invalidation_mode() -> Result<()> {
+ }
+
+ /// Raise an error when an editable's `Requires-Python` constraint is not met.
+-#[test]
+ fn requires_python_editable() -> Result<()> {
+ let context = TestContext::new("3.12");
+
+diff --git a/crates/uv/tests/venv.rs b/crates/uv/tests/venv.rs
+index 067c1414..1462f6a0 100644
+--- a/crates/uv/tests/venv.rs
++++ b/crates/uv/tests/venv.rs
+@@ -327,7 +327,6 @@ fn create_venv_unknown_python_patch() -> Result<()> {
+ Ok(())
+ }
+
+-#[test]
+ fn create_venv_python_patch() -> Result<()> {
+ let temp_dir = assert_fs::TempDir::new()?;
+ let cache_dir = assert_fs::TempDir::new()?;
diff --git a/dev-python/uv/uv-0.1.24.ebuild b/dev-python/uv/uv-0.1.24.ebuild
new file mode 100644
index 000000000000..5eaf16db71da
--- /dev/null
+++ b/dev-python/uv/uv-0.1.24.ebuild
@@ -0,0 +1,107 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;d76801da0943de985254fc6255c0e476b57c5836;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;e981e4dfe315582e84e2fd724832fb0e0c50b7aa;pubgrub-%commit%'
+)
+
+inherit cargo check-reqs
+
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://dev.gentoo.org/~mgorny/dist/${P}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT
+ MPL-2.0 Unicode-DFS-2016
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ dev-libs/libgit2:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+}
+
+src_prepare() {
+ local PATCHES=(
+ # skip broken tests:
+ # - requiring pinned CPython versions (3.8.12, 3.11.7, 3.12.1)
+ # - requiring specific terminal width (COLUMNS don't seem to work)
+ # - other (perhaps failing because of other skipped tests?)
+ "${FILESDIR}/uv-0.1.24-skip-tests.patch"
+ )
+
+ rm crates/uv/tests/pip_compile_scenarios.rs || die
+ default
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+}