Add C# nameing convention linter rules - batch1 - #4867
Conversation
|
All changed packages have been documented.
Show changes
|
|
You can try these changes here
|
commit: |
⚡ Benchmark Results
Full details – comparing
|
| Metric | Baseline | Current | Change |
|---|---|---|---|
| total | 🔴 1.00s | 🔴 1.08s | +7.2% 🔴 |
| loader | 🟡 304.5ms | 🟡 328.4ms | +7.8% 🔴 |
| resolver | 🟢 40.1ms | 🟢 43.9ms | +9.5% 🔴 |
| checker | 🟡 361.4ms | 🟡 389.2ms | +7.7% 🔴 |
| validation | 🟢 84.2ms | 🟢 88.5ms | +5.1% 🔴 |
| ↳ validation/@azure-tools/typespec-azure-core | 🟡 12.5ms | 🟡 13.3ms | +6.9% |
| ↳ validation/@typespec/http | 🟡 15.4ms | 🟡 16.3ms | +5.5% |
| ↳ validation/@typespec/rest | 🟢 1.6ms | 🟢 1.8ms | +10.0% |
| ↳ validation/@typespec/versioning | 🔴 50.8ms | 🔴 53.0ms | +4.4% |
| ↳ validation/compiler | 🟢 3.8ms | 🟢 4.0ms | +4.9% |
| linter | 🟡 213.4ms | 🟡 226.7ms | +6.2% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/auth-required | 🟢 0.1ms | 🟢 0.1ms | +11.9% |
| ↳ linter/@azure-tools/typespec-azure-core/bad-record-type | 🟢 0.6ms | 🟢 0.6ms | +3.9% |
| ↳ linter/@azure-tools/typespec-azure-core/byos | 🟢 8.3ms | 🟢 8.7ms | +5.3% |
| ↳ linter/@azure-tools/typespec-azure-core/casing-style | 🟢 1.4ms | 🟢 1.5ms | +3.2% |
| ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance | 🟢 0.2ms | 🟢 0.2ms | +5.6% |
| ↳ linter/@azure-tools/typespec-azure-core/documentation-required | 🟢 1.9ms | 🟢 2.0ms | +5.4% |
| ↳ linter/@azure-tools/typespec-azure-core/friendly-name | 🟢 1.4ms | 🟢 1.4ms | +4.7% |
| ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required | 🟢 0.4ms | 🟢 0.4ms | +5.0% |
| ↳ linter/@azure-tools/typespec-azure-core/known-encoding | 🟢 0.5ms | 🟢 0.5ms | +5.5% |
| ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required | 🟢 0.8ms | 🟢 0.9ms | +6.4% |
| ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch | 🟢 0.7ms | 🟢 0.7ms | +5.3% |
| ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union | 🟢 1.0ms | 🟢 1.0ms | +4.9% |
| ↳ linter/@azure-tools/typespec-azure-core/no-enum | 🟢 0.2ms | 🟢 0.3ms | +5.8% |
| ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes | 🟢 0.3ms | 🟢 0.3ms | +5.7% |
| ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops | 🟢 0.2ms | 🟢 0.2ms | +5.4% |
| ↳ linter/@azure-tools/typespec-azure-core/no-format | 🟢 0.8ms | 🟢 0.9ms | +4.6% |
| ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric | 🟢 0.8ms | 🟢 0.9ms | +5.4% |
| ↳ linter/@azure-tools/typespec-azure-core/no-header-explode | 🔴 26.5ms | 🔴 28.4ms | +7.3% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage | 🟢 2.1ms | 🟢 2.2ms | +4.7% |
| ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator | 🟢 0.2ms | 🟢 0.3ms | +8.9% |
| ↳ linter/@azure-tools/typespec-azure-core/no-nullable | 🟢 0.4ms | 🟢 0.4ms | +6.5% |
| ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime | 🟢 2.0ms | 🟢 2.1ms | +5.0% |
| ↳ linter/@azure-tools/typespec-azure-core/no-openapi | 🟢 2.3ms | 🟢 2.4ms | +2.8% |
| ↳ linter/@azure-tools/typespec-azure-core/no-private-usage | 🟢 3.2ms | 🟢 3.3ms | +4.7% |
| ↳ linter/@azure-tools/typespec-azure-core/no-query-explode | 🔴 27.6ms | 🔴 29.6ms | +7.4% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-response-body | 🔴 33.2ms | 🔴 35.4ms | +6.7% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces | 🟢 0.1ms | 🟢 0.1ms | +10.6% |
| ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch | 🟢 7.6ms | 🟢 8.1ms | +7.1% |
| ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params | 🟢 0.4ms | 🟢 0.4ms | +6.0% |
| ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator | 🟢 0.1ms | 🟢 0.2ms | +8.3% |
| ↳ linter/@azure-tools/typespec-azure-core/no-unknown | 🟢 0.3ms | 🟢 0.4ms | +7.0% |
| ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union | 🟢 0.8ms | 🟢 0.8ms | +4.8% |
| ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version | 🟢 0.4ms | 🟢 0.4ms | +4.0% |
| ↳ linter/@azure-tools/typespec-azure-core/request-body-problem | 🟢 0.5ms | 🟢 0.5ms | +2.9% |
| ↳ linter/@azure-tools/typespec-azure-core/require-versioned | 🟢 0.1ms | 🟢 0.1ms | +5.0% |
| ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem | 🔴 32.3ms | 🔴 34.1ms | +5.6% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body | 🟢 0.7ms | 🟢 0.7ms | +6.2% |
| ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model | 🟢 0.4ms | 🟢 0.5ms | +5.2% |
| ↳ linter/@azure-tools/typespec-azure-core/use-standard-names | 🟢 7.5ms | 🟢 8.1ms | +7.5% |
| ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations | 🟢 0.3ms | 🟢 0.3ms | +3.4% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources | 🔴 20.3ms | 🔴 22.1ms | +8.7% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations | 🟢 0.2ms | 🟢 0.3ms | +2.6% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version | 🟡 12.0ms | 🟡 12.9ms | +7.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key | 🟢 0.2ms | 🟢 0.2ms | +7.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage | 🟢 0.1ms | 🟢 0.1ms | +8.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes | 🟢 5.2ms | 🟢 4.6ms | -12.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage | 🟢 0.1ms | 🟢 0.1ms | +6.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts | 🟡 16.9ms | 🟡 17.9ms | +5.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record | 🟢 0.6ms | 🟢 0.7ms | +5.5% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes | 🟢 1.4ms | 🟢 1.5ms | +5.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes | 🟢 0.2ms | 🟢 0.2ms | +0.7% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment | 🟢 0.4ms | 🟢 0.5ms | +9.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property | 🟢 0.4ms | 🟢 0.4ms | +7.5% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator | 🟢 0.1ms | 🟢 0.1ms | +9.9% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb | 🟢 0.2ms | 🟢 0.2ms | +11.7% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property | 🟢 0.3ms | 🟢 0.3ms | +8.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format | 🟢 0.2ms | 🟢 0.2ms | +1.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars | 🟢 0.5ms | 🟢 0.5ms | +5.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern | 🟢 0.1ms | 🟢 0.1ms | +6.9% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation | 🟢 0.5ms | 🟢 0.6ms | +5.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response | 🟢 8.9ms | 🟢 9.5ms | +7.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch | 🟢 0.8ms | 🟢 0.8ms | +3.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars | 🟢 0.4ms | 🟢 0.4ms | +5.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state | 🟢 0.4ms | 🟢 0.5ms | +9.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels | 🟢 0.2ms | 🟢 0.2ms | +6.9% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties | 🟢 0.4ms | 🟢 0.4ms | +5.4% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation | 🟢 0.1ms | 🟢 0.1ms | +15.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header | 🟡 19.5ms | 🔴 21.3ms | +9.1% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint | 🟢 0.1ms | 🟢 0.2ms | +8.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers | 🟢 1.0ms | 🟢 1.0ms | +4.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model | 🟢 0.3ms | 🟢 0.3ms | +10.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-override-props | 🟢 0.3ms | 🟢 0.3ms | +4.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property | 🟢 0.2ms | 🟢 0.2ms | +8.7% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation | 🟢 0.5ms | 🟢 0.5ms | +8.9% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body | 🔴 29.5ms | 🔴 31.8ms | +7.5% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope | 🟢 0.4ms | 🟢 0.4ms | +3.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name | 🟢 0.4ms | 🟢 0.4ms | +2.7% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop | 🟢 5.3ms | 🟢 5.6ms | +6.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type | 🟢 0.7ms | 🟢 0.7ms | +4.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression | 🟢 0.3ms | 🟢 0.3ms | +0.8% |
| ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict | 🟢 2.3ms | 🟢 2.4ms | +4.8% |
| ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix | 🟢 1.7ms | 🟢 1.7ms | +3.4% |
| emit | 🔴 5.98s | 🔴 6.32s | +5.7% 🔴 |
| ↳ emit/@Azure-Tools | 🟢 0.0ms | 🟢 0.0ms | +0.0% |
| ↳ emit/@azure-tools/typespec-autorest | 🟢 124.1ms | 🟢 131.0ms | +5.6% 🔴 |
| ↳ emit/@azure-tools/typespec-python | 🔴 2.23s | 🔴 2.36s | +5.8% 🔴 |
| ↳ emit/@typespec | 🟢 0.0ms | 🟢 0.0ms | +0.0% |
| ↳ emit/@typespec/http-client-js | 🔴 566.1ms | 🔴 596.1ms | +5.3% 🔴 |
| ↳ emit/@typespec/openapi3 | 🟢 106.7ms | 🟢 112.1ms | +5.1% 🔴 |
| ↳ emit/@typespec/openapi3/compute | 🟢 92.7ms | 🟢 97.2ms | +4.9% |
| ↳ emit/@typespec/openapi3/write | 🟢 13.7ms | 🟢 14.6ms | +6.1% |
Averaged across 3 specs (azure-arm-resource-manager, azure-core-dataplane, azure-full).
Threshold: changes > ±5% are highlighted.
🟢 Fast · 🟡 Moderate (stages >200ms, rules >10ms) · 🔴 Slow (stages >400ms, rules >20ms)
49d785c to
8aaa585
Compare
⚡ External Spec Benchmark Results
Full details – comparing
|
| Metric | Baseline | Current | Change |
|---|---|---|---|
| total | 🔴 6.97s | 🔴 7.65s | +9.8% 🔴 |
| loader | 🔴 2.04s | 🔴 2.32s | +13.7% 🔴 |
| resolver | 🟢 152.3ms | 🟢 156.4ms | +2.7% |
| checker | 🔴 1.55s | 🔴 1.66s | +7.2% 🔴 |
| validation | 🟡 382.7ms | 🔴 401.9ms | +5.0% 🔴 |
| ↳ validation/@azure-tools/typespec-azure-core | 🟢 0.2ms | 🟢 0.2ms | -6.1% |
| ↳ validation/@azure-tools/typespec-client-generator-core | 🔴 20.4ms | 🔴 22.4ms | +9.8% 🔴 |
| ↳ validation/@typespec/http | 🔴 158.3ms | 🔴 171.5ms | +8.3% 🔴 |
| ↳ validation/@typespec/rest | 🔴 23.4ms | 🔴 24.2ms | +3.2% |
| ↳ validation/@typespec/versioning | 🔴 154.3ms | 🔴 158.4ms | +2.7% |
| ↳ validation/compiler | 🔴 24.7ms | 🔴 25.2ms | +2.3% |
| linter | 🔴 2.83s | 🔴 3.12s | +10.0% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/auth-required | 🟢 0.1ms | 🟢 0.1ms | +3.9% |
| ↳ linter/@azure-tools/typespec-azure-core/byos | 🔴 131.4ms | 🔴 146.3ms | +11.3% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/casing-style | 🟢 9.6ms | 🟡 10.4ms | +8.0% |
| ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance | 🟢 1.0ms | 🟢 1.1ms | +13.4% |
| ↳ linter/@azure-tools/typespec-azure-core/documentation-required | 🟡 14.1ms | 🟡 16.1ms | +14.1% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/friendly-name | 🟡 10.4ms | 🟡 11.1ms | +6.8% |
| ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required | 🟢 3.2ms | 🟢 3.5ms | +10.4% |
| ↳ linter/@azure-tools/typespec-azure-core/known-encoding | 🟢 2.9ms | 🟢 3.1ms | +6.7% |
| ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required | 🟢 5.5ms | 🟢 6.2ms | +12.9% |
| ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch | 🟢 3.3ms | 🟢 3.5ms | +8.7% |
| ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union | 🟢 5.2ms | 🟢 5.9ms | +14.9% |
| ↳ linter/@azure-tools/typespec-azure-core/no-enum | 🟢 0.4ms | 🟢 0.5ms | +12.8% |
| ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes | 🟢 2.1ms | 🟢 2.1ms | +4.2% |
| ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops | 🟢 1.5ms | 🟢 1.6ms | +7.4% |
| ↳ linter/@azure-tools/typespec-azure-core/no-format | 🟢 7.3ms | 🟢 8.1ms | +10.9% |
| ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric | 🟢 3.6ms | 🟢 3.8ms | +4.2% |
| ↳ linter/@azure-tools/typespec-azure-core/no-header-explode | 🔴 282.9ms | 🔴 314.5ms | +11.2% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage | 🔴 22.5ms | 🔴 22.5ms | +0.2% |
| ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator | 🟢 0.8ms | 🟢 1.0ms | +20.5% |
| ↳ linter/@azure-tools/typespec-azure-core/no-nullable | 🟢 2.9ms | 🟢 3.2ms | +9.5% |
| ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime | 🟡 15.2ms | 🟡 15.9ms | +4.7% |
| ↳ linter/@azure-tools/typespec-azure-core/no-openapi | 🔴 36.5ms | 🔴 37.8ms | +3.7% |
| ↳ linter/@azure-tools/typespec-azure-core/no-private-usage | 🔴 35.1ms | 🔴 39.7ms | +13.1% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-query-explode | 🔴 290.7ms | 🔴 320.5ms | +10.3% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces | 🟡 16.4ms | 🟡 19.2ms | +17.0% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch | 🔴 128.6ms | 🔴 141.3ms | +9.8% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params | 🟢 1.9ms | 🟢 1.9ms | +2.3% |
| ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator | 🟢 0.6ms | 🟢 0.7ms | +15.0% |
| ↳ linter/@azure-tools/typespec-azure-core/no-unknown | 🟢 2.2ms | 🟢 2.4ms | +10.2% |
| ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union | 🟢 5.4ms | 🟢 5.9ms | +9.2% |
| ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version | 🟢 3.3ms | 🟢 3.5ms | +6.3% |
| ↳ linter/@azure-tools/typespec-azure-core/request-body-problem | 🟢 5.1ms | 🟢 5.6ms | +8.0% |
| ↳ linter/@azure-tools/typespec-azure-core/require-versioned | 🟢 0.1ms | 🟢 0.1ms | +2.5% |
| ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem | 🔴 324.9ms | 🔴 359.9ms | +10.8% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body | 🟢 0.7ms | 🟢 0.8ms | +15.1% |
| ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model | 🟢 3.4ms | 🟢 3.7ms | +6.6% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources | 🔴 66.9ms | 🔴 73.1ms | +9.3% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations | 🟢 0.2ms | 🟢 0.2ms | -2.5% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version | 🔴 127.7ms | 🔴 136.7ms | +7.1% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key | 🟢 0.9ms | 🟢 1.1ms | +21.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage | 🟢 0.6ms | 🟢 0.7ms | +14.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes | 🟢 3.7ms | 🟢 4.0ms | +8.7% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-feature-file-usage-discourage | 🟢 0.0ms | 🟢 0.0ms | +3.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts | 🔴 146.4ms | 🔴 161.7ms | +10.4% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record | 🟢 3.4ms | 🟢 3.6ms | +6.7% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes | 🟢 9.9ms | 🟡 11.1ms | +12.4% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes | 🟢 0.3ms | 🟢 0.3ms | +3.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment | 🟢 4.4ms | 🟢 5.0ms | +12.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property | 🟢 1.0ms | 🟢 1.2ms | +16.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator | 🟢 0.5ms | 🟢 0.6ms | +14.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb | 🟢 1.5ms | 🟢 1.6ms | +7.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property | 🟢 0.8ms | 🟢 0.9ms | +13.4% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format | 🟢 0.3ms | 🟢 0.3ms | +4.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars | 🟢 1.9ms | 🟢 2.2ms | +15.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern | 🟢 0.2ms | 🟢 0.3ms | +6.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation | 🟢 3.3ms | 🟢 3.6ms | +8.6% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response | 🔴 66.4ms | 🔴 73.7ms | +11.0% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch | 🟢 4.1ms | 🟢 5.0ms | +20.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars | 🟢 1.4ms | 🟢 1.5ms | +9.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state | 🟢 0.9ms | 🟢 1.1ms | +16.6% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels | 🟢 0.8ms | 🟢 0.9ms | +14.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties | 🟢 1.5ms | 🟢 1.5ms | +5.6% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation | 🟢 0.1ms | 🟢 0.1ms | +9.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header | 🔴 287.6ms | 🔴 323.4ms | +12.5% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint | 🟢 0.2ms | 🟢 0.2ms | +7.9% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers | 🟢 4.4ms | 🟢 4.7ms | +7.0% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model | 🟢 0.7ms | 🟢 0.8ms | +13.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-override-props | 🟢 0.7ms | 🟢 0.8ms | +11.4% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-reserved-resource-property | 🟢 0.7ms | 🟢 0.8ms | +9.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation | 🟢 2.2ms | 🟢 2.9ms | +29.2% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body | 🔴 473.8ms | 🔴 518.5ms | +9.5% 🔴 |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope | 🟢 1.5ms | 🟢 1.6ms | +9.7% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name | 🟢 1.6ms | 🟢 1.7ms | +6.3% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop | 🔴 82.4ms | 🔴 83.9ms | +1.8% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type | 🟢 4.1ms | 🟢 4.3ms | +4.1% |
| ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression | 🟢 0.3ms | 🟢 0.3ms | -0.8% |
| ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict | 🔴 29.7ms | 🔴 33.0ms | +11.4% 🔴 |
| ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix | 🟢 6.6ms | 🟢 6.9ms | +3.6% |
| emit | 🔴 11.50s | 🔴 12.05s | +4.7% |
| ↳ emit/@Azure-Tools | 🟢 0.0ms | 🟢 0.0ms | +0.0% |
| ↳ emit/@azure-tools/typespec-client-generator-core | 🔴 5.75s | 🔴 6.02s | +4.7% |
Averaged across 3 specs (compute, network, web).
Threshold: changes > ±5% are highlighted.
🟢 Fast · 🟡 Moderate (stages >200ms, rules >10ms) · 🔴 Slow (stages >400ms, rules >20ms)
8aaa585 to
8a257fc
Compare
Pin typespec-client-generator-core and typespec-azure-rulesets to the immutable Azure/typespec-azure#4867 pkg.pr.new build so TypeSpec validation exercises the new C# naming rules. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 869821a6-1f1a-4777-ab20-d49b8490c93e
haiyuazhang
left a comment
There was a problem hiding this comment.
The rule currently visits only models and model properties, but the linked requirement also covers enum names. For example, enum IpProtocol { tcp } receives no diagnostic and remains IpProtocol instead of IPProtocol because no enum visitor is registered. Could we add enum handling using the resolved C# name, extend the code fix for enum targets, and add a corresponding test?
Add csharp-no-options-suffix, csharp-no-request-suffix, csharp-no-response-suffix, and csharp-use-standard-acronyms for C# SDK model naming. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d02f6a96-81e2-4256-b6f5-798e382049b8
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d02f6a96-81e2-4256-b6f5-798e382049b8
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d02f6a96-81e2-4256-b6f5-798e382049b8
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c0af1189-afe1-444d-9911-3e98e456f3b9
aec1f70 to
0a0ecd9
Compare
|
Companion spec validation PRs:
All six TSV shards pass in both companion PRs. |
|
@timotheeguerin could you help to review this PR? |
Consolidate model suffix checks, broaden augment targets, and dedent multiline code fix expectations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c0af1189-afe1-444d-9911-3e98e456f3b9
Move the new linter documentation into the source-based docs flow introduced on main. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: c0af1189-afe1-444d-9911-3e98e456f3b9
Add individual rule documentation pages for three new C# linter rules added in PR Azure#4867 (commit 0da0e07): - csharp-no-url-suffix: Properties ending with 'Url' should use 'Uri' - csharp-model-suffix: Model names should use Config/Content/Result suffixes - csharp-use-standard-acronyms: Names should use IP/DB/OS acronym casing Also update linter.md reference page to list all five rules (was missing the three new C# rules and the csharp-no-url-suffix rule). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds four TCGC linter rules for C# SDK model naming:
csharp-no-options-suffix: suggestsConfiginstead ofOptions, except client optionscsharp-no-request-suffix: suggestsContentinstead ofRequestcsharp-no-response-suffix: suggestsResultinstead ofResponsecsharp-use-standard-acronyms: starts withIp->IP,Db->DB, andOs->OSAll rules use C# resolved names via
getLibraryName(..., "csharp"), add@@clientName(..., "csharp")codefixes inclient.tsp, and are enabled only through@azure-tools/typespec-azure-rulesets/client-sdk.This PR partially addresses #4458 because that issue lists many acronym casing patterns. Based on existing
client.tspoverrides, the most common three areIp,Db, andOs, so this PR implements only those first to keep the rule focused. Additional acronyms can be added later.Fixes #4448
Fixes #4449
Fixes #4450
Partially addresses #4458
Validation run locally:
pnpm --filter @azure-tools/typespec-client-generator-core buildpnpm --filter @azure-tools/typespec-client-generator-core exec vitest run test/rules/csharp-no-options-suffix.test.ts test/rules/csharp-no-request-suffix.test.ts test/rules/csharp-no-response-suffix.test.ts test/rules/csharp-use-standard-acronyms.test.tspnpm --filter @azure-tools/typespec-azure-rulesets buildpnpm --filter @azure-tools/typespec-azure-rulesets test