-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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: Add NPM duplicate dependency check to canaries #11333
chore: Add NPM duplicate dependency check to canaries #11333
Conversation
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.
The duplication seems like a bit more than a nit, but understanding there's probably a reason, I am going to give this an approval.
command: | | ||
npm i -S aws-amplify | ||
npm i -g wait-on serve | ||
~/amplify-js/.circleci/duplicates-npm.sh |
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.
Seems odd to see this directly in the circle folder. That said, there is prior art and wouldn't recommend we move things around in this change.
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.
This is required for CircleCI to be able to access the script (we do this with some other shell scripts in the .circleci
folder, e.g. retry-yarn-script.sh
). The duplication is largely for this reason as well. We could move our build-time script into the .circleci
folder and adapt it to try to be "smarter" and take a parameter to selectively use NPM or Yarn, but this felt like overkill to me. And our build time script using something in the .circleci folder would also be just as strange as the reverse.
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.
Can we move the logic into a script, capture the execution in a scripts entry in package.json and then call it in both places to isolate the shared code?
#!/usr/bin/env bash | ||
|
||
# This script detects duplicated Amplify dependencies in the dependency graph (with NPM) | ||
duplicatedDependencies=$( |
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.
Why are we copying this from the scripts
location? Code duplication within the package seems like a smell.
Description of changes
This change adds a script for detecting duplicate Amplify dependencies in NPM and integrates it with our web canaries in CircleCI. Duplicate detection with Yarn will still be handled via our build-time check.
Script sourced from trouble-shooting guide: https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js/#check-for-duplicate-versions
Issue #, if available
Description of how you validated changes
Checklist
yarn test
passesBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.