-
Notifications
You must be signed in to change notification settings - Fork 1.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
Update dependencies to enable Greenkeeper 🌴 #2323
Conversation
a48a9f2
to
4e4793c
Compare
I updated the PR to make commit messages complied with our convention. |
8044419
to
ab2b920
Compare
@raymondfeng please squash ab2b920 and 5d6b516 together. Or perhaps better, move ab2b920 into a new pull request that will bump up the dependency version and make the necessary fixes in a single comment. The rest of changes look reasonable to me. |
IIUC, whenever we start a new package in our monorepo, we also have to update It would be great if your |
The greenkeeper.json is now automatically updated as part of `npm install` based on lerna packages.
4a25d40
to
a0a374a
Compare
@bajtos I added logic to detect if update is required for |
@@ -22,12 +22,13 @@ | |||
"typescript": "^3.3.1" | |||
}, | |||
"scripts": { | |||
"postinstall": "lerna bootstrap", | |||
"postinstall": "lerna bootstrap && npm run -s update-greenkeeper-json", |
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 not really solving the problem, is it? If the person does not run install after adding a new package, or perhaps revert changes made to greepkeeper config, then we won't know the pull request is not complete.
What I would like to see instead:
- when
update-greenkeeper-json.js
is run with no arguments (or perhaps with a special new arg), and the config file requires an update, then the tool exits with non-zero status code - add a new entry to
.travisyml
to run consistency check, see commit-lint and code-lint for inspiration - add a new code block to
bin/travis.sh
implementing the new check by runningupdate-greenkeeper-json.js
I am ok to defer this changes to a follow-up pull request if you prefer.
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.
Let's get greenkeeper to do the job first as it awaits this PR to be landed :-).
Fixes #2322
Let’s get started with automated dependency management for loopback-next 💪
This pull request updates all your dependencies to their latest version. Having them all up to date really is the best starting point for keeping up with new releases. Greenkeeper will look out for further dependency updates and make sure to handle them in isolation and in real-time, but only after you merge this pull request.
Important: Greenkeeper will only start watching this repository’s dependency updates after you merge this initial pull request.
📦 📦 Greenkeeper has detected multiple
package.json
files. They have all been added to a newgreenkeeper.json
config file. They’ve been collected in a group calleddefault
, meaning that all of them will receive updates together. You can rename, add and remove groups and freely assign eachpackage.json
to whichever group you like. It’s common, for example, to have onefrontend
group and onebackend
group, each with a couple ofpackage.json
files. In any case, all files in a group will have their updates collected into single PRs and issues.💥 Tests on this branch are failing. Here’s how to proceed.
To solve the issue, first find out which of the dependency’s updates is causing the problem. Then fix your code to accomodate the changes in the updated dependency. next-update is a really handy tool to help you with this.
Then push your changes to this branch and merge it.
🙈 How to ignore certain dependencies
You may have good reasons for not wanting to update to a certain dependency right now. In this case, you can change the dependency’s version string in the
package.json
file back to whatever you prefer.To make sure Greenkeeper doesn’t nag you again on the next update, add a
greenkeeper.ignore
field to yourpackage.json
, containing a list of dependencies you don’t want to update.👩💻 How to update this pull request
✨ How do dependency updates work with Greenkeeper?
After you merge this pull request, Greenkeeper will create a new branch whenever a dependency is updated, with the new version applied. The branch creation should trigger your testing services and check whether your code still works with the new dependency version. Depending on the the results of these tests Greenkeeper will try to open meaningful and helpful pull requests and issues, so your dependencies remain working and up-to-date.
The above example shows an in-range update.
1.7.0
is included in the old^1.6.0
range, because of the caret^
character .When the test services report success Greenkeeper will silently delete the branch again, because no action needs to be taken – everything is fine.
However, should the tests fail, Greenkeeper will create an issue to inform you about the problem immediately.
This way, you’ll never be surprised by a dependency breaking your code. As long as everything still works, Greenkeeper will stay out of your way, and as soon as something goes wrong, you’ll be the first to know.
In this example, the new version
4.0.0
is not included in the old^3.0.0
range.For version updates like these – let’s call them “out of range” updates – you’ll receive a pull request.
This means that you no longer need to check for new versions manually – Greenkeeper will keep you up to date automatically.
These pull requests not only serve as reminders to update: If you have solid tests and good coverage, and the pull requests passes those tests, you can very likely just merge it and release a new version of your software straight away
To get a better idea of which ranges apply to which releases, check out the extremely useful semver calculator provided by npm.
FAQ and help
There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.
Good luck with your project and see you soon ✨
Your Greenkeeper bot 🌴