mattbrictson / bundleup

A friendlier CLI for Bundler’s `update` and `outdated` commands.
MIT License
193 stars 6 forks source link

feature: run tests and commit after changing any gem version #211

Open goulvench opened 1 year ago

goulvench commented 1 year ago

Great project! I believe this could soon be integrated into bundler itself. Wait and see!

I've tested bundle-auto-update and quite enjoyed the automated version increment -> test -> commit, but didn't have many gems to update, and since the project isn't maintained anymore I didn't want to rely on it too much.

I'd love to see this tool use the same patch/minor/major -> test -> commit workflow.

mattbrictson commented 1 year ago

Thanks for the suggestions!

In terms of increment → test → commit workflows, have you considered a PR based tool like Dependabot or Depfu? These are a great way to automatically update dependencies 1 at a time (or in batch), and then your PR checks (CI) can be used to automatically test them as well before merging.

I see bundleup as an alternative for people who can't or don't want to use PR bots, for whatever reason. But I don't want to reinvent the wheel if the PR bots already do such a good job.

What are your thoughts on the value of a local tool vs using a GitHub bot?

goulvench commented 1 year ago

I'm using Gitlab, and dependabot setup is a lot of work on that platform compared with Github, and it's quite an investment for projects where nobody is able to provide ongoing maintenance, or when taking over a project where no dependency checks have been put in place.

But apart from that, bundleup in its current state is mostly a much more readable and interactive version of bundle outdated combined with bundle update.

Bundler updates to the latest version unless told otherwise (using --patch, --minor or --major flags), and bundleup would improve DX over Bundler if it simplified updating dependencies incrementally. Committing individual updates would enable using git-bisect even if when bumping all dependencies at once. The workflow for that use case would be: update all dependencies locally, run test suite, if anything breaks bisect until the culprit is found.

Additionally, prefilling git commit message would be a really nice addition, copying output from bundle oudated or bundle update is suboptimal.

Lastly, fetching context (even just a link to the github release diff page) would be awesome.