Migrate build to Poetry and prep for PyPI release#7
Closed
faizollah wants to merge 1 commit into
Closed
Conversation
Switch the build backend from hatchling to poetry-core, keeping the PEP 621 [project] layout so exact dependency constraints are preserved (no caret upper-caps introduced). Add poetry.lock for reproducible dev/CI. - Add [project.urls] (Homepage/Repository/Issues -> eScienceLab/flwrCrate) - Fix requires-python: ">=3.9" was never valid because flwr requires >=3.10 (and flwr 1.31+ requires >=3.11). Set ">=3.11,<4.0" to match flwr and the supported dev environments; this is what lets Poetry resolve a lockfile. - Drop Python 3.10 from the CI matrix to match the new floor - README: lead install with `pip install flwrcrate`, state Python >=3.11, and point the source URL at eScienceLab Verified: poetry build produces a valid sdist+wheel; the wheel installs with its full dependency tree into a clean venv and imports; 51 tests pass at 92% coverage. Part of #4
9bca248 to
feea825
Compare
elichad
reviewed
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release-prep for #4 (publish to PyPI). This is the code half; #4 closes once the package is actually live on PyPI.
What changed
[project]layout, so dependency constraints are preserved exactly (no caret upper-caps introduced). Addedpoetry.lockfor reproducible dev/CI.[project.urls]— Homepage / Repository / Issues → this repo.requires-python.>=3.9was never actually valid:flwrrequires>=3.10, andflwr1.31+ requires>=3.11. Set to>=3.11,<4.0— matches flwr and our dev environments, and is what lets Poetry resolve a lockfile. Hatchling never checked this; Poetry's resolver surfaced it.pip install flwrcrate; states Python ≥ 3.11; source URL points at eScienceLab.This raises the minimum Python from an (invalid) 3.9 to 3.11, dropping 3.10. Rationale: flwr 1.31+ already requires 3.11, so keeping 3.10 would pin those users to flwr ≤ 1.30. Happy to instead keep 3.10 with split flwr constraints if we want to preserve it — flagging since it's a public support change.
Verification
poetry build→ valid sdist + wheel; wheel contains onlyflwrcrate/(no tests), correct metadata (Requires-Python: >=3.11,<4.0, MIT, all URLs).from flwrcrate import FLCrateTrackerOK).Part of #4