Skip to content

Conversation

@rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Aug 11, 2025

The way it's currently specified, the unconfiguredBehavesLike field that's in the Cloud Assembly Schema requires the CLI to know the current major version of the CDK Library to properly evaluate:

It looks like unconfiguredBehavesLike: { v1: ..., v2: ... } subfields, and that requires the CLI to know whether to look in the v1 or v2 subfield (and in the future v3, v4, etc...).

That is unnecessary: since the CDK Library knows its own current version so it could just have communicated unconfiguredBehavesLike: true to accurately reflect its current behavior, without the consumer needing to know anything about the version.

The CLI code right now is only reading the v2 field, but that will become inaccurate if we ever release CDKv3.

In this PR, we're saying that the v2 subfield is the "official" location of this value going forward. v1 should be ignored if present (but is still included to not trip up any JSON Schema validation).

This leads to the least amount of interference with the existing ecosystem (no forced upgrade by CDK users and no backwards compatibility path in the CLI to potentially read 2 fields).


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

…sions

The way it's currently specified, the `unconfiguredBehavesLike` field
that's in the Cloud Assembly Schema requires the CLI to know the current
major version of the CDK Library to properly evaluate:

It looks like `unconfiguredBehavesLike: { v1: ..., v2: ... }` subfields,
and that requires the CLI to know whether to look in the `v1` or `v2`
subfield (and in the future `v3`, `v4`, etc...).

That is unnecessary: since the CDK Library knows its own current version
so it could just have communicated `unconfiguredBehavesLike: true` to
accurately reflect its current behavior, without the consumer needing
to know anything about the version.

The CLI code right now is only reading the `v2` field, but that will
become inaccurate if we ever release CDKv3.

In this PR, we're saying that the `v2` subfield is the "official"
location of this value going forward. `v1` should be ignored if
present (but is still included to not trip up any JSON Schema
validation).

This leads to the least amount of interference with the existing ecosystem
(no forced upgrade by CDK users and no backwards compatibility path
in the CLI to potentially read 2 fields).
@rix0rrr rix0rrr requested a review from a team August 11, 2025 13:31
@github-actions github-actions bot added the p2 label Aug 11, 2025
@aws-cdk-automation aws-cdk-automation requested a review from a team August 11, 2025 13:32
@codecov-commenter
Copy link

codecov-commenter commented Aug 11, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.68%. Comparing base (fccc5f9) to head (3f53bae).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #782      +/-   ##
==========================================
+ Coverage   82.67%   82.68%   +0.01%     
==========================================
  Files          65       65              
  Lines        9558     9558              
  Branches     1120     1121       +1     
==========================================
+ Hits         7902     7903       +1     
  Misses       1632     1632              
+ Partials       24       23       -1     
Flag Coverage Δ
suite.unit 82.68% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Signed-off-by: github-actions <github-actions@github.com>
rix0rrr added a commit to aws/aws-cdk that referenced this pull request Aug 12, 2025
…ry versions

This change goes together with
aws/aws-cdk-cli#782, to undo some decisions made
in https://github.com/aws/aws-cdk/pull/35108/files and
aws/aws-cdk-cli#742.

We used to store `unconfiguredBehavesLike` values for both `v1` and `v2`
(and `v3`, `v4`, etc) into the feature flag report, but we only needed to
store the value for the *current* library version. We are now defining
the "v2" field to hold the current version information, and are updating
the feature flag generation code to not emit `v1` data, and stay correct
if we ever start releasing `v3`.
mergify bot pushed a commit to aws/aws-cdk that referenced this pull request Aug 12, 2025
…ry versions (#35215)

This change goes together with
aws/aws-cdk-cli#782, to undo some decisions made in https://github.com/aws/aws-cdk/pull/35108/files and aws/aws-cdk-cli#742.

We used to store `unconfiguredBehavesLike` values for both `v1` and `v2` (and `v3`, `v4`, etc) into the feature flag report, but we only needed to store the value for the *current* library version. We are now defining the "v2" field to hold the current version information, and are updating the feature flag generation code to not emit `v1` data, and stay correct if we ever start releasing `v3`.

This is labeled as a `chore` and not a `fix` because it doesn't really fix user-visible behavior.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
djglaser pushed a commit to djglaser/aws-cdk that referenced this pull request Aug 13, 2025
…ry versions (aws#35215)

This change goes together with
aws/aws-cdk-cli#782, to undo some decisions made in https://github.com/aws/aws-cdk/pull/35108/files and aws/aws-cdk-cli#742.

We used to store `unconfiguredBehavesLike` values for both `v1` and `v2` (and `v3`, `v4`, etc) into the feature flag report, but we only needed to store the value for the *current* library version. We are now defining the "v2" field to hold the current version information, and are updating the feature flag generation code to not emit `v1` data, and stay correct if we ever start releasing `v3`.

This is labeled as a `chore` and not a `fix` because it doesn't really fix user-visible behavior.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
@rix0rrr rix0rrr marked this pull request as ready for review August 18, 2025 08:29
@rix0rrr rix0rrr changed the title fix(schema): unconfiguredBehavesLike contains info for multiple versions fix(cloud-assembly-schema): unconfiguredBehavesLike contains info for multiple versions Sep 2, 2025
@mrgrain mrgrain enabled auto-merge September 18, 2025 11:35
@mrgrain mrgrain added this pull request to the merge queue Sep 18, 2025
Merged via the queue into main with commit 74cd751 Sep 18, 2025
28 checks passed
@mrgrain mrgrain deleted the huijbers/remove-unconfiguredbehaveslike-variability branch September 18, 2025 12:05
iankhou pushed a commit that referenced this pull request Oct 7, 2025
…or multiple versions (#782)

The way it's currently specified, the `unconfiguredBehavesLike` field
that's in the Cloud Assembly Schema requires the CLI to know the current
major version of the CDK Library to properly evaluate:

It looks like `unconfiguredBehavesLike: { v1: ..., v2: ... }` subfields,
and that requires the CLI to know whether to look in the `v1` or `v2`
subfield (and in the future `v3`, `v4`, etc...).

That is unnecessary: since the CDK Library knows its own current version
so it could just have communicated `unconfiguredBehavesLike: true` to
accurately reflect its current behavior, without the consumer needing to
know anything about the version.

The CLI code right now is only reading the `v2` field, but that will
become inaccurate if we ever release CDKv3.

In this PR, we're saying that the `v2` subfield is the "official"
location of this value going forward. `v1` should be ignored if present
(but is still included to not trip up any JSON Schema validation).

This leads to the least amount of interference with the existing
ecosystem (no forced upgrade by CDK users and no backwards compatibility
path in the CLI to potentially read 2 fields).

---
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache-2.0 license

---------

Signed-off-by: github-actions <github-actions@github.com>
Co-authored-by: github-actions <github-actions@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants