Skip to content

Promote develop to main: template sync (merge-bot pull_request_target fix), nuget bumps#767

Merged
ptr727 merged 4 commits into
mainfrom
develop
Jun 26, 2026
Merged

Promote develop to main: template sync (merge-bot pull_request_target fix), nuget bumps#767
ptr727 merged 4 commits into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Promotes develop to main.

Why now

The ProjectTemplate sync (#764) switched .github/workflows/merge-bot-pull-request.yml from on: pull_request to on: pull_request_target. GitHub sources pull_request_target workflow definitions from the default branch (main), which still carries the old pull_request version — so the new merge-bot never registers for develop-targeted Dependabot PRs and their auto-merge is never enabled (e.g. #765 stuck open while its main counterpart #766 merged).

Landing this on main registers the pull_request_target trigger on the default branch, restoring Dependabot auto-merge on develop. After this merges, the new workflow handles both bases (develop→squash, main→merge per its case statement).

Commits

Notes

dependabot Bot and others added 2 commits June 24, 2026 05:47
Bumps InsaneGenius.Utilities from 3.5.2 to 3.5.6
Bumps Microsoft.NET.Test.Sdk from 18.6.0 to 18.7.0
Bumps ptr727.LanguageTags from 1.3.3 to 1.3.11

---
updated-dependencies:
- dependency-name: InsaneGenius.Utilities
  dependency-version: 3.5.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: ptr727.LanguageTags
  dependency-version: 1.3.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#764)

* Sync from ProjectTemplate: enriched docker-readme, merge gate, LF pins

- publish-docker-readme-task.yml: carry the enriched template task (get-repos
  job, manifest/transform/readme-filepath inputs) and rewire the m4 render onto
  it via transform-run + transform-artifact (versions-main), retiring the
  bespoke inline render. Caller-gate to main in publish-release.yml.
- AGENTS.md: carry PR Review Etiquette verbatim (mandatory callout + Merge Gate);
  add a Template adaptations block.
- CODESTYLE.md: carry the new General governance (commit-gate-is-a-choice;
  brownfield git-signing allowance note).
- .editorconfig / .gitattributes: Dockerfile + .husky/pre-commit LF pins;
  renormalize Docker/Dockerfile to LF.

* Conform to fleet: carry CODESTYLE whole, CRLF workflows, LF README.m4

Supervisor corrections to match the rest of the fleet: carry the genericized
CODESTYLE.md whole (was kept localized); conform workflow YAML to the template's
CRLF (was mixed LF, like KiCad which the maintainer ruled conform); pin and
normalize Docker/README.m4 to LF. Move the .NET/Husky.Net specifics from CODESTYLE
into AGENTS adaptations.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Carry caller-gated build-datebadge; fix SC2086 and drift

PlexCleaner's build-datebadge-task.yml was the old self-gating version (branch
input, unquoted $GITHUB_OUTPUT -> SC2086). Carry the template's caller-gated
version verbatim and rewire the publish-release caller to a single main-gated job
(no branch input), matching the rest of the fleet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Re-carry self-contained CODESTYLE and contract-fixed release/docker-readme tasks

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Grant actions: read on docker-readme caller for transform-artifact

The docker-readme job uses transform-artifact (download-artifact) to fetch the
tool-versions artifact for the m4 render, which needs actions: read - add it so the
job works where default token permissions are restricted.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Re-carry portable CODESTYLE and guarded docker-readme checkout

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Re-carry AGENTS contract sections verbatim from template

* Converge CODESTYLE carry-note to carry-whole (drop 'droppable section' wording)

