diff --git a/sites/docs/src/content/docs/checklists/pipeline_release.md b/sites/docs/src/content/docs/checklists/pipeline_release.md index 4d218e4421..efad383ee4 100644 --- a/sites/docs/src/content/docs/checklists/pipeline_release.md +++ b/sites/docs/src/content/docs/checklists/pipeline_release.md @@ -26,7 +26,7 @@ If this is your first release, make sure to follow the [first release tutorial]( - [ ] For example, `1.0.0dev` becomes `1.0.0` - [ ] Use the `nf-core pipelines bump-version` command to make the changes, eg: navigate to the pipeline directory and run `nf-core pipelines bump-version 1.0.0` - [ ] Please make sure to use strictly numeric release numbers - - [ ] Use [Semantic Versioning](https://semver.org/) + - [ ] Use [Semantic Versioning](https://semver.org/) - see the [nf-core semantic versioning guidelines](docs/guidelines/pipelines/requirements/semantic_versioning.md) to decide if you need a patch, minor, or major release. - [ ] Make sure to update the version in any pipeline diagrams and other figures - [ ] Run `nf-core pipelines lint --release` and check that there are no test failures for release. - [ ] Check that `CHANGELOG.md` includes everything that has been added/fixed in this release, update the version number above the changes, and optionally add a human-readable release name (e.g. using a [code name generator](http://www.codenamegenerator.com/)) diff --git a/sites/docs/src/content/docs/guidelines/pipelines/requirements/semantic_versioning.md b/sites/docs/src/content/docs/guidelines/pipelines/requirements/semantic_versioning.md index 65ef809193..d906110f72 100644 --- a/sites/docs/src/content/docs/guidelines/pipelines/requirements/semantic_versioning.md +++ b/sites/docs/src/content/docs/guidelines/pipelines/requirements/semantic_versioning.md @@ -6,13 +6,22 @@ menu: weight: 90 --- -Pipelines must be released with stable release tags. -Releases must use GitHub releases and [keep a detailed changelog](https://keepachangelog.com/en/1.0.0/) file. +- Pipelines must be released with stable release tags. +- Releases must use GitHub releases and include a [detailed changelog](https://keepachangelog.com/en/1.0.0/) file. +- Release version tags must be numerical only (no `v` prefix) and should follow [semantic versioning](https://semver.org/) rules: `[major].[minor].[patch]` -Release version tags must be numerical only (no `v` prefix) and should follow [semantic versioning](https://semver.org/) rules: `[major].[minor].[patch]` +**Versioning Examples** -For example, starting with with a release version `1.4.3`, bumping the version to: +Starting from release version `1.4.3`, bumping the version to: -- `1.4.4` would be a patch release for minor things such as fixing bugs. -- `1.5` would be a minor release, for example adding some new features. -- `2.0` would correspond to the _major_ release where results would no longer be backwards compatible. +- **`1.4.4`**: A patch release for minor fixes such as bug corrections that do not modify how the user interacts with the pipeline. Examples: + - Inserting a missing argument to a process command line + - Updating a container build version of a tool that is otherwise the same version of the tool itself + - Fixing the logic of the pipeline operators to ensure correct inputs for a process +- **`1.5.0`**: A minor release that adds new features without changing existing functionality. Examples: + - Adding a new parameter that adds new functionality/options to an existing module + - Add a new optional or default process that does not change the way the user interacts with previous steps of a pipeline +- **`2.0.0`**: A major release where execution interaction, inputs or result structures are no longer backwards compatible in terms of pipeline user interaction. Examples: + - Renaming or deprecations of existing parameter(s) + - Change to input sample sheet specification (adding, dropping, renaming of mandatory columns) or change the input samplesheet specification + - Note that a major release DOES NOT necessarily require new functionality