Skip to content

Fix pre-release badges (#83) and develop ruleset auto-merge stall (#82) - #84

Merged
ptr727 merged 1 commit into
developfrom
fix-issues-82-83-pre-release-badges-and-develop-ruleset
May 13, 2026
Merged

Fix pre-release badges (#83) and develop ruleset auto-merge stall (#82)#84
ptr727 merged 1 commit into
developfrom
fix-issues-82-83-pre-release-badges-and-develop-ruleset

Conversation

@ptr727

Copy link
Copy Markdown
Owner

Summary

  • ClosesDevelop ruleset strict "branches up to date" flag stalls bot auto-merge when sibling PR lands mid-CI #82 — drop strict "Require branches to be up to date before merging" from the develop ruleset (already flipped on the live repo, id 15886282). With strict on, two bot PRs against develop landing within the same window left the second OPEN forever: the first merge flipped it to mergeStateStatus: BEHIND, GitHub's auto-merge will not fire while strict is on, and the merge-bot only enables auto-merge on opened/reopened (never auto-updates bot branches). Squash mechanics, linear history, textual-conflict detection, and the required Check pull request workflow status still gate merges.
  • ClosesREADME pre-release badges (GitHub + NuGet) show latest stable instead of latest pre-release #83 — fix the GitHub Pre-Release shield with &filter=*-g* (NBGV pre-release tags carry a -g<sha> suffix, stable tags don't); drop the NuGet Pre-Release badge because shields.io's vpre endpoint accepts no filter parameter and silently returns the latest stable whenever one exists (the steady state after every release).
  • AGENTS.md "Branching Model" + README.md "Rules / Rulesets" updated in lockstep with the ruleset flip; both rulesets now omit the strict flag for related-but-distinct reasons (documented inline).

Test plan

  • Visual: rendered README badge row shows three pre-release-aware badges (GitHub Release, GitHub Pre-Release, NuGet Release) plus Docker Latest/Develop and PyPI Release — NuGet Pre-Release is gone.
  • Shield URL spot-check against a downstream consumer with current pre-releases: https://img.shields.io/github/v/release/ptr727/LanguageTags?include_prereleases&filter=*-g* renders an NBGV pre-release tag (e.g. 1.2.40-g0f69a1b0a0), not the latest stable.
  • gh api repos/ptr727/ProjectTemplate/rulesets/15886282 | jq '.rules[] | select(.type=="required_status_checks")' shows strict_required_status_checks_policy: false — already verified.
  • Next pair of overlapping Dependabot/codegen PRs against develop both auto-merge without one stalling in BEHIND.

Issue #82: Drop "Require branches to be up to date before merging" from
develop ruleset. With strict on, two bot PRs against develop landing in
the same window leave the second OPEN with all checks green — GitHub's
auto-merge will not fire while strict is on, and the merge-bot only
enables auto-merge on opened/reopened. Squash mechanics, linear history,
textual-conflict detection, and the required status check still gate
merges. Ruleset already flipped on the live repo (id 15886282).
Issue #83: README's GitHub Pre-Release shield now uses filter=*-g* to
select the latest NBGV pre-release tag (which carries the -g<sha>
suffix) instead of the latest release. The NuGet Pre-Release badge is
dropped — shields.io's vpre endpoint accepts no filter parameter and
silently returns the latest stable whenever one exists, which is the
steady state after every release.
CopilotAI review requested due to automatic review settings May 13, 2026 19:49

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates repository documentation and README badges to reflect the current branch ruleset behavior and correct pre-release badge semantics.

Changes:

  • Removes the NuGet pre-release badge and fixes the GitHub pre-release shield filter.
  • Documents why both develop and main rulesets omit the “Require branches to be up to date before merging” setting.
  • Keeps README and AGENTS branching/ruleset guidance aligned.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

FileDescription
README.mdUpdates badge list/link definitions and documents the revised ruleset configuration.
AGENTS.mdUpdates the authoritative branching model guidance for strict status check behavior on both branches.

@ptr727
ptr727 merged commit a03ad12 into developMay 13, 2026
26 checks passed
@ptr727
ptr727 deleted the fix-issues-82-83-pre-release-badges-and-develop-ruleset branch May 13, 2026 20:01
@ptr727
ptr727 restored the fix-issues-82-83-pre-release-badges-and-develop-ruleset branch May 13, 2026 20:03
@ptr727
ptr727 deleted the fix-issues-82-83-pre-release-badges-and-develop-ruleset branch July 7, 2026 21:05
ptr727 added a commit that referenced this pull request Aug 28, 2026
## Summary
`catalog/snippets/configs/dependabot.yml`'s reference config grouped
every package in an
ecosystem into one catch-all PR (`patterns: ["*"]`), with no exclusion
for the fleet's own
lint/format toolchain packages. A formatter or linter version bump can
change its own output
or rule set and start flagging previously-compliant code the bump never
touched, so bundling it
into the catch-all group means one tool's self-bump can block an
arbitrary number of unrelated,
otherwise-mergeable dependency bumps together, indefinitely, with no
obvious signal why.
## Evidence
Investigated live via `#1055` ("Dependabot PRs
stuck BLOCKED despite
auto-merge enabled and all checks green"). That issue's premise doesn't
hold — every affected
PR checked has a real, currently-failing required check, so
`mergeStateStatus: BLOCKED` is
GitHub behaving correctly. One of the confirmed root causes is this hub
template gap:
- `ptr727/PhotoCleaner#81`-`#84`: a 13-update `nuget-deps` group bump
included `csharpier`
1.2.6 -> 1.3.0. The new csharpier version reformats raw string literals
differently, so
`dotnet csharpier check .` now flags pre-existing, previously-compliant
code
(`PhotoCleaner/Database.cs`) that the bump never touched — holding the
other 12 unrelated,
harmless updates in the same PR hostage.
Full findings (this repo and two others) posted as a comment on #1055.
## Change
Add `exclude-patterns` to the `nuget-deps` and `pypi-deps` groups,
naming the fleet-standard
toolchain package names per `.agents/skills/dotnet-codestyle/SKILL.md`
and
`.agents/skills/python-codestyle/SKILL.md`:
- `nuget-deps`: `csharpier`, `husky`, `dotnet-outdated-tool`
- `pypi-deps`: `ruff`, `pyright`, `mypy`
Each excluded package falls out of the catch-all group and gets its own
individual PR instead,
diagnosable and mergeable (or holdable) on its own.
`actions-deps` is left unchanged — the third repo in #1055's report
(ESPHome-Config) hit a
different, already-tracked cause (`docs/eol-lf-rollout.md`), not a
grouping/hostage problem.
## Verification
- `python3 -c "import yaml;
yaml.safe_load(open('catalog/snippets/configs/dependabot.yml'))"` —
valid YAML.
- `scripts/prose_lint.py` and `scripts/repo_gate.py` — both clean.
- Pre-commit hooks ran clean on commit.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Documentation**
* Documented dependency update exclusions for .NET and Python tooling.
* Clarified which development tools are excluded from automated update
groups across main and develop branches.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for freeto 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.

2 participants

@ptr727