Skip to content

Dependabot nuget-deps PRs stuck BLOCKED: csharpier self-bump breaks existing formatting #85

Description

@ptr727

Symptom

PRs #81, #82, #83, #84 (the daily nuget-deps group bumps) are stuck mergeStateStatus: BLOCKED
despite auto-merge being enabled, for days. mergeable: MERGEABLE, no review activity, no merge
conflicts — but Validate sources job / Lint sources job and Validate sources job / Unit test job
report FAILURE on all four, and the aggregate Check pull request workflow status job FAILURE is
what actually blocks the merge.

Root cause

The nuget-deps group bundles every NuGet update together (patterns: ["*"]), including
csharpier itself: PR #81 bumps it 1.2.6 -> 1.3.0. The newer csharpier version reformats raw
string literals differently, so dotnet csharpier check . now flags pre-existing,
previously-compliant code (PhotoCleaner/Database.cs) that the dependency bump never touched:

Error ./PhotoCleaner/Database.cs - Was not formatted.
  ----------------------------- Expected: Around Line 148 -----------------------------
                  cmd.CommandText = """
                      INSERT OR IGNORE INTO files (...)
  ----------------------------- Actual: Around Line 148 -----------------------------
                  cmd.CommandText = """
                  INSERT OR IGNORE INTO files (...)

Because csharpier rides along in the same grouped PR as 12 unrelated, harmless updates, its
self-inflicted lint failure blocks all of them together.

How to get unstuck

  1. Reformat once, as its own commit, with the new csharpier version:
    dotnet csharpier format .
    
    Land this on develop (and main, once promoted) as a normal maintainer commit — not through
    one of the stuck PRs.
  2. Close Bump the nuget-deps group with 13 updates #81-build(deps): Bump the actions-deps group with 4 updates #84 once the reformat commit lands. Dependabot's next daily run reopens a fresh
    nuget-deps PR for whatever's still outdated; it will no longer include a csharpier bump (already
    current) and will pass lint (the repo is already reformatted to match it).
  3. Prevent recurrence: adopt ptr727/ProjectTemplate's updated
    catalog/snippets/configs/dependabot.yml
    (from ProjectTemplate#1062) via this
    repo's next fleet resync. It excludes csharpier, husky, and dotnet-outdated-tool from the
    nuget-deps group, so a future toolchain self-bump gets its own individual PR instead of
    blocking the whole group again.

Filed as part of investigating ProjectTemplate#1055.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions