You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two gates now stand between a release commit and its tag, because v0.3.3
was tagged on a red build. scripts/release.sh first installs the package
into an empty virtualenv and runs the suite there, before anything is
committed — a working checkout cannot tell a declared dependency from one
that merely happens to be installed, which is exactly how pyserial went
undeclared. It then pushes the release commit and waits for every workflow
run on that exact SHA to conclude successfully before creating the tag, so a
tag on a red build is structurally impossible rather than merely
discouraged. If CI fails, main is left carrying an untagged commit, which
is an ordinary state to fix forward from. --skip-venv and --skip-ci exist
for emergencies.
Fixed
CI could not collect the acceptance tests. Dropping CI's --ignore=tests/acceptance in 0.3.3 exposed that pyserial was never
declared anywhere: tests/acceptance/helpers.py imports it at module scope,
so collection died with ModuleNotFoundError: No module named 'serial' even
though those tests skip themselves without a --port. It went unnoticed
locally because PlatformIO's environment already provides the module. Now
declared in the dev extra, and verified by running CI's exact command in a
clean virtualenv rather than the working one.