Conversation
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>
There was a problem hiding this comment.
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_targetwith 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 }} |
| ### 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 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 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)* |
…#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>
| ## Docker Tags | ||
|
|
||
| - `latest`: | ||
| - Based on the [Ubuntu Rolling](https://releases.ubuntu.com/) `ubuntu:rolling` base image (latest interim release). |
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.
Promotes
developtomain.Why now
The ProjectTemplate sync (#764) switched
.github/workflows/merge-bot-pull-request.ymlfromon: pull_requesttoon: pull_request_target. GitHub sourcespull_request_targetworkflow definitions from the default branch (main), which still carries the oldpull_requestversion — so the new merge-bot never registers fordevelop-targeted Dependabot PRs and their auto-merge is never enabled (e.g. #765 stuck open while itsmaincounterpart #766 merged).Landing this on
mainregisters thepull_request_targettrigger on the default branch, restoring Dependabot auto-merge ondevelop. After this merges, the new workflow handles both bases (develop→squash, main→merge per itscasestatement).Commits
pull_request_targetchange)Notes
main.