From 63ecf71eaacec7f2446172af9775ed6eac2df905 Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 14:14:06 -0500 Subject: [PATCH 01/10] use new dependency groups for dev & test --- pyproject.toml | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5df3a95..6415b98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,17 +26,28 @@ dependencies = [ ] [project.optional-dependencies] +numba = ["numba"] +torch = ["torch"] +cupy = ["cupy"] +cuda11x = ["cupy-cuda11x"] +tf = ["tensorflow >=2,<3"] +jax = ["jax[cpu]>=0.4.16"] + +[project.urls] +Homepage = "https://seedbank.lenksit.org" +GitHub = "https://github.com/lenskit/seedbank" + +[dependency-groups] dev = [ "setuptools>=64", "setuptools_scm>=8", "wheel", - "build ==1.*", # p2c: -s python-build==1 + "build ==1.*", "ruff >= 0.2", "pyright", "copier ==9.*", - "unbeheader ~= 1.3", # p2c: -p + "unbeheader ~= 1.3", "ipython", - "pyproject2conda ", "sphinx-autobuild", ] test = [ @@ -52,16 +63,6 @@ doc = [ "sphinxext-opengraph >= 0.5", "furo", ] -numba = ["numba"] -torch = ["torch"] -cupy = ["cupy"] -cuda11x = ["cupy-cuda11x"] -tf = ["tensorflow >=2,<3"] -jax = ["jax[cpu]>=0.4.16"] - -[project.urls] -Homepage = "https://seedbank.lenksit.org" -GitHub = "https://github.com/lenskit/seedbank" # configure build tools [tool.setuptools.packages.find] @@ -70,11 +71,6 @@ include = ["seedbank*"] [tool.setuptools_scm] version_scheme = "guess-next-dev" -# settings for generating conda environments for dev & CI, when needed -[tool.pyproject2conda] -channels = ["conda-forge"] -deps = ["just"] - [tool.coverage.run] relative_files = true From 9b96ab2b18c6dc9db6243cc98d1c28da7ad37fa3 Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 14:14:23 -0500 Subject: [PATCH 02/10] add python 3.13 to test matrix --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 142dc48..4418b99 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,6 +26,7 @@ jobs: - "3.10" - "3.11" - "3.12" + - "3.13" steps: - uses: actions/checkout@v3 From 8ef9d2437beb3818f20f6bdc9d087932a7adc7a1 Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 14:18:14 -0500 Subject: [PATCH 03/10] upgrade to uv package management --- .github/workflows/test.yml | 14 ++++++++++---- pyproject.toml | 3 +++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4418b99..e02b131 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,12 +38,15 @@ jobs: with: python-version: ${{matrix.python}} + - name: Install uv + uses: astral-sh/setup-uv@v3 + - name: Set up dev environment run: | - pip install -e '.[test]' + uv sync --group test - name: Run tests - run: python -m pytest --cov=seedbank --cov-report=xml tests + run: uv run pytest --cov=seedbank --cov-report=xml tests - name: Save test results uses: lenskit/lkbuild/actions/save-test-results@main @@ -72,9 +75,12 @@ jobs: with: python-version: 3.11 + - name: Install uv + uses: astral-sh/setup-uv@v3 + - name: Set up dev environment run: | - pip install -e '.[test,${{matrix.extra}}]' + uv sync --group test --extra ${{matrix.extra}} - name: Run tests run: python -m pytest --cov=seedbank --cov-report=xml tests @@ -114,7 +120,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.13" - name: Install Python deps run: pip install -U build twine diff --git a/pyproject.toml b/pyproject.toml index 6415b98..d8a801d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,6 +71,9 @@ include = ["seedbank*"] [tool.setuptools_scm] version_scheme = "guess-next-dev" +[tool.uv] +default-groups = ["dev", "test", "doc"] + [tool.coverage.run] relative_files = true From 08e6fb953d47c5067c4f0542bba17f2325bb3d95 Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 14:33:11 -0500 Subject: [PATCH 04/10] fix coverage upload --- .github/workflows/test.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e02b131..7351f83 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,10 +48,13 @@ jobs: - name: Run tests run: uv run pytest --cov=seedbank --cov-report=xml tests - - name: Save test results - uses: lenskit/lkbuild/actions/save-test-results@main + - name: Upload logs + uses: actions/upload-artifact@v3 with: - artifact-name: test-${{matrix.platform}}-py${{matrix.python}} + name: test-${{matrix.platform}}-py${{matrix.python}} + path: | + test*.log + coverage.xml test-extra: name: Test single extra ${{matrix.extra}} @@ -85,10 +88,13 @@ jobs: - name: Run tests run: python -m pytest --cov=seedbank --cov-report=xml tests - - name: Save test results - uses: lenskit/lkbuild/actions/save-test-results@main + - name: Upload logs + uses: actions/upload-artifact@v3 with: - artifact-name: test-extra-${{matrix.extra}} + name: test-extra-${{matrix.extra}} + path: | + test*.log + coverage.xml report: name: Process test results @@ -103,7 +109,6 @@ jobs: - name: Report test results uses: lenskit/lkbuild/actions/report-test-results@main - sdist: name: Build and Publish Packages runs-on: ubuntu-latest From 6d743b0bd0d44c9d0a0ea1e55753ea5e5ca52b4a Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 14:46:58 -0500 Subject: [PATCH 05/10] fix extra install --- .github/workflows/test.yml | 3 ++- pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7351f83..66813d0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -86,7 +86,8 @@ jobs: uv sync --group test --extra ${{matrix.extra}} - name: Run tests - run: python -m pytest --cov=seedbank --cov-report=xml tests + run: | + uv run pytest --cov=seedbank --cov-report=xml tests - name: Upload logs uses: actions/upload-artifact@v3 diff --git a/pyproject.toml b/pyproject.toml index d8a801d..5800a1f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ ] [project.optional-dependencies] -numba = ["numba"] +numba = ["numba >=0.54"] torch = ["torch"] cupy = ["cupy"] cuda11x = ["cupy-cuda11x"] From 0151169a07bf7030b2f9de605e8fba8feea36c6e Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 15:17:20 -0500 Subject: [PATCH 06/10] fix RTD build --- .readthedocs.yml | 8 +- doc-requirements.txt | 195 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 199 insertions(+), 4 deletions(-) create mode 100644 doc-requirements.txt diff --git a/.readthedocs.yml b/.readthedocs.yml index d864239..9ea1f68 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -10,7 +10,7 @@ sphinx: python: install: - - method: pip - path: . - extra_requirements: - - doc + - method: pip + requirements: doc-requirements.txt + - method: pip + path: . diff --git a/doc-requirements.txt b/doc-requirements.txt new file mode 100644 index 0000000..4bdae33 --- /dev/null +++ b/doc-requirements.txt @@ -0,0 +1,195 @@ +# This file was autogenerated by uv via the following command: +# uv export --format requirements-txt --only-group doc +alabaster==1.0.0 \ + --hash=sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e \ + --hash=sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b +babel==2.16.0 \ + --hash=sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316 \ + --hash=sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b +beautifulsoup4==4.12.3 \ + --hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \ + --hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed +certifi==2024.8.30 \ + --hash=sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9 \ + --hash=sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8 +charset-normalizer==3.4.0 \ + --hash=sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e \ + --hash=sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6 \ + --hash=sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b \ + --hash=sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99 \ + --hash=sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca \ + --hash=sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d \ + --hash=sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7 \ + --hash=sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3 \ + --hash=sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907 \ + --hash=sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b \ + --hash=sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912 \ + --hash=sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95 \ + --hash=sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e \ + --hash=sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe \ + --hash=sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc \ + --hash=sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749 \ + --hash=sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c \ + --hash=sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944 \ + --hash=sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee \ + --hash=sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c \ + --hash=sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6 \ + --hash=sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea \ + --hash=sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc \ + --hash=sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5 \ + --hash=sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594 \ + --hash=sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c \ + --hash=sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365 \ + --hash=sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129 \ + --hash=sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236 \ + --hash=sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99 \ + --hash=sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27 \ + --hash=sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6 \ + --hash=sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf \ + --hash=sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db \ + --hash=sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1 \ + --hash=sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03 \ + --hash=sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284 \ + --hash=sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15 \ + --hash=sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8 \ + --hash=sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2 \ + --hash=sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719 \ + --hash=sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631 \ + --hash=sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b \ + --hash=sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565 \ + --hash=sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7 \ + --hash=sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9 \ + --hash=sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114 \ + --hash=sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed \ + --hash=sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250 \ + --hash=sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920 \ + --hash=sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64 \ + --hash=sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23 \ + --hash=sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc \ + --hash=sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d \ + --hash=sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88 \ + --hash=sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90 \ + --hash=sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b \ + --hash=sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d \ + --hash=sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482 \ + --hash=sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67 \ + --hash=sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b \ + --hash=sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079 +colorama==0.4.6 ; sys_platform == 'win32' \ + --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ + --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 +docutils==0.21.2 \ + --hash=sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f \ + --hash=sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2 +furo==2024.8.6 \ + --hash=sha256:b63e4cee8abfc3136d3bc03a3d45a76a850bada4d6374d24c1716b0e01394a01 \ + --hash=sha256:6cd97c58b47813d3619e63e9081169880fbe331f0ca883c871ff1f3f11814f5c +idna==3.10 \ + --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ + --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 +imagesize==1.4.1 \ + --hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a \ + --hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b +jinja2==3.1.4 \ + --hash=sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 \ + --hash=sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d +markupsafe==3.0.2 \ + --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 \ + --hash=sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8 \ + --hash=sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158 \ + --hash=sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579 \ + --hash=sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d \ + --hash=sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb \ + --hash=sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b \ + --hash=sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c \ + --hash=sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171 \ + --hash=sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50 \ + --hash=sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a \ + --hash=sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d \ + --hash=sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93 \ + --hash=sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832 \ + --hash=sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84 \ + --hash=sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca \ + --hash=sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798 \ + --hash=sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e \ + --hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \ + --hash=sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d \ + --hash=sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b \ + --hash=sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf \ + --hash=sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225 \ + --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ + --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ + --hash=sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c \ + --hash=sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557 \ + --hash=sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22 \ + --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ + --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ + --hash=sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87 \ + --hash=sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd \ + --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 \ + --hash=sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094 \ + --hash=sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396 \ + --hash=sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79 \ + --hash=sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a \ + --hash=sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca \ + --hash=sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c \ + --hash=sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1 \ + --hash=sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f \ + --hash=sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c \ + --hash=sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb \ + --hash=sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c \ + --hash=sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d \ + --hash=sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe \ + --hash=sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5 \ + --hash=sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a \ + --hash=sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9 \ + --hash=sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6 \ + --hash=sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f +packaging==24.2 \ + --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f \ + --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 +pygments==2.18.0 \ + --hash=sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199 \ + --hash=sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a +requests==2.32.3 \ + --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ + --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 +snowballstemmer==2.2.0 \ + --hash=sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1 \ + --hash=sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a +soupsieve==2.6 \ + --hash=sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb \ + --hash=sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9 +sphinx==8.1.3 \ + --hash=sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927 \ + --hash=sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2 +sphinx-basic-ng==1.0.0b2 \ + --hash=sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9 \ + --hash=sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b +sphinxcontrib-applehelp==2.0.0 \ + --hash=sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1 \ + --hash=sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5 +sphinxcontrib-devhelp==2.0.0 \ + --hash=sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad \ + --hash=sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2 +sphinxcontrib-htmlhelp==2.1.0 \ + --hash=sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9 \ + --hash=sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8 +sphinxcontrib-jsmath==1.0.1 \ + --hash=sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8 \ + --hash=sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178 +sphinxcontrib-qthelp==2.0.0 \ + --hash=sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab \ + --hash=sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb +sphinxcontrib-serializinghtml==2.0.0 \ + --hash=sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d \ + --hash=sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331 +sphinxext-opengraph==0.9.1 \ + --hash=sha256:dd2868a1e7c9497977fbbf44cc0844a42af39ca65fe1bb0272518af225d06fc5 \ + --hash=sha256:b3b230cc6a5b5189139df937f0d9c7b23c7c204493b22646273687969dcb760e +tomli==2.1.0 ; python_full_version < '3.11' \ + --hash=sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8 \ + --hash=sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391 +urllib3==2.2.3 \ + --hash=sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9 \ + --hash=sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac From 0fcb03ac958a4d7d64bcd8aea72b75d05135acd9 Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 15:20:25 -0500 Subject: [PATCH 07/10] fix rtd again --- .readthedocs.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 9ea1f68..8e8d5a3 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -10,7 +10,6 @@ sphinx: python: install: - - method: pip - requirements: doc-requirements.txt + - requirements: doc-requirements.txt - method: pip path: . From 5f20cd277e13e85bd4938c9055e79449d84ad670 Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 15:33:25 -0500 Subject: [PATCH 08/10] switch to hatch --- .gitignore | 2 ++ pyproject.toml | 20 +++++++++++--------- seedbank/__init__.py | 5 ++--- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 0639e0e..a71f638 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,5 @@ conda-lock.yml *~ *.tmp .vs/ + +_version.py diff --git a/pyproject.toml b/pyproject.toml index 5800a1f..9913e7b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] -requires = ["setuptools>=64", "setuptools_scm>=8"] -build-backend = "setuptools.build_meta" +requires = ["hatchling ~=1.0", "hatch-vcs ~=0.4.0"] +build-backend = "hatchling.build" [project] name = "seedbank" @@ -39,10 +39,8 @@ GitHub = "https://github.com/lenskit/seedbank" [dependency-groups] dev = [ - "setuptools>=64", - "setuptools_scm>=8", "wheel", - "build ==1.*", + "build ~=1.0", "ruff >= 0.2", "pyright", "copier ==9.*", @@ -65,11 +63,15 @@ doc = [ ] # configure build tools -[tool.setuptools.packages.find] -include = ["seedbank*"] +[tool.hatch.build.targets.wheel] +packages = ["seedbank"] -[tool.setuptools_scm] -version_scheme = "guess-next-dev" +[tool.hatch.version] +source = "vcs" +raw-options = { version_scheme = "guess-next-dev" } + +[tool.hatch.build.hooks.vcs] +version-file = "seedbank/_version.py" [tool.uv] default-groups = ["dev", "test", "doc"] diff --git a/seedbank/__init__.py b/seedbank/__init__.py index cdcd277..22a2fac 100644 --- a/seedbank/__init__.py +++ b/seedbank/__init__.py @@ -13,7 +13,6 @@ import logging from importlib import import_module -from importlib.metadata import PackageNotFoundError, version from types import ModuleType import numpy as np @@ -24,8 +23,8 @@ from seedbank._state import SeedState try: - __version__ = version("seedbank") -except PackageNotFoundError: + from ._version import version as __version__ # noqa: F401 +except ImportError: # package is not installed pass From 359871c29bf7509ed369fbee31ca5d0c8501a6ad Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 15:42:24 -0500 Subject: [PATCH 09/10] change how install works for testing --- .github/workflows/test.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 66813d0..65ffe06 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,10 +43,12 @@ jobs: - name: Set up dev environment run: | - uv sync --group test + uv sync --only-group test + uv pip install . - name: Run tests - run: uv run pytest --cov=seedbank --cov-report=xml tests + run: | + uv run pytest --cov=seedbank --cov-report=xml tests - name: Upload logs uses: actions/upload-artifact@v3 @@ -83,7 +85,8 @@ jobs: - name: Set up dev environment run: | - uv sync --group test --extra ${{matrix.extra}} + uv sync --only-group test + uv pip install ".[${{matrix.extra}}]" - name: Run tests run: | From d0bf5be9e4380cce6d57dbefe9454ef69e390a08 Mon Sep 17 00:00:00 2001 From: Michael Ekstrand Date: Fri, 15 Nov 2024 15:58:27 -0500 Subject: [PATCH 10/10] don't re-sync on run --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 65ffe06..4eed137 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,7 +48,7 @@ jobs: - name: Run tests run: | - uv run pytest --cov=seedbank --cov-report=xml tests + uv run --no-sync pytest --cov=seedbank --cov-report=xml tests - name: Upload logs uses: actions/upload-artifact@v3 @@ -90,7 +90,7 @@ jobs: - name: Run tests run: | - uv run pytest --cov=seedbank --cov-report=xml tests + uv run --no-sync pytest --cov=seedbank --cov-report=xml tests - name: Upload logs uses: actions/upload-artifact@v3