The project is in a healthy, maintained state
A gem / CLI tool to automate the release process of other gems
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 6, < 8
~> 4.8
>= 1.7, < 2
>= 3.0, < 4
 Project Readme

GitHub tag (latest SemVer pre-release)

runger_release_assistant

This is a CLI tool that I (David Runger) use to automate the release of new gem versions via git/GitHub and (optionally) via RubyGems.

I do not recommend this gem for general use.

  • runger_release_assistant
    • Not recommended for general use!
    • Dependencies
    • Installation
      • Global installation
      • Installation in a specific project
        • Create a binstub
    • Basic usage
      • Available options and examples
    • Config
    • Using with RubyGems
    • Development
    • Contributing
    • License

Not recommended for general use!

This gem is somewhat customized and built specifically for my (David Runger's) custom and idiosyncratic workflow. For example, after releasing, this gem will automatically execute a safe command, if one is present on the machine. You might not want this behavior (if you have a safe command that you don't want to be invoked after a release).

Realistically speaking, though, this gem actually probably could be used by anyone, since most of this gem's functionality actually is built in a generalized way that I think won't conflict with most other people's workflows, but, still, I'm guessing that there are other, better tools available, anyway, and, so, on net, I just wouldn't recommend that others use this gem.

Dependencies

This gem assumes that you have git installed.

Installation

Global installation

gem install runger_release_assistant

Then you can execute release anywhere on your machine.

Installation in a specific project

Add runger_release_assistant to your Gemfile:

group :development do
  gem 'runger_release_assistant', require: false
end

Then, you can execute bundle exec release.

Create a binstub

When using bundler, you can create a binstub via:

bundle binstubs runger_release_assistant

Then, you can execute bin/release.

Basic usage

If installed globally:

$ release [options]

If installed via bundler without a binstub:

$ bundle exec release [options]

If installed via bundler with a binstub:

$ bin/release [options]

Available options and examples

After installing, execute release --help to see usage examples and available options.

$ release --help

Usage: release [options]

Example:
  release
  release --type minor
  release -t patch

    -t, --type                Release type (major, minor, or patch)
    -d, --debug               print debugging info
    -s, --show-system-output  show system output
    -i, --init                create a `.release_assistant.yml` config file
    -v, --version             print the version
    -h, --help                print this help information

Config

You can create a configuration file with release --init.

Here is an example:

---
git: true
rubygems: false
primary_branch: main

The above example (more or less) illustrates the default values, so you don't need to create a config file, if those are the values that you want.

Regarding the primary_branch option, runger_release_assistant will automatically detect as the "primary branch" any one of the following: main, master, or trunk. So, if one of those is the name of your primary branch, and if you also want git: true and rubygems: false, then you don't need to create a config file.

Using with RubyGems

By default, runger_release_assistant assumes that you only want to "release" your gem via GitHub. If you'd also like to release the gem via RubyGems, then create a .release_assistant.yml file by executing release --init. Within that file, modify the default rubygems: false option to rubygems: true.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/davidrunger/runger_release_assistant.

License

The gem is available as open source under the terms of the MIT License.