Fix language-agnostic gaps in the template#4
Merged
Conversation
…t action The wagoid/commitlint-github-action requires a commitlint config and Node toolchain that this language-agnostic template doesn't ship, so the job failed by default. Reuse .githooks/commit-msg instead.
npm was hardcoded as the only dependency ecosystem, so non-JS projects got no dependency update PRs out of the box. Comment out npm and add commented examples for pip, gomod, cargo, maven, gradle, composer, and bundler to uncomment as needed.
The FAQ was the one doc file that hardcoded a Node/pnpm/vitest toolchain instead of following the placeholder pattern used everywhere else, contradicting the template's language-agnostic goal.
…irement PORT=3000 was uncommented and presented as a real default, which assumes every project using this template runs a network service. CLIs, libraries, and batch jobs don't. Comment it out and note it only applies when relevant.
…onment placeholder The required 'Area' dropdown (Frontend/Backend/Database/Auth) assumed every project has that shape, forcing CLI tools and libraries into 'Other'. Dropped it — triage labels can categorize manually. Also replaced the Node/pnpm-specific environment placeholder with language-neutral examples.
…ages Go was grouped with 4-space languages, but gofmt formats with tabs — editors honoring editorconfig were fighting the language's own formatter. Gave *.go its own tab rule and added rs/c/h/cpp/hpp/cs to the 4-space group, which were previously uncovered and fell back to the 2-space default.
Discussions is off by default on repos created from a template, but CONTRIBUTING.md, SUPPORT.md, the FAQ, and the issue template config all treat it as the sole path for questions (blank issues are disabled). Add a one-time setup note so those links don't 404.
ci.yml and commitlint.yml had no explicit permissions block, so they inherited whatever the org/repo default token permissions were, which can be broader than read-only. release.yml already scoped itself correctly; match that pattern here since neither workflow needs write access.
The regex never enforced lowercase descriptions — .{1,72} already
allows any case — but the error message falsely claimed it did.
Fix the message instead of the (already permissive) pattern.
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.
Summary
Audit of this template repo's goal of working for any language/project type turned up 8 places where it silently assumed a JS/Node/web-app shape or would break by default on a fresh instantiation:
commitlint.yml) calledwagoid/commitlint-github-action, which needs a Node/commitlint config that doesn't exist in this repo — the job failed by default for every project. Now reuses.githooks/commit-msgdirectly (single source of truth, no runtime deps).dependabot.ymlhardcodednpmas the only ecosystem, so non-JS projects got no dependency-update PRs. Commented out with examples for pip/gomod/cargo/maven/gradle/composer/bundler.pnpm/vitestcommands, breaking the placeholder pattern used everywhere else in the docs..env.examplepresentedPORT=3000as an active default, assuming every project runs a network service..editorconfiggrouped*.gowith 4-space languages, fightinggofmt's tabs. Also extended 4-space coverage to Rust/C/C++/C#, which previously fell through to the 2-space default.ci.yml,commitlint.yml) had nopermissions:block, inheriting possibly-broader-than-needed org defaults. Scoped tocontents: read, matchingrelease.yml's existing pattern.Test plan
commitlint.ymlpasses on this PR (it validates its own commits)dependabot.yml, issue templates, and.editorconfigrender/parse correctly on GitHub