Skip to content

release: bump to 1.5.0b1, the wave-1 beta - #488

Merged
JarryShaw merged 4 commits into
mainfrom
release-1.5.0b1
Sep 18, 2026
Merged

JarryShaw merged 4 commits into
mainfrom
release-1.5.0b1

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

Bumps pcapkit.__version__ from 1.5.0a1 to 1.5.0b1, per the two-step release plan recorded in docs/source/pep.rst: a beta once wave 1's issues are closed, the official 1.5.0 after the post-wave-1 consistency sweep.

Wave 1 is closed. Twelve PRs merged, ten issues closed:

PR closes
#470 #465
#475 #472
#468 #467
#457 #445
#479 #473
#480 #476
#481 #469
#482 #477
#484 #483
#478 #443
#485, #486 coverage, no issue

main is at 36231cab4 with zero open PRs. One issue remains open — #487, the IPv6_Route Source-Route round-trip defect — which is deliberately not a wave-1 blocker and does not gate this beta.

Merging this publishes. Here is exactly what happens.

This is the whole of the release mechanism, so it is worth being precise rather than leaving it to be rediscovered. .github/workflows/create-release.yml is version-driven, not tag-driven, and it is reached by a chain from an ordinary push:

push to main  ->  "Vendor Update" (cron-vendor.yml, triggers on push to main)
              ->  "Create Release" (workflow_run on Vendor Update completing)

Create Release's version_check job reads pcapkit.__version__ directly, derives PCAPKIT_PRERELEASE from packaging.version.Version(...).is_prerelease, picks the Anaconda label from the same test, and checks whether the tag v<version> already exists. Every publishing job — github, tag, pypi, conda — is gated on startsWith(github.ref_name, 'v') || PCAPKIT_TAG_EXISTS == 'false'.

That gate is why nothing has been published today despite Create Release having run on every single push to main: v1.5.0a1 is already tagged, so PCAPKIT_TAG_EXISTS is true and all four jobs skip. Verified against the actual run history rather than inferred from the YAML.

So merging this one-line change arms and fires the release, because v1.5.0b1 does not exist. Measured for this exact version string:

value
Version('1.5.0b1').is_prerelease True
GitHub release marked prerelease
Anaconda label dev
tag created v1.5.0b1
PyPI published — installable only with pip install --pre

The consequential flip to a full release and the main Anaconda label comes later, at 1.5.0, not here.

Why a beta rather than going straight to 1.5.0

The post-wave-1 consistency sweep has not run, and its entire purpose is to find what one-at-a-time defect work does not — prose against code, missing tests, unaligned changes, and packet formats against their specifications. Shipping a final release before it has run would be shipping ahead of the evidence.

Today already produced two demonstrations of that: #485's ipv6-route test exists because #480's fix shipped with no test of its own, and #487 was found only because someone went looking sideways while writing that test.

Verification

Version string only — one line, no logic:

 pcapkit/__init__.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Confirmed the package reports it, with pcapkit.__file__ asserted against this tree before import:

__version__=1.5.0b1  is_prerelease=True  conda=dev  tag=v1.5.0b1

It is deliberately its own commit, touching nothing else, so that the release trigger is never buried inside an unrelated change.

Wave 1 is closed -- twelve PRs merged and ten issues closed (#465, #472,
#467, #445, #473, #476, #469, #477, #483, #443) -- so the two-step release
plan in docs/source/pep.rst calls for a beta here, with the official 1.5.0
after the post-wave-1 consistency sweep.

Version string only, and deliberately its own commit, because it IS the
release trigger and should never be buried in an unrelated change.

create-release.yml is version-driven rather than tag-driven, reached from an
ordinary push: a push to main runs Vendor Update, whose completion runs
Create Release, which reads pcapkit.__version__ and publishes only when the
tag v<version> does not yet exist. That gate is why nothing published today
despite Create Release running on every push -- v1.5.0a1 is already tagged.
v1.5.0b1 is not, so this commit publishes.

Measured for this version: is_prerelease=True, so the GitHub release is
marked prerelease and the Anaconda label stays dev; PyPI gets it but only
`pip install --pre` resolves it. The consequential flip to a full release
and the main conda label comes at 1.5.0, not here.

#487 remains open and is deliberately not a wave-1 blocker.
The sibling commit moves pcapkit.__version__ to 1.5.0b1, which made two
statements in the release plan stale: the prose asserting the version "is
already 1.5.0a1", and the table row labelling 1.5.0a1 as current. Step 1
is now marked done, with the two things the sweep has already turned up
named rather than left abstract.

Also records how create-release.yml is actually reached, which reading its
`on:` block alone gets wrong -- it lists only a v* tag push and a
workflow_run, which reads as "an ordinary commit cannot trigger this". The
real chain is that a push to main runs Vendor Update, whose completion runs
Create Release, and every publishing job is gated on the tag for the
current version not already existing. That gate is why ordinary commits do
not publish even though the workflow runs on all of them, and why changing
the version string is what arms it.

I had this wrong out loud today -- read the trigger list, concluded the
version string was not the release button after all, and had to retract
that after checking the run history. Writing the chain down so the next
reader does not repeat it.

Docs only.
@JarryShaw
JarryShaw merged commit 832e4bb into main Sep 18, 2026
23 checks passed
@JarryShaw
JarryShaw deleted the release-1.5.0b1 branch September 18, 2026 23:47
@JarryShaw JarryShaw added ci Pull requests that change CI or workflow configuration (ci: subject prefix) release Version bumps and distribution rollups (release: subject prefix) and removed ci Pull requests that change CI or workflow configuration (ci: subject prefix) labels Sep 22, 2026
@JarryShaw JarryShaw added this to the 1.5 milestone Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release Version bumps and distribution rollups (release: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant