-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
refactor(awslint): construct-base-is-private, resource-attribute #2349
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implement a "Reflection" class for each rule family (modules, constructs, resources) which reflect on the type system and expose a relevant API for linter rules. The rational is that this increases our ability to reuse the model by other rule families. For example, the "ResourceReflection" extends "ConstructReflection" and adds more information that's specific to AWS resource constructs.
eladb
changed the title
Benisrae/awslint refactor
refactor(awslint): implement reflection classes and add missing attributes
Apr 22, 2019
skinny85
approved these changes
Apr 22, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
add awslint:construct-base-is-private - eks.ClusterBase - codebuild.ProjectBase - codecommit.RepositoryBase - codedeploy.ServerDeploymentGroupBase - ecr.RepositoryBase - eks.ClusterBase - lambda.LayerVersionBase - rds.DatabaseClusterBase - secretsmanager.SecretBase - ses.ReceiptRuleSetBase - update "foreach.sh" to ignore undefined npm scripts - update contribution guide with instructions on how to use foreach.sh
eladb
changed the title
refactor(awslint): implement reflection classes and add missing attributes
refactor(awslint): construct-base-is-private, resource-attribute
Apr 22, 2019
RomainMuller
added
the
package/awscl
Cross-cutting issues related to the AWS Construct Library
label
Apr 23, 2019
eladb
removed
package/awscl
Cross-cutting issues related to the AWS Construct Library
labels
May 1, 2019
SanderKnape
pushed a commit
to SanderKnape/aws-cdk
that referenced
this pull request
May 14, 2019
…#2349) Refactor the rule implementation of awslint such that the context of each linter is implemented as a `XxxReflection` class (i.e. `ConstructReflection`, `ResourceReflection`). This increases our ability to reuse the model extracted from the type system in other linters. - `awslint:construct-base-is-private` will recommend that XxxBase are internal (required merging some files in some places) - `awslint:resource-attribute`: implement missing attributes from several modules - In some places, move the `ImportedXxx` class into the import method as a local class (makes the implementation much nicer because it's closed by the function call). Misc: - update "foreach.sh" to ignore undefined npm scripts - update contribution guide with instructions on how to use foreach.sh Fixes aws#2426 Fixes aws#2409 BREAKING CHANGE: `s3.Bucket.domainName` renamed to `s3.Bucket.bucketDomainName`. * `codedeploy.IXxxDeploymentConfig.deploymentConfigArn` is now a property and not a method. * `ec2.SecurityGroupBase` is now private * `ec2.VpcNetworkBase` is now private * `kinesis.StreamBase` is now private * `kms.EncryptionKeyBase` is now private * `logs.LogGroupBase` is now private * `ssm.ParameterBase` is now private * `eks.ClusterBase` is now private * `codebuild.ProjectBase` is now private * `codecommit.RepositoryBase` is now private * `codedeploy.ServerDeploymentGroupBase` is now private * `eks.ClusterBase` is now private * `lambda.LayerVersionBase` is now private * `rds.DatabaseClusterBase` is now private * `secretsmanager.SecretBase` is now private * `ses.ReceiptRuleSetBase` is now private
Thanks so much for taking the time to contribute to the AWS CDK ❤️ We will shortly assign someone to review this pull request and help get it
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactor the rule implementation of awslint such that the context of each linter is implemented as a
XxxReflection
class (i.e.ConstructReflection
,ResourceReflection
). This increases our ability to reuse the model extracted from the type system in other linters.awslint:construct-base-is-private
will recommend that XxxBase are internal (required merging some files in some places)awslint:resource-attribute
: implement missing attributes from several modulesImportedXxx
class into the import method as a local class (makes the implementation much nicer because it's closed by the function call).Misc:
Fixes #2426
Fixes #2409
BREAKING CHANGE:
s3.Bucket.domainName
renamed tos3.Bucket.bucketDomainName
.codedeploy.IXxxDeploymentConfig.deploymentConfigArn
is now a property and not a method.ec2.SecurityGroupBase
is now privateec2.VpcNetworkBase
is now privatekinesis.StreamBase
is now privatekms.EncryptionKeyBase
is now privatelogs.LogGroupBase
is now privatessm.ParameterBase
is now privateeks.ClusterBase
is now privatecodebuild.ProjectBase
is now privatecodecommit.RepositoryBase
is now privatecodedeploy.ServerDeploymentGroupBase
is now privateeks.ClusterBase
is now privatelambda.LayerVersionBase
is now privaterds.DatabaseClusterBase
is now privatesecretsmanager.SecretBase
is now privateses.ReceiptRuleSetBase
is now privatePull Request Checklist
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license.