chore(cfnspec): consume CloudFormation specification in parts#18210
chore(cfnspec): consume CloudFormation specification in parts#18210mergify[bot] merged 7 commits intomasterfrom
Conversation
Whenever there are errors in the CloudFormation specification, we currently have to fail the build and can't consume anything. To ensure we make some progress, apply the following strategy instead: - Split the spec into fragments, on a per-service basis. - Consume those per-service spec updates that are valid; if updates are invalid, we will leave them at the old version. This will produce an always-building spec, of which certain parts may be outdated. Report the outdated parts in the CHANGELOG. Notifying the CloudFormation team about spec errors is an out-of-band process, and out of scope of this PR. As a side effect of this work, formalize the spec manipulation we do with JSON and patch files into a mini-standard called "JSON Patch Stacks", and add some tools to operate on them.
njlynch
left a comment
There was a problem hiding this comment.
Looks good!
This is a good bit of new code, but no new tests. :( Some baseline tests so someone modifying this in the future knows they likely haven't horked it would be nifty.
Also, the build is currently failing. :)
| throw new Error(`Attempted to merge ${JSON.stringify(fragVal)} into incompatible ${JSON.stringify(specVal)} at path ${jsonPath.join('/')}/${key}`); | ||
| } | ||
| if (typeof specVal !== 'object' && specVal !== fragVal) { | ||
| if (specVal == fragVal) { |
There was a problem hiding this comment.
Intentional ==, or intended to be ===?
|
Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
|
Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
) Whenever there are errors in the CloudFormation specification, we currently have to fail the build and can't consume anything. To ensure we make some progress, apply the following strategy instead: - Split the spec into fragments, on a per-service basis. - Consume those per-service spec updates that are valid; if updates are invalid, we will leave them at the old version. This will produce an always-building spec, of which certain parts may be outdated. Report the outdated parts in the CHANGELOG. Notifying the CloudFormation team about spec errors is an out-of-band process, and out of scope of this PR. As a side effect of this work, formalize the spec manipulation we do with JSON and patch files into a mini-standard called "JSON Patch Stacks", and add some tools to operate on them. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Whenever there are errors in the CloudFormation specification, we
currently have to fail the build and can't consume anything.
To ensure we make some progress, apply the following strategy instead:
are invalid, we will leave them at the old version.
This will produce an always-building spec, of which certain parts
may be outdated. Report the outdated parts in the CHANGELOG.
Notifying the CloudFormation team about spec errors is an out-of-band
process, and out of scope of this PR.
As a side effect of this work, formalize the spec manipulation we do
with JSON and patch files into a mini-standard called "JSON Patch
Stacks", and add some tools to operate on them.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license