Skip to content

Bundled further features#92

Merged
timgentry merged 8 commits into
mainfrom
timgentry/bump-contributor-covenant-v3
Jun 5, 2026
Merged

Bundled further features#92
timgentry merged 8 commits into
mainfrom
timgentry/bump-contributor-covenant-v3

Conversation

@timgentry

@timgentry timgentry commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Continues bundling previously-separate plugin gems into this gem as opt-in built-in features, adds the GitHub audit framework, and documents how the gem is versioned now that features live in-tree:

  • Pull Request Template (HDI)require 'way_of_working/pull_request_template/hdi'
  • Code of Conduct (Contributor Covenant)require 'way_of_working/code_of_conduct/contributor_covenant'
  • Versioning (Semantic Versioning)require 'way_of_working/versioning/semver'
  • Audit (GitHub) — a framework of rules to check GitHub repo content/configuration, with each feature contributing its own audit rule.

Each bundled feature ships its generators, GitHub audit rule, templates and docs, and exposes the same subcommands as before.

Versioning policy

Documents the decision that SemVer governs the gem's interface (CLI, require paths, plugin API), not the content its generators emit:

  • Refreshing the standard a feature embeds (e.g. a new Contributor Covenant or MADR version) is minor, not major — so the major version stays meaningful and ~> N.0 pins keep working.
  • Drastic standard upgrades ship as additive variants under the category/variant namespace, so existing users are untouched.
  • See ADR-0001 and CONTRIBUTING.md (new) for the version-bump checklist.

Notes

  • README: new Versioning Policy section; feature table rows for Code of Conduct, Pull Request Template, Audit and Versioning updated to Built-in (...).
  • CHANGELOG: Unreleased entries for the bundled features, scoped with a per-feature prefix.
  • Made the github_audit_rule tests order-independent (teardown removes the shared audit-registry stub).

Testing

  • bundle exec rake test — green (60 runs, 0 failures)
  • npx alex docs/decisions/0001-...md — no issues

timgentry and others added 7 commits June 3, 2026 18:01
SemVer governs the gem's interface (CLI, require paths, plugin API),
not the content its generators emit. Standard refreshes are minor;
drastic upgrades ship as additive variants. Adds ADR-0001 and
CONTRIBUTING.md with a version-bump checklist, a README Versioning
Policy section, and a per-feature changelog prefix convention.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@timgentry timgentry requested a review from shilpigoeldev June 3, 2026 21:43
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

MegaLinter analysis: Error

Descriptor Linter Files Fixed Errors Warnings Elapsed time
❌ COPYPASTE jscpd yes 8 no 1.93s
⚠️ MARKDOWN markdownlint 7 15 0 1.1s
⚠️ MARKDOWN markdown-table-formatter 7 1 0 0.37s
✅ REPOSITORY checkov yes no no 21.24s
❌ REPOSITORY devskim yes 1 no 1.99s
✅ REPOSITORY dustilock yes no no 0.04s
✅ REPOSITORY gitleaks yes no no 0.88s
✅ REPOSITORY git_diff yes no no 0.01s
✅ REPOSITORY grype yes no no 51.24s
✅ REPOSITORY secretlint yes no no 1.37s
✅ REPOSITORY syft yes no no 2.09s
✅ REPOSITORY trivy yes no no 10.15s
✅ REPOSITORY trivy-sbom yes no no 0.17s
✅ REPOSITORY trufflehog yes no no 4.43s
❌ SPELL lychee 7 2 0 1.96s

Detailed Issues

