Repository navigation
Feat: Prepare the first PyPI release, 0.1.0a1, published by tag through trusted publishing - #63
Merged
Merged
Conversation
…gh trusted publishing The maintainer's decision (2026-10-03): start publishing pythonx-compose. - .github/workflows/publish-pypi.yml runs on a pushed v* tag. A tag push is reproducible from git alone and is the very step the maintainer approves; a GitHub Release would add a manual UI step without adding a check. The build job checks the tag equals v + pyproject's version (.github/scripts/check_release_version.py), builds the sdist and wheel, runs twine check, installs the wheel in a fresh venv and imports pythonx.compose (lazily, no binder needed) and its manifest. The publish job uses pypa/gh-action-pypi-publish through trusted publishing in the `pypi` environment (id-token: write, no token). That environment exists on GitHub and admits v* tags only. - tests.yml is renamed test.yml, the name shared across the repositories. - pyproject: version 0.1.0a1, a description, README as markdown, SPDX license MIT with LICENSE as license file (setuptools >= 77), authors as LICENSE names them (no email addresses), keywords, classifiers, project URLs; the commented-out template block is gone. - README and README_ko link absolutely (GitHub and the Pages site), because relative links break on pypi.org; blob/main and the Pages links resolve once main catches up with develop. - AGENTS.md section 15 says how a release happens: the maintainer approves, a v<version> tag is pushed, CI publishes; never upload by hand. Drafted by a subagent in a worktree; reviewed here, baselines re-measured. feature added: the publish workflow and version check. test added: tests/test_release_version.py (6); red 5 failed, 1 passed. Local build: no warnings; twine check passes for both artefacts; the wheel holds pythonx/compose/** with stubs, py.typed and the manifest, and no pythonx/_build, tests, docs or .github; the fresh-venv smoke passes; the version check passes for v0.1.0a1 and fails for v0.1.0. documentation corrected: SPEC S1.1, AGENTS.md 14/15, PROJECT.md, guide install lines (pip install --pre pythonx-compose), README and README_ko. Suite (worktree, stubs zip): with python-multiplatform 26485a02, 244 passed, 1 skipped -> 250 passed, 1 skipped; without a checkout, 133 passed, 112 skipped -> 139 passed, 112 skipped. check_guide: 0 findings. Nothing is uploaded: the tag waits for the maintainer. Refs #62
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.
Closes #62
publish-pypi.ymlruns on av*tag push. A tag is reproducible from git and is exactly the step the maintainer approves; a GitHub Release would add a manual step without adding a check. The workflow:v+ the pyproject version;twine check;pythonx.compose;pypienvironment, with no token. That environment exists and admitsv*tags only.tests.yml→test.yml, the shared cross-repo name.0.1.0a1, plus description, markdown README, SPDXMIT, authors as LICENSE names them (no emails), classifiers and URLs.Test added: version check (6); red: 5 failed.
Local build: no warnings;
twine checkpasses; the wheel contents are as intended; the smoke install passes.Nothing is uploaded. Still needed:
publish-pypi.yml/pypi);v0.1.0a1tag is pushed after approval.Drafted by a subagent; reviewed here.