Skip to content

Latest commit

 

History

History
54 lines (42 loc) · 2.41 KB

development.md

File metadata and controls

54 lines (42 loc) · 2.41 KB

Development and releases

Install Bazelisk, Node.js 24+, and pnpm version pinned in package.json (Corepack can select it automatically).

pnpm install --frozen-lockfile
pnpm hooks:install
pnpm build
pnpm test
pnpm test:bcr

Corresponding Bazel commands bazelisk build //... and bazelisk test //.... Run bazelisk test //... inside bcr_test/ to test module as dependency. Buildkite runs Bazel 9.2.0/8.6.0 module/BCR and host-browser checks on Linux/macOS, plus worker artifact smoke on macOS/Windows. GitHub Actions retains Linux namespace checks; KVM VRT also stays on GitHub Actions. Local overrides belong in .bazelrc.user.

Lefthook validates Conventional Commit messages, for example feat: add browser test rule or fix: resolve test runfiles. CI also validates pull request titles and commits. Use conventional title for squash merges so Release Please can determine next version.

Release automation

Release Please maintains PR updating version.txt, CHANGELOG.md, and .release-please-manifest.json. Merging it creates version tag. Module release workflow builds attested archive, publishes it to GitHub Releases, and submits BCR update. See workflow and BCR configuration for publishing destinations.

MODULE.bazel uses development version 0.0.0; Release Please tracks the release in version.txt. Archive rules_web_e2e-vX.Y.Z.tar.gz has prefix rules_web_e2e-X.Y.Z. Publishing waits for successful main-only Buildkite status on the exact tag commit; see release gate.

Maintainers configure these Actions secrets with access to this repository:

  • GH_RELEASE_TOKEN: PAT with repository access and Contents, Pull requests, and Issues write permissions. PAT lets generated tags trigger downstream workflows.
  • BCR_PUBLISH_TOKEN: token for configured registry fork and publish-to-bcr integration.

Prepare archive locally for existing tag:

.github/workflows/release_prep.sh v0.1.0 > release_notes.txt

module-release workflow accepts existing tag through manual dispatch for retries. Running local preparation script does not publish release.