diff --git a/.gitignore b/.gitignore index f1f4956..fc29803 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ test-app/log test-app/pids test-app/procodile.log global.yml +*.gem diff --git a/README.md b/README.md index a290ed1..740ac90 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,20 @@ # Procodile 🐊 +> **This is DeployHQ's maintained fork of [adamcooke/procodile](https://github.com/adamcooke/procodile).** +> +> Upstream has had no release since 1.0.26 (November 2019) and no commit since February 2021. Its `master` carries a version bump to 1.0.27 and a bug fix that were never published to RubyGems, and open pull requests have gone unanswered for years. +> +> We depend on Procodile to run DeployHQ in production, so we maintain it. All credit for the original work goes to Adam Cooke; this fork stays MIT licensed. +> +> **The gem is published as [`dhq-procodile`](https://rubygems.org/gems/dhq-procodile)**, because we do not own the `procodile` name on RubyGems. It still installs an executable called `procodile`, so no Procfile, script, or Capistrano config needs to change: +> +> ``` +> gem install dhq-procodile +> procodile --version +> ``` +> +> Upstream pull requests are left open as a courtesy, but this fork is where changes land. + Running & deploying Ruby apps to places like [Viaduct](https://viaduct.io) & Heroku is really easy but running processes on actual servers is less fun. Procodile aims to take some the stress out of running your Ruby/Rails apps and give you some of the useful process management features you get from the takes of the PaaS providers. Procodile is a bit like [Foreman](https://github.com/ddollar/foreman) but things are designed to run in the background (as well as the foreground if you prefer) and there's a supervisor which keeps an eye on your processes and will respawn them if they die. @@ -8,7 +23,7 @@ Procodile works out of the box with your existing `Procfile`. * [Watch a quick screencast](https://vimeo.com/188041935) * [Read documentation](https://github.com/adamcooke/procodile/wiki) -* [View on RubyGems](https://rubygems.org/gems/procodile) -* [Check the CHANGELOG](https://github.com/adamcooke/procodile/blob/master/CHANGELOG.md) +* [View on RubyGems](https://rubygems.org/gems/dhq-procodile) +* [Check the CHANGELOG](https://github.com/adamcooke/procodile/blob/master/CHANGELOG.md) (upstream) ![Screenshot](https://share.adam.ac/16/cAZRKUM7.png) diff --git a/dhq-procodile.gemspec b/dhq-procodile.gemspec new file mode 100644 index 0000000..f312ebb --- /dev/null +++ b/dhq-procodile.gemspec @@ -0,0 +1,26 @@ +require_relative './lib/procodile/version' +Gem::Specification.new do |s| + s.name = "dhq-procodile" + s.description = %q{A sophisticated process manager for applications running on Linux & macOS. This is DeployHQ's maintained fork of Adam Cooke's procodile, which has had no release since 2019.} + s.summary = %q{This gem will help you run processes from a Procfile on Linux/macOS machines in the background or the foreground. DeployHQ's maintained fork of procodile.} + s.homepage = "https://github.com/deployhq/procodile" + s.version = Procodile::VERSION + s.files = Dir.glob("{lib,bin}/**/*") + ['MIT-LICENCE', 'README.md'] + s.require_paths = ["lib"] + s.authors = ["Adam Cooke", "DeployHQ"] + s.email = ["support@deployhq.com"] + s.licenses = ['MIT'] + # Matches the Ruby versions exercised by .github/workflows/tests.yml + s.required_ruby_version = '>= 2.7' + s.metadata = { + 'source_code_uri' => 'https://github.com/deployhq/procodile', + 'bug_tracker_uri' => 'https://github.com/deployhq/procodile/issues' + } + s.bindir = "bin" + s.executables << 'procodile' + s.add_runtime_dependency 'json' + # `logger` is still a default gem on Ruby 3.x but is being removed from the + # default set in Ruby 4.0, which already warns on require. lib/procodile/logger.rb + # requires it, so declare it rather than relying on it being present. + s.add_runtime_dependency 'logger' +end diff --git a/procodile.gemspec b/procodile.gemspec deleted file mode 100644 index af06847..0000000 --- a/procodile.gemspec +++ /dev/null @@ -1,18 +0,0 @@ -require_relative './lib/procodile/version' -Gem::Specification.new do |s| - s.name = "procodile" - s.description = %q{A sophisticated process manager for applications running on Linux & macOS.} - s.summary = %q{This gem will help you run processes from a Procfile on Linux/macOS machines in the background or the foreground.} - s.homepage = "https://github.com/adamcooke/procodile" - s.version = Procodile::VERSION - s.files = Dir.glob("{lib,bin}/**/*") - s.require_paths = ["lib"] - s.authors = ["Adam Cooke"] - s.email = ["me@adamcooke.io"] - s.licenses = ['MIT'] - s.cert_chain = ['certs/adamcooke.pem'] - s.signing_key = File.expand_path("~/.gem/signing-key.pem") if $0 =~ /gem\z/ - s.bindir = "bin" - s.executables << 'procodile' - s.add_runtime_dependency 'json' -end