From e084b0b8ba31d58414145c5187c75f8522d6c484 Mon Sep 17 00:00:00 2001 From: Chris Sinjakli Date: Fri, 26 May 2017 12:35:00 +0100 Subject: [PATCH] Add compatibility policy for Ruby and Rails --- README.md | 4 +++- docs/COMPATIBILITY.md | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 docs/COMPATIBILITY.md diff --git a/README.md b/README.md index 2c846980..770290e8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ ![Statesman](http://f.cl.ly/items/410n2A0S3l1W0i3i0o2K/statesman.png) -A statesmanlike state machine library for Ruby 2.0.0 and up. +A statesmanlike state machine library. + +For our policy on compatibility with Ruby and Rails versions, see [COMPATIBILITY.md](docs/COMPATIBILITY.md). [![Gem Version](https://badge.fury.io/rb/statesman.svg)](http://badge.fury.io/rb/statesman) [![Build Status](https://travis-ci.org/gocardless/statesman.svg?branch=master)](https://travis-ci.org/gocardless/statesman) diff --git a/docs/COMPATIBILITY.md b/docs/COMPATIBILITY.md new file mode 100644 index 00000000..bd6be2eb --- /dev/null +++ b/docs/COMPATIBILITY.md @@ -0,0 +1,17 @@ +# Compatibility + +Our goal as Statesman maintainers is for the library to be compatible with all supported versions of Ruby and Rails. + +Specifically, any CRuby/MRI version that has not received an End of Life notice ([e.g. this notice for Ruby 2.1](https://www.ruby-lang.org/en/news/2017/04/01/support-of-ruby-2-1-has-ended/)) is supported. Similarly, any version of Rails listed as currently supported on [this page](http://guides.rubyonrails.org/maintenance_policy.html) is one we aim to support in Statesman. + +To that end, [our build matrix](.travis.yml) includes all these versions. + +Any time Statesman doesn't work on a supported combination of Ruby and Rails, it's a bug, and can be reported [here](https://github.com/gocardless/statesman/issues). + +# Deprecation + +Whenever a version of Ruby or Rails falls out of support, we will mirror that change in Statesman by updating the build matrix and releasing a new major version. + +At that point, we will close any issues that only affect the unsupported version, and may choose to remove any workarounds from the code that are only necessary for the unsupported version. + +We will then bump the major version of Statesman, to indicate the break in compatibility. Even if the new version of Statesman happens to work on the unsupported version of Ruby or Rails, we consider compatibility to be broken at this point.