Re-sync shared artifacts from template - #190
Conversation
- Key merge-bot concurrency on PR number, not github.ref (+ verbatim comment) - Re-adopt main-only public-release version backstop in github-release - Drop stray inline comment in get-version-task.yml - Adopt caller-gated date-badge model (no branch input, fixes SC2086)
Keep inert sections (Dockerfile EOL block, Python section); adapt only repo-specific bits: .NET project list, InternalsVisibleTo, task labels, Husky.Net pre-commit note.
Carry template .gitattributes (*.sh + Dockerfile LF pins); add extensionless data-file rule. iso6392 change is line-endings only.
Add Template adaptations block (Husky.Net gate, LanguageTagsCreate codegen with no NINJA_API_KEY, absent merge-upstream-version job); align sync-doc bullets with the carry-whole rule.
There was a problem hiding this comment.
Pull request overview
Re-syncs LanguageTags’ shared “template-carried” artifacts (docs, editor/git config, and CI workflows) to match the current ProjectTemplate hub, including aligning workflow behavior and normalizing line endings for an embedded data file.
Changes:
- Updates multiple GitHub Actions workflows (merge-bot concurrency keying, publish date-badge gating, and a main-only SemVer backstop for GitHub releases).
- Carries updated shared repo artifacts from the template (
CODESTYLE.md,.editorconfig,.gitattributes, andAGENTS.mdsync guidance). - Normalizes
LanguageData/iso6392line endings and pins LF behavior via.gitattributes.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
LanguageData/iso6392 | EOL normalization (CRLF → LF) for deterministic cross-platform data handling. |
CODESTYLE.md | Template re-sync of style guide content (now includes Python section and updated general rules). |
AGENTS.md | Updates template re-sync guidance and documents intentional template adaptations. |
.github/workflows/publish-release.yml | Gates date-badge job at the caller (only when publishing includes main). |
.github/workflows/merge-bot-pull-request.yml | Uses per-PR concurrency key (pull_request.number) under pull_request_target. |
.github/workflows/get-version-task.yml | Removes a stray comment to restore verbatim carry. |
.github/workflows/build-release-task.yml | Adds a main-only SemVer prerelease-suffix backstop before publishing a public release. |
.github/workflows/build-datebadge-task.yml | Drops branch input and relies on caller gating; fixes $GITHUB_OUTPUT quoting. |
.gitattributes | Adds LF pins for scripts/Dockerfiles and LanguageData/iso6392. |
.editorconfig | Adds Dockerfile LF enforcement. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…ebadge CRLF Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
LanguageData/ files are downloaded source data the parser reads byte-for-byte; normalizing them can break parsing. Remove the wrong 'LanguageData/iso6392 text eol=lf' pin (revert iso6392 to its original committed bytes) and add a guard comment so the * -text default keeps these preserved exactly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The template's CODESTYLE is now portable: the .NET CI-backstop bullets, build-task list, and pre-commit-hook note no longer assert repo-specific facts. Re-carry it byte-identical (modulo CRLF), resolving the three Copilot threads about the .NET Benchmark task, the csharpier/format CI wording, and hooks-not-installed-by-default. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- .gitattributes: header now distinguishes .editorconfig editor guidance from git's own enforcement - CODESTYLE.md: .NET/Python section intros made conditional (any ... project(s)) - AGENTS.md: publishing step now covers an opted-in publish-on-merge trigger - build-datebadge-task.yml: pin RubbaBoy/BYOB to v1.3.0 SHA 24f4642 (was floating # v1) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.
Converge LanguageTags with the ProjectTemplate hub and work this repo's sync task list.
What this PR does
.editorconfigandCODESTYLE.mdare re-applied verbatim from the template (every section, including blocks inert in this .NET-only repo), so re-sync stays a clean overwrite rather than a per-section merge. Only the documented in-section repo placeholders are adapted: the .NET project-folder list,InternalsVisibleTonames, and VS Code task labels.merge-bot-pull-request.ymlkeys concurrency on the PR number;build-release-task.ymlre-adopts the main-only release-version backstop;get-version-task.ymldrops a stray comment to restore byte-exact verbatim;build-datebadge-task.yml+publish-release.ymladopt the caller-gated date-badge model (also fixing a pre-existingSC2086). Action pins confirmed identical to the template..gitattributescarries the template's*.sh+ Dockerfile LF pins and adds one repo-specific LF pin:.husky/pre-commit(extensionless hook; a CRLF shebang breaks execution).LanguageData/holds downloaded source data the parser reads byte-for-byte; it is left untouched under the* -textdefault (notext/eol=rule), soLanguageData/iso6392stays exactly as downloaded (CRLF preserved) - it is deliberately not forced to LF. Workflow YAML stays CRLF, matching the template.Documented adaptations (for review)
The only intentional deviations from the carried template state. Everything else tracks the template verbatim.
dotnet tool restore+dotnet husky install); the template ships no git hooks and treats CI as the only lint backstop.CODESTYLE.md's git-hook note and the.vscode/tasks.jsonconvenience-task set are adapted accordingly. CI still runs the same checks.LanguageTagsCreateCLI, noNINJA_API_KEY. Embedded language data is regenerated by the in-repoLanguageTagsCreate/tool pulling directly from the official ISO 639-2/3 + RFC 5646 registries. There is no external codegen API, so this repo carries noNINJA_API_KEYsecret or any reference to one.merge-upstream-versionjob legitimately absent.merge-bot-pull-request.ymlcarries onlymerge-dependabot,merge-codegen, anddisable-auto-merge-on-maintainer-push. The template'smerge-upstream-versionjob auto-merges an upstream-version-bump flow this repo does not run (LanguageTags pins no upstream binary version). Concurrency keying and the three carried jobs match the template verbatim.Validation