Skip to content

Feat: Prepare the first PyPI release, 0.1.0a1, published by tag through trusted publishing - #63

Merged
b-re-w merged 1 commit into
developfrom
feat/first-release
Oct 3, 2026
Merged

b-re-w merged 1 commit into
developfrom
feat/first-release

Conversation

@b-re-w

@b-re-w b-re-w commented Oct 3, 2026

Copy link
Copy Markdown
Member

Closes #62

  • publish-pypi.yml runs on a v* 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:
    • checks the tag equals v + the pyproject version;
    • builds the sdist and wheel and runs twine check;
    • installs the wheel in a fresh venv and imports pythonx.compose;
    • publishes via trusted publishing in the pypi environment, with no token. That environment exists and admits v* tags only.
  • tests.yml → test.yml, the shared cross-repo name.
  • pyproject: version 0.1.0a1, plus description, markdown README, SPDX MIT, authors as LICENSE names them (no emails), classifiers and URLs.
  • README / README_ko: links are now absolute so they work on pypi.org.
  • AGENTS.md §15: how a release happens.

Test added: version check (6); red: 5 failed.
Local build: no warnings; twine check passes; the wheel contents are as intended; the smoke install passes.

Environment (worktree, stubs zip) Before After
python-multiplatform 26485a02 244 passed, 1 skipped 250 passed, 1 skipped
no checkout 133 passed, 112 skipped 139 passed, 112 skipped

Nothing is uploaded. Still needed:

  • the maintainer registers the PyPI pending publisher (thisisthepy / pythonx-compose / publish-pypi.yml / pypi);
  • the v0.1.0a1 tag is pushed after approval.

Drafted by a subagent; reviewed here.

…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
@b-re-w
b-re-w merged commit 4ecdef1 into develop Oct 3, 2026
6 checks passed
@b-re-w
b-re-w deleted the feat/first-release branch October 3, 2026 11:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant