Repository navigation
ci: release from main and prepare 0.2.0 - #8
Merged
Merged
Conversation
|
PyPI only has 0.1.1, cut from release/0.1.x on 2026-05-02. That branch holds only test-release commits, so 0.1.1 predates everything merged to main since (#1's new service configs, TLS/storage, the dedicated network fix). semantic-release only ran on release/* branches and could never ship main. - semantic-release runs on pushes to main and releases from main, with a concurrency group so overlapping runs queue - scripts/set_version.py bumps pyproject.toml and the project entry in uv.lock together, validating both before writing either; CI installs with uv sync --locked, so a release that bumped only pyproject.toml would break main's CI. uv.lock is now a release asset - publish.yml gains a workflow_dispatch to re-publish an existing release tag with the current workflow; the input is resolved strictly under refs/tags/, and a testpypi input covers pre-release retries - pyproject.toml and uv.lock are set to 0.2.0, with a CHANGELOG entry The 0.1.x tags are not on main, and #1's subject is not a Conventional Commit, so semantic-release finds nothing to release here; 0.2.0 is tagged and released once, by hand, on this merge, and later releases continue from it. Signed-off-by: Hector Ventura <hectorvent@gmail.com>
hectorvent
force-pushed
the
ci/release-from-main
branch
from
October 7, 2026 13:02
efdadc4 to
66cb9cd
Compare
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.
What
.releaserc.json/semver.yml: semantic-release runs on pushes tomain(wasrelease/*branches), with aconcurrencygroup so runs from merges close together queue instead of racing on the release commit and tag.scripts/set_version.py(semantic-release's prepare step): bumps the version inpyproject.tomland the project entry inuv.lock, anduv.lockis now a release asset. CI installs withuv sync --locked, so a release that bumped onlypyproject.toml(the old inlineprepareCmd) would leavemain's CI red after every release.publish.yml: aworkflow_dispatchwith ataginput; the checkout builds that tag. This publishes an existing release tag with the current workflow, the same safety net the Node module needed today.pyproject.tomlanduv.lockset to 0.2.0, plus a newCHANGELOG.mdwith the 0.2.0 entry.main.Why
PyPI has only
0.1.1, cut fromrelease/0.1.xon 2026-05-02. That branch holds only test-release commits (fix: initial release,fix: second release - testand theirchore(release)commits), so 0.1.1 is essentially the first commit. Everything merged tomainsince has never shipped, notably #1 (new service configs, TLS/storage,with_log_level, the dedicated-network fix).semantic-release only ran on
release/*branches, so it could never shipmain.Why 0.2.0 is cut by hand once
0.1.xtags are not inmain's history, so semantic-release onmainhas no previous release to build on.main: "No git tag version found on branch main … Analysis of 8 commits complete: no release". So merging this publishes nothing.After merge:
0.2.0on the merge commit and create the GitHub release0.2.0.publish.yml, which publishestestcontainers-floci==0.2.0to PyPI through the trusted publisher that already published 0.1.1.feat:/fix:merges release automatically from0.2.0.release/0.1.xand its tags are left as they are; retiring the branch is a separate call.Area
Release workflows, version metadata, changelog, CONTRIBUTING. No library code changes.
Tests
ruff check .,ruff format --check .anduv lock --checkpass.scripts/set_version.pyupdates bothpyproject.tomlanduv.lock(checked on a copy).mainwith this config: no release.