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(release): 1.42.0 #3114

Merged
merged 11 commits into from
Nov 2, 2021
Merged

chore(release): 1.42.0 #3114

merged 11 commits into from
Nov 2, 2021

Conversation

aws-cdk-automation
Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation commented Nov 2, 2021

See CHANGELOG

rix0rrr and others added 11 commits October 27, 2021 12:52
…3096)

The `require()` statements we generate on Windows cannot be used
on a UNIX-based system. This is an unnecessary restriction we can
lift by always generating `/`-separated paths.



---

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

[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
This PR introduces many fixes to array handling:

- Array index (`array[5]`) was not supported.
- Array types weren't being rendered properly (they were being rendered
  as the named type `Array` instead of, say, `string[]`).
- Functions with variable length arguments were not being marked as
  varargs, simply saying the parameter type was an `Array`.



---

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

[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
If any of the generated JavaDoc contains '*/', that character combination will
terminate the doc comment, throwing the Java compiler for a loop.

The character combination needs to be escaped. This change makes examples found
in the jsii assembly render the same as sample code found in running (MarkDown)
text, in doc blocks and READMEs.



---

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

[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
…alues (#3105)

The deprecation warnings feature will warn if an enum value is used which is
equal to one to a deprecated enum member. Unfortunately, in the case of an enum
with duplicate values, there is no way to tell whether the deprecated member was
used (or not). The current behavior emits warnings even in cases where the
active/undeprecated member is being used.

This change flips the behavior to mute the notification in the case where the
value used is a known duplicate value. This results in erring on the side of
false negatives (not catching deprecated usage) over false positives (warning in
the case nothing's wrong).

fixes #3103



---

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

[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
Complementary of aws/aws-cdk#17264

Related to cdklabs/cdk-ops#1759

---

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

[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
… is extended (#3112)

It is common in the AWS CDK for non-deprecated interfaces to extend
deprecated interfaces.
Currently, when this occurs and the non-deprecated subclass is
referenced, a warning is generated notifying the deprecation of its
superclass.

Modify the implementation such that the warning is produced only when
a property of the deprecated interface is referenced.

In the case when a deprecated interface with no required properties is
used without any of its properties set, a warning will not be generated.
This should occur rarely and the trade off is acceptable.

fixes #3111
By fingerprinting types in an assembly and storing the fingerprints along with translations, we can reuse existing translations if we know nothing changed.

A snippet needs to be recompiled if:

- Its source text changes: hash key will be different
- Its fixture changes: fullSource will be different
- The referenced types have changed: fingerprint will be different
- The translator's capabilities have changed: translation version will be different

Since we have many duplicate snippets (especially `cluster.enableSingleUserRotation()` crops up a lot 🙂), I've had to encode the source location for the snippet into the key. Since that means that location encoding is now significant and needs to be correct, some refactoring around encoding snippet locations has become important.

Incidentally, this will also fix broken translations originating from `monocdk` from overwriting perfectly cromulent translations in the `@aws-cdk` packages.

Refactorings in this PR:

- Snippet source locations are no longer a semi-free form string -- they are now a structured data type that captures the location accurately (and incidentally gets rendered to a filename-like string for interaction with the TS compiler and human display).
- Snippet source locations now need to be passed in every place where some code is passed to Rosetta. These take the form of `{ api: 'member', fqn: '@ns/package.type', memberName: 'bucketName' }` (an `ApiLocation`), and have been added to many, many places, including `jsii-pacmak`.
- Translators now have a `VERSION`, which is used to invalidate cached translations if we change something about the implementation of the translator.
- Existing tablet files may now need to span multiple jsii release versions, so they are now validated based on their schema version instead of the version of the tool that produced them.
- `TranslatedSnippet` had a copy of all the data in a `TranslatedSnippetSchema`, and was copying back and forth. Change it to just hold on to a `TranslatedSnippet` internally. It now represents the operations that can be done to a `TranslatedSnippetSchema`. 
- The translation of `ts.Diagnostic` to `RosettaDiagnostic` is now done even earlier (closer to the code that deals with the TS compiler).
- Snippets are no longer in an `IterableIterator`, but just an plain old array.
- Snippets in Markdown are no longer identified by their snippet counter, but by their line number.
- Mutable fields turned into `readonly` fields on a number of structs.

---

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

[Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
@aws-cdk-automation aws-cdk-automation added the pr/no-squash This PR should be merged instead of squash-merging it label Nov 2, 2021
@mergify
Copy link
Contributor

mergify bot commented Nov 2, 2021

Thank you for contributing! ❤️ I will now look into making sure the PR is up-to-date, then proceed to try and merge it!

@mergify mergify bot added the pr/ready-to-merge This PR is ready to be merged. label Nov 2, 2021
@mergify mergify bot merged commit 5f6b62c into release Nov 2, 2021
@mergify mergify bot deleted the bump/1.42.0 branch November 2, 2021 19:45
@mergify
Copy link
Contributor

mergify bot commented Nov 2, 2021

Merging (no-squash)...

@mergify mergify bot removed the pr/ready-to-merge This PR is ready to be merged. label Nov 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr/no-squash This PR should be merged instead of squash-merging it
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants