@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
|
@@ -0,0 +1,600 @@
|
|
|
1
|
+
{
|
|
2
|
+
"checklist": {
|
|
3
|
+
"core": [
|
|
4
|
+
{
|
|
5
|
+
"ciHints": {
|
|
6
|
+
"azure-devops": {
|
|
7
|
+
"stage": "quality"
|
|
8
|
+
},
|
|
9
|
+
"github-actions": {
|
|
10
|
+
"job": "ci"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"description": "Maintain proper .gitignore and .dockerignore files to prevent committing secrets, build artifacts, or unnecessary files.",
|
|
14
|
+
"id": "gitignore-and-dockerignore",
|
|
15
|
+
"label": "Git and Docker Ignore Files",
|
|
16
|
+
"stack": {
|
|
17
|
+
"exampleConfigFiles": [
|
|
18
|
+
".gitignore",
|
|
19
|
+
".dockerignore"
|
|
20
|
+
],
|
|
21
|
+
"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.",
|
|
22
|
+
"optionalFiles": [
|
|
23
|
+
".dockerignore"
|
|
24
|
+
],
|
|
25
|
+
"requiredFiles": [
|
|
26
|
+
".gitignore"
|
|
27
|
+
],
|
|
28
|
+
"verification": ".gitignore must exist; .dockerignore is recommended when containerizing or using Docker workflows."
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"ciHints": {
|
|
33
|
+
"azure-devops": {
|
|
34
|
+
"stage": "quality"
|
|
35
|
+
},
|
|
36
|
+
"github-actions": {
|
|
37
|
+
"job": "ci"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"description": "Run static code linting to enforce consistency and catch common issues early.",
|
|
41
|
+
"id": "linting",
|
|
42
|
+
"label": "Linting",
|
|
43
|
+
"stack": {
|
|
44
|
+
"exampleConfigFiles": [
|
|
45
|
+
"clippy.toml",
|
|
46
|
+
".clippy.toml"
|
|
47
|
+
],
|
|
48
|
+
"exampleTools": [
|
|
49
|
+
"clippy",
|
|
50
|
+
"cargo-clippy"
|
|
51
|
+
],
|
|
52
|
+
"notes": "Use Clippy for comprehensive Rust linting. Configure via clippy.toml for project-specific rules. Treat warnings as errors in CI with -D warnings.",
|
|
53
|
+
"optionalFiles": [
|
|
54
|
+
"clippy.toml",
|
|
55
|
+
".clippy.toml"
|
|
56
|
+
],
|
|
57
|
+
"requiredFiles": [
|
|
58
|
+
"Cargo.toml"
|
|
59
|
+
],
|
|
60
|
+
"verification": "Clippy is available via rustup component. Run 'cargo clippy' to verify linting is configured."
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"ciHints": {
|
|
65
|
+
"azure-devops": {
|
|
66
|
+
"stage": "test"
|
|
67
|
+
},
|
|
68
|
+
"github-actions": {
|
|
69
|
+
"job": "ci"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"description": "Provide a deterministic unit test framework with a single command to run all tests.",
|
|
73
|
+
"id": "unit-test-runner",
|
|
74
|
+
"label": "Unit Test Runner",
|
|
75
|
+
"stack": {
|
|
76
|
+
"exampleConfigFiles": [
|
|
77
|
+
"Cargo.toml"
|
|
78
|
+
],
|
|
79
|
+
"exampleTools": [
|
|
80
|
+
"cargo test"
|
|
81
|
+
],
|
|
82
|
+
"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.",
|
|
83
|
+
"optionalFiles": [
|
|
84
|
+
"tests/"
|
|
85
|
+
],
|
|
86
|
+
"requiredFiles": [
|
|
87
|
+
"Cargo.toml"
|
|
88
|
+
],
|
|
89
|
+
"verification": "Run 'cargo test' to verify the test suite is configured and passing."
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"ciHints": {
|
|
94
|
+
"azure-devops": {
|
|
95
|
+
"stage": "build"
|
|
96
|
+
},
|
|
97
|
+
"github-actions": {
|
|
98
|
+
"job": "ci"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"description": "Provide a Dockerfile and, if applicable, a docker-compose file for local dev and CI parity.",
|
|
102
|
+
"id": "containerization",
|
|
103
|
+
"label": "Containerization (Docker / Docker Compose)",
|
|
104
|
+
"stack": {
|
|
105
|
+
"exampleConfigFiles": [
|
|
106
|
+
"Dockerfile",
|
|
107
|
+
"docker-compose.yml"
|
|
108
|
+
],
|
|
109
|
+
"exampleTools": [],
|
|
110
|
+
"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.",
|
|
111
|
+
"optionalFiles": [
|
|
112
|
+
"docker-compose.yml"
|
|
113
|
+
],
|
|
114
|
+
"requiredFiles": [
|
|
115
|
+
"Dockerfile"
|
|
116
|
+
],
|
|
117
|
+
"verification": "Dockerfile must be present; docker-compose.yml is optional and indicates orchestration usage."
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"ciHints": {
|
|
122
|
+
"azure-devops": {
|
|
123
|
+
"stage": "release"
|
|
124
|
+
},
|
|
125
|
+
"github-actions": {
|
|
126
|
+
"job": "release"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"description": "Use MAJOR.MINOR.PATCH versioning with clear rules and automated changelog generation based on commit history.",
|
|
130
|
+
"id": "semantic-versioning",
|
|
131
|
+
"label": "Semantic Versioning",
|
|
132
|
+
"stack": {
|
|
133
|
+
"exampleConfigFiles": [
|
|
134
|
+
"Cargo.toml",
|
|
135
|
+
"CHANGELOG.md"
|
|
136
|
+
],
|
|
137
|
+
"exampleTools": [
|
|
138
|
+
"cargo-release",
|
|
139
|
+
"semantic-release"
|
|
140
|
+
],
|
|
141
|
+
"notes": "Version is defined in Cargo.toml. Use cargo-release or semantic-release-cargo for automated versioning. Follow Conventional Commits for changelog generation.",
|
|
142
|
+
"verification": "Check that Cargo.toml version follows SemVer and verify changelog generation from commit history."
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"ciHints": {
|
|
147
|
+
"azure-devops": {
|
|
148
|
+
"stage": "quality"
|
|
149
|
+
},
|
|
150
|
+
"github-actions": {
|
|
151
|
+
"job": "ci"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"description": "Enforce structured commit messages such as Conventional Commits.",
|
|
155
|
+
"id": "commit-linting",
|
|
156
|
+
"label": "Commit Linting",
|
|
157
|
+
"stack": {
|
|
158
|
+
"exampleConfigFiles": [
|
|
159
|
+
"commitlint.config.js",
|
|
160
|
+
".cz.toml"
|
|
161
|
+
],
|
|
162
|
+
"exampleTools": [
|
|
163
|
+
"commitlint",
|
|
164
|
+
"commitizen"
|
|
165
|
+
],
|
|
166
|
+
"notes": "Use commitlint with husky or pre-commit for enforcing Conventional Commits. Works consistently with cargo workspaces.",
|
|
167
|
+
"verification": "Test that non-conforming commit messages are rejected by the configured hooks or CI check."
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"ciHints": {
|
|
172
|
+
"azure-devops": {
|
|
173
|
+
"stage": "test"
|
|
174
|
+
},
|
|
175
|
+
"github-actions": {
|
|
176
|
+
"job": "ci"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
"description": "Generate readable unit test and coverage reports and enforce a minimum coverage threshold (around 80%) for new or changed code.",
|
|
180
|
+
"id": "unit-test-reporter",
|
|
181
|
+
"label": "Unit Test Reporter / Coverage",
|
|
182
|
+
"stack": {
|
|
183
|
+
"exampleConfigFiles": [
|
|
184
|
+
"Cargo.toml"
|
|
185
|
+
],
|
|
186
|
+
"exampleTools": [
|
|
187
|
+
"cargo-tarpaulin",
|
|
188
|
+
"llvm-cov",
|
|
189
|
+
"grcov"
|
|
190
|
+
],
|
|
191
|
+
"notes": "Use cargo-tarpaulin or llvm-cov for code coverage. Generate lcov or cobertura reports for CI integration.",
|
|
192
|
+
"verification": "Run 'cargo tarpaulin' or equivalent and verify coverage reports are generated and thresholds enforced."
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"ciHints": {
|
|
197
|
+
"azure-devops": {
|
|
198
|
+
"stage": "ci"
|
|
199
|
+
},
|
|
200
|
+
"github-actions": {
|
|
201
|
+
"job": "ci"
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
"description": "Single CI pipeline that runs linting, formatting, type checking, tests, coverage, build, and containerization.",
|
|
205
|
+
"id": "ci-quality-gates",
|
|
206
|
+
"label": "CI Quality Gates",
|
|
207
|
+
"stack": {
|
|
208
|
+
"exampleConfigFiles": [
|
|
209
|
+
".github/workflows/*",
|
|
210
|
+
"azure-pipelines.yml"
|
|
211
|
+
],
|
|
212
|
+
"exampleTools": [],
|
|
213
|
+
"notes": "Use 'cargo clippy', 'cargo test', 'cargo build --release' as quality gates. Consider cargo-deny for dependency auditing.",
|
|
214
|
+
"verification": "Verify CI runs cargo clippy, cargo test, and cargo build before merging to main."
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"ciHints": {
|
|
219
|
+
"azure-devops": {
|
|
220
|
+
"stage": "quality"
|
|
221
|
+
},
|
|
222
|
+
"github-actions": {
|
|
223
|
+
"job": "ci"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"description": "Automatic code formatting to maintain a consistent style across all contributors.",
|
|
227
|
+
"id": "code-formatter",
|
|
228
|
+
"label": "Code Formatter",
|
|
229
|
+
"stack": {
|
|
230
|
+
"exampleConfigFiles": [
|
|
231
|
+
"rustfmt.toml",
|
|
232
|
+
".rustfmt.toml"
|
|
233
|
+
],
|
|
234
|
+
"exampleTools": [
|
|
235
|
+
"rustfmt"
|
|
236
|
+
],
|
|
237
|
+
"notes": "Use rustfmt (via 'cargo fmt') as the standard formatter. Configure via rustfmt.toml. Run 'cargo fmt --check' in CI.",
|
|
238
|
+
"verification": "Run 'cargo fmt --check' and confirm it reports clean formatting. Use 'cargo fmt' to auto-fix."
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"ciHints": {
|
|
243
|
+
"azure-devops": {
|
|
244
|
+
"stage": "quality"
|
|
245
|
+
},
|
|
246
|
+
"github-actions": {
|
|
247
|
+
"job": "ci"
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
"description": "Use git hooks to run linting, formatting, tests, and commit linting before changes are committed.",
|
|
251
|
+
"id": "pre-commit-hooks",
|
|
252
|
+
"label": "Pre-Commit Hooks",
|
|
253
|
+
"stack": {
|
|
254
|
+
"exampleConfigFiles": [
|
|
255
|
+
".pre-commit-config.yaml"
|
|
256
|
+
],
|
|
257
|
+
"exampleTools": [
|
|
258
|
+
"pre-commit",
|
|
259
|
+
"cargo-husky"
|
|
260
|
+
],
|
|
261
|
+
"notes": "Use pre-commit with rust hooks for cargo fmt and cargo clippy on staged files. cargo-husky is an alternative.",
|
|
262
|
+
"verification": "Inspect .pre-commit-config.yaml and confirm that hooks run cargo fmt --check and cargo clippy before commits."
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"ciHints": {
|
|
267
|
+
"azure-devops": {
|
|
268
|
+
"stage": "quality"
|
|
269
|
+
},
|
|
270
|
+
"github-actions": {
|
|
271
|
+
"job": "ci"
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
"description": "Use static type checking to catch errors before runtime and enforce strictness on new code.",
|
|
275
|
+
"id": "type-checking",
|
|
276
|
+
"label": "Type Checking",
|
|
277
|
+
"stack": {
|
|
278
|
+
"exampleConfigFiles": [
|
|
279
|
+
"Cargo.toml"
|
|
280
|
+
],
|
|
281
|
+
"exampleTools": [
|
|
282
|
+
"rustc (built-in)"
|
|
283
|
+
],
|
|
284
|
+
"notes": "Rust has compile-time type checking built into the language. The borrow checker enforces memory safety. No additional tooling needed for type safety.",
|
|
285
|
+
"requiredFiles": [
|
|
286
|
+
"Cargo.toml"
|
|
287
|
+
],
|
|
288
|
+
"verification": "Run 'cargo check' or 'cargo build' to verify type correctness. All Rust code is type-checked by default."
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"ciHints": {
|
|
293
|
+
"azure-devops": {
|
|
294
|
+
"stage": "quality"
|
|
295
|
+
},
|
|
296
|
+
"github-actions": {
|
|
297
|
+
"job": "ci"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"description": "Lock dependencies and scan regularly for known vulnerabilities; fail CI on newly introduced high-severity issues.",
|
|
301
|
+
"id": "dependency-security",
|
|
302
|
+
"label": "Dependency Management & Vulnerability Scanning",
|
|
303
|
+
"stack": {
|
|
304
|
+
"exampleConfigFiles": [
|
|
305
|
+
"Cargo.lock",
|
|
306
|
+
"deny.toml"
|
|
307
|
+
],
|
|
308
|
+
"exampleTools": [
|
|
309
|
+
"cargo-audit",
|
|
310
|
+
"cargo-deny"
|
|
311
|
+
],
|
|
312
|
+
"notes": "Use cargo-audit for vulnerability scanning or cargo-deny for comprehensive dependency checking (licenses, advisories, bans). Cargo.lock locks versions.",
|
|
313
|
+
"optionalFiles": [
|
|
314
|
+
"deny.toml"
|
|
315
|
+
],
|
|
316
|
+
"requiredFiles": [
|
|
317
|
+
"Cargo.lock"
|
|
318
|
+
],
|
|
319
|
+
"verification": "Cargo.lock is present; run 'cargo audit' or 'cargo deny check' to verify security scanning."
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"ciHints": {
|
|
324
|
+
"azure-devops": {
|
|
325
|
+
"stage": "quality"
|
|
326
|
+
},
|
|
327
|
+
"github-actions": {
|
|
328
|
+
"job": "ci"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"description": "Specify required runtime/engine versions in package manifests to ensure environment stability and prevent version-related issues across development teams.",
|
|
332
|
+
"id": "runtime-version",
|
|
333
|
+
"label": "Runtime Version Specification",
|
|
334
|
+
"stack": {
|
|
335
|
+
"exampleConfigFiles": [
|
|
336
|
+
"rust-toolchain.toml",
|
|
337
|
+
"rust-toolchain"
|
|
338
|
+
],
|
|
339
|
+
"exampleTools": [],
|
|
340
|
+
"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.",
|
|
341
|
+
"optionalFiles": [
|
|
342
|
+
"rust-toolchain.toml",
|
|
343
|
+
"rust-toolchain"
|
|
344
|
+
],
|
|
345
|
+
"verification": "rust-toolchain.toml or rust-toolchain file specifies the required Rust version."
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"ciHints": {
|
|
350
|
+
"azure-devops": {
|
|
351
|
+
"stage": "docs"
|
|
352
|
+
},
|
|
353
|
+
"github-actions": {
|
|
354
|
+
"job": "ci"
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"description": "Maintain a comprehensive README and, where applicable, auto-generated API docs to support onboarding and maintainability.",
|
|
358
|
+
"id": "documentation",
|
|
359
|
+
"label": "Documentation Standards",
|
|
360
|
+
"stack": {
|
|
361
|
+
"exampleConfigFiles": [
|
|
362
|
+
"README.md",
|
|
363
|
+
"docs/"
|
|
364
|
+
],
|
|
365
|
+
"exampleTools": [
|
|
366
|
+
"rustdoc",
|
|
367
|
+
"mdBook"
|
|
368
|
+
],
|
|
369
|
+
"notes": "Use rustdoc (via 'cargo doc') for API documentation from doc comments. Consider mdBook for user guides and tutorials.",
|
|
370
|
+
"optionalFiles": [
|
|
371
|
+
"docs/",
|
|
372
|
+
"book.toml"
|
|
373
|
+
],
|
|
374
|
+
"requiredFiles": [
|
|
375
|
+
"README.md"
|
|
376
|
+
],
|
|
377
|
+
"verification": "README.md is present; run 'cargo doc' to generate API docs."
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"ciHints": {
|
|
382
|
+
"azure-devops": {
|
|
383
|
+
"stage": "governance"
|
|
384
|
+
},
|
|
385
|
+
"github-actions": {
|
|
386
|
+
"job": "ci"
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"description": "Include standard governance files (LICENSE, CODE_OF_CONDUCT.md, CONTRIBUTING.md), branch protection rules, and review standards to define legal, ethical, and workflow expectations.",
|
|
390
|
+
"id": "repository-governance",
|
|
391
|
+
"label": "Repository Governance",
|
|
392
|
+
"stack": {
|
|
393
|
+
"exampleConfigFiles": [
|
|
394
|
+
"LICENSE",
|
|
395
|
+
"CODE_OF_CONDUCT.md",
|
|
396
|
+
"CONTRIBUTING.md"
|
|
397
|
+
],
|
|
398
|
+
"exampleTools": [],
|
|
399
|
+
"notes": "Include license in Cargo.toml metadata. Document cargo workspace conventions and testing requirements in CONTRIBUTING.md.",
|
|
400
|
+
"optionalFiles": [
|
|
401
|
+
"CODE_OF_CONDUCT.md",
|
|
402
|
+
"CONTRIBUTING.md"
|
|
403
|
+
],
|
|
404
|
+
"requiredFiles": [
|
|
405
|
+
"LICENSE"
|
|
406
|
+
],
|
|
407
|
+
"verification": "LICENSE file is present; CODE_OF_CONDUCT.md and CONTRIBUTING.md provide contribution guidance."
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
"optionalEnhancements": [
|
|
412
|
+
{
|
|
413
|
+
"ciHints": {
|
|
414
|
+
"azure-devops": {
|
|
415
|
+
"stage": "observability"
|
|
416
|
+
},
|
|
417
|
+
"github-actions": {
|
|
418
|
+
"job": "ci"
|
|
419
|
+
}
|
|
420
|
+
},
|
|
421
|
+
"description": "Standardize error handling and structured logging to make debugging and production monitoring easier.",
|
|
422
|
+
"id": "observability",
|
|
423
|
+
"label": "Observability (Logging & Error Handling)",
|
|
424
|
+
"stack": {
|
|
425
|
+
"exampleConfigFiles": [],
|
|
426
|
+
"exampleTools": [
|
|
427
|
+
"tracing",
|
|
428
|
+
"log"
|
|
429
|
+
],
|
|
430
|
+
"notes": "Use the tracing crate for structured logging with spans and events. Configure tracing-subscriber for output formatting.",
|
|
431
|
+
"verification": "Confirm that tracing or log crate is configured with appropriate subscriber/logger and emits structured output."
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
],
|
|
435
|
+
"recommended": [
|
|
436
|
+
{
|
|
437
|
+
"ciHints": {
|
|
438
|
+
"azure-devops": {
|
|
439
|
+
"stage": "test"
|
|
440
|
+
},
|
|
441
|
+
"github-actions": {
|
|
442
|
+
"job": "ci"
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"description": "Test how components interact with each other and external systems, running after unit tests with more relaxed coverage thresholds.",
|
|
446
|
+
"id": "integration-testing",
|
|
447
|
+
"label": "Integration Testing",
|
|
448
|
+
"stack": {
|
|
449
|
+
"exampleConfigFiles": [
|
|
450
|
+
"tests/"
|
|
451
|
+
],
|
|
452
|
+
"exampleTools": [
|
|
453
|
+
"cargo test"
|
|
454
|
+
],
|
|
455
|
+
"notes": "Use the tests/ directory for integration tests. Use #[ignore] attribute for slow tests and run with 'cargo test -- --ignored'.",
|
|
456
|
+
"verification": "Confirm tests/ directory contains integration tests and run 'cargo test' to verify cross-component flows."
|
|
457
|
+
}
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"ciHints": {
|
|
461
|
+
"azure-devops": {
|
|
462
|
+
"stage": "performance"
|
|
463
|
+
},
|
|
464
|
+
"github-actions": {
|
|
465
|
+
"job": "performance"
|
|
466
|
+
}
|
|
467
|
+
},
|
|
468
|
+
"description": "Establish performance baselines and monitor for regressions using lightweight benchmarks or audits in CI.",
|
|
469
|
+
"id": "performance-baselining",
|
|
470
|
+
"label": "Performance Baselines",
|
|
471
|
+
"stack": {
|
|
472
|
+
"exampleConfigFiles": [
|
|
473
|
+
"benches/"
|
|
474
|
+
],
|
|
475
|
+
"exampleTools": [
|
|
476
|
+
"criterion",
|
|
477
|
+
"cargo bench"
|
|
478
|
+
],
|
|
479
|
+
"notes": "Use criterion for statistical benchmarking. Create benches/ directory for benchmark files. Track results over time in CI.",
|
|
480
|
+
"verification": "Run 'cargo bench' and verify benchmark results are captured and compared against baselines."
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"ciHints": {
|
|
485
|
+
"azure-devops": {
|
|
486
|
+
"stage": "quality"
|
|
487
|
+
},
|
|
488
|
+
"github-actions": {
|
|
489
|
+
"job": "ci"
|
|
490
|
+
}
|
|
491
|
+
},
|
|
492
|
+
"description": "Measure cyclomatic complexity or similar metrics to keep code maintainable, starting as a warning-only check.",
|
|
493
|
+
"id": "complexity-analysis",
|
|
494
|
+
"label": "Complexity Analysis",
|
|
495
|
+
"stack": {
|
|
496
|
+
"exampleConfigFiles": [
|
|
497
|
+
"clippy.toml"
|
|
498
|
+
],
|
|
499
|
+
"exampleTools": [
|
|
500
|
+
"clippy",
|
|
501
|
+
"cargo-geiger"
|
|
502
|
+
],
|
|
503
|
+
"notes": "Clippy includes cognitive complexity warnings. Use cargo-geiger for unsafe code metrics. Configure thresholds in clippy.toml.",
|
|
504
|
+
"verification": "Run 'cargo clippy' and review complexity-related warnings. Ensure new code stays within acceptable limits."
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
"ciHints": {
|
|
509
|
+
"azure-devops": {
|
|
510
|
+
"stage": "quality"
|
|
511
|
+
},
|
|
512
|
+
"github-actions": {
|
|
513
|
+
"job": "ci"
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
"description": "Run accessibility checks on web-facing components to detect critical issues and improve inclusive UX.",
|
|
517
|
+
"id": "accessibility-auditing",
|
|
518
|
+
"label": "Accessibility Auditing",
|
|
519
|
+
"stack": {
|
|
520
|
+
"exampleConfigFiles": [],
|
|
521
|
+
"exampleTools": [
|
|
522
|
+
"axe-core",
|
|
523
|
+
"pa11y"
|
|
524
|
+
],
|
|
525
|
+
"notes": "For Rust web frameworks (Actix, Axum, Rocket), use headless browser-based accessibility tools to audit rendered HTML.",
|
|
526
|
+
"verification": "For web-facing Rust apps, run accessibility audits against key routes using axe or pa11y."
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
]
|
|
530
|
+
},
|
|
531
|
+
"ciSystems": [
|
|
532
|
+
"azure-devops",
|
|
533
|
+
"github-actions"
|
|
534
|
+
],
|
|
535
|
+
"meta": {
|
|
536
|
+
"complexityChecks": {
|
|
537
|
+
"description": "When supported by the stack, run cyclomatic complexity or similar metrics in CI as a warning-only check initially.",
|
|
538
|
+
"enabledByDefault": true
|
|
539
|
+
},
|
|
540
|
+
"defaultCoverageThreshold": 0.8,
|
|
541
|
+
"migrationGuide": [
|
|
542
|
+
{
|
|
543
|
+
"description": "Start by adding pre-commit hooks and core formatting/linting so developers get fast feedback without touching CI.",
|
|
544
|
+
"focusIds": [
|
|
545
|
+
"pre-commit-hooks",
|
|
546
|
+
"linting",
|
|
547
|
+
"code-formatter"
|
|
548
|
+
],
|
|
549
|
+
"notes": "Keep hooks fast and focused on changed files to avoid slowing down day-to-day work.",
|
|
550
|
+
"step": 1,
|
|
551
|
+
"title": "Establish Local Safety Nets First"
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"description": "Introduce CI quality gates that mirror local checks, but treat existing violations as warnings wherever possible.",
|
|
555
|
+
"focusIds": [
|
|
556
|
+
"ci-quality-gates",
|
|
557
|
+
"linting",
|
|
558
|
+
"code-formatter",
|
|
559
|
+
"commit-linting"
|
|
560
|
+
],
|
|
561
|
+
"notes": "Use diff-based tools or baselines so only new violations break builds; legacy issues remain visible but non-blocking.",
|
|
562
|
+
"step": 2,
|
|
563
|
+
"title": "Mirror Local Checks in CI (Soft-Fail on Legacy)"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"description": "Enable type-checking, coverage thresholds, and dependency/vulnerability scanning with gradual enforcement.",
|
|
567
|
+
"focusIds": [
|
|
568
|
+
"type-checking",
|
|
569
|
+
"unit-test-runner",
|
|
570
|
+
"unit-test-reporter",
|
|
571
|
+
"dependency-security"
|
|
572
|
+
],
|
|
573
|
+
"notes": "Pin tool and runtime versions in CI and containers to avoid flaky differences across environments.",
|
|
574
|
+
"step": 3,
|
|
575
|
+
"title": "Add Type Safety, Coverage, and Dependency Security"
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"description": "Add documentation standards, governance files, integration testing, performance baselines, complexity analysis, accessibility auditing, and (optionally) ML-specific practices for data-heavy Python repos.",
|
|
579
|
+
"focusIds": [
|
|
580
|
+
"documentation",
|
|
581
|
+
"repository-governance",
|
|
582
|
+
"integration-testing",
|
|
583
|
+
"performance-baselining",
|
|
584
|
+
"complexity-analysis",
|
|
585
|
+
"accessibility-auditing"
|
|
586
|
+
],
|
|
587
|
+
"notes": "Tackle recommended items in order of business value; backend-only repos can skip web-focused checks like accessibility. For AI/ML-heavy Python teams, consider extending containerization with data versioning (DVC) and unit tests with data quality checks (e.g., Great Expectations) as part of this step.",
|
|
588
|
+
"step": 4,
|
|
589
|
+
"title": "Layer in Docs, Governance, and Recommended Checks"
|
|
590
|
+
}
|
|
591
|
+
],
|
|
592
|
+
"qualityGatePolicy": {
|
|
593
|
+
"description": "New quality checks should warn on existing code and fail CI only for violations introduced in new or changed code, to reduce friction on legacy codebases.",
|
|
594
|
+
"preferSoftFailOnLegacy": true
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
"stack": "rust",
|
|
598
|
+
"stackLabel": "Rust",
|
|
599
|
+
"version": 1
|
|
600
|
+
}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GACf,eAAe,GACf,eAAe,GACf,QAAQ,GACR,MAAM,GACN,IAAI,CAAC;AACT,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,gBAAgB,CAAC;AAEzD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,SAAS,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,GAAG,CAAC;CAChB"}
|
package/package.json
CHANGED