Skip to content

Fix external-module regression and automate release version references - #58

Merged
helly25 merged 4 commits into
mainfrom
fix/external-tools-test
Oct 17, 2026
Merged

helly25 merged 4 commits into
mainfrom
fix/external-tools-test

Conversation

@helly25

@helly25 helly25 commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Fix the tools test when bashtest is built as an external module, as BCR does, and exercise the framework suite from an external consumer in CI. Derive consumer versions from the checkout and automate the README version update during release preparation, keeping the installation example on the published release during development.

AG;DR

  • Bring the test-only correction from mboworks_bashtest@0.7.0 bazelbuild/bazel-central-registry#11164 into upstream source. Compare $(location) against Bazel's $(rootpath) instead of a hardcoded root-workspace path, preserving the existing contract. No runtime API or published 0.7.0 artifact changes.
  • Extend external_consumer_test.sh to run @framework//bashtest/tests/... alongside the sample consumer with manifest-only runfiles. Existing CI invokes this script on Linux, macOS, and Windows, using a renamed repository and a workspace path containing spaces.
  • Advance MODULE.bazel and CHANGELOG.md to development version 0.7.1. Both external consumer scripts derive their dependency version from MODULE.bazel because their local overrides consume this checkout. Correct the stale README example to published version 0.7.0.
  • Add python3 tools/prepare_release.py X.Y.Z: validate the module/changelog and update the README to the intended release. Review and merge that preparation before tagging. The tag helper, including dry runs, and the archive workflow both require --check to pass. This preserves agreement in the tagged source, archive, and release notes without mutating published artifacts. Preparation does not commit, tag, or publish.
  • The pre-commit version gate permits the latest numeric release tag in README during development, or the module version during release preparation. Thus the example briefly names the upcoming version in the release-preparation commit. Without local tags the checker can validate only the README format and upper bound; CI fetches all tags. Historical changelog entries remain unchanged, and release assets/BCR templates derive their versions from the release tag.
  • Regression tests cover version mismatches, missing/ambiguous examples, invalid versions, numeric tag ordering, release-to-development transitions, preparation idempotence and rejection without writes, and actual archive generation: stale README fails before an archive exists; prepared README, module, VERSION, and notes all agree.
  • Validation for 539ac74: all 44 Python tests, both external consumer scripts, bazel test //... (8 applicable tests; Windows runtime test incompatible on macOS), and pre-commit run --all-files passed. All PR CI checks passed on this head: Linux, macOS, Windows, pre-commit, release-site tests, and the final gate (run 39070227451).
  • Earlier regression evidence: the extended consumer script failed on the original assertion, then passed after the correction. Previous head a311b58 passed all CI jobs, including Windows. An earlier attempt on 4e7d226 reported a missing runtime_test.exe from a cached Windows build; the retry and subsequent head passed. Its cause remains unproven; no cache or validation gates were weakened.
  • Targets main with no unmerged PR dependency or required merge order. The same source correction passed all 18 BCR platform/Bazel combinations as a registry patch. This PR does not publish a release.

@helly25
helly25 requested a review from Fab-Cat as a code owner October 17, 2026 21:01
@helly25 helly25 changed the title Fix external-module tools test and cover it in CI Fix external-module regression and enforce development version consistency Oct 17, 2026
@helly25 helly25 changed the title Fix external-module regression and enforce development version consistency Fix external-module regression and automate release version references Oct 17, 2026
@helly25
helly25 merged commit 215b169 into main Oct 17, 2026
6 checks passed
@helly25
helly25 deleted the fix/external-tools-test branch October 17, 2026 21:19
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