Conversation
Previously the release pipeline only fired when a developer manually bumped `pyproject.toml`'s `version` line in a PR. Most main pushes therefore shipped nothing, which was confusing. New behaviour: every push to `main` that passes CI auto-bumps the patch component (0.1.0 -> 0.1.1 -> 0.1.2 ...). The bump-version job reads the current X.Y.Z from pyproject.toml, increments Z, commits the change back to main as `chore: bump version to X.Y.Z` using the workflow GITHUB_TOKEN, then hands the new SHA off to publish-pypi / build-nuitka / etc. Loop prevention: GitHub's rule that GITHUB_TOKEN-driven pushes can't trigger new workflow runs means the bump commit won't re-fire CI. As belt-and-suspenders the gate also skips when the previous commit message already starts with `chore: bump version to`. Escape hatch: a commit message containing `[skip release]` opts out of bumping and publishing for that push - useful for docs-only / typo commits that shouldn't burn a version number. README's 'Continuous integration & releases' section is rewritten to describe the new flow, including the requirement to grant Actions read+write permissions so it can push the bump commit.
2 tasks
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.
Summary
Three independent changes in this PR:
1. Auto-bump patch version on every CI-success push to main
pyproject.toml'sversion. Most merges shipped nothing.mainauto-bumps the patch component (0.1.0→0.1.1→ …) and publishes to PyPI + GitHub Releases.GITHUB_TOKEN-pushes don't trigger workflows; thebump-versionjob also skips when the previous commit was alreadychore: bump version to.[skip release]anywhere in a commit message and bump + publish are gated off.2. Limit Nuitka release builds to Windows
release.ymlrunswindows-latestonly and attachesautopapertoppt-windows-x86_64.exe+.sha256to the GitHub Release.3. PySide6 desktop GUI behind the
[gui]extraos.environ), Enrich (placeholder for next iteration), Deck (placeholder for next iteration).autopapertoppt-gui(PyPI console script),autopapertoppt gui(CLI subcommand), or the Windows release.exewhich now bundles PySide6.shutdown_clients()now toleratesRuntimeError: Event loop is closedwhen an httpx client outlives its asyncio loop (the test suite spins a new loop perasyncio.run).Repo settings needed before merge
Settings → Actions → General → Workflow permissions → Read and write permissions(bump commit is pushed viaGITHUB_TOKEN).PYPI_API_TOKENsecret.Test plan
0.1.0→0.1.1, publishes to PyPI, creates draft releaseautopapertoppt-windows-x86_64.exe+.sha256, thenpublish-releaseunmarks the draftautopapertoppt.exe guilaunches the desktop window[skip release]triggers CI but NOT a bump/publish