Giter VIP home page Giter VIP logo

bundleup's Introduction

IRB.send :easter_egg, :dancing

Spinning Ruby logo

💬 Writing

I write about Ruby and related programming topics at mattbrictson.com/blog. Here are some articles I’ve posted recently:

🧑‍💻 Projects

I’m currently working on:

mighty_test – Minitest is the standard testing library for Ruby projects, but it lacks the DX polish that developers have come to expect from modern testing tools. My mighty_test gem gives Minitest a modern CLI with common-sense features like color output, fail-fast, CI integration, and interactive watch mode.

nextgen – I regularly update a Rails app generator with recommendations based on my latest Rails consulting work. Nextgen embraces the fact that every project has different requirements, and offers dozens of interactive options, including Vite for apps that need robust TS/React frontends.

tomo – This is my take on a modern alternative to Capistrano for deploying Rails apps. It focuses on a friendly developer experience: familiar SSH concepts, an intuitive CLI, well-documented extension points, and helpful error messages. I use tomo to deploy many of my side projects.


Other Ruby open source projects that I’ve built and continue to support:

  • bundleup is a CLI for Gemfile upgrades. It’s a bit like yarn upgrade-interactive, but for Bundler.
  • pgcli-rails plugs into Rails apps to replace the default database console with the more full-featured pgcli.
  • gem is a GitHub template for building and maintaining gems.

🪴 Maintenance

I also serve as a core contributor and maintainer for the following Ruby projects:

bundleup's People

Contributors

dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar inkstak avatar mattbrictson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bundleup's Issues

bundleup crashes if existing Gemfile has not been installed

Given an existing Gemfile and Gemfile.lock, if any of the dependency versions specified in the lock file are not already installed, then bundle list will fail. This causes bundleup to crash with a message like:

Failed to execute: bundle list (RuntimeError)

Possible solutions:

  • bundleup could rescue this error and print a more informative error message.
  • bundleup could rescue this error and automatically run bundle install to install the missing dependencies.
  • bundleup could always start by running bundle check || bundle install to test that all dependencies are present – and install any that are missing – before proceeding.

Support gems.rb and gems.lock files

bundleup incorrectly expects Gemfile and Gemfile.lock to be present in a project is using gems.rb and gems.lock files.

Expected behaviour:

Correctly detect and update gems.rb and gems.lock file.

Display Gemfile comment to explain pinned items, when available

When a "pin" in a Gemfile prevents a gem from being upgraded, bundleup displays a message like this:

Note that the following gem(s) are being held back:

friendly_id    5.1.0 → 5.2.3 : pinned at ~> 5.1.0
rbnacl         3.4.0 → 5.0.0 : pinned at ~> 3.4  
secure_headers 3.7.1 → 4.0.0 : pinned at ~> 3.3  

It would be nice if bundleup could display further information about why each gem is pinned. We can do this if there is a comment in the Gemfile explaining the pin.

For example, if the Gemfile has this:

gem "rbnacl", "~> 3.4" # Version 4+ is not compatible with net-ssh

Then perhaps bundleup could notice that comment and include it in its output:

Note that the following gem(s) are being held back:

friendly_id    5.1.0 → 5.2.3 : pinned at ~> 5.1.0
rbnacl         3.4.0 → 5.0.0 : pinned at ~> 3.4   # Version 4+ is not compatible with net-ssh
secure_headers 3.7.1 → 4.0.0 : pinned at ~> 3.3  

feature: run tests and commit after changing any gem version

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.