Sync from ProjectTemplate: enriched docker-readme, merge gate, LF pins#764
Merged
Conversation
- 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.
There was a problem hiding this comment.
Pull request overview
Syncs PlexCleaner’s develop branch with newer ProjectTemplate deltas, focusing on Docker Hub README publishing workflow enrichment and governance/EOL pin alignment.
Changes:
- Replaces
publish-docker-readme-task.ymlwith an enriched reusable workflow that can derive repositories, optionally download an artifact, and run a transform before publishing. - Rewires
publish-release.ymlto call the enriched Docker Hub README task (main-only) and render via m4 using theversions-mainartifact. - Updates governance/docs and line-ending normalization rules (Dockerfile LF pins via
.editorconfig/.gitattributes; Dockerfile renormalized).
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| Docker/Dockerfile | LF renormalization (no functional content change). |
| CODESTYLE.md | Carries template governance additions around local hooks and brownfield allowances. |
| AGENTS.md | Carries updated PR Review Etiquette (incl. Merge Gate) and documents template adaptations. |
| .github/workflows/publish-release.yml | Updates Docker Hub README publishing to use the enriched reusable task and main-only gating. |
| .github/workflows/publish-docker-readme-task.yml | New enriched reusable workflow for publishing Docker Hub repository overviews with optional transform/artifact steps. |
| .gitattributes | Adds LF pinning for scripts and Dockerfiles (and Husky hook) while keeping * -text default. |
| .editorconfig | Adds Dockerfile LF EOL pins and documents the repo’s CA-relaxation adaptation block. |
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>
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>
…eadme tasks Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…' 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>
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>
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>
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>
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.
- .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>
…itions; update architecture documentation; clarify Docker README tags; add 'unmappable' to workspace settings Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
… in documentation Signed-off-by: Pieter Viljoen <ptr727@users.noreply.github.com>
| ## Docker Tags | ||
|
|
||
| - `latest`: | ||
| - Based on the [Ubuntu Rolling](https://releases.ubuntu.com/) `ubuntu:rolling` base image (latest interim release). |
This was referenced Jun 26, 2026
ptr727
added a commit
that referenced
this pull request
Jun 26, 2026
…#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>
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.
Converges
developto the current ProjectTemplate state (branchtemplate-convergence): carries the template's shared artifacts verbatim and brings this repo's workflow/task surface into line with the template conventions, while preserving the genuine, intentional adaptations listed below.What this PR does
CODESTYLE.md(whole-file),AGENTS.mdPR Review Etiquette + Merge Gate, the.editorconfig/.gitattributesper-extension EOL blocks (incl. theDockerfile/*.DockerfileLF pins), and.markdownlint-cli2.jsonc.publish-docker-readme-task.yml- replaced with the enriched template task: aget-reposjob (staticrepositoriesormanifest+manifest-jq), an optionaltransform-runrender after an optionaltransform-artifactdownload, and areadme-filepathinput. UsesDOCKER_HUB_ACCESS_TOKEN.publish-release.yml- rewires the m4 Docker Hub README generation onto the enriched task:transform-artifact: versions-main(filelatest.ver) downloaded to$RUNNER_TEMP/transform, thentransform-run: m4 --include=$RUNNER_TEMP/transform ./Docker/README.m4 > ./Docker/README.md. The job is caller-gated to main;build-toolversions-task.ymlstays - it produces the artifact the m4 include consumes.merge-bot-pull-request.ymland theAGENTS.mdMerge Gate subsection carried from the template (preconditions,CLEAN-is-never-sufficient, "merging is not releasing")..editorconfig,.gitattributes,AGENTS.md, andCODESTYLE.mdare CRLF (this repo's convention, matched to the template's tracked bytes);Docker/DockerfileandDocker/README.m4are LF per the carried Dockerfile/m4 pins. Content-only diffs verified with--ignore-cr-at-eol/--strip-trailing-cr.Documented adaptations (for review)
These are the only intentional deviations from a literal verbatim carry. They are recorded in the repo's
AGENTS.md"Template adaptations" block; each has a one-line rationale below..editorconfig- repo-wide[*.cs]CA-rule relaxations. This is a console app, not a library, so several CA analyzer rules are relaxed (documented inline). The template's per-extension EOL block is carried as-is..gitattributes-.husky/pre-commit text eol=lfandDocker/README.m4 text eol=lfpins. The repo ships an extensionless Husky.Net hook (the exact case the template's script-EOL note calls out) and an m4 source rendered on Linux..github/copilot-instructions.md- filledptr727/PlexCleaner, anARCHITECTURE.mdpointer, and.NET-only wording. Already adapted from the template's placeholder/multi-language form; the generic form would be a regression.CODESTYLE.md- carried whole from the template (genericized: placeholder project names, both .NET and Python language sections). Kept verbatim rather than localized; this repo's real project names live in.csproj/.editorconfig, not the style guide. (See the template-gap note below.).husky/hook runner + aHusky.Net RunVS Code task), inverting the template's no-hooks-by-default stance..vscode/tasks.json-.Nettask-label casing and this repo's Docker/Husky convenience tasks. The.Netcasing is a documented historical choice; the clean-compile task command sequences match the template.Template gap (for the maintainer)
The genericized whole-file
CODESTYLE.mdcarries content that does not literally apply to a single-language derived repo -.NET-casing guidance vs this repo's.Nettask labels, a "no git hooks by default" stance vs this repo's Husky.Net hook, and a Python language section in a .NET-only repo. These are inert here (the authoritative task/hook facts live in.vscode/tasks.jsonand the AGENTS adaptations block), but every derived repo will surface the same mismatches. Worth deciding upstream whether the template should ship a way to scope CODESTYLE's language/task sections per derived repo, or keep the whole-file carry as the standing convention. Filed for the template hub rather than patched locally.Validation
AGENTS.md/CODESTYLE.md.