Problem
Build, test, lint, and synth steps emit deprecation warnings and non-fatal diagnostics that go unnoticed until they become breaking changes. By the time they break, the upgrade path is harder (multiple breaking changes compound). Examples from //cdk:test:
1. ts-jest hybrid module warning
WARN ts-jest[config] (WARN) message TS151002: Using hybrid module kind (Node16/18/Next) is only
supported in "isolatedModules: true". Please set "isolatedModules: true" in your tsconfig.json.
Risk: ts-jest may enforce this in a future major version, breaking all tests.
2. CDK deprecated API usage
WARNING [WARNING] aws-cdk-lib.aws_iam.GrantOnPrincipalOptions#scope is deprecated.
Risk: Removed in a future aws-cdk-lib major version. Every CDK upgrade will surface more of these until addressed.
Other known warnings (from CI logs)
Proposal
Establish a recurring process (manual or automated) that:
- Captures — Collects all WARN/WARNING/deprecated output from
mise run build
- Triages — Categorizes by severity (breaking-soon vs cosmetic) and ownership
- Tracks — Files issues for each actionable deprecation before it becomes a blocker
- Prevents regression — Optionally, CI fails on NEW warnings (warnings-as-errors for net-new)
Implementation options (progressive)
| Approach |
Effort |
Coverage |
| Periodic manual audit (run build, grep warnings, file issues) |
Low |
Reactive |
| CI step that captures warnings to artifact for review |
Medium |
Passive visibility |
| CI step that fails on net-new warnings (baseline file of known warnings) |
High |
Preventive |
Relation to ADR-013 (proposed)
This aligns with ADR-013's Tier 1 (package-level build gates). A "no new warnings" policy would be a Tier 1 enforcement mechanism.
Immediate action items
References
Problem
Build, test, lint, and synth steps emit deprecation warnings and non-fatal diagnostics that go unnoticed until they become breaking changes. By the time they break, the upgrade path is harder (multiple breaking changes compound). Examples from
//cdk:test:1. ts-jest hybrid module warning
Risk: ts-jest may enforce this in a future major version, breaking all tests.
2. CDK deprecated API usage
Risk: Removed in a future aws-cdk-lib major version. Every CDK upgrade will surface more of these until addressed.
Other known warnings (from CI logs)
@cdklabsrules using removedcontext.getFilename()(chore(eslint): re-enable @cdklabs rules after plugin fixes deprecated context.getFilename() #170)no-constant-conditiondeprecated in ESLint 10 (already handled in feat(tooling): upgrade ESLint 9 → 10 with flat config migration #171)Proposal
Establish a recurring process (manual or automated) that:
mise run buildImplementation options (progressive)
Relation to ADR-013 (proposed)
This aligns with ADR-013's Tier 1 (package-level build gates). A "no new warnings" policy would be a Tier 1 enforcement mechanism.
Immediate action items
isolatedModuleswarning (cdk/tsconfig.dev.json)GrantOnPrincipalOptions#scopedeprecation (update CDK code to use non-deprecated API)References