Repository navigation
Prepare 5.0.10: package metadata, a wheel and the release workflow - #303
Merged
Merged
Conversation
The metadata moves from setup.py to pyproject.toml, built with flit like jsonrpcclient. It adds requires-python >=3.8, classifiers up to 3.14, and project links to this repo and the new docs. The dependencies stay as in 5.0.9. The test extra gains pytest-asyncio and hypothesis, and the unused examples extra goes. The version is now jsonrpcserver.__version__, set to 5.0.10, and a test checks it against the installed metadata. .github/workflows/release.yml publishes the sdist and the wheel to PyPI with Trusted Publishing when a v* tag is pushed, through the pypi environment. RELEASING.md has the PyPI publisher settings and the steps.
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.
Findings F7 (release pipeline) and F8 (packaging) in the review, and the version bump for 5.0.10.
Metadata.
setup.pyandMANIFEST.inare replaced bypyproject.tomlwith flit, the same setup as jsonrpcclient.requires-python = ">=3.8", which is the oldest version CI tests. Classifiers list 3.8 to 3.14, free-threading andTyping :: Typed. The license is the SPDX expressionMIT.jsonschema<5,oslash<1), so upgrading never pulls in a different version of either.testextra now haspytest-asyncioandhypothesis. Withoutpytest-asyncio, 40 tests failed. Theexamplesextra is removed, since its examples live in the docs with their own requirements file.jsonrpcserver.__version__ = "5.0.10". Flit reads the version from there, andtests/test_version.pychecks it against the installed metadata.Release workflow.
.github/workflows/release.ymlruns onv*tags. It checks the tag against__version__and that CHANGELOG has an entry. It builds the sdist and wheel, runstwine check,check-wheel-contentsand the metadata check, and attests provenance. Then it publishes with Trusted Publishing through thepypienvironment and creates the GitHub release from the CHANGELOG section. Actions are pinned by SHA, as in CI. I created thepypienvironment, limited tov*tags.RELEASING.mdlists the exact publisher settings to add on PyPI.Changelog. A short intro for 5.0.10 and a Packaging section. Old PR links point at bensynapse/jsonrpcserver.
Checked locally:
twine check --strict,check-wheel-contentsandcheck_metadata.pypass, and the metadata above is what the wheel shows.[test]on 3.8 and on free-threaded 3.14, and ran its own tests: 226 passed with full coverage on each.v5.0.10.No tag is pushed and nothing goes to PyPI from this PR.