The template carries CODESTYLE.md whole; unused-language sections stay inert. (issue #208)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Add terminal cleanup-artifacts job to publish-release

Carry the template's best-effort artifact-cleanup job so publish-run artifacts
don't accumulate against the account-wide storage quota. (issue #208)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Converge merge-bot to template shape; fix the AGENTS description

Carry the current template merge-bot (pull_request_target, per-PR concurrency,
cancel-in-progress: false, opened/reopened guard, disable-auto-merge-on-maintainer-push),
pruning merge-codegen/merge-upstream-version (no such mechanisms here). Update the
Branching Model doc: maintainer pushes now DISABLE auto-merge (was: still auto-merge). (issue #208)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ASCII-ify agent-added punctuation (em dashes, arrows, curly quotes)

Replace typographic Unicode introduced in this PR's added lines with the ASCII
forms the template mandates; pre-existing maintainer Unicode is left untouched. (issue #209)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Restore precise .gitattributes EOL header from template

The `* -text` default is what governs git normalization; the
.editorconfig end_of_line rules govern the editor side. Match the
template's header wording so the comment no longer reads as if
.editorconfig enforces git checkout/renormalize EOL.

* Re-fan template doc/pin fixes from convergence re-review

- .gitattributes: header distinguishes editor guidance from git enforcement
- CODESTYLE.md: .NET/Python intros made conditional ("any ... project(s)")
- AGENTS.md: publish step covers opted-in publish-on-merge trigger
- build-datebadge-task.yml: BYOB pinned to v1.3.0 SHA 24f4642

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Refactor tool version logging in workflows; streamline merge bot conditions; update architecture documentation; clarify Docker README tags; add 'unmappable' to workspace settings

Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>

* Update global using statements in GlobalUsings.cs; correct references in documentation

Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>

---------

Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 26, 2026 13:35

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Promotes develop to main to complete the ProjectTemplate sync on the default branch (notably the merge-bot’s pull_request_target change so Dependabot auto-merge on develop works again), alongside routine dependency and doc/convention alignment updates.

Changes:

  • Switch merge-bot to pull_request_target with per-PR concurrency and add the “disable auto-merge on maintainer push” behavior.
  • Update the release pipeline to use the enriched Docker Hub README publishing task, add artifact cleanup, and adjust publisher gating for main-only outputs.
  • Bump central NuGet package versions and align docs/configuration with the template carry model (GlobalUsings aliasing, EOL pins, expanded CODESTYLE/AGENTS/ARCHITECTURE guidance).

Reviewed changes

Copilot reviewed 17 out of 21 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
PlexCleaner/GlobalUsings.cs Adds global type aliases for the current config/sidecar JSON schema versions.
PlexCleaner/ConfigFileJsonSchema.cs Updates guidance comment to reference GlobalUsings.cs.
PlexCleaner.code-workspace Extends workspace spell-check allowlist.
Docker/README.m4 Updates Docker Hub README template content/wording.
Docker/Dockerfile Template carry / formatting-only sync (no functional Docker build logic change apparent in diff).
Directory.Packages.props Bumps central NuGet package versions.
CODESTYLE.md Syncs/expands template code-style guidance (incl. carry-whole model).
ARCHITECTURE.md Updates documentation to match new GlobalUsings naming and workflow/task nuances.
AGENTS.md Carries updated review-loop “merge gate” guidance and template adaptation notes.
.github/workflows/test-pull-request.yml Template-aligned comments/wording while preserving PR validation structure.
.github/workflows/publish-release.yml Enhances publish orchestration (caller-gated main-only jobs, adds artifact cleanup).
.github/workflows/publish-docker-readme-task.yml Replaces with enriched reusable task (repo list derivation + optional transform/artifact).
.github/workflows/merge-bot-pull-request.yml Moves to pull_request_target, per-PR concurrency, and new disable-on-maintainer-push job.
.github/workflows/get-version-task.yml Template formatting/comment sync (no functional change indicated).
.github/workflows/build-toolversions-task.yml Improves tool-version file output formatting for dotnet --info.
.github/workflows/build-release-task.yml Adds expect_release_assets and improves main-release prerelease guard.
.github/workflows/build-executable-task.yml Template formatting/comment sync (no functional change indicated).
.github/workflows/build-datebadge-task.yml Removes internal main-gate (now caller-gated from publisher).
.github/dependabot.yml Formatting-only sync (no config logic change indicated).
.gitattributes Adds explicit LF pins for scripts/Dockerfiles/m4 and documents the policy.
.editorconfig Adds Dockerfile LF rule and documents repo-wide CA relaxations rationale.

env:
REPOSITORIES: ${{ inputs.repositories }}
MANIFEST: ${{ inputs.manifest }}
MANIFEST_JQ: ${{ inputs.manifest-jq }}
Comment on lines +106 to +110
if: ${{ inputs.transform-artifact != '' }}
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ inputs.transform-artifact }}
path: ${{ runner.temp }}/transform
Comment on lines +113 to +117
- name: Generate readme step
if: ${{ inputs.transform-run != '' }}
run: |
set -euo pipefail
${{ inputs.transform-run }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
repository: ${{ matrix.repository }}
short-description: ${{ github.event.repository.description }}
readme-filepath: ${{ inputs.readme-filepath }}
Comment thread CODESTYLE.md
### Tooling Names and Casing

Use each tool's official casing in docs and prose - `.NET`, `CSharpier`, `Husky.Net`. Don't invent personal variants. (Note: this repo's VS Code task labels use `.Net` casing for historical reasons - the labels are referenced verbatim below, but prose should use `.NET`.)
Use each tool's official casing in task labels, docs, and prose - `.NET` (not `.Net`), `CSharpier`, `ruff`, `pyright`, `uv`. Don't invent personal variants.
Comment thread CODESTYLE.md
Comment on lines +51 to +53
1. **The `.NET Format` clean-compile task** (see [Clean-Compile Verification](#clean-compile-verification))
- The .NET clean-compile is the **`.NET Format`** VS Code task, which chains `CSharpier Format` -> `.NET Build` -> `dotnet format style --verify-no-changes`. These three task definitions are carried verbatim in [`.vscode/tasks.json`](./.vscode/tasks.json).
- After any code change it must pass before commit. Run the `.NET Format` task. To run it natively instead, reproduce that task chain from [`.vscode/tasks.json`](./.vscode/tasks.json) exactly - `CSharpier Format`, then `.NET Build`, then the `dotnet format style --verify-no-changes --severity=info ...` verify - without dropping or loosening any argument (tasks.json is the canonical command spec). Bare `dotnet format` alone, skipping CSharpier or the build, is not sufficient.
Comment thread CODESTYLE.md
Comment on lines +67 to +69
- `.NET Build`: Build with diagnostic verbosity *(clean-compile)*
- `CSharpier Format`: Auto-format code with CSharpier *(clean-compile)*
- `.Net Format`: Run CSharpier and build, then verify formatting and style with `--verify-no-changes` *(clean-compile; the task to run after edits)*
- `.Net Tool Update`: Update dotnet tools *(convenience)*
- `.Net Outdated Upgrade`: Upgrade outdated NuGet dependencies, interactive prompt *(convenience)*
- `Husky.Net Run`: Run the pre-commit hooks manually *(convenience)*
- `.NET Format`: Run CSharpier and build, then verify formatting and style with `--verify-no-changes` *(clean-compile; the task to run after edits)*
ptr727 and others added 2 commits June 26, 2026 07:20
…#768)

* Re-converge VS Code/Husky task-label casing to template (.Net -> .NET)

The ProjectTemplate re-sync (#764) brought in CODESTYLE.md, which mandates each
tool's official casing in task labels (".NET", not ".Net"), but left this repo's
task definitions on the old ".Net" casing - leaving the repo internally
contradictory (CODESTYLE.md vs the actual task labels) and the documented tasks
(".NET Build" / ".NET Format") not matching the real VS Code task labels.

Converge to the template's official casing (upstream ptr727/ProjectTemplate uses
".NET" in .vscode/tasks.json and launch.json; the clean-compile task command
sequences already match verbatim):

- .vscode/tasks.json: ".Net *" labels -> ".NET *" (Build, Format, Tool Update,
  Outdated Upgrade) and the .NET Format dependsOn reference
- .vscode/launch.json: 26x preLaunchTask ".Net Build" -> ".NET Build"
- .husky/task-runner.json: ".Net Format" task name -> ".NET Format"
- ARCHITECTURE.md: ".Net Build" task reference -> ".NET Build"
- AGENTS.md: drop the now-obsolete ".Net task-label casing" deviation note; the
  casing now matches the template

Husky.Net / CSharpier / Docker task labels are unchanged (already correct casing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Fix missed .Net task-label casing in AGENTS.md verbatim-carry note

Copilot review of #768 caught the "Verbatim carries" bullet (AGENTS.md) still
listing the clean-compile tasks as `.Net Build` / `.Net Format`; converge to
`.NET` to match the actual task labels and CODESTYLE.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Reword tasks.json deviation note to current-state (drop before/after framing)

Copilot re-review of #768: AGENTS.md describes current conventions, not change
history (HISTORY.md owns that). State the current `.NET` casing convention without
the "former .Net casing was re-converged" framing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…up (#765)

Bumps the actions-deps group with 1 update: [actions/setup-dotnet](https://github.com/actions/setup-dotnet).


Updates `actions/setup-dotnet` from 5.3.0 to 5.4.0
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@9a946fd...26b0ec1)

---
updated-dependencies:
- dependency-name: actions/setup-dotnet
  dependency-version: 5.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 26, 2026 16:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 24 changed files in this pull request and generated 1 comment.

Comment thread Docker/README.m4
## Docker Tags

- `latest`:
- Based on the [Ubuntu Rolling](https://releases.ubuntu.com/) `ubuntu:rolling` base image (latest interim release).
@ptr727 ptr727 merged commit 11b4ed2 into main Jun 26, 2026
7 checks passed
Sign up for free to 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