From 0113db2e069b7bc646a04fff8b06318da3cc3fd4 Mon Sep 17 00:00:00 2001 From: Hutson Betts Date: Fri, 1 Dec 2017 14:55:02 -0600 Subject: [PATCH] docs(README): add node support policy Add a _Node Support Policy_ section to the project's `README.md` file to indicate what this project, and its core team, are promising in terms of Node runtime support. Establishing a support policy provides reassurance to the community that they can expect a level of functionality from `semantic-release`, while providing guidance to the core maintainers, and everyone else that contributes, the level of support they should espire to. Closes #485 --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 30ac378f..42d0ae8d 100644 --- a/README.md +++ b/README.md @@ -287,6 +287,8 @@ Being able to write code for just the most recent node versions greatly simplifi For a special purpose tool like `semantic-release`, that's only meant to be used in controlled CI environments, we think it's okay to have such a high version requirement. As `semantic-release` handles package publishing we expect almost every project to have at least one build job running node 8 already – and that's all it takes. Even if that's not that case `semantic-release` can still be executed with the help of [npx](https://www.npmjs.com/package/npx) (`npx -p node@8 npm run semantic-release`). +Please see our [Node Support Policy](#node-support-policy) for our long-term promise for supporting Node. + ## Badge Use this in one of your projects? Include one of these badges in your README.md to let people know that your package is published using `semantic-release`. @@ -309,6 +311,20 @@ Use this in one of your projects? Include one of these badges in your README.md [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release) ``` +## Node Support Policy + +We only support [Long-Term Support](https://github.com/nodejs/Release) versions of Node starting with [Node 8.9.0 (LTS)](https://nodejs.org/en/blog/release/v8.9.0/). + +We specifically limit our support to LTS versions of Node, not because this package won't work on other versions, but because we have a limited amount of time, and supporting LTS offers the greatest return on that investment. + +It's possible this package will work correctly on newer versions of Node. It may even be possible to use this package on older versions of Node, though that's more unlikely as we'll make every effort to take advantage of features available in the oldest LTS version we support. + +As each Node LTS version reaches its end-of-life we will remove that version from the node engines property of our package's package.json file. Removing a Node version is considered a breaking change and will entail the publishing of a new major version of this package. We will not accept any requests to support an end-of-life version of Node. Any merge requests or issues supporting an end-of-life version of Node will be closed. + +We will accept code that allows this package to run on newer, non-LTS, versions of Node. Furthermore, we will attempt to ensure our own changes work on the latest version of Node. To help in that commitment, our continuous integration setup runs against all LTS versions of Node in addition the most recent Node release; called current. + +JavaScript package managers should allow you to install this package with any version of Node, with, at most, a warning if your version of Node does not fall within the range specified by our node engines property. If you encounter issues installing this package, please report the issue to your package manager. + ## License MIT License