@oddessentials/repo-standards 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/standards.go.azure-devops.json +534 -0
- package/dist/config/standards.go.github-actions.json +534 -0
- package/dist/config/standards.go.json +595 -0
- package/dist/config/standards.json +585 -20
- package/dist/config/standards.rust.azure-devops.json +539 -0
- package/dist/config/standards.rust.github-actions.json +539 -0
- package/dist/config/standards.rust.json +600 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
"stacks": [
|
|
7
7
|
"typescript-js",
|
|
8
8
|
"csharp-dotnet",
|
|
9
|
-
"python"
|
|
9
|
+
"python",
|
|
10
|
+
"rust",
|
|
11
|
+
"go"
|
|
10
12
|
]
|
|
11
13
|
},
|
|
12
14
|
"ciHints": {
|
|
@@ -35,6 +37,20 @@
|
|
|
35
37
|
],
|
|
36
38
|
"verification": ".gitignore must exist; .dockerignore is recommended when containerizing or using Docker workflows."
|
|
37
39
|
},
|
|
40
|
+
"go": {
|
|
41
|
+
"exampleConfigFiles": [
|
|
42
|
+
".gitignore",
|
|
43
|
+
".dockerignore"
|
|
44
|
+
],
|
|
45
|
+
"notes": "Use the official github/gitignore Go template. Exclude vendor/ (if not vendoring), *.exe, *.test, *.out, and IDE-specific files. .dockerignore must exclude .git and local build output.",
|
|
46
|
+
"optionalFiles": [
|
|
47
|
+
".dockerignore"
|
|
48
|
+
],
|
|
49
|
+
"requiredFiles": [
|
|
50
|
+
".gitignore"
|
|
51
|
+
],
|
|
52
|
+
"verification": ".gitignore must exist; .dockerignore is recommended when containerizing or using Docker workflows."
|
|
53
|
+
},
|
|
38
54
|
"python": {
|
|
39
55
|
"exampleConfigFiles": [
|
|
40
56
|
".gitignore",
|
|
@@ -49,6 +65,20 @@
|
|
|
49
65
|
],
|
|
50
66
|
"verification": ".gitignore must exist; .dockerignore is recommended when containerizing or using Docker workflows."
|
|
51
67
|
},
|
|
68
|
+
"rust": {
|
|
69
|
+
"exampleConfigFiles": [
|
|
70
|
+
".gitignore",
|
|
71
|
+
".dockerignore"
|
|
72
|
+
],
|
|
73
|
+
"notes": "Use the official github/gitignore Rust template. Exclude target/, Cargo.lock (for libraries), *.pdb, and similar build artifacts. .dockerignore must exclude target/, .git, and local development files.",
|
|
74
|
+
"optionalFiles": [
|
|
75
|
+
".dockerignore"
|
|
76
|
+
],
|
|
77
|
+
"requiredFiles": [
|
|
78
|
+
".gitignore"
|
|
79
|
+
],
|
|
80
|
+
"verification": ".gitignore must exist; .dockerignore is recommended when containerizing or using Docker workflows."
|
|
81
|
+
},
|
|
52
82
|
"typescript-js": {
|
|
53
83
|
"exampleConfigFiles": [
|
|
54
84
|
".gitignore",
|
|
@@ -70,7 +100,9 @@
|
|
|
70
100
|
"stacks": [
|
|
71
101
|
"typescript-js",
|
|
72
102
|
"csharp-dotnet",
|
|
73
|
-
"python"
|
|
103
|
+
"python",
|
|
104
|
+
"rust",
|
|
105
|
+
"go"
|
|
74
106
|
]
|
|
75
107
|
},
|
|
76
108
|
"ciHints": {
|
|
@@ -106,6 +138,25 @@
|
|
|
106
138
|
],
|
|
107
139
|
"verification": ".editorconfig must exist to drive the .NET formatting and analysis tooling."
|
|
108
140
|
},
|
|
141
|
+
"go": {
|
|
142
|
+
"exampleConfigFiles": [
|
|
143
|
+
".golangci.yml",
|
|
144
|
+
".golangci.yaml"
|
|
145
|
+
],
|
|
146
|
+
"exampleTools": [
|
|
147
|
+
"golangci-lint",
|
|
148
|
+
"staticcheck"
|
|
149
|
+
],
|
|
150
|
+
"notes": "Use golangci-lint as the primary linter aggregator. Configure enabled linters in .golangci.yml for consistent team-wide enforcement.",
|
|
151
|
+
"optionalFiles": [
|
|
152
|
+
".golangci.yml",
|
|
153
|
+
".golangci.yaml"
|
|
154
|
+
],
|
|
155
|
+
"requiredFiles": [
|
|
156
|
+
"go.mod"
|
|
157
|
+
],
|
|
158
|
+
"verification": ".golangci.yml or .golangci.yaml indicates linting is configured. Run 'golangci-lint run' to verify."
|
|
159
|
+
},
|
|
109
160
|
"python": {
|
|
110
161
|
"exampleConfigFiles": [
|
|
111
162
|
"pyproject.toml",
|
|
@@ -128,6 +179,25 @@
|
|
|
128
179
|
],
|
|
129
180
|
"verification": "pyproject.toml (or ruff.toml / .flake8) signals that linting tools are configured for the repository."
|
|
130
181
|
},
|
|
182
|
+
"rust": {
|
|
183
|
+
"exampleConfigFiles": [
|
|
184
|
+
"clippy.toml",
|
|
185
|
+
".clippy.toml"
|
|
186
|
+
],
|
|
187
|
+
"exampleTools": [
|
|
188
|
+
"clippy",
|
|
189
|
+
"cargo-clippy"
|
|
190
|
+
],
|
|
191
|
+
"notes": "Use Clippy for comprehensive Rust linting. Configure via clippy.toml for project-specific rules. Treat warnings as errors in CI with -D warnings.",
|
|
192
|
+
"optionalFiles": [
|
|
193
|
+
"clippy.toml",
|
|
194
|
+
".clippy.toml"
|
|
195
|
+
],
|
|
196
|
+
"requiredFiles": [
|
|
197
|
+
"Cargo.toml"
|
|
198
|
+
],
|
|
199
|
+
"verification": "Clippy is available via rustup component. Run 'cargo clippy' to verify linting is configured."
|
|
200
|
+
},
|
|
131
201
|
"typescript-js": {
|
|
132
202
|
"exampleConfigFiles": [
|
|
133
203
|
".eslintrc.*"
|
|
@@ -162,7 +232,9 @@
|
|
|
162
232
|
"stacks": [
|
|
163
233
|
"typescript-js",
|
|
164
234
|
"csharp-dotnet",
|
|
165
|
-
"python"
|
|
235
|
+
"python",
|
|
236
|
+
"rust",
|
|
237
|
+
"go"
|
|
166
238
|
]
|
|
167
239
|
},
|
|
168
240
|
"ciHints": {
|
|
@@ -192,6 +264,20 @@
|
|
|
192
264
|
],
|
|
193
265
|
"verification": "Test projects are present in the solution; test configuration is defined."
|
|
194
266
|
},
|
|
267
|
+
"go": {
|
|
268
|
+
"exampleConfigFiles": [
|
|
269
|
+
"go.mod"
|
|
270
|
+
],
|
|
271
|
+
"exampleTools": [
|
|
272
|
+
"go test"
|
|
273
|
+
],
|
|
274
|
+
"notes": "Use 'go test ./...' to run all tests. Place test files alongside source files with _test.go suffix. Keep unit tests fast and isolated.",
|
|
275
|
+
"optionalFiles": [],
|
|
276
|
+
"requiredFiles": [
|
|
277
|
+
"go.mod"
|
|
278
|
+
],
|
|
279
|
+
"verification": "Run 'go test ./...' to verify the test suite is configured and passing."
|
|
280
|
+
},
|
|
195
281
|
"python": {
|
|
196
282
|
"exampleConfigFiles": [
|
|
197
283
|
"pytest.ini",
|
|
@@ -211,6 +297,22 @@
|
|
|
211
297
|
],
|
|
212
298
|
"verification": "Test framework configuration is present; tests/ directory or pytest configuration exists."
|
|
213
299
|
},
|
|
300
|
+
"rust": {
|
|
301
|
+
"exampleConfigFiles": [
|
|
302
|
+
"Cargo.toml"
|
|
303
|
+
],
|
|
304
|
+
"exampleTools": [
|
|
305
|
+
"cargo test"
|
|
306
|
+
],
|
|
307
|
+
"notes": "Use cargo test as the built-in test runner. Organize tests in tests/ directory for integration tests and inline #[test] functions for unit tests.",
|
|
308
|
+
"optionalFiles": [
|
|
309
|
+
"tests/"
|
|
310
|
+
],
|
|
311
|
+
"requiredFiles": [
|
|
312
|
+
"Cargo.toml"
|
|
313
|
+
],
|
|
314
|
+
"verification": "Run 'cargo test' to verify the test suite is configured and passing."
|
|
315
|
+
},
|
|
214
316
|
"typescript-js": {
|
|
215
317
|
"exampleConfigFiles": [
|
|
216
318
|
"jest.config.*"
|
|
@@ -237,7 +339,9 @@
|
|
|
237
339
|
"stacks": [
|
|
238
340
|
"typescript-js",
|
|
239
341
|
"csharp-dotnet",
|
|
240
|
-
"python"
|
|
342
|
+
"python",
|
|
343
|
+
"rust",
|
|
344
|
+
"go"
|
|
241
345
|
]
|
|
242
346
|
},
|
|
243
347
|
"ciHints": {
|
|
@@ -267,6 +371,21 @@
|
|
|
267
371
|
],
|
|
268
372
|
"verification": "Dockerfile must be present; docker-compose.yml is optional and indicates orchestration usage."
|
|
269
373
|
},
|
|
374
|
+
"go": {
|
|
375
|
+
"exampleConfigFiles": [
|
|
376
|
+
"Dockerfile",
|
|
377
|
+
"docker-compose.yml"
|
|
378
|
+
],
|
|
379
|
+
"exampleTools": [],
|
|
380
|
+
"notes": "Use multi-stage builds: builder stage with golang:alpine, then copy binary to scratch or distroless for minimal runtime. Set CGO_ENABLED=0 for static binaries.",
|
|
381
|
+
"optionalFiles": [
|
|
382
|
+
"docker-compose.yml"
|
|
383
|
+
],
|
|
384
|
+
"requiredFiles": [
|
|
385
|
+
"Dockerfile"
|
|
386
|
+
],
|
|
387
|
+
"verification": "Dockerfile must be present; docker-compose.yml is optional and indicates orchestration usage."
|
|
388
|
+
},
|
|
270
389
|
"python": {
|
|
271
390
|
"exampleConfigFiles": [
|
|
272
391
|
"Dockerfile",
|
|
@@ -282,6 +401,21 @@
|
|
|
282
401
|
],
|
|
283
402
|
"verification": "Dockerfile must be present; docker-compose.yml is optional and indicates orchestration usage."
|
|
284
403
|
},
|
|
404
|
+
"rust": {
|
|
405
|
+
"exampleConfigFiles": [
|
|
406
|
+
"Dockerfile",
|
|
407
|
+
"docker-compose.yml"
|
|
408
|
+
],
|
|
409
|
+
"exampleTools": [],
|
|
410
|
+
"notes": "Use multi-stage builds: builder stage with rust:alpine for compiling, then copy binary to distroless or alpine for minimal runtime image. Pin Rust version via rust-toolchain.toml.",
|
|
411
|
+
"optionalFiles": [
|
|
412
|
+
"docker-compose.yml"
|
|
413
|
+
],
|
|
414
|
+
"requiredFiles": [
|
|
415
|
+
"Dockerfile"
|
|
416
|
+
],
|
|
417
|
+
"verification": "Dockerfile must be present; docker-compose.yml is optional and indicates orchestration usage."
|
|
418
|
+
},
|
|
285
419
|
"typescript-js": {
|
|
286
420
|
"exampleConfigFiles": [
|
|
287
421
|
"Dockerfile",
|
|
@@ -304,7 +438,9 @@
|
|
|
304
438
|
"stacks": [
|
|
305
439
|
"typescript-js",
|
|
306
440
|
"csharp-dotnet",
|
|
307
|
-
"python"
|
|
441
|
+
"python",
|
|
442
|
+
"rust",
|
|
443
|
+
"go"
|
|
308
444
|
]
|
|
309
445
|
},
|
|
310
446
|
"ciHints": {
|
|
@@ -331,6 +467,18 @@
|
|
|
331
467
|
"notes": "Use GitVersion to automatically compute SemVer from git history and feed it into assembly/package versions. Configure CI to auto-generate or update CHANGELOG.md from commit messages and git tags. Integrate with release pipeline to automatically version assemblies, NuGet packages, and create release notes.",
|
|
332
468
|
"verification": "Check that versioning is driven by a SemVer-aware tool (for example, GitVersion) and verify that running the release/versioning step locally or in CI automatically produces the expected version metadata, updates project files, and generates changelog entries from commit history."
|
|
333
469
|
},
|
|
470
|
+
"go": {
|
|
471
|
+
"exampleConfigFiles": [
|
|
472
|
+
".goreleaser.yml",
|
|
473
|
+
"CHANGELOG.md"
|
|
474
|
+
],
|
|
475
|
+
"exampleTools": [
|
|
476
|
+
"goreleaser",
|
|
477
|
+
"semantic-release"
|
|
478
|
+
],
|
|
479
|
+
"notes": "Go uses git tags for versioning (v1.2.3 format). Use goreleaser for automated releases with changelog generation. Tag versions consistently.",
|
|
480
|
+
"verification": "Check that git tags follow vMAJOR.MINOR.PATCH format and goreleaser or similar tool generates releases and changelogs."
|
|
481
|
+
},
|
|
334
482
|
"python": {
|
|
335
483
|
"exampleConfigFiles": [
|
|
336
484
|
"pyproject.toml",
|
|
@@ -345,6 +493,18 @@
|
|
|
345
493
|
"notes": "Automate version bumping and changelog generation using setuptools_scm (git-tag based) or bumpversion with towncrier for changelog fragments. Configure CI to automatically update version in pyproject.toml, generate/update CHANGELOG.md from commit messages or changelog fragments, and create git tags. Maintain a single source of truth for versioning.",
|
|
346
494
|
"verification": "Check that the package version in pyproject or setup configuration follows SemVer and verify that the configured tool (for example, setuptools_scm or bumpversion) automatically computes or bumps the version and generates changelog entries from commit history or fragments."
|
|
347
495
|
},
|
|
496
|
+
"rust": {
|
|
497
|
+
"exampleConfigFiles": [
|
|
498
|
+
"Cargo.toml",
|
|
499
|
+
"CHANGELOG.md"
|
|
500
|
+
],
|
|
501
|
+
"exampleTools": [
|
|
502
|
+
"cargo-release",
|
|
503
|
+
"semantic-release"
|
|
504
|
+
],
|
|
505
|
+
"notes": "Version is defined in Cargo.toml. Use cargo-release or semantic-release-cargo for automated versioning. Follow Conventional Commits for changelog generation.",
|
|
506
|
+
"verification": "Check that Cargo.toml version follows SemVer and verify changelog generation from commit history."
|
|
507
|
+
},
|
|
348
508
|
"typescript-js": {
|
|
349
509
|
"exampleConfigFiles": [
|
|
350
510
|
".releaserc",
|
|
@@ -365,7 +525,9 @@
|
|
|
365
525
|
"stacks": [
|
|
366
526
|
"typescript-js",
|
|
367
527
|
"csharp-dotnet",
|
|
368
|
-
"python"
|
|
528
|
+
"python",
|
|
529
|
+
"rust",
|
|
530
|
+
"go"
|
|
369
531
|
]
|
|
370
532
|
},
|
|
371
533
|
"ciHints": {
|
|
@@ -392,6 +554,18 @@
|
|
|
392
554
|
"notes": "Document your commit convention and wire up a helper tool so contributors can easily follow it.",
|
|
393
555
|
"verification": "Create a test commit following the documented commit convention and confirm that any configured commit message checks (local hooks or CI) accept the message."
|
|
394
556
|
},
|
|
557
|
+
"go": {
|
|
558
|
+
"exampleConfigFiles": [
|
|
559
|
+
"commitlint.config.js",
|
|
560
|
+
".cz.toml"
|
|
561
|
+
],
|
|
562
|
+
"exampleTools": [
|
|
563
|
+
"commitlint",
|
|
564
|
+
"commitizen"
|
|
565
|
+
],
|
|
566
|
+
"notes": "Use commitlint with pre-commit hooks for enforcing Conventional Commits. Consistent with goreleaser changelog generation.",
|
|
567
|
+
"verification": "Test that non-conforming commit messages are rejected by the configured hooks or CI check."
|
|
568
|
+
},
|
|
395
569
|
"python": {
|
|
396
570
|
"exampleConfigFiles": [
|
|
397
571
|
".cz.toml",
|
|
@@ -403,6 +577,18 @@
|
|
|
403
577
|
"notes": "Standardize commit messages using commitizen or a similar helper and document the required types and scopes.",
|
|
404
578
|
"verification": "Use the configured commit helper (for example, commitizen) or hooks to create a test commit and confirm that non-conforming messages are rejected while valid ones are accepted."
|
|
405
579
|
},
|
|
580
|
+
"rust": {
|
|
581
|
+
"exampleConfigFiles": [
|
|
582
|
+
"commitlint.config.js",
|
|
583
|
+
".cz.toml"
|
|
584
|
+
],
|
|
585
|
+
"exampleTools": [
|
|
586
|
+
"commitlint",
|
|
587
|
+
"commitizen"
|
|
588
|
+
],
|
|
589
|
+
"notes": "Use commitlint with husky or pre-commit for enforcing Conventional Commits. Works consistently with cargo workspaces.",
|
|
590
|
+
"verification": "Test that non-conforming commit messages are rejected by the configured hooks or CI check."
|
|
591
|
+
},
|
|
406
592
|
"typescript-js": {
|
|
407
593
|
"exampleConfigFiles": [
|
|
408
594
|
"commitlint.config.*"
|
|
@@ -421,7 +607,9 @@
|
|
|
421
607
|
"stacks": [
|
|
422
608
|
"typescript-js",
|
|
423
609
|
"csharp-dotnet",
|
|
424
|
-
"python"
|
|
610
|
+
"python",
|
|
611
|
+
"rust",
|
|
612
|
+
"go"
|
|
425
613
|
]
|
|
426
614
|
},
|
|
427
615
|
"ciHints": {
|
|
@@ -447,6 +635,17 @@
|
|
|
447
635
|
"notes": "Enable coverage collection for test projects and publish reports in a human-friendly format from CI.",
|
|
448
636
|
"verification": "Run the test suite with coverage enabled (for example, using coverlet or a similar tool) and verify that coverage reports are generated and used in CI to monitor thresholds."
|
|
449
637
|
},
|
|
638
|
+
"go": {
|
|
639
|
+
"exampleConfigFiles": [
|
|
640
|
+
"go.mod"
|
|
641
|
+
],
|
|
642
|
+
"exampleTools": [
|
|
643
|
+
"go test -cover",
|
|
644
|
+
"go tool cover"
|
|
645
|
+
],
|
|
646
|
+
"notes": "Use 'go test -coverprofile=coverage.out ./...' for coverage. Generate HTML or integrate with codecov/coveralls.",
|
|
647
|
+
"verification": "Run 'go test -cover ./...' and verify coverage reports are produced and thresholds monitored."
|
|
648
|
+
},
|
|
450
649
|
"python": {
|
|
451
650
|
"exampleConfigFiles": [
|
|
452
651
|
"pytest.ini",
|
|
@@ -460,6 +659,18 @@
|
|
|
460
659
|
"notes": "Configure coverage reporting for your test suite and surface summary metrics in CI.",
|
|
461
660
|
"verification": "Run the unit tests with coverage (for example, pytest with pytest-cov) and confirm that coverage reports are generated and referenced in CI to enforce or track thresholds."
|
|
462
661
|
},
|
|
662
|
+
"rust": {
|
|
663
|
+
"exampleConfigFiles": [
|
|
664
|
+
"Cargo.toml"
|
|
665
|
+
],
|
|
666
|
+
"exampleTools": [
|
|
667
|
+
"cargo-tarpaulin",
|
|
668
|
+
"llvm-cov",
|
|
669
|
+
"grcov"
|
|
670
|
+
],
|
|
671
|
+
"notes": "Use cargo-tarpaulin or llvm-cov for code coverage. Generate lcov or cobertura reports for CI integration.",
|
|
672
|
+
"verification": "Run 'cargo tarpaulin' or equivalent and verify coverage reports are generated and thresholds enforced."
|
|
673
|
+
},
|
|
463
674
|
"typescript-js": {
|
|
464
675
|
"exampleConfigFiles": [
|
|
465
676
|
"jest.config.*"
|
|
@@ -478,7 +689,9 @@
|
|
|
478
689
|
"stacks": [
|
|
479
690
|
"typescript-js",
|
|
480
691
|
"csharp-dotnet",
|
|
481
|
-
"python"
|
|
692
|
+
"python",
|
|
693
|
+
"rust",
|
|
694
|
+
"go"
|
|
482
695
|
]
|
|
483
696
|
},
|
|
484
697
|
"ciHints": {
|
|
@@ -502,6 +715,15 @@
|
|
|
502
715
|
"notes": "Ensure CI runs analyzers, tests, build, and packaging or container checks before changes can be merged.",
|
|
503
716
|
"verification": "Open the CI configuration and verify there is a job or stage that runs analyzers, tests, build, and any required packaging or container checks before merging to main."
|
|
504
717
|
},
|
|
718
|
+
"go": {
|
|
719
|
+
"exampleConfigFiles": [
|
|
720
|
+
".github/workflows/*",
|
|
721
|
+
"azure-pipelines.yml"
|
|
722
|
+
],
|
|
723
|
+
"exampleTools": [],
|
|
724
|
+
"notes": "Run 'golangci-lint run', 'go test ./...', 'go build' as quality gates. Use govulncheck for security scanning.",
|
|
725
|
+
"verification": "Verify CI runs golangci-lint, go test, and go build before merging to main."
|
|
726
|
+
},
|
|
505
727
|
"python": {
|
|
506
728
|
"exampleConfigFiles": [
|
|
507
729
|
".github/workflows/*",
|
|
@@ -511,6 +733,15 @@
|
|
|
511
733
|
"notes": "Ensure CI runs linting, type checking (if used), tests, and packaging or container checks for Python services before merging.",
|
|
512
734
|
"verification": "Open the CI configuration and verify there is a job or stage that runs linting, type checking (if used), tests, and any packaging or container checks before merging to main."
|
|
513
735
|
},
|
|
736
|
+
"rust": {
|
|
737
|
+
"exampleConfigFiles": [
|
|
738
|
+
".github/workflows/*",
|
|
739
|
+
"azure-pipelines.yml"
|
|
740
|
+
],
|
|
741
|
+
"exampleTools": [],
|
|
742
|
+
"notes": "Use 'cargo clippy', 'cargo test', 'cargo build --release' as quality gates. Consider cargo-deny for dependency auditing.",
|
|
743
|
+
"verification": "Verify CI runs cargo clippy, cargo test, and cargo build before merging to main."
|
|
744
|
+
},
|
|
514
745
|
"typescript-js": {
|
|
515
746
|
"exampleConfigFiles": [
|
|
516
747
|
".github/workflows/*",
|
|
@@ -527,7 +758,9 @@
|
|
|
527
758
|
"stacks": [
|
|
528
759
|
"typescript-js",
|
|
529
760
|
"csharp-dotnet",
|
|
530
|
-
"python"
|
|
761
|
+
"python",
|
|
762
|
+
"rust",
|
|
763
|
+
"go"
|
|
531
764
|
]
|
|
532
765
|
},
|
|
533
766
|
"ciHints": {
|
|
@@ -552,6 +785,15 @@
|
|
|
552
785
|
"notes": "Use .editorconfig and dotnet-format to keep C# style consistent across contributors.",
|
|
553
786
|
"verification": "Run the configured formatter or code style enforcement (for example, `dotnet format`) and confirm that code in the repository conforms to the defined rules."
|
|
554
787
|
},
|
|
788
|
+
"go": {
|
|
789
|
+
"exampleConfigFiles": [],
|
|
790
|
+
"exampleTools": [
|
|
791
|
+
"gofmt",
|
|
792
|
+
"goimports"
|
|
793
|
+
],
|
|
794
|
+
"notes": "Use gofmt (built-in) for formatting. goimports extends gofmt with import organization. Formatting is enforced by convention.",
|
|
795
|
+
"verification": "Run 'gofmt -d .' or 'goimports -d .' and confirm no output indicates clean formatting."
|
|
796
|
+
},
|
|
555
797
|
"python": {
|
|
556
798
|
"exampleConfigFiles": [
|
|
557
799
|
"pyproject.toml"
|
|
@@ -562,6 +804,17 @@
|
|
|
562
804
|
"notes": "Use black (or an equivalent opinionated formatter) and treat its output as the single source of truth for code style.",
|
|
563
805
|
"verification": "Run the configured formatter (for example, `black .` or `black --check .`) and confirm it reports clean formatting on committed code and auto-fixes as expected locally."
|
|
564
806
|
},
|
|
807
|
+
"rust": {
|
|
808
|
+
"exampleConfigFiles": [
|
|
809
|
+
"rustfmt.toml",
|
|
810
|
+
".rustfmt.toml"
|
|
811
|
+
],
|
|
812
|
+
"exampleTools": [
|
|
813
|
+
"rustfmt"
|
|
814
|
+
],
|
|
815
|
+
"notes": "Use rustfmt (via 'cargo fmt') as the standard formatter. Configure via rustfmt.toml. Run 'cargo fmt --check' in CI.",
|
|
816
|
+
"verification": "Run 'cargo fmt --check' and confirm it reports clean formatting. Use 'cargo fmt' to auto-fix."
|
|
817
|
+
},
|
|
565
818
|
"typescript-js": {
|
|
566
819
|
"exampleConfigFiles": [
|
|
567
820
|
".prettierrc.*",
|
|
@@ -580,7 +833,9 @@
|
|
|
580
833
|
"stacks": [
|
|
581
834
|
"typescript-js",
|
|
582
835
|
"csharp-dotnet",
|
|
583
|
-
"python"
|
|
836
|
+
"python",
|
|
837
|
+
"rust",
|
|
838
|
+
"go"
|
|
584
839
|
]
|
|
585
840
|
},
|
|
586
841
|
"ciHints": {
|
|
@@ -605,6 +860,18 @@
|
|
|
605
860
|
"notes": "Configure Lefthook or similar to run formatting and basic checks on staged files before commits.",
|
|
606
861
|
"verification": "Inspect the hook configuration (for example, Lefthook or similar) and confirm it runs at least formatting and basic checks on staged changes before commits or pushes."
|
|
607
862
|
},
|
|
863
|
+
"go": {
|
|
864
|
+
"exampleConfigFiles": [
|
|
865
|
+
".pre-commit-config.yaml",
|
|
866
|
+
"lefthook.yml"
|
|
867
|
+
],
|
|
868
|
+
"exampleTools": [
|
|
869
|
+
"pre-commit",
|
|
870
|
+
"lefthook"
|
|
871
|
+
],
|
|
872
|
+
"notes": "Use pre-commit with go hooks for gofmt, goimports, and golangci-lint on staged files.",
|
|
873
|
+
"verification": "Inspect hooks configuration and confirm that go fmt and golangci-lint run before commits."
|
|
874
|
+
},
|
|
608
875
|
"python": {
|
|
609
876
|
"exampleConfigFiles": [
|
|
610
877
|
".pre-commit-config.yaml"
|
|
@@ -615,6 +882,17 @@
|
|
|
615
882
|
"notes": "Use pre-commit to run ruff, black, and optionally mypy on staged files before committing.",
|
|
616
883
|
"verification": "Inspect .pre-commit-config.yaml and confirm that hooks for linting, formatting, and optionally type checking are enabled and run on changed files before commits."
|
|
617
884
|
},
|
|
885
|
+
"rust": {
|
|
886
|
+
"exampleConfigFiles": [
|
|
887
|
+
".pre-commit-config.yaml"
|
|
888
|
+
],
|
|
889
|
+
"exampleTools": [
|
|
890
|
+
"pre-commit",
|
|
891
|
+
"cargo-husky"
|
|
892
|
+
],
|
|
893
|
+
"notes": "Use pre-commit with rust hooks for cargo fmt and cargo clippy on staged files. cargo-husky is an alternative.",
|
|
894
|
+
"verification": "Inspect .pre-commit-config.yaml and confirm that hooks run cargo fmt --check and cargo clippy before commits."
|
|
895
|
+
},
|
|
618
896
|
"typescript-js": {
|
|
619
897
|
"exampleConfigFiles": [
|
|
620
898
|
".husky/",
|
|
@@ -634,7 +912,9 @@
|
|
|
634
912
|
"stacks": [
|
|
635
913
|
"typescript-js",
|
|
636
914
|
"csharp-dotnet",
|
|
637
|
-
"python"
|
|
915
|
+
"python",
|
|
916
|
+
"rust",
|
|
917
|
+
"go"
|
|
638
918
|
]
|
|
639
919
|
},
|
|
640
920
|
"ciHints": {
|
|
@@ -670,6 +950,20 @@
|
|
|
670
950
|
],
|
|
671
951
|
"verification": ".editorconfig must exist; Directory.Build.props is optional for shared build configuration."
|
|
672
952
|
},
|
|
953
|
+
"go": {
|
|
954
|
+
"exampleConfigFiles": [
|
|
955
|
+
"go.mod"
|
|
956
|
+
],
|
|
957
|
+
"exampleTools": [
|
|
958
|
+
"go vet",
|
|
959
|
+
"staticcheck"
|
|
960
|
+
],
|
|
961
|
+
"notes": "Go has compile-time type checking built in. Use 'go vet' for additional static analysis. staticcheck provides enhanced type-related checks.",
|
|
962
|
+
"requiredFiles": [
|
|
963
|
+
"go.mod"
|
|
964
|
+
],
|
|
965
|
+
"verification": "Run 'go build ./...' to verify type correctness. Use 'go vet ./...' for additional static analysis."
|
|
966
|
+
},
|
|
673
967
|
"python": {
|
|
674
968
|
"exampleConfigFiles": [
|
|
675
969
|
"mypy.ini",
|
|
@@ -690,6 +984,19 @@
|
|
|
690
984
|
],
|
|
691
985
|
"verification": "pyproject.toml (or mypy.ini) signals that mypy configuration is available for the repository."
|
|
692
986
|
},
|
|
987
|
+
"rust": {
|
|
988
|
+
"exampleConfigFiles": [
|
|
989
|
+
"Cargo.toml"
|
|
990
|
+
],
|
|
991
|
+
"exampleTools": [
|
|
992
|
+
"rustc (built-in)"
|
|
993
|
+
],
|
|
994
|
+
"notes": "Rust has compile-time type checking built into the language. The borrow checker enforces memory safety. No additional tooling needed for type safety.",
|
|
995
|
+
"requiredFiles": [
|
|
996
|
+
"Cargo.toml"
|
|
997
|
+
],
|
|
998
|
+
"verification": "Run 'cargo check' or 'cargo build' to verify type correctness. All Rust code is type-checked by default."
|
|
999
|
+
},
|
|
693
1000
|
"typescript-js": {
|
|
694
1001
|
"exampleConfigFiles": [
|
|
695
1002
|
"tsconfig.json"
|
|
@@ -713,7 +1020,9 @@
|
|
|
713
1020
|
"stacks": [
|
|
714
1021
|
"typescript-js",
|
|
715
1022
|
"csharp-dotnet",
|
|
716
|
-
"python"
|
|
1023
|
+
"python",
|
|
1024
|
+
"rust",
|
|
1025
|
+
"go"
|
|
717
1026
|
]
|
|
718
1027
|
},
|
|
719
1028
|
"ciHints": {
|
|
@@ -742,6 +1051,20 @@
|
|
|
742
1051
|
],
|
|
743
1052
|
"verification": "Dependency lockfile or package reference is present; security scanning is configured."
|
|
744
1053
|
},
|
|
1054
|
+
"go": {
|
|
1055
|
+
"exampleConfigFiles": [
|
|
1056
|
+
"go.sum"
|
|
1057
|
+
],
|
|
1058
|
+
"exampleTools": [
|
|
1059
|
+
"govulncheck",
|
|
1060
|
+
"nancy"
|
|
1061
|
+
],
|
|
1062
|
+
"notes": "Use govulncheck (official Go tool) for vulnerability scanning. go.sum locks dependency checksums for reproducible builds.",
|
|
1063
|
+
"requiredFiles": [
|
|
1064
|
+
"go.sum"
|
|
1065
|
+
],
|
|
1066
|
+
"verification": "go.sum is present; run 'govulncheck ./...' to verify security scanning."
|
|
1067
|
+
},
|
|
745
1068
|
"python": {
|
|
746
1069
|
"exampleConfigFiles": [
|
|
747
1070
|
"requirements.txt",
|
|
@@ -760,6 +1083,24 @@
|
|
|
760
1083
|
],
|
|
761
1084
|
"verification": "Dependency lockfile is present; security scanning is configured in CI or project tooling."
|
|
762
1085
|
},
|
|
1086
|
+
"rust": {
|
|
1087
|
+
"exampleConfigFiles": [
|
|
1088
|
+
"Cargo.lock",
|
|
1089
|
+
"deny.toml"
|
|
1090
|
+
],
|
|
1091
|
+
"exampleTools": [
|
|
1092
|
+
"cargo-audit",
|
|
1093
|
+
"cargo-deny"
|
|
1094
|
+
],
|
|
1095
|
+
"notes": "Use cargo-audit for vulnerability scanning or cargo-deny for comprehensive dependency checking (licenses, advisories, bans). Cargo.lock locks versions.",
|
|
1096
|
+
"optionalFiles": [
|
|
1097
|
+
"deny.toml"
|
|
1098
|
+
],
|
|
1099
|
+
"requiredFiles": [
|
|
1100
|
+
"Cargo.lock"
|
|
1101
|
+
],
|
|
1102
|
+
"verification": "Cargo.lock is present; run 'cargo audit' or 'cargo deny check' to verify security scanning."
|
|
1103
|
+
},
|
|
763
1104
|
"typescript-js": {
|
|
764
1105
|
"exampleConfigFiles": [
|
|
765
1106
|
"package-lock.json",
|
|
@@ -785,7 +1126,9 @@
|
|
|
785
1126
|
"stacks": [
|
|
786
1127
|
"typescript-js",
|
|
787
1128
|
"csharp-dotnet",
|
|
788
|
-
"python"
|
|
1129
|
+
"python",
|
|
1130
|
+
"rust",
|
|
1131
|
+
"go"
|
|
789
1132
|
]
|
|
790
1133
|
},
|
|
791
1134
|
"ciHints": {
|
|
@@ -812,6 +1155,21 @@
|
|
|
812
1155
|
],
|
|
813
1156
|
"verification": ".csproj files must specify TargetFramework; global.json is recommended to pin SDK version."
|
|
814
1157
|
},
|
|
1158
|
+
"go": {
|
|
1159
|
+
"exampleConfigFiles": [
|
|
1160
|
+
"go.mod",
|
|
1161
|
+
".go-version"
|
|
1162
|
+
],
|
|
1163
|
+
"exampleTools": [],
|
|
1164
|
+
"notes": "Specify 'go' directive in go.mod (e.g., go 1.21) to set minimum Go version. Consider .go-version for goenv users.",
|
|
1165
|
+
"optionalFiles": [
|
|
1166
|
+
".go-version"
|
|
1167
|
+
],
|
|
1168
|
+
"requiredFiles": [
|
|
1169
|
+
"go.mod"
|
|
1170
|
+
],
|
|
1171
|
+
"verification": "go.mod must contain 'go' directive specifying minimum version; .go-version is optional for local development."
|
|
1172
|
+
},
|
|
815
1173
|
"python": {
|
|
816
1174
|
"exampleConfigFiles": [
|
|
817
1175
|
"pyproject.toml",
|
|
@@ -828,6 +1186,19 @@
|
|
|
828
1186
|
],
|
|
829
1187
|
"verification": "pyproject.toml or setup.py must specify python_requires; .python-version is recommended for local development."
|
|
830
1188
|
},
|
|
1189
|
+
"rust": {
|
|
1190
|
+
"exampleConfigFiles": [
|
|
1191
|
+
"rust-toolchain.toml",
|
|
1192
|
+
"rust-toolchain"
|
|
1193
|
+
],
|
|
1194
|
+
"exampleTools": [],
|
|
1195
|
+
"notes": "Use rust-toolchain.toml to pin the Rust version (e.g., channel = 'stable' or specific version '1.75.0'). This ensures consistent builds across the team via rustup.",
|
|
1196
|
+
"optionalFiles": [
|
|
1197
|
+
"rust-toolchain.toml",
|
|
1198
|
+
"rust-toolchain"
|
|
1199
|
+
],
|
|
1200
|
+
"verification": "rust-toolchain.toml or rust-toolchain file specifies the required Rust version."
|
|
1201
|
+
},
|
|
831
1202
|
"typescript-js": {
|
|
832
1203
|
"exampleConfigFiles": [
|
|
833
1204
|
"package.json"
|
|
@@ -846,7 +1217,9 @@
|
|
|
846
1217
|
"stacks": [
|
|
847
1218
|
"typescript-js",
|
|
848
1219
|
"csharp-dotnet",
|
|
849
|
-
"python"
|
|
1220
|
+
"python",
|
|
1221
|
+
"rust",
|
|
1222
|
+
"go"
|
|
850
1223
|
]
|
|
851
1224
|
},
|
|
852
1225
|
"ciHints": {
|
|
@@ -879,6 +1252,24 @@
|
|
|
879
1252
|
],
|
|
880
1253
|
"verification": "README.md is present in the repository root; docs/ directory or DocFX configuration exists if applicable."
|
|
881
1254
|
},
|
|
1255
|
+
"go": {
|
|
1256
|
+
"exampleConfigFiles": [
|
|
1257
|
+
"README.md",
|
|
1258
|
+
"docs/"
|
|
1259
|
+
],
|
|
1260
|
+
"exampleTools": [
|
|
1261
|
+
"godoc",
|
|
1262
|
+
"pkgsite"
|
|
1263
|
+
],
|
|
1264
|
+
"notes": "Use godoc or pkgsite for API documentation from code comments. Follow Go documentation conventions.",
|
|
1265
|
+
"optionalFiles": [
|
|
1266
|
+
"docs/"
|
|
1267
|
+
],
|
|
1268
|
+
"requiredFiles": [
|
|
1269
|
+
"README.md"
|
|
1270
|
+
],
|
|
1271
|
+
"verification": "README.md is present; documentation comments exist in exported functions/types."
|
|
1272
|
+
},
|
|
882
1273
|
"python": {
|
|
883
1274
|
"exampleConfigFiles": [
|
|
884
1275
|
"README.md",
|
|
@@ -898,6 +1289,25 @@
|
|
|
898
1289
|
],
|
|
899
1290
|
"verification": "README.md is present in the repository root; docs/ directory or documentation tooling configuration exists if applicable."
|
|
900
1291
|
},
|
|
1292
|
+
"rust": {
|
|
1293
|
+
"exampleConfigFiles": [
|
|
1294
|
+
"README.md",
|
|
1295
|
+
"docs/"
|
|
1296
|
+
],
|
|
1297
|
+
"exampleTools": [
|
|
1298
|
+
"rustdoc",
|
|
1299
|
+
"mdBook"
|
|
1300
|
+
],
|
|
1301
|
+
"notes": "Use rustdoc (via 'cargo doc') for API documentation from doc comments. Consider mdBook for user guides and tutorials.",
|
|
1302
|
+
"optionalFiles": [
|
|
1303
|
+
"docs/",
|
|
1304
|
+
"book.toml"
|
|
1305
|
+
],
|
|
1306
|
+
"requiredFiles": [
|
|
1307
|
+
"README.md"
|
|
1308
|
+
],
|
|
1309
|
+
"verification": "README.md is present; run 'cargo doc' to generate API docs."
|
|
1310
|
+
},
|
|
901
1311
|
"typescript-js": {
|
|
902
1312
|
"exampleConfigFiles": [
|
|
903
1313
|
"README.md",
|
|
@@ -924,7 +1334,9 @@
|
|
|
924
1334
|
"stacks": [
|
|
925
1335
|
"typescript-js",
|
|
926
1336
|
"csharp-dotnet",
|
|
927
|
-
"python"
|
|
1337
|
+
"python",
|
|
1338
|
+
"rust",
|
|
1339
|
+
"go"
|
|
928
1340
|
]
|
|
929
1341
|
},
|
|
930
1342
|
"ciHints": {
|
|
@@ -956,6 +1368,23 @@
|
|
|
956
1368
|
],
|
|
957
1369
|
"verification": "LICENSE file is present in the repository root; CODE_OF_CONDUCT.md and CONTRIBUTING.md are present for contribution guidance."
|
|
958
1370
|
},
|
|
1371
|
+
"go": {
|
|
1372
|
+
"exampleConfigFiles": [
|
|
1373
|
+
"LICENSE",
|
|
1374
|
+
"CODE_OF_CONDUCT.md",
|
|
1375
|
+
"CONTRIBUTING.md"
|
|
1376
|
+
],
|
|
1377
|
+
"exampleTools": [],
|
|
1378
|
+
"notes": "Include license identifier in go.mod comments if needed. Document Go module conventions and testing requirements in CONTRIBUTING.md.",
|
|
1379
|
+
"optionalFiles": [
|
|
1380
|
+
"CODE_OF_CONDUCT.md",
|
|
1381
|
+
"CONTRIBUTING.md"
|
|
1382
|
+
],
|
|
1383
|
+
"requiredFiles": [
|
|
1384
|
+
"LICENSE"
|
|
1385
|
+
],
|
|
1386
|
+
"verification": "LICENSE file is present; CODE_OF_CONDUCT.md and CONTRIBUTING.md provide contribution guidance."
|
|
1387
|
+
},
|
|
959
1388
|
"python": {
|
|
960
1389
|
"exampleConfigFiles": [
|
|
961
1390
|
"LICENSE",
|
|
@@ -973,6 +1402,23 @@
|
|
|
973
1402
|
],
|
|
974
1403
|
"verification": "LICENSE file is present in the repository root; CODE_OF_CONDUCT.md and CONTRIBUTING.md are present for contribution guidance."
|
|
975
1404
|
},
|
|
1405
|
+
"rust": {
|
|
1406
|
+
"exampleConfigFiles": [
|
|
1407
|
+
"LICENSE",
|
|
1408
|
+
"CODE_OF_CONDUCT.md",
|
|
1409
|
+
"CONTRIBUTING.md"
|
|
1410
|
+
],
|
|
1411
|
+
"exampleTools": [],
|
|
1412
|
+
"notes": "Include license in Cargo.toml metadata. Document cargo workspace conventions and testing requirements in CONTRIBUTING.md.",
|
|
1413
|
+
"optionalFiles": [
|
|
1414
|
+
"CODE_OF_CONDUCT.md",
|
|
1415
|
+
"CONTRIBUTING.md"
|
|
1416
|
+
],
|
|
1417
|
+
"requiredFiles": [
|
|
1418
|
+
"LICENSE"
|
|
1419
|
+
],
|
|
1420
|
+
"verification": "LICENSE file is present; CODE_OF_CONDUCT.md and CONTRIBUTING.md provide contribution guidance."
|
|
1421
|
+
},
|
|
976
1422
|
"typescript-js": {
|
|
977
1423
|
"exampleConfigFiles": [
|
|
978
1424
|
"LICENSE",
|
|
@@ -999,7 +1445,9 @@
|
|
|
999
1445
|
"stacks": [
|
|
1000
1446
|
"typescript-js",
|
|
1001
1447
|
"csharp-dotnet",
|
|
1002
|
-
"python"
|
|
1448
|
+
"python",
|
|
1449
|
+
"rust",
|
|
1450
|
+
"go"
|
|
1003
1451
|
]
|
|
1004
1452
|
},
|
|
1005
1453
|
"ciHints": {
|
|
@@ -1025,6 +1473,16 @@
|
|
|
1025
1473
|
"notes": "Configure structured logging for your .NET services and ensure exceptions and key events are logged with useful context.",
|
|
1026
1474
|
"verification": "Confirm that a structured logging library (such as Serilog or NLog) is configured with an agreed sink and format, and that the application logs meaningful context for errors and key events."
|
|
1027
1475
|
},
|
|
1476
|
+
"go": {
|
|
1477
|
+
"exampleConfigFiles": [],
|
|
1478
|
+
"exampleTools": [
|
|
1479
|
+
"slog",
|
|
1480
|
+
"zap",
|
|
1481
|
+
"zerolog"
|
|
1482
|
+
],
|
|
1483
|
+
"notes": "Use slog (stdlib) or zap/zerolog for structured logging. Configure JSON output for production and text for development.",
|
|
1484
|
+
"verification": "Confirm that a structured logging library is configured with appropriate output format and log levels."
|
|
1485
|
+
},
|
|
1028
1486
|
"python": {
|
|
1029
1487
|
"exampleConfigFiles": [
|
|
1030
1488
|
"logging configuration files",
|
|
@@ -1037,6 +1495,15 @@
|
|
|
1037
1495
|
"notes": "Use structured logging for Python services and ensure critical paths record enough context to debug issues after the fact.",
|
|
1038
1496
|
"verification": "Confirm that a structured logging setup (such as structlog or configured logging with JSON formatting) is in place and that critical paths log enough information to debug failures in production."
|
|
1039
1497
|
},
|
|
1498
|
+
"rust": {
|
|
1499
|
+
"exampleConfigFiles": [],
|
|
1500
|
+
"exampleTools": [
|
|
1501
|
+
"tracing",
|
|
1502
|
+
"log"
|
|
1503
|
+
],
|
|
1504
|
+
"notes": "Use the tracing crate for structured logging with spans and events. Configure tracing-subscriber for output formatting.",
|
|
1505
|
+
"verification": "Confirm that tracing or log crate is configured with appropriate subscriber/logger and emits structured output."
|
|
1506
|
+
},
|
|
1040
1507
|
"typescript-js": {
|
|
1041
1508
|
"exampleConfigFiles": [],
|
|
1042
1509
|
"exampleTools": [
|
|
@@ -1055,7 +1522,9 @@
|
|
|
1055
1522
|
"stacks": [
|
|
1056
1523
|
"typescript-js",
|
|
1057
1524
|
"csharp-dotnet",
|
|
1058
|
-
"python"
|
|
1525
|
+
"python",
|
|
1526
|
+
"rust",
|
|
1527
|
+
"go"
|
|
1059
1528
|
]
|
|
1060
1529
|
},
|
|
1061
1530
|
"ciHints": {
|
|
@@ -1082,6 +1551,16 @@
|
|
|
1082
1551
|
"notes": "Create dedicated integration test projects that exercise real infrastructure or service boundaries where appropriate.",
|
|
1083
1552
|
"verification": "Confirm there is a test project or configuration dedicated to integration or API tests and run it to verify external or cross-service interactions behave as expected."
|
|
1084
1553
|
},
|
|
1554
|
+
"go": {
|
|
1555
|
+
"exampleConfigFiles": [
|
|
1556
|
+
"*_test.go"
|
|
1557
|
+
],
|
|
1558
|
+
"exampleTools": [
|
|
1559
|
+
"go test"
|
|
1560
|
+
],
|
|
1561
|
+
"notes": "Use build tags (//go:build integration) or separate test directories for integration tests. Run with 'go test -tags=integration ./...'.",
|
|
1562
|
+
"verification": "Confirm integration tests exist and run 'go test -tags=integration ./...' to verify."
|
|
1563
|
+
},
|
|
1085
1564
|
"python": {
|
|
1086
1565
|
"exampleConfigFiles": [
|
|
1087
1566
|
"tests/integration/"
|
|
@@ -1092,6 +1571,16 @@
|
|
|
1092
1571
|
"notes": "Separate integration tests from unit tests, using fixtures to handle databases, services, or other external systems.",
|
|
1093
1572
|
"verification": "Confirm there is a separate integration or API test suite (for example, a dedicated tests/integration directory) and run it to verify interactions with databases, services, or external systems."
|
|
1094
1573
|
},
|
|
1574
|
+
"rust": {
|
|
1575
|
+
"exampleConfigFiles": [
|
|
1576
|
+
"tests/"
|
|
1577
|
+
],
|
|
1578
|
+
"exampleTools": [
|
|
1579
|
+
"cargo test"
|
|
1580
|
+
],
|
|
1581
|
+
"notes": "Use the tests/ directory for integration tests. Use #[ignore] attribute for slow tests and run with 'cargo test -- --ignored'.",
|
|
1582
|
+
"verification": "Confirm tests/ directory contains integration tests and run 'cargo test' to verify cross-component flows."
|
|
1583
|
+
},
|
|
1095
1584
|
"typescript-js": {
|
|
1096
1585
|
"exampleConfigFiles": [
|
|
1097
1586
|
"jest.config.*",
|
|
@@ -1112,7 +1601,9 @@
|
|
|
1112
1601
|
"stacks": [
|
|
1113
1602
|
"typescript-js",
|
|
1114
1603
|
"csharp-dotnet",
|
|
1115
|
-
"python"
|
|
1604
|
+
"python",
|
|
1605
|
+
"rust",
|
|
1606
|
+
"go"
|
|
1116
1607
|
]
|
|
1117
1608
|
},
|
|
1118
1609
|
"ciHints": {
|
|
@@ -1137,6 +1628,17 @@
|
|
|
1137
1628
|
"notes": "Use BenchmarkDotNet or similar to track performance of critical methods or endpoints over time.",
|
|
1138
1629
|
"verification": "Identify and run the configured performance or benchmarking suite (for example, BenchmarkDotNet) and review the output to ensure it is tracked against historical or target values."
|
|
1139
1630
|
},
|
|
1631
|
+
"go": {
|
|
1632
|
+
"exampleConfigFiles": [
|
|
1633
|
+
"*_test.go"
|
|
1634
|
+
],
|
|
1635
|
+
"exampleTools": [
|
|
1636
|
+
"go test -bench",
|
|
1637
|
+
"benchstat"
|
|
1638
|
+
],
|
|
1639
|
+
"notes": "Use 'go test -bench=. ./...' for benchmarks. Use benchstat to compare results across runs.",
|
|
1640
|
+
"verification": "Run 'go test -bench=. ./...' and verify benchmark results are tracked over time."
|
|
1641
|
+
},
|
|
1140
1642
|
"python": {
|
|
1141
1643
|
"exampleConfigFiles": [
|
|
1142
1644
|
"pytest.ini",
|
|
@@ -1149,6 +1651,17 @@
|
|
|
1149
1651
|
"notes": "Use simple benchmarks or profiling runs to characterize bottlenecks and watch for regressions in critical workflows.",
|
|
1150
1652
|
"verification": "Identify and run the configured performance checks or benchmarks (for example, pytest-benchmark or cProfile-based scripts) and confirm that their results are recorded and compared over time."
|
|
1151
1653
|
},
|
|
1654
|
+
"rust": {
|
|
1655
|
+
"exampleConfigFiles": [
|
|
1656
|
+
"benches/"
|
|
1657
|
+
],
|
|
1658
|
+
"exampleTools": [
|
|
1659
|
+
"criterion",
|
|
1660
|
+
"cargo bench"
|
|
1661
|
+
],
|
|
1662
|
+
"notes": "Use criterion for statistical benchmarking. Create benches/ directory for benchmark files. Track results over time in CI.",
|
|
1663
|
+
"verification": "Run 'cargo bench' and verify benchmark results are captured and compared against baselines."
|
|
1664
|
+
},
|
|
1152
1665
|
"typescript-js": {
|
|
1153
1666
|
"exampleConfigFiles": [
|
|
1154
1667
|
"lighthouserc.json"
|
|
@@ -1167,7 +1680,9 @@
|
|
|
1167
1680
|
"stacks": [
|
|
1168
1681
|
"typescript-js",
|
|
1169
1682
|
"csharp-dotnet",
|
|
1170
|
-
"python"
|
|
1683
|
+
"python",
|
|
1684
|
+
"rust",
|
|
1685
|
+
"go"
|
|
1171
1686
|
]
|
|
1172
1687
|
},
|
|
1173
1688
|
"ciHints": {
|
|
@@ -1193,6 +1708,17 @@
|
|
|
1193
1708
|
"notes": "Use code metrics or Sonar analysis to flag overly complex methods and refactor them over time.",
|
|
1194
1709
|
"verification": "Run the configured code metrics or Sonar analysis and review complexity reports for key modules, ensuring that new or changed code stays within acceptable limits."
|
|
1195
1710
|
},
|
|
1711
|
+
"go": {
|
|
1712
|
+
"exampleConfigFiles": [
|
|
1713
|
+
".golangci.yml"
|
|
1714
|
+
],
|
|
1715
|
+
"exampleTools": [
|
|
1716
|
+
"gocyclo",
|
|
1717
|
+
"golangci-lint"
|
|
1718
|
+
],
|
|
1719
|
+
"notes": "Use gocyclo or golangci-lint's gocyclo linter to measure cyclomatic complexity. Configure threshold in .golangci.yml.",
|
|
1720
|
+
"verification": "Run 'gocyclo' or 'golangci-lint run' and review complexity reports, ensuring new code doesn't exceed thresholds."
|
|
1721
|
+
},
|
|
1196
1722
|
"python": {
|
|
1197
1723
|
"exampleConfigFiles": [
|
|
1198
1724
|
"radon.cfg"
|
|
@@ -1203,6 +1729,17 @@
|
|
|
1203
1729
|
"notes": "Use radon or similar tools to track complexity of Python functions and keep new code within acceptable limits.",
|
|
1204
1730
|
"verification": "Run the configured complexity tool (for example, radon) on the codebase and review the report to ensure new or heavily changed functions are not excessively complex."
|
|
1205
1731
|
},
|
|
1732
|
+
"rust": {
|
|
1733
|
+
"exampleConfigFiles": [
|
|
1734
|
+
"clippy.toml"
|
|
1735
|
+
],
|
|
1736
|
+
"exampleTools": [
|
|
1737
|
+
"clippy",
|
|
1738
|
+
"cargo-geiger"
|
|
1739
|
+
],
|
|
1740
|
+
"notes": "Clippy includes cognitive complexity warnings. Use cargo-geiger for unsafe code metrics. Configure thresholds in clippy.toml.",
|
|
1741
|
+
"verification": "Run 'cargo clippy' and review complexity-related warnings. Ensure new code stays within acceptable limits."
|
|
1742
|
+
},
|
|
1206
1743
|
"typescript-js": {
|
|
1207
1744
|
"exampleConfigFiles": [
|
|
1208
1745
|
".eslintrc.*",
|
|
@@ -1222,7 +1759,9 @@
|
|
|
1222
1759
|
"stacks": [
|
|
1223
1760
|
"typescript-js",
|
|
1224
1761
|
"csharp-dotnet",
|
|
1225
|
-
"python"
|
|
1762
|
+
"python",
|
|
1763
|
+
"rust",
|
|
1764
|
+
"go"
|
|
1226
1765
|
]
|
|
1227
1766
|
},
|
|
1228
1767
|
"ciHints": {
|
|
@@ -1246,6 +1785,15 @@
|
|
|
1246
1785
|
"notes": "Apply accessibility tooling to ASP.NET or Blazor front-ends and review issues alongside functional testing.",
|
|
1247
1786
|
"verification": "For web-facing apps, run the configured accessibility checks or tools against your main UI endpoints and confirm that blocking accessibility issues are addressed."
|
|
1248
1787
|
},
|
|
1788
|
+
"go": {
|
|
1789
|
+
"exampleConfigFiles": [],
|
|
1790
|
+
"exampleTools": [
|
|
1791
|
+
"axe-core",
|
|
1792
|
+
"pa11y"
|
|
1793
|
+
],
|
|
1794
|
+
"notes": "For Go web apps, use headless browser-based accessibility tools to audit rendered HTML from templates.",
|
|
1795
|
+
"verification": "For web-facing Go apps, run accessibility audits against key routes using axe or pa11y."
|
|
1796
|
+
},
|
|
1249
1797
|
"python": {
|
|
1250
1798
|
"exampleConfigFiles": [],
|
|
1251
1799
|
"exampleTools": [
|
|
@@ -1254,6 +1802,15 @@
|
|
|
1254
1802
|
"notes": "Use headless browser-based tools to scan Python-backed web UIs for accessibility issues on high-traffic routes.",
|
|
1255
1803
|
"verification": "For Python-backed web UIs, run the configured accessibility tooling (for example, pa11y or axe via a headless browser) against key routes and verify that critical issues are fixed or tracked."
|
|
1256
1804
|
},
|
|
1805
|
+
"rust": {
|
|
1806
|
+
"exampleConfigFiles": [],
|
|
1807
|
+
"exampleTools": [
|
|
1808
|
+
"axe-core",
|
|
1809
|
+
"pa11y"
|
|
1810
|
+
],
|
|
1811
|
+
"notes": "For Rust web frameworks (Actix, Axum, Rocket), use headless browser-based accessibility tools to audit rendered HTML.",
|
|
1812
|
+
"verification": "For web-facing Rust apps, run accessibility audits against key routes using axe or pa11y."
|
|
1813
|
+
},
|
|
1257
1814
|
"typescript-js": {
|
|
1258
1815
|
"exampleConfigFiles": [],
|
|
1259
1816
|
"exampleTools": [
|
|
@@ -1338,10 +1895,18 @@
|
|
|
1338
1895
|
"label": "C# / .NET",
|
|
1339
1896
|
"languageFamily": "dotnet"
|
|
1340
1897
|
},
|
|
1898
|
+
"go": {
|
|
1899
|
+
"label": "Go",
|
|
1900
|
+
"languageFamily": "go"
|
|
1901
|
+
},
|
|
1341
1902
|
"python": {
|
|
1342
1903
|
"label": "Python",
|
|
1343
1904
|
"languageFamily": "python"
|
|
1344
1905
|
},
|
|
1906
|
+
"rust": {
|
|
1907
|
+
"label": "Rust",
|
|
1908
|
+
"languageFamily": "rust"
|
|
1909
|
+
},
|
|
1345
1910
|
"typescript-js": {
|
|
1346
1911
|
"label": "TypeScript / JavaScript",
|
|
1347
1912
|
"languageFamily": "js"
|