@oddessentials/repo-standards 1.2.0 → 2.0.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/README.md +79 -1
- package/dist/config/standards.csharp-dotnet.azure-devops.json +74 -0
- package/dist/config/standards.csharp-dotnet.github-actions.json +74 -0
- package/dist/config/standards.csharp-dotnet.json +74 -0
- package/dist/config/standards.go.azure-devops.json +74 -0
- package/dist/config/standards.go.github-actions.json +74 -0
- package/dist/config/standards.go.json +74 -0
- package/dist/config/standards.json +228 -0
- package/dist/config/standards.python.azure-devops.json +76 -0
- package/dist/config/standards.python.github-actions.json +76 -0
- package/dist/config/standards.python.json +76 -0
- package/dist/config/standards.rust.azure-devops.json +74 -0
- package/dist/config/standards.rust.github-actions.json +74 -0
- package/dist/config/standards.rust.json +74 -0
- package/dist/config/standards.typescript-js.azure-devops.json +78 -0
- package/dist/config/standards.typescript-js.github-actions.json +78 -0
- package/dist/config/standards.typescript-js.json +78 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -41,6 +41,12 @@
|
|
|
41
41
|
"id": "linting",
|
|
42
42
|
"label": "Linting",
|
|
43
43
|
"stack": {
|
|
44
|
+
"bazelHints": {
|
|
45
|
+
"commands": [
|
|
46
|
+
"bazel build //... --aspects=@rules_rust//rust:defs.bzl%clippy_aspect --output_groups=clippy_checks"
|
|
47
|
+
],
|
|
48
|
+
"notes": "rules_rust includes clippy_aspect for Bazel-native Clippy linting on all Rust targets."
|
|
49
|
+
},
|
|
44
50
|
"exampleConfigFiles": [
|
|
45
51
|
"clippy.toml",
|
|
46
52
|
".clippy.toml"
|
|
@@ -73,6 +79,12 @@
|
|
|
73
79
|
"id": "unit-test-runner",
|
|
74
80
|
"label": "Unit Test Runner",
|
|
75
81
|
"stack": {
|
|
82
|
+
"bazelHints": {
|
|
83
|
+
"commands": [
|
|
84
|
+
"bazel test //..."
|
|
85
|
+
],
|
|
86
|
+
"notes": "rules_rust rust_test targets run cargo test under Bazel's hermetic environment."
|
|
87
|
+
},
|
|
76
88
|
"exampleConfigFiles": [
|
|
77
89
|
"Cargo.toml"
|
|
78
90
|
],
|
|
@@ -180,6 +192,12 @@
|
|
|
180
192
|
"id": "unit-test-reporter",
|
|
181
193
|
"label": "Unit Test Reporter / Coverage",
|
|
182
194
|
"stack": {
|
|
195
|
+
"bazelHints": {
|
|
196
|
+
"commands": [
|
|
197
|
+
"bazel coverage //..."
|
|
198
|
+
],
|
|
199
|
+
"notes": "Bazel coverage with rules_rust requires LLVM instrumentation. May need additional toolchain configuration."
|
|
200
|
+
},
|
|
183
201
|
"exampleConfigFiles": [
|
|
184
202
|
"Cargo.toml"
|
|
185
203
|
],
|
|
@@ -205,6 +223,13 @@
|
|
|
205
223
|
"id": "ci-quality-gates",
|
|
206
224
|
"label": "CI Quality Gates",
|
|
207
225
|
"stack": {
|
|
226
|
+
"bazelHints": {
|
|
227
|
+
"commands": [
|
|
228
|
+
"bazel build //...",
|
|
229
|
+
"bazel test //..."
|
|
230
|
+
],
|
|
231
|
+
"notes": "rules_rust provides rust_library, rust_test, and clippy_aspect for complete CI."
|
|
232
|
+
},
|
|
208
233
|
"exampleConfigFiles": [
|
|
209
234
|
".github/workflows/*",
|
|
210
235
|
"azure-pipelines.yml"
|
|
@@ -227,6 +252,12 @@
|
|
|
227
252
|
"id": "code-formatter",
|
|
228
253
|
"label": "Code Formatter",
|
|
229
254
|
"stack": {
|
|
255
|
+
"bazelHints": {
|
|
256
|
+
"commands": [
|
|
257
|
+
"bazel build //... --aspects=@rules_rust//rust:defs.bzl%rustfmt_aspect --output_groups=rustfmt_checks"
|
|
258
|
+
],
|
|
259
|
+
"notes": "rules_rust includes rustfmt_aspect for Bazel-native format checking."
|
|
260
|
+
},
|
|
230
261
|
"exampleConfigFiles": [
|
|
231
262
|
"rustfmt.toml",
|
|
232
263
|
".rustfmt.toml"
|
|
@@ -275,6 +306,12 @@
|
|
|
275
306
|
"id": "type-checking",
|
|
276
307
|
"label": "Type Checking",
|
|
277
308
|
"stack": {
|
|
309
|
+
"bazelHints": {
|
|
310
|
+
"commands": [
|
|
311
|
+
"bazel build //..."
|
|
312
|
+
],
|
|
313
|
+
"notes": "Rust type checking is inherent to compilation. bazel build with rules_rust enforces type safety."
|
|
314
|
+
},
|
|
278
315
|
"exampleConfigFiles": [
|
|
279
316
|
"Cargo.toml"
|
|
280
317
|
],
|
|
@@ -593,6 +630,43 @@
|
|
|
593
630
|
"github-actions"
|
|
594
631
|
],
|
|
595
632
|
"meta": {
|
|
633
|
+
"bazelIntegration": {
|
|
634
|
+
"advisoryNotice": "bazelHints are suggestions, not required execution paths. Consumers should prefer stack-native commands unless explicitly adopting Bazel.",
|
|
635
|
+
"ciContract": {
|
|
636
|
+
"configFlag": "--config=ci (define in .bazelrc)",
|
|
637
|
+
"deterministicFlags": [
|
|
638
|
+
"--nokeep_going",
|
|
639
|
+
"--test_output=errors"
|
|
640
|
+
],
|
|
641
|
+
"remoteCache": "Optional; not required for CI",
|
|
642
|
+
"versionPinning": "Use .bazelversion file for Bazelisk"
|
|
643
|
+
},
|
|
644
|
+
"description": "Bazel build executor support for quality checks. All hints are ADVISORY—stack-native commands remain the default execution path.",
|
|
645
|
+
"detectionRules": {
|
|
646
|
+
"notes": "Detection uses repo-root markers only. Nested BUILD files do not trigger Bazel mode.",
|
|
647
|
+
"optionalMarkers": [
|
|
648
|
+
".bazelrc",
|
|
649
|
+
".bazelversion"
|
|
650
|
+
],
|
|
651
|
+
"rootMarkers": [
|
|
652
|
+
"MODULE.bazel",
|
|
653
|
+
"WORKSPACE.bazel",
|
|
654
|
+
"WORKSPACE"
|
|
655
|
+
]
|
|
656
|
+
},
|
|
657
|
+
"optOut": {
|
|
658
|
+
"configPath": "meta.bazelIntegration.enabled",
|
|
659
|
+
"description": "Set meta.bazelIntegration.enabled = false in repo config to disable Bazel hints"
|
|
660
|
+
},
|
|
661
|
+
"targetConventions": {
|
|
662
|
+
"build": "bazel build //...",
|
|
663
|
+
"coverage": "bazel coverage //...",
|
|
664
|
+
"description": "Recommended target naming (not assumed to exist). These are illustrative patterns; actual targets are repo-defined.",
|
|
665
|
+
"format": "bazel run //tools/format:check",
|
|
666
|
+
"lint": "//tools/lint:lint or bazel test //... with lint aspects",
|
|
667
|
+
"test": "bazel test //..."
|
|
668
|
+
}
|
|
669
|
+
},
|
|
596
670
|
"complexityChecks": {
|
|
597
671
|
"description": "When supported by the stack, run cyclomatic complexity or similar metrics in CI as a warning-only check initially.",
|
|
598
672
|
"enabledByDefault": true
|
|
@@ -35,6 +35,15 @@
|
|
|
35
35
|
"id": "linting",
|
|
36
36
|
"label": "Linting",
|
|
37
37
|
"stack": {
|
|
38
|
+
"bazelHints": {
|
|
39
|
+
"commands": [
|
|
40
|
+
"bazel test //... --aspects=//tools:lint.bzl%eslint_aspect --output_groups=report"
|
|
41
|
+
],
|
|
42
|
+
"notes": "Wrap eslint via aspect_rules_lint or a custom sh_test rule. Aspect-based linting runs on all source files.",
|
|
43
|
+
"recommendedTargets": [
|
|
44
|
+
"//tools/lint:lint"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
38
47
|
"exampleConfigFiles": [
|
|
39
48
|
".eslintrc.*"
|
|
40
49
|
],
|
|
@@ -72,6 +81,12 @@
|
|
|
72
81
|
"id": "unit-test-runner",
|
|
73
82
|
"label": "Unit Test Runner",
|
|
74
83
|
"stack": {
|
|
84
|
+
"bazelHints": {
|
|
85
|
+
"commands": [
|
|
86
|
+
"bazel test //..."
|
|
87
|
+
],
|
|
88
|
+
"notes": "Bazel discovers and runs all test targets. Use rules_js for Jest/Vitest integration."
|
|
89
|
+
},
|
|
75
90
|
"exampleConfigFiles": [
|
|
76
91
|
"jest.config.*"
|
|
77
92
|
],
|
|
@@ -170,6 +185,12 @@
|
|
|
170
185
|
"id": "unit-test-reporter",
|
|
171
186
|
"label": "Unit Test Reporter / Coverage",
|
|
172
187
|
"stack": {
|
|
188
|
+
"bazelHints": {
|
|
189
|
+
"commands": [
|
|
190
|
+
"bazel coverage //..."
|
|
191
|
+
],
|
|
192
|
+
"notes": "Bazel coverage collects coverage data from all test targets. Use --combined_report=lcov for aggregated reports."
|
|
193
|
+
},
|
|
173
194
|
"exampleConfigFiles": [
|
|
174
195
|
"jest.config.*"
|
|
175
196
|
],
|
|
@@ -191,6 +212,13 @@
|
|
|
191
212
|
"id": "ci-quality-gates",
|
|
192
213
|
"label": "CI Quality Gates",
|
|
193
214
|
"stack": {
|
|
215
|
+
"bazelHints": {
|
|
216
|
+
"commands": [
|
|
217
|
+
"bazel build //...",
|
|
218
|
+
"bazel test //..."
|
|
219
|
+
],
|
|
220
|
+
"notes": "Replace npm run ci with Bazel commands. All quality gates run as Bazel targets."
|
|
221
|
+
},
|
|
194
222
|
"exampleConfigFiles": [
|
|
195
223
|
".github/workflows/*",
|
|
196
224
|
"azure-pipelines.yml"
|
|
@@ -210,6 +238,13 @@
|
|
|
210
238
|
"id": "code-formatter",
|
|
211
239
|
"label": "Code Formatter",
|
|
212
240
|
"stack": {
|
|
241
|
+
"bazelHints": {
|
|
242
|
+
"commands": [
|
|
243
|
+
"bazel run //tools/format:check",
|
|
244
|
+
"bazel test //...:format_test"
|
|
245
|
+
],
|
|
246
|
+
"notes": "Wrap Prettier as a run target for formatting checks. Use aspect_rules_lint for format aspects."
|
|
247
|
+
},
|
|
213
248
|
"exampleConfigFiles": [
|
|
214
249
|
".prettierrc.*",
|
|
215
250
|
".prettierignore"
|
|
@@ -253,6 +288,12 @@
|
|
|
253
288
|
"id": "type-checking",
|
|
254
289
|
"label": "Type Checking",
|
|
255
290
|
"stack": {
|
|
291
|
+
"bazelHints": {
|
|
292
|
+
"commands": [
|
|
293
|
+
"bazel build //..."
|
|
294
|
+
],
|
|
295
|
+
"notes": "TypeScript type errors surface during bazel build with rules_ts. No separate typecheck step needed."
|
|
296
|
+
},
|
|
256
297
|
"exampleConfigFiles": [
|
|
257
298
|
"tsconfig.json"
|
|
258
299
|
],
|
|
@@ -549,6 +590,43 @@
|
|
|
549
590
|
"azure-devops"
|
|
550
591
|
],
|
|
551
592
|
"meta": {
|
|
593
|
+
"bazelIntegration": {
|
|
594
|
+
"advisoryNotice": "bazelHints are suggestions, not required execution paths. Consumers should prefer stack-native commands unless explicitly adopting Bazel.",
|
|
595
|
+
"ciContract": {
|
|
596
|
+
"configFlag": "--config=ci (define in .bazelrc)",
|
|
597
|
+
"deterministicFlags": [
|
|
598
|
+
"--nokeep_going",
|
|
599
|
+
"--test_output=errors"
|
|
600
|
+
],
|
|
601
|
+
"remoteCache": "Optional; not required for CI",
|
|
602
|
+
"versionPinning": "Use .bazelversion file for Bazelisk"
|
|
603
|
+
},
|
|
604
|
+
"description": "Bazel build executor support for quality checks. All hints are ADVISORY—stack-native commands remain the default execution path.",
|
|
605
|
+
"detectionRules": {
|
|
606
|
+
"notes": "Detection uses repo-root markers only. Nested BUILD files do not trigger Bazel mode.",
|
|
607
|
+
"optionalMarkers": [
|
|
608
|
+
".bazelrc",
|
|
609
|
+
".bazelversion"
|
|
610
|
+
],
|
|
611
|
+
"rootMarkers": [
|
|
612
|
+
"MODULE.bazel",
|
|
613
|
+
"WORKSPACE.bazel",
|
|
614
|
+
"WORKSPACE"
|
|
615
|
+
]
|
|
616
|
+
},
|
|
617
|
+
"optOut": {
|
|
618
|
+
"configPath": "meta.bazelIntegration.enabled",
|
|
619
|
+
"description": "Set meta.bazelIntegration.enabled = false in repo config to disable Bazel hints"
|
|
620
|
+
},
|
|
621
|
+
"targetConventions": {
|
|
622
|
+
"build": "bazel build //...",
|
|
623
|
+
"coverage": "bazel coverage //...",
|
|
624
|
+
"description": "Recommended target naming (not assumed to exist). These are illustrative patterns; actual targets are repo-defined.",
|
|
625
|
+
"format": "bazel run //tools/format:check",
|
|
626
|
+
"lint": "//tools/lint:lint or bazel test //... with lint aspects",
|
|
627
|
+
"test": "bazel test //..."
|
|
628
|
+
}
|
|
629
|
+
},
|
|
552
630
|
"complexityChecks": {
|
|
553
631
|
"description": "When supported by the stack, run cyclomatic complexity or similar metrics in CI as a warning-only check initially.",
|
|
554
632
|
"enabledByDefault": true
|
|
@@ -35,6 +35,15 @@
|
|
|
35
35
|
"id": "linting",
|
|
36
36
|
"label": "Linting",
|
|
37
37
|
"stack": {
|
|
38
|
+
"bazelHints": {
|
|
39
|
+
"commands": [
|
|
40
|
+
"bazel test //... --aspects=//tools:lint.bzl%eslint_aspect --output_groups=report"
|
|
41
|
+
],
|
|
42
|
+
"notes": "Wrap eslint via aspect_rules_lint or a custom sh_test rule. Aspect-based linting runs on all source files.",
|
|
43
|
+
"recommendedTargets": [
|
|
44
|
+
"//tools/lint:lint"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
38
47
|
"exampleConfigFiles": [
|
|
39
48
|
".eslintrc.*"
|
|
40
49
|
],
|
|
@@ -72,6 +81,12 @@
|
|
|
72
81
|
"id": "unit-test-runner",
|
|
73
82
|
"label": "Unit Test Runner",
|
|
74
83
|
"stack": {
|
|
84
|
+
"bazelHints": {
|
|
85
|
+
"commands": [
|
|
86
|
+
"bazel test //..."
|
|
87
|
+
],
|
|
88
|
+
"notes": "Bazel discovers and runs all test targets. Use rules_js for Jest/Vitest integration."
|
|
89
|
+
},
|
|
75
90
|
"exampleConfigFiles": [
|
|
76
91
|
"jest.config.*"
|
|
77
92
|
],
|
|
@@ -170,6 +185,12 @@
|
|
|
170
185
|
"id": "unit-test-reporter",
|
|
171
186
|
"label": "Unit Test Reporter / Coverage",
|
|
172
187
|
"stack": {
|
|
188
|
+
"bazelHints": {
|
|
189
|
+
"commands": [
|
|
190
|
+
"bazel coverage //..."
|
|
191
|
+
],
|
|
192
|
+
"notes": "Bazel coverage collects coverage data from all test targets. Use --combined_report=lcov for aggregated reports."
|
|
193
|
+
},
|
|
173
194
|
"exampleConfigFiles": [
|
|
174
195
|
"jest.config.*"
|
|
175
196
|
],
|
|
@@ -191,6 +212,13 @@
|
|
|
191
212
|
"id": "ci-quality-gates",
|
|
192
213
|
"label": "CI Quality Gates",
|
|
193
214
|
"stack": {
|
|
215
|
+
"bazelHints": {
|
|
216
|
+
"commands": [
|
|
217
|
+
"bazel build //...",
|
|
218
|
+
"bazel test //..."
|
|
219
|
+
],
|
|
220
|
+
"notes": "Replace npm run ci with Bazel commands. All quality gates run as Bazel targets."
|
|
221
|
+
},
|
|
194
222
|
"exampleConfigFiles": [
|
|
195
223
|
".github/workflows/*",
|
|
196
224
|
"azure-pipelines.yml"
|
|
@@ -210,6 +238,13 @@
|
|
|
210
238
|
"id": "code-formatter",
|
|
211
239
|
"label": "Code Formatter",
|
|
212
240
|
"stack": {
|
|
241
|
+
"bazelHints": {
|
|
242
|
+
"commands": [
|
|
243
|
+
"bazel run //tools/format:check",
|
|
244
|
+
"bazel test //...:format_test"
|
|
245
|
+
],
|
|
246
|
+
"notes": "Wrap Prettier as a run target for formatting checks. Use aspect_rules_lint for format aspects."
|
|
247
|
+
},
|
|
213
248
|
"exampleConfigFiles": [
|
|
214
249
|
".prettierrc.*",
|
|
215
250
|
".prettierignore"
|
|
@@ -253,6 +288,12 @@
|
|
|
253
288
|
"id": "type-checking",
|
|
254
289
|
"label": "Type Checking",
|
|
255
290
|
"stack": {
|
|
291
|
+
"bazelHints": {
|
|
292
|
+
"commands": [
|
|
293
|
+
"bazel build //..."
|
|
294
|
+
],
|
|
295
|
+
"notes": "TypeScript type errors surface during bazel build with rules_ts. No separate typecheck step needed."
|
|
296
|
+
},
|
|
256
297
|
"exampleConfigFiles": [
|
|
257
298
|
"tsconfig.json"
|
|
258
299
|
],
|
|
@@ -549,6 +590,43 @@
|
|
|
549
590
|
"github-actions"
|
|
550
591
|
],
|
|
551
592
|
"meta": {
|
|
593
|
+
"bazelIntegration": {
|
|
594
|
+
"advisoryNotice": "bazelHints are suggestions, not required execution paths. Consumers should prefer stack-native commands unless explicitly adopting Bazel.",
|
|
595
|
+
"ciContract": {
|
|
596
|
+
"configFlag": "--config=ci (define in .bazelrc)",
|
|
597
|
+
"deterministicFlags": [
|
|
598
|
+
"--nokeep_going",
|
|
599
|
+
"--test_output=errors"
|
|
600
|
+
],
|
|
601
|
+
"remoteCache": "Optional; not required for CI",
|
|
602
|
+
"versionPinning": "Use .bazelversion file for Bazelisk"
|
|
603
|
+
},
|
|
604
|
+
"description": "Bazel build executor support for quality checks. All hints are ADVISORY—stack-native commands remain the default execution path.",
|
|
605
|
+
"detectionRules": {
|
|
606
|
+
"notes": "Detection uses repo-root markers only. Nested BUILD files do not trigger Bazel mode.",
|
|
607
|
+
"optionalMarkers": [
|
|
608
|
+
".bazelrc",
|
|
609
|
+
".bazelversion"
|
|
610
|
+
],
|
|
611
|
+
"rootMarkers": [
|
|
612
|
+
"MODULE.bazel",
|
|
613
|
+
"WORKSPACE.bazel",
|
|
614
|
+
"WORKSPACE"
|
|
615
|
+
]
|
|
616
|
+
},
|
|
617
|
+
"optOut": {
|
|
618
|
+
"configPath": "meta.bazelIntegration.enabled",
|
|
619
|
+
"description": "Set meta.bazelIntegration.enabled = false in repo config to disable Bazel hints"
|
|
620
|
+
},
|
|
621
|
+
"targetConventions": {
|
|
622
|
+
"build": "bazel build //...",
|
|
623
|
+
"coverage": "bazel coverage //...",
|
|
624
|
+
"description": "Recommended target naming (not assumed to exist). These are illustrative patterns; actual targets are repo-defined.",
|
|
625
|
+
"format": "bazel run //tools/format:check",
|
|
626
|
+
"lint": "//tools/lint:lint or bazel test //... with lint aspects",
|
|
627
|
+
"test": "bazel test //..."
|
|
628
|
+
}
|
|
629
|
+
},
|
|
552
630
|
"complexityChecks": {
|
|
553
631
|
"description": "When supported by the stack, run cyclomatic complexity or similar metrics in CI as a warning-only check initially.",
|
|
554
632
|
"enabledByDefault": true
|
|
@@ -41,6 +41,15 @@
|
|
|
41
41
|
"id": "linting",
|
|
42
42
|
"label": "Linting",
|
|
43
43
|
"stack": {
|
|
44
|
+
"bazelHints": {
|
|
45
|
+
"commands": [
|
|
46
|
+
"bazel test //... --aspects=//tools:lint.bzl%eslint_aspect --output_groups=report"
|
|
47
|
+
],
|
|
48
|
+
"notes": "Wrap eslint via aspect_rules_lint or a custom sh_test rule. Aspect-based linting runs on all source files.",
|
|
49
|
+
"recommendedTargets": [
|
|
50
|
+
"//tools/lint:lint"
|
|
51
|
+
]
|
|
52
|
+
},
|
|
44
53
|
"exampleConfigFiles": [
|
|
45
54
|
".eslintrc.*"
|
|
46
55
|
],
|
|
@@ -81,6 +90,12 @@
|
|
|
81
90
|
"id": "unit-test-runner",
|
|
82
91
|
"label": "Unit Test Runner",
|
|
83
92
|
"stack": {
|
|
93
|
+
"bazelHints": {
|
|
94
|
+
"commands": [
|
|
95
|
+
"bazel test //..."
|
|
96
|
+
],
|
|
97
|
+
"notes": "Bazel discovers and runs all test targets. Use rules_js for Jest/Vitest integration."
|
|
98
|
+
},
|
|
84
99
|
"exampleConfigFiles": [
|
|
85
100
|
"jest.config.*"
|
|
86
101
|
],
|
|
@@ -191,6 +206,12 @@
|
|
|
191
206
|
"id": "unit-test-reporter",
|
|
192
207
|
"label": "Unit Test Reporter / Coverage",
|
|
193
208
|
"stack": {
|
|
209
|
+
"bazelHints": {
|
|
210
|
+
"commands": [
|
|
211
|
+
"bazel coverage //..."
|
|
212
|
+
],
|
|
213
|
+
"notes": "Bazel coverage collects coverage data from all test targets. Use --combined_report=lcov for aggregated reports."
|
|
214
|
+
},
|
|
194
215
|
"exampleConfigFiles": [
|
|
195
216
|
"jest.config.*"
|
|
196
217
|
],
|
|
@@ -215,6 +236,13 @@
|
|
|
215
236
|
"id": "ci-quality-gates",
|
|
216
237
|
"label": "CI Quality Gates",
|
|
217
238
|
"stack": {
|
|
239
|
+
"bazelHints": {
|
|
240
|
+
"commands": [
|
|
241
|
+
"bazel build //...",
|
|
242
|
+
"bazel test //..."
|
|
243
|
+
],
|
|
244
|
+
"notes": "Replace npm run ci with Bazel commands. All quality gates run as Bazel targets."
|
|
245
|
+
},
|
|
218
246
|
"exampleConfigFiles": [
|
|
219
247
|
".github/workflows/*",
|
|
220
248
|
"azure-pipelines.yml"
|
|
@@ -237,6 +265,13 @@
|
|
|
237
265
|
"id": "code-formatter",
|
|
238
266
|
"label": "Code Formatter",
|
|
239
267
|
"stack": {
|
|
268
|
+
"bazelHints": {
|
|
269
|
+
"commands": [
|
|
270
|
+
"bazel run //tools/format:check",
|
|
271
|
+
"bazel test //...:format_test"
|
|
272
|
+
],
|
|
273
|
+
"notes": "Wrap Prettier as a run target for formatting checks. Use aspect_rules_lint for format aspects."
|
|
274
|
+
},
|
|
240
275
|
"exampleConfigFiles": [
|
|
241
276
|
".prettierrc.*",
|
|
242
277
|
".prettierignore"
|
|
@@ -286,6 +321,12 @@
|
|
|
286
321
|
"id": "type-checking",
|
|
287
322
|
"label": "Type Checking",
|
|
288
323
|
"stack": {
|
|
324
|
+
"bazelHints": {
|
|
325
|
+
"commands": [
|
|
326
|
+
"bazel build //..."
|
|
327
|
+
],
|
|
328
|
+
"notes": "TypeScript type errors surface during bazel build with rules_ts. No separate typecheck step needed."
|
|
329
|
+
},
|
|
289
330
|
"exampleConfigFiles": [
|
|
290
331
|
"tsconfig.json"
|
|
291
332
|
],
|
|
@@ -618,6 +659,43 @@
|
|
|
618
659
|
"github-actions"
|
|
619
660
|
],
|
|
620
661
|
"meta": {
|
|
662
|
+
"bazelIntegration": {
|
|
663
|
+
"advisoryNotice": "bazelHints are suggestions, not required execution paths. Consumers should prefer stack-native commands unless explicitly adopting Bazel.",
|
|
664
|
+
"ciContract": {
|
|
665
|
+
"configFlag": "--config=ci (define in .bazelrc)",
|
|
666
|
+
"deterministicFlags": [
|
|
667
|
+
"--nokeep_going",
|
|
668
|
+
"--test_output=errors"
|
|
669
|
+
],
|
|
670
|
+
"remoteCache": "Optional; not required for CI",
|
|
671
|
+
"versionPinning": "Use .bazelversion file for Bazelisk"
|
|
672
|
+
},
|
|
673
|
+
"description": "Bazel build executor support for quality checks. All hints are ADVISORY—stack-native commands remain the default execution path.",
|
|
674
|
+
"detectionRules": {
|
|
675
|
+
"notes": "Detection uses repo-root markers only. Nested BUILD files do not trigger Bazel mode.",
|
|
676
|
+
"optionalMarkers": [
|
|
677
|
+
".bazelrc",
|
|
678
|
+
".bazelversion"
|
|
679
|
+
],
|
|
680
|
+
"rootMarkers": [
|
|
681
|
+
"MODULE.bazel",
|
|
682
|
+
"WORKSPACE.bazel",
|
|
683
|
+
"WORKSPACE"
|
|
684
|
+
]
|
|
685
|
+
},
|
|
686
|
+
"optOut": {
|
|
687
|
+
"configPath": "meta.bazelIntegration.enabled",
|
|
688
|
+
"description": "Set meta.bazelIntegration.enabled = false in repo config to disable Bazel hints"
|
|
689
|
+
},
|
|
690
|
+
"targetConventions": {
|
|
691
|
+
"build": "bazel build //...",
|
|
692
|
+
"coverage": "bazel coverage //...",
|
|
693
|
+
"description": "Recommended target naming (not assumed to exist). These are illustrative patterns; actual targets are repo-defined.",
|
|
694
|
+
"format": "bazel run //tools/format:check",
|
|
695
|
+
"lint": "//tools/lint:lint or bazel test //... with lint aspects",
|
|
696
|
+
"test": "bazel test //..."
|
|
697
|
+
}
|
|
698
|
+
},
|
|
621
699
|
"complexityChecks": {
|
|
622
700
|
"description": "When supported by the stack, run cyclomatic complexity or similar metrics in CI as a warning-only check initially.",
|
|
623
701
|
"enabledByDefault": true
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bazel execution hints for individual checklist items.
|
|
3
|
+
* Commands are actual Bazel invocations (e.g., "bazel test //..."),
|
|
4
|
+
* NOT assumed pattern labels.
|
|
5
|
+
*/
|
|
6
|
+
export interface BazelHints {
|
|
7
|
+
/** Bazel commands to run (e.g., "bazel test //...", "bazel run //tools/lint") */
|
|
8
|
+
commands?: string[];
|
|
9
|
+
/** Recommended target conventions (documentation only, not assumed to exist) */
|
|
10
|
+
recommendedTargets?: string[];
|
|
11
|
+
/** Usage notes for this check in Bazel context */
|
|
12
|
+
notes?: string;
|
|
13
|
+
}
|
|
1
14
|
export type StackId = "typescript-js" | "csharp-dotnet" | "python" | "rust" | "go";
|
|
2
15
|
export type CiSystem = "azure-devops" | "github-actions";
|
|
3
16
|
export interface MasterJson {
|
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,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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,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