Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: forward merge 'master' into 'v2-main' #13414

Merged
merged 105 commits into from
Mar 5, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
757290e
docs(contributing): Add note on global npm installs, change OpenJDK URL
ericzbeard May 26, 2020
3a4b46b
Merge branch 'master' into master
mergify[bot] May 26, 2020
afe2119
Merge remote-tracking branch 'upstream/master'
ericzbeard Jun 22, 2020
4aa3f0d
Merge remote-tracking branch 'upstream/master'
ericzbeard Jul 1, 2020
3c1ee3b
Merge remote-tracking branch 'upstream/master'
ericzbeard Jul 6, 2020
203cdfc
Merge remote-tracking branch 'upstream/master'
ericzbeard Jul 16, 2020
a08dd92
Merge remote-tracking branch 'upstream/master'
ericzbeard Aug 25, 2020
b68ca3c
Merge remote-tracking branch 'upstream/master'
ericzbeard Sep 14, 2020
b42de3b
Added missing package maturities
ericzbeard Sep 14, 2020
0a0651a
Merge branch 'master' into master
ericzbeard Sep 15, 2020
f91f32d
Merge branch 'master' into master
ericzbeard Sep 16, 2020
d9187cc
Merge remote-tracking branch 'upstream/master'
ericzbeard Sep 28, 2020
7df354b
Merge remote-tracking branch 'upstream/master'
ericzbeard Oct 1, 2020
a922800
Merge remote-tracking branch 'upstream/master'
ericzbeard Oct 14, 2020
7b65535
Merge branch 'master' of github.com:ericzbeard/aws-cdk
ericzbeard Oct 14, 2020
bd9977f
Change id to stack_id in Python init template
ericzbeard Oct 14, 2020
bdcf717
Change stack_id to construct_id
ericzbeard Oct 20, 2020
d14f860
Change id to construct_id in Python sample-app
ericzbeard Oct 20, 2020
1907b58
Fix construct_id
ericzbeard Oct 20, 2020
519d0bb
Merge branch 'master' into master
ericzbeard Oct 22, 2020
0f856e9
Fix super with construct_id
ericzbeard Oct 23, 2020
2b3d8cd
Merge branch 'master' of github.com:ericzbeard/aws-cdk
ericzbeard Oct 23, 2020
df56c34
Merge remote-tracking branch 'upstream/master'
ericzbeard Oct 26, 2020
4536b23
Merge remote-tracking branch 'upstream/master'
ericzbeard Oct 26, 2020
884be45
Fix broken init templates
ericzbeard Oct 26, 2020
5f1790e
Fix init templates
ericzbeard Oct 26, 2020
9c54cae
Merge branch 'master' into master
rix0rrr Nov 9, 2020
aad0611
Merge branch 'master' into master
mergify[bot] Nov 9, 2020
4e9fe43
Merge branch 'master' into master
mergify[bot] Nov 9, 2020
338db80
Merge from upstream
ericzbeard Jan 12, 2021
79a99b8
Merge remote-tracking branch 'upstream/master'
ericzbeard Feb 1, 2021
69affc4
Merge remote-tracking branch 'upstream/master'
ericzbeard Feb 4, 2021
5ba8759
ownership changes
ericzbeard Feb 4, 2021
0f728ce
chore(release): 1.91.0 (#13211)
aws-cdk-automation Feb 23, 2021
a7d682e
chore: properly record merge-back history from 1.91.0
rix0rrr Feb 25, 2021
78831cf
feat(core): `description` parameter in the CustomResourceProvider (#1…
robertd Feb 25, 2021
f6eab06
Merge branch 'master' into huijbers/fix-merge-history
mergify[bot] Feb 25, 2021
8426c71
chore: properly record merge-back history from 1.91.0 (#13283)
mergify[bot] Feb 25, 2021
c8c1762
fix(events): cannot trigger multiple Lambdas from the same Rule (#13260)
rix0rrr Feb 25, 2021
624a93d
chore(aws-logs): fix typo in error message (#13137)
SoManyHs Feb 25, 2021
d9ee914
fix(cloudwatch): MathExpression period of <5 minutes is not respected…
otaviomacedo Feb 25, 2021
88e933f
docs(pipelines): add CI/CD account bootstrap template example (#12352)
flochaz Feb 25, 2021
146a97f
chore(init-templates/python): correct virtual environment typo (#12230)
idanlupinsky Feb 25, 2021
465cd9c
feat(events): archive events (#12060)
DaWyz Feb 25, 2021
b7b441f
feat(elbv2): allow control of ingress rules on redirect listener (#12…
MatthewMooreZA Feb 25, 2021
8712b40
chore(elasticloadbalancingv2): Add duration checks for slow start tar…
robertd Feb 25, 2021
39ab806
chore(cloudformation): update integration tests with description para…
robertd Feb 25, 2021
a67d85f
chore(s3): add auto-generated description to custom resource provider…
robertd Feb 25, 2021
e8984e3
chore(core): remove hardcoded runtime value in favor of user provided…
robertd Feb 25, 2021
430c38b
chore(init/java): junit 5.7.1 (#12912)
sullis Feb 25, 2021
c4a239c
chore(init-templates): Python app template imports 'core' as 'cdk' to…
Feb 25, 2021
d331afe
chore(stepfunctions-tasks): default to NODEJS_14_X for EvaluateExpres…
jogold Feb 26, 2021
c174f6c
fix(ecs): services essential container exceptions thrown too soon (#1…
misterjoshua Feb 26, 2021
81a78a3
fix(ec2): Throw error on empty InitFile content (#13009) (#13119)
mprencipe Feb 26, 2021
fc87574
feat(ec2): Add VPC endpoint for RDS (#12497)
bcelenza Feb 26, 2021
ea91aa3
feat(aws-events): Event Bus target (#12926)
alanraison Feb 26, 2021
9241f46
Merge branch 'master' into master
ericzbeard Feb 26, 2021
f511639
feat(ecs): add port mappings to containers with props (#13262)
misterjoshua Feb 26, 2021
266a621
fix(ecr): Allow referencing an EcrImage by digest instead of tag (#13…
otaviomacedo Feb 26, 2021
34897c1
docs(aws-ecs): typo in docstring (#12672)
Chriscbr Feb 26, 2021
8f4ba24
Merge branch 'master' into master
ericzbeard Feb 26, 2021
1231ecc
Merge pull request #12868 from ericzbeard/master
ericzbeard Feb 26, 2021
4f464ac
chore(ecs): fix incorrect volume interface docs (#13302)
MrArnoldPalmer Feb 27, 2021
1fcdb6d
chore(lambda-destinations): fix typo in docs (#13305)
robertd Feb 28, 2021
f983fbb
fix(lambda-nodejs): paths with spaces break esbuild (#13312)
GEMISIS Feb 28, 2021
6de533f
chore: minor tweaks to DESIGN_GUIDELINES.md (#13073)
shonnly Feb 28, 2021
6eca979
feat(core): customize bundling output packaging (#13152)
jogold Feb 28, 2021
fe4f056
fix(ec2): readme grammar (#13180)
openwebsolns Feb 28, 2021
ad01099
feat(lambda): Code.fromDockerBuild (#13318)
jogold Feb 28, 2021
9663093
chore(ses): use NodeJS 14 in DropSpamReceiptRule (#13266)
jogold Mar 1, 2021
4420ac3
docs(docdb): make sample snippet deployable (#13295)
zxkane Mar 1, 2021
c366837
feat(neptune): high level constructs for db clusters and instances (#…
cornerwings Mar 1, 2021
1f35351
fix(cloudfront): cannot add two EdgeFunctions with same aliases (#13324)
njlynch Mar 1, 2021
2d0c766
chore: npm-check-updates && yarn upgrade (#13254)
aws-cdk-automation Mar 2, 2021
e8f0c3c
chore: produce go bindings (#13317)
Mar 2, 2021
d3155e9
fix(elasticloadbalancingv2): should allow more than 2 certificates (#…
andreialecu Mar 2, 2021
b3492cc
chore(guidelines): add some guidelines around @defaults (#13341)
rix0rrr Mar 2, 2021
7b96688
chore(guidelines): update the section on error messages (#13345)
rix0rrr Mar 2, 2021
d884a34
chore(guidelines): guidance on which constructs are included in the C…
njlynch Mar 2, 2021
ba99ad0
chore(documentation): Update README.md (#12892)
hemant6488 Mar 2, 2021
84c9960
chore: revert "produce go bindings (#13317)" (#13362)
Mar 3, 2021
9e6dc6b
chore(contrib-guide): add guidance around breaking changes (#13347)
rix0rrr Mar 3, 2021
b965589
feat(cognito): user pools - sign in with apple (#13160)
piotrmoszkowicz Mar 3, 2021
3413b2f
fix(core): custom resource provider NODEJS_12 now looks like Lambda's…
robertd Mar 3, 2021
1bb3650
feat(events): dead letter queue for Lambda Targets (#11617)
DaWyz Mar 3, 2021
75008bc
chore(guidelines): update ToC (#13372)
rix0rrr Mar 3, 2021
6126e49
fix(stepfunctions): `SageMakeUpdateEndpoint` adds insufficient permis…
zxkane Mar 3, 2021
6f7cebd
fix(events): imported ECS Task Definition cannot be used as target (#…
rli1994hi Mar 3, 2021
cbcc712
fix(cloudwatch): metric `label` not rendered into Alarms (#13070)
jonnekaunisto Mar 3, 2021
e244c5d
chore(certificatemanager): update README.md (#12408)
proxy-hatch Mar 3, 2021
2c074de
chore(apigateway): cleanup DomainName TLS docstring and tests (#13309)
robertd Mar 3, 2021
ae0185d
feat(cfnspec): cloudformation spec v30.0.0 (#13365)
aws-cdk-automation Mar 3, 2021
cbed348
fix(codebuild): allow FILE_PATH webhook filter for BitBucket (#13186)
leimd Mar 3, 2021
8b00de0
chore: npm-check-updates && yarn upgrade (#13390)
aws-cdk-automation Mar 4, 2021
396acee
chore: fix auto-approve workflow (#13392)
Mar 4, 2021
9331657
chore(build): yarn-cling does not work under Node 15 (#13391)
rix0rrr Mar 4, 2021
319cfcd
feat(cloudwatch): EC2 actions (#13281)
cyuste Mar 4, 2021
48963f7
chore: add new interfaces for Assets (#13356)
skinny85 Mar 4, 2021
20a22fe
chore(build): record preferred NPM publishing order (#13394)
rix0rrr Mar 4, 2021
664133a
fix(ec2): NAT provider's default outbound rules cannot be disabled (#…
hedrall Mar 4, 2021
a452bc3
feat(ecs): allow selection of container and port for SRV service disc…
misterjoshua Mar 4, 2021
5d57777
chore(deps): bump actions/setup-node from v2.1.4 to v2.1.5 (#13321)
dependabot[bot] Mar 4, 2021
cdbe8fe
Merge branch 'v2-main' into v2/forward-merge-20210305
Mar 5, 2021
b79dbc7
Change the Construct type used in the new Ec2Action in cloudwatch-act…
skinny85 Mar 5, 2021
28e2dde
Change the Construct type used in EcsTask in events-targets to be fro…
skinny85 Mar 5, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/auto-approve.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# Approve PRs with "pr/auto-approve". mergify takes care of the actual merge.

name: auto-approve
on: pull_request
on:
pull_request:
types: [ labeled, unlabeled, opened, synchronize, reopened, ready_for_review, review_requested ]

jobs:
auto-approve:
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/issue-label-assign.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ jobs:
{"keywords":["(@aws-cdk/aws-cloudfront)","(aws-cloudfront)","(cloudfront)","(cloud front)"],"labels":["@aws-cdk/aws-cloudfront"],"assignees":["njlynch"]},
{"keywords":["(@aws-cdk/aws-cloudfront-origins)","(aws-cloudfront-origins)","(cloudfront-origins)","(cloudfront origins)"],"labels":["@aws-cdk/aws-cloudfront-origins"],"assignees":["njlynch"]},
{"keywords":["(@aws-cdk/aws-cloudtrail)","(aws-cloudtrail)","(cloudtrail)","(cloud trail)"],"labels":["@aws-cdk/aws-cloudtrail"],"assignees":["NetaNir"]},
{"keywords":["(@aws-cdk/aws-cloudwatch)","(aws-cloudwatch)","(cloudwatch)","(cloud watch)"],"labels":["@aws-cdk/aws-cloudwatch"],"assignees":["rix0rrr"]},
{"keywords":["(@aws-cdk/aws-cloudwatch-actions)","(aws-cloudwatch-actions)","(cloudwatch-actions)","(cloudwatch actions)"],"labels":["@aws-cdk/aws-cloudwatch-actions"],"assignees":["rix0rrr"]},
{"keywords":["(@aws-cdk/aws-cloudwatch)","(aws-cloudwatch)","(cloudwatch)","(cloud watch)"],"labels":["@aws-cdk/aws-cloudwatch"],"assignees":["NetaNir"]},
{"keywords":["(@aws-cdk/aws-cloudwatch-actions)","(aws-cloudwatch-actions)","(cloudwatch-actions)","(cloudwatch actions)"],"labels":["@aws-cdk/aws-cloudwatch-actions"],"assignees":["NetaNir"]},
{"keywords":["(@aws-cdk/aws-codeartifact)","(aws-codeartifact)","(codeartifact)","(code artifact)","(code-artifact)"],"labels":["@aws-cdk/aws-codeartifact"],"assignees":["njlynch"]},
{"keywords":["(@aws-cdk/aws-codebuild)","(aws-codebuild)","(codebuild)","(code build)","(code-build)"],"labels":["@aws-cdk/aws-codebuild"],"assignees":["skinny85"]},
{"keywords":["(@aws-cdk/aws-codecommit)","(aws-codecommit)","(codecommit)","(code commit)", "(code-commit)"],"labels":["@aws-cdk/aws-codecommit"],"assignees":["skinny85"]},
Expand All @@ -76,8 +76,8 @@ jobs:
{"keywords":["(@aws-cdk/aws-dlm)","(aws-dlm)","(dlm)"],"labels":["@aws-cdk/aws-dlm"],"assignees":["njlynch"]},
{"keywords":["(@aws-cdk/aws-dms)","(aws-dms)","(dms)"],"labels":["@aws-cdk/aws-dms"],"assignees":["njlynch"]},
{"keywords":["(@aws-cdk/aws-docdb)","(aws-docdb)","(docdb)","(doc db)","(doc-db)"],"labels":["@aws-cdk/aws-docdb"],"assignees":["iliapolo"]},
{"keywords":["(@aws-cdk/aws-dynamodb)","(aws-dynamodb)","(dynamodb)","(dynamo db)","(dynamo-db)"],"labels":["@aws-cdk/aws-dynamodb"],"assignees":["skinny85"]},
{"keywords":["(@aws-cdk/aws-dynamodb-global)","(aws-dynamodb-global)","(dynamodb-global)","(dynamodb global)"],"labels":["@aws-cdk/aws-dynamodb-global"],"assignees":["skinny85"]},
{"keywords":["(@aws-cdk/aws-dynamodb)","(aws-dynamodb)","(dynamodb)","(dynamo db)","(dynamo-db)"],"labels":["@aws-cdk/aws-dynamodb"],"assignees":["RomainMuller"]},
{"keywords":["(@aws-cdk/aws-dynamodb-global)","(aws-dynamodb-global)","(dynamodb-global)","(dynamodb global)"],"labels":["@aws-cdk/aws-dynamodb-global"],"assignees":["RomainMuller"]},
{"keywords":["(@aws-cdk/aws-ec2)","(aws-ec2)","(ec2)","(vpc)"],"labels":["@aws-cdk/aws-ec2"],"assignees":["rix0rrr"]},
{"keywords":["(@aws-cdk/aws-ecr)","(aws-ecr)","(ecr)"],"labels":["@aws-cdk/aws-ecr"],"assignees":["MrArnoldPalmer"]},
{"keywords":["(@aws-cdk/aws-ecr-assets)","(aws-ecr-assets)","(ecr-assets)","(ecr assets)","(ecrassets)"],"labels":["@aws-cdk/aws-ecr-assets"],"assignees":["eladb"]},
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/yarn-upgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
uses: actions/checkout@v2

- name: Set up Node
uses: actions/[email protected].4
uses: actions/[email protected].5
with:
node-version: 10

Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ All notable changes to this project will be documented in this file. See [standa

### ⚠ BREAKING CHANGES TO EXPERIMENTAL FEATURES

* **appmesh:** the properties virtualRouter and virtualNode of VirtualServiceProps have been replaced with the union-like class VirtualServiceProvider
* **appmesh:** the properties virtualRouter and virtualNode of VirtualServiceProps have been replaced with the union-like class VirtualServiceProvider
* **appmesh**: the method `addVirtualService` has been removed from `IMesh`
* **cloudfront:** experimental EdgeFunction stack names have changed from 'edge-lambda-stack-${region}' to 'edge-lambda-stack-${stackid}' to support multiple independent CloudFront distributions with EdgeFunctions.

Expand Down
138 changes: 138 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ and let us know if it's not up-to-date (even better, submit a PR with your corr
- [Step 4: Commit](#step-4-commit)
- [Step 5: Pull Request](#step-5-pull-request)
- [Step 6: Merge](#step-6-merge)
- [Breaking Changes](#breaking-changes)
- [Tools](#tools)
- [Main build scripts](#main-build-scripts)
- [Partial build tools](#partial-build-tools)
Expand Down Expand Up @@ -266,6 +267,143 @@ BREAKING CHANGE: Description of what broke and how to achieve this behavior now
* Once approved and tested, a maintainer will squash-merge to master and will use your PR title/description as the
commit message.

## Breaking Changes

Whenever you are making changes, there is a chance for those changes to be
*breaking* existing users of the library. A change is breaking if there are
programs that customers could have been writing against the current version
of the CDK, that will no longer "work correctly" with the proposed new
version of the CDK.

Breaking changes are not allowed in *stable* libraries¹. They are permissible
but still *highly discouraged* in experimental libraries, and require explicit
callouts in the bodies of Pull Requests that introduce them.

> ¹) Note that starting in version 2 of the CDK, the majority of library code will be
> bundled into a single main CDK library which will be considered stable, and so
> no code in there can undergo breaking changes.

Breaking changes come in two flavors:

* API surface changes
* Behavior changes

### API surface changes

This encompasses any changes that affect the shape of the API. Changes that
will make existing programs fail to compile are not allowed. Typical examples
of that are:

* Renaming classes or methods
* Adding required properties to a struct that is used as an input to a constructor
or method. This also includes changing a type from nullable to non-nullable.
* Removing properties from a struct that is returned from a method, or removing
properties from a class. This also includes changing a type from non-nullable
to nullable.

To see why the latter is a problem, consider the following class:

```ts
class SomeClass {
public readonly count: number;
// ❓ let's say I want to change this to 'count?: number',
// i.e. make it optional.
}

// Someone could have written the following code:
const obj = new SomeClass();
console.log(obj.count + 1);

// After the proposed change, this code that used to compile fine will now throw:
console.log(obj.count + 1);
// ~~~~~~~~~ Error: Object is possibly 'undefined'.
```

CDK comes with build tooling to check whether changes you made introduce breaking
changes to the API surface. In a package directory, run:

```shell
$ yarn build
$ yarn compat
```

To figure out if the changes you made were breaking. See the section [API Compatibility
Checks](#api-compatibility-checks) for more information.

#### Dealing with breaking API surface changes

If you need to change the type of some API element, introduce a new API
element and mark the old API element as `@deprecated`.

If you need to pretend to have a value for the purposes of implementing an API
and you don't actually have a useful value to return, it is acceptable to make
the property a `getter` and throw an exception (keeping in mind to write error
messages that will be useful to a user of your construct):

```ts
class SomeClass implements ICountable {
constructor(private readonly _count?: number) {
}

public get count(): number {
if (this._count === undefined) {
// ✅ DO: throw a descriptive error that tells the user what to do
throw new Error('This operation requires that a \'count\' is specified when SomeClass is created.');
// ❌ DO NOT: just throw an error like 'count is missing'
}
return this._count;
}
}
```

### Behavior changes

These are changes that do not directly affect the compilation of programs
written against the previous API, but may change their meaning. In practice,
even though the user didn't change their code, the CloudFormation template
that gets synthesized is now different.

**Not all template changes are breaking changes!** Consider a user that has
created a Stack using the previous version of the library, has updated their
version of the CDK library and is now deploying an update. A behavior change
is breaking if:

* The update cannot be applied at all
* The update can be applied but causes service interruption or data loss.

Data loss happens when the [Logical
ID](https://docs.aws.amazon.com/cdk/latest/guide/identifiers.html#identifiers_logical_ids)
of a stateful resource changes, or one of the [resource properties that requires
replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html)
is modified. In both of these cases, CloudFormation will delete the
resource, and if it was a stateful resource like a database the data in it is now gone.

If a change applies cleanly and does not cause any service interruption, it
is not breaking. Nevertheless, it might still be wise to avoid those kinds of
changes as users are understandably wary of unexpected template changes, will
scrutinize them heavily, and we don't want to cause unnecessary panic and churn
in our use base.

Determining whether or not behavioral changes are breaking requires expertise
and judgement on the part of the library owner, and testing.

#### Dealing with breaking behavior changes

Most of the time, behavioral changes will arise because we want to change the
default value or default behavior of some property (i.e., we want to change the
interpretation of what it means if the value is missing).

If the new behavior is going to be breaking, the user must opt in to it, either by:

* Adding a new API element (class, property, method, ...) to have users
explicitly opt in to the new behavior at the source code level (potentially
`@deprecate`ing the old API element); or
* Use the [feature flag](#feature-flags) mechanism to have the user opt in to the new
behavior without changing the source code.

Of these two, the first one is preferred if possible (as feature flags have
non-local effects which can cause unintended effects).

## Tools

The CDK is a big project, and at the moment, all of the CDK modules are mastered in a single monolithic repository
Expand Down
Loading