❌ REPOSITORY / devskim - 1 error
{"$schema":"https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.6.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"devskim","fullName":"Microsoft DevSkim Command Line Interface","version":"1.0.70+d69541fde7","informationUri":"https://github.com/microsoft/DevSkim/","rules":[{"id":"DS176209","name":"SuspiciousComment","fullDescription":{"text":"Suspicious comment: A \"TODO\" or similar was left in source code, possibly indicating incomplete functionality"},"help":{"text":"A \"TODO\" or similar was left in source code, possibly indicating incomplete functionality","markdown":"Visit [https://github.com/Microsoft/DevSkim/blob/main/guidance/DS176209.md](https://github.com/Microsoft/DevSkim/blob/main/guidance/DS176209.md) for additional guidance on this issue."},"shortDescription":{"text":"A \"TODO\" or similar was left in source code, possibly indicating incomplete functionality"},"defaultConfiguration":{"level":"note"},"helpUri":"https://github.com/Microsoft/DevSkim/blob/main/guidance/DS176209.md","properties":{"precision":"high","problem.severity":"recommendation","DevSkimSeverity":"ManualReview","DevSkimConfidence":"High"}}]}},"versionControlProvenance":[{"repositoryUri":"https://github.com/HealthDataInsight/way_of_working","revisionId":"HIDDEN_BY_MEGALINTER","branch":"(no branch)"}],"results":[{"ruleId":"DS176209","level":"note","message":{"text":"Suspicious comment"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"lib/way_of_working/changelog/keepachangelog/generators/init.rb"},"region":{"startLine":95,"startColumn":37,"endLine":95,"endColumn":41,"charOffset":3413,"charLength":4,"snippet":{"text":"TODO","rendered":{"text":"TODO","markdown":"`TODO`"}},"sourceLanguage":"ruby"}}}],"properties":{"tags":["Hygiene.Comment.Suspicious"],"DevSkimSeverity":"ManualReview","DevSkimConfidence":"High"}}],"columnKind":"utf16CodeUnits"}]}
❌ COPYPASTE / jscpd - 8 errors
Clone found (ruby):
 - test/way_of_working/audit/github/generators/exec_test.rb [116:88 - 125:42] (9 lines, 84 tokens)
   test/way_of_working/audit/github/generators/exec_test.rb [92:81 - 101:53]

Clone found (ruby):
 - test/way_of_working/audit/github/generators/exec_test.rb [232:125 - 242:55] (10 lines, 106 tokens)
   test/way_of_working/audit/github/generators/exec_test.rb [185:104 - 195:45]

Clone found (ruby):
 - test/way_of_working/readme_badge/generators/init_test.rb [47:11 - 64:66] (17 lines, 106 tokens)
   test/way_of_working/readme_badge/generators/init_test.rb [21:11 - 38:54]

Clone found (ruby):
 - test/way_of_working/inclusive_language/alex/github_audit_rule_test.rb [9:7 - 24:4] (15 lines, 114 tokens)
   test/way_of_working/pull_request_template/hdi/github_audit_rule_test.rb [9:7 - 24:4]

Clone found (ruby):
 - test/way_of_working/decision_record/madr/github_audit_rule_test.rb [9:7 - 24:4] (15 lines, 114 tokens)
   test/way_of_working/pull_request_template/hdi/github_audit_rule_test.rb [9:7 - 24:4]

Clone found (ruby):
 - test/way_of_working/code_of_conduct/contributor_covenant/github_audit_rule_test.rb [9:7 - 24:4] (15 lines, 114 tokens)
   test/way_of_working/pull_request_template/hdi/github_audit_rule_test.rb [9:7 - 24:4]

Clone found (ruby):
 - test/way_of_working/changelog/keepachangelog/github_audit_rule_test.rb [9:7 - 24:4] (15 lines, 114 tokens)
   test/way_of_working/pull_request_template/hdi/github_audit_rule_test.rb [9:7 - 24:4]

Clone found (ruby):
 - test/way_of_working/audit/github/auditor_test.rb [66:64 - 92:55] (26 lines, 144 tokens)
   test/way_of_working/audit/github/auditor_test.rb [31:63 - 57:54]

┌──────────┬────────────────┬─────────────┬──────────────┬──────────────┬──────────────────┬───────────────────┐
│ Format   │ Files analyzed │ Total lines │ Total tokens │ Clones found │ Duplicated lines │ Duplicated tokens │
├──────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ ruby     │ 61             │ 2638        │ 16028        │ 8            │ 122 (4.62%)      │ 896 (5.59%)       │
├──────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ toml     │ 2              │ 12          │ 47           │ 0            │ 0 (0%)           │ 0 (0%)            │
├──────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ markdown │ 1              │ 21          │ 342          │ 0            │ 0 (0%)           │ 0 (0%)            │
├──────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤
│ Total:   │ 64             │ 2671        │ 16417        │ 8            │ 122 (4.57%)      │ 896 (5.46%)       │
└──────────┴────────────────┴─────────────┴──────────────┴──────────────┴──────────────────┴───────────────────┘
Found 8 clones.
HTML report saved to megalinter-reports/copy-paste/html/
ERROR: jscpd found too many duplicates (4.57%) over threshold (0%)
Error: ERROR: jscpd found too many duplicates (4.57%) over threshold (0%)
    at ThresholdReporter.report (/node-deps/node_modules/@jscpd/finder/dist/index.js:615:13)
    at /node-deps/node_modules/@jscpd/finder/dist/index.js:109:18
    at Array.forEach (<anonymous>)
    at /node-deps/node_modules/@jscpd/finder/dist/index.js:108:22
    at async /node-deps/node_modules/jscpd/dist/bin/jscpd.js:9:5
❌ SPELL / lychee - 2 errors
📝 Summary
---------------------
🔍 Total...........61
🔗 Unique..........35
✅ Successful......59
⏳ Timeouts.........0
🔀 Redirected.......6
👻 Excluded.........0
❓ Unknown..........0
🚫 Errors...........2
⛔ Unsupported......2

Errors in lib/way_of_working/pull_request_template/hdi/templates/docs/way_of_working/pull-request-template-and-guidelines.md
[ERROR] file://lib/way_of_working/pull_request_template/hdi/templates/docs/way_of_working/code-of-conduct.md (at 24:10) | File not found. Check if file exists and path is correct
[ERROR] file://lib/way_of_working/pull_request_template/hdi/templates/docs/way_of_working/code-of-conduct.md (at 48:3) | File not found. Check if file exists and path is correct

Hint: Followed 6 redirects. You might want to consider replacing redirecting URLs with the resolved URLs. Use verbose mode (`-v`/`-vv`) to see redirection details.
⚠️ MARKDOWN / markdown-table-formatter - 1 error
2 files contain markdown tables to format:
- CONTRIBUTING.md
- README.md
⚠️ MARKDOWN / markdownlint - 15 errors
CHANGELOG.md:33 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Added"]
CHANGELOG.md:38 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Removed"]
CHANGELOG.md:50 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Fixed"]
CHANGELOG.md:57 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Added"]
CHANGELOG.md:70 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Fixed"]
lib/way_of_working/pull_request_template/hdi/templates/.github/pull_request_template.md:37 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
README.md:26:232 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:27:178 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:29:75 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:29:193 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:30:166 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:31:163 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:32:178 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:218:109 error MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
README.md:244 error MD024/no-duplicate-heading Multiple headings with the same content [Context: "Code of Conduct"]

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

Replaces the separate way_of_working-versioning-semver plugin gem with
an in-tree feature: generator, GitHub audit rule, docs and tests, opt
in via require 'way_of_working/versioning/semver'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@timgentry timgentry changed the title Bundle pull request template & code of conduct, add audit/github and versioning policy Bundle further features Jun 3, 2026
@timgentry timgentry changed the title Bundle further features Bundled further features Jun 3, 2026
@shilpigoeldev

Copy link
Copy Markdown
Contributor

Alex is failing for "easy" word in Readme doc @timgentry

@timgentry timgentry merged commit 05b4cd2 into main Jun 5, 2026
4 of 5 checks passed
@timgentry timgentry deleted the timgentry/bump-contributor-covenant-v3 branch June 5, 2026 14:33
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.

3 participants