diff --git a/.github/workflows/dprint-update.yml b/.github/workflows/dprint-update.yml index 8a9b283..b335cc8 100644 --- a/.github/workflows/dprint-update.yml +++ b/.github/workflows/dprint-update.yml @@ -5,7 +5,10 @@ # # Implementation: # - Mondays 09:00 UTC, run `npx dprint config update -y` which bumps -# every plugin in dprint.json to its latest version. +# every plugin in dprint.json to its newest version that is at least 7 +# days old. dprint reads `min-release-age=7` from `.npmrc`, the same +# cooldown npm installs follow, so a bump can stop short of the latest +# release or skip a plugin; the step's log names each one held back (#958). # - Apply any formatting changes from new plugin rules via `npx dprint fmt`. # - If anything changed, open a PR via peter-evans/create-pull-request. # - If nothing changed, exit clean (no PR, no spam). @@ -52,8 +55,8 @@ jobs: - name: Install dependencies run: npm ci - # Bump every plugin in dprint.json to current latest. - # Output: deterministic diff to dprint.json. -y = non-interactive. + # Bump every plugin in dprint.json to its newest version older than + # the 7-day cooldown in `.npmrc`. -y = non-interactive. - name: Bump dprint plugins run: npx dprint config update -y @@ -70,7 +73,7 @@ jobs: run: | if [ -z "$(git status --porcelain)" ]; then echo "changed=false" >> "$GITHUB_OUTPUT" - echo "Every dprint plugin is already at its latest version." + echo "No dprint plugin has a newer version that is past the 7-day cooldown." else echo "changed=true" >> "$GITHUB_OUTPUT" echo "Files changed:" @@ -111,6 +114,11 @@ jobs: See #236 for the rationale and the schedule. + Each plugin moves to its newest version that is at least 7 days + old (`min-release-age` in `.npmrc`), so a plugin may stop short + of its latest release or not move at all. The rest follow in a + later run. + Auto-generated by `.github/workflows/dprint-update.yml`. **No checks will appear on this PR.** GitHub does not run diff --git a/CLAUDE.md b/CLAUDE.md index d292be7..1bb2e8a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,6 +14,10 @@ without asking again. - **"Release" means ship it, end to end.** Use the `release` skill. Don't stop to ask which version or whether to go ahead. +- **Merge your own PRs into `dev`.** Once a PR you opened is green and + mergeable, squash-merge it without asking. The release PR from `dev` into + `main` is different: you merge it too, but only after the maintainer has + approved that release. Approval covers one release, not the next. - **Write lasting instructions down.** When the maintainer sets a rule for how to work, add it to `AGENTS.md` (any agent) or this file (Claude only) in the same session. Put a procedure in a skill instead. diff --git a/docs/RELEASING.md b/docs/RELEASING.md index bbad701..6df0896 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -71,8 +71,11 @@ These are settings, not files, so a PR cannot make them: merges (for everything into `dev`). - **Actions may create pull requests** (Settings → Actions → General). The dprint bump already needs this. -- **If `main` has a branch ruleset, let GitHub Actions bypass it.** The bump - commit and the tag are pushed to `main` with `GITHUB_TOKEN`. +- **Let GitHub Actions bypass any ruleset or branch protection on `main` and + `dev`, and any tag protection matching `v*`.** `auto-release.yml` pushes + with `GITHUB_TOKEN`: the `bump` job pushes the bump commit and the `vX.Y.Z` + tag to `main`, and the `sync-dev` job pushes the merge of `main` back into + `dev`. Without a bypass, that job fails at its push. ### Pushes made with `GITHUB_TOKEN` start no workflows