From 118ae3b9ff62250d55781450f20be05c053ff01f Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Wed, 6 Nov 2024 16:23:50 +0000 Subject: [PATCH 1/6] Update semantic_versioning.md --- .../pipelines/requirements/semantic_versioning.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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..19074f09fa 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,14 @@ 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. +- **`1.5`**: A minor release that adds new features without changing existing functionality. +- **`2.0`**: A major release where inputs or results are no longer backwards compatible, or when you rename or deprecate a parameter, or change the input samplesheet specification. This does not require major changes in workflow functionality—alterations to the pipeline's 'interface' are sufficient to justify a new major version. From 3ed5650af9bfe740fa8dee6130fef8063d91472c Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Wed, 6 Nov 2024 16:55:51 +0000 Subject: [PATCH 2/6] Link to semver guidelines from pipeline release --- sites/docs/src/content/docs/checklists/pipeline_release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/docs/src/content/docs/checklists/pipeline_release.md b/sites/docs/src/content/docs/checklists/pipeline_release.md index 4d218e4421..820e767c24 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/)) From 43dad8a30e877e85596122dde41c6f011e2be5ef Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Wed, 6 Nov 2024 16:56:53 +0000 Subject: [PATCH 3/6] Apply suggestions from code review Co-authored-by: James A. Fellows Yates --- .../pipelines/requirements/semantic_versioning.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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 19074f09fa..aa95662aae 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 @@ -14,6 +14,13 @@ menu: Starting from release version `1.4.3`, bumping the version to: -- **`1.4.4`**: A patch release for minor fixes such as bug corrections that do not modify how the user interacts with the pipeline. -- **`1.5`**: A minor release that adds new features without changing existing functionality. -- **`2.0`**: A major release where inputs or results are no longer backwards compatible, or when you rename or deprecate a parameter, or change the input samplesheet specification. This does not require major changes in workflow functionality—alterations to the pipeline's 'interface' are sufficient to justify a new major version. +- **`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 +- **`1.5`**: 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`**: A major release where execution interaction, inputs or results are no longer backwards 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 From e337b513f3e454dac167612de37bf2faad2e1aae Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Wed, 6 Nov 2024 17:04:16 +0000 Subject: [PATCH 4/6] [automated] Fix code linting --- .../content/docs/checklists/pipeline_release.md | 2 +- .../pipelines/requirements/semantic_versioning.md | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sites/docs/src/content/docs/checklists/pipeline_release.md b/sites/docs/src/content/docs/checklists/pipeline_release.md index 820e767c24..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/) - 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. + - [ ] 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 aa95662aae..766e7fa043 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 @@ -15,12 +15,12 @@ menu: Starting from release version `1.4.3`, bumping the version to: - **`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 + - 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 - **`1.5`**: 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 + - 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`**: A major release where execution interaction, inputs or results are no longer backwards 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 + - 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 From c85238e2d4de226fd6955b2e1a9fc7cdd4c028d8 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Thu, 7 Nov 2024 12:24:13 +0000 Subject: [PATCH 5/6] Apply suggestions from code review Co-authored-by: Simon Pearce <24893913+SPPearce@users.noreply.github.com> --- .../pipelines/requirements/semantic_versioning.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 766e7fa043..7b8d5dcf40 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 @@ -17,10 +17,11 @@ Starting from release version `1.4.3`, bumping the version to: - **`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 -- **`1.5`**: A minor release that adds new features without changing existing functionality. Examples: + - 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`**: A major release where execution interaction, inputs or results are no longer backwards in terms of pipeline user interaction. Examples: +- **`2.0.0`**: A major release where execution interaction, inputs or result structures are no longer backwards 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. + - 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 From 61e6972a59e80739825d1dcfba8e764a29993982 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Thu, 7 Nov 2024 12:24:53 +0000 Subject: [PATCH 6/6] Update sites/docs/src/content/docs/guidelines/pipelines/requirements/semantic_versioning.md --- .../guidelines/pipelines/requirements/semantic_versioning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7b8d5dcf40..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 @@ -21,7 +21,7 @@ Starting from release version `1.4.3`, bumping the version to: - **`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 in terms of pipeline user interaction. Examples: +- **`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