ci: tighten release pipeline + enforce conventional-commit format#57
Open
ci: tighten release pipeline + enforce conventional-commit format#57
Conversation
Three coordinated tightenings for the release pipeline post-3.0: 1. **Disable rs-materials in release-please** until crates.io publish enables (#43). While the publish path is gated behind `CRATES_IO_PUBLISH_ENABLED`, release-please tracking rs-materials produces only false-bump Release PRs (#50, #55) — every push to main re-opens them. Removing the package entry stops the inflation. Re-add when #43 lands, with `bump-minor-pre-major: true` to keep pre-1.0 versioning sane. 2. **Wire commitizen as commit-msg hook.** The .githooks/commit-msg script invoked `pre-commit run --hook-stage commit-msg` but no commit-msg-stage hooks were configured — the standard in docs/COMMIT_MESSAGE_STANDARD.md was documentation-only with zero enforcement. Add commitizen pinned to v4.13.9. Conventional-commit format is now validated at commit time. 3. **Document the scope taxonomy.** Multi-package monorepo benefits from per-package scopes: (py) — py-materials Python package (rs) — rs-materials Rust crate (data) — TOML data shared between py + rs (vis) — vis subsystem (Python, mat-vis-client integration) (deps) — dependency bumps (ci) — CI / release pipeline (docs) — documentation Documented in COMMIT_MESSAGE_STANDARD.md with rationale linking to the cross-cutting-bump issues (#50, #55). Scope membership is social convention; format is enforced by commitizen. Refs: #43
gerchowl
added a commit
that referenced
this pull request
Apr 19, 2026
Pre-existing CI flake on #57 (chore/release-pipeline-tighten): `test_search_and_fetch` + `test_discover_finds_candidates` hit a hard `assert len(results) > 0` that fires when a fresh CI environment has no seeded indexes (or mid-release manifest drift). The existing `_skip_on_upstream_outage` guard wraps `vis.fetch()` calls but not the outer `vis.search()` that returns the empty list. Both tests now skip with a clear message when search comes back empty. The follow-on fetch/PNG assertions stay hard because by that point we know the search actually found something. Other e2e tests already use `if not results: pytest.skip(...)` in this spot; this aligns search_and_fetch + discover_finds_candidates with that pattern. Local: 268 passing. Unblocks #57 and any future PR whose CI hits a transient empty-index return.
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.
Description
Three coordinated tightenings for the release pipeline post-3.0:
Type of Change
Required
If Applicable
Documentation
Additional Notes
What stops on merge:
What starts on merge:
Rs-materials re-enablement plan:
When #43 lands, restore the package entry to `release-please-config.json` with `"bump-minor-pre-major": true` so a future `feat(rs)!:` proposes 0.3.0 not 1.0.0.
Refs: #43