Repository navigation
ci: keep the documentation site out of the release notes too - #747
Merged
Merged
Conversation
deploy-docs.yml publishes docs/ the moment a change to it reaches main, so by the time a release is tagged that change has been live for days. A release does not deliver it, and should not claim it -- the same reason .tf/ is excluded, and the type a commit carries stops mattering either way. Nothing moves in the pending release: of the fourteen commits under docs/ since 1.0.0, thirteen are docs and one build(deps), all of them already hidden and none of them bumping. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn
lens0021
enabled auto-merge (squash)
September 10, 2026 22:39
lens0021
added a commit
that referenced
this pull request
Sep 10, 2026
There already is a check for this. `semantic-pull-request.yml` carries a second job that refuses `feat:` and `fix:` on a pull request touching nothing but documentation, for exactly the reason #744 turned out to matter: the title becomes the squash commit's subject, and release-please reads it. #744 went through it twice over. **Its list was too narrow.** It read `docs/`, `*.md` and `LICENSE`. A ruleset under `.tf/` is none of those, so the job said the change was wikven's own and let `feat:` stand. Widened here to everything that is the repository rather than the program — the two above plus `.tf/` and `.github/`. **It could not have blocked anything anyway.** The job is not in the required checks, so a red result leaves the pull request mergeable, and auto-merge would have merged it regardless. Added to the list in `.tf/ruleset.tf`. Renamed `docs-only` → `repository-only`, since it no longer reads only documentation, and the required check has to name it. #746 and #747 gave release-please `exclude-paths` for `.tf` and `docs`. That is a net under the mistake: the commit is dropped silently, and nobody learns anything. This is where it gets caught and said out loud, which is also why the check's list is wider than `exclude-paths` — the latter can only name directories, so `*.md` and `LICENSE` cannot appear in it. ## Exercised The job's own script, lifted out of the workflow with `gh api` stubbed, against ten pull requests: | title | files | result | | --- | --- | --- | | `feat: …` | `.tf/ruleset.tf` | refused | | `feat: …` | `.github/workflows/a.yml` | refused | | `feat: …` | `docs/a.wikitext`, `README.md` | refused | | `feat: …` | `LICENSE` | refused | | `fix(build): …` | `.tf/ruleset.tf` | refused | | `feat!: …` | `.tf/ruleset.tf` | refused | | `feat: …` | `includes/A.php` | allowed | | `feat: …` | `docs/a.wikitext`, `includes/A.php` | allowed | | `docs: …` | `.tf/ruleset.tf` | allowed | | `ci: …` | `.tf/ruleset.tf` | allowed | Run locally, and it has to be: the workflow triggers on `pull_request_target`, which runs the version on the base branch. The check reporting on this pull request is `docs-only` from `main` — the widened job first runs on whatever comes after this. The same goes for the required-check entry, which needs a `tofu apply`; until then `repository-only` reports without blocking. Two consequences of that worth knowing about. Between merging and applying, `docs-only` no longer exists while nothing requires `repository-only`, so for that window neither name blocks. And this pull request cannot check its own title — it touches only `.github/` and `.tf/`, so `ci:` is what the new rule would allow, but the rule is not the one that ran. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn Co-authored-by: Claude <noreply@anthropic.com>
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.
.tf/was excluded in #746 because a release does not deliver it.docs/is the same case for a different reason:deploy-docs.ymlpublishes it the moment a change reachesmain, so by the time a version is tagged that change has been live on the site for days. A release has nothing to claim there, whatever type the commit carries.Nothing moves
Of the commits since 1.0.0 that touch
docs/and nothing else, thirteen aredocs:and one isbuild(deps). Both are already hidden and neither bumps, so the pending 1.1.0 reads exactly as it does now. This only closes the gap a mislabelled commit would go through — which is the gap #744 went through.🤖 Generated with Claude Code
https://claude.ai/code/session_019ghEx26MRm9V5CnCLrdUQn
Generated by Claude Code