diff --git a/.github/actions/create-lint-wf/action.yml b/.github/actions/create-lint-wf/action.yml index dc24546146..3ef0760513 100644 --- a/.github/actions/create-lint-wf/action.yml +++ b/.github/actions/create-lint-wf/action.yml @@ -89,7 +89,7 @@ runs: - name: Upload log file artifact if: ${{ always() }} - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: nf-core-log-file-${{ matrix.NXF_VER }} path: create-lint-wf/log.txt diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index cebcc854bc..e89f6ff873 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -19,7 +19,7 @@ jobs: ) steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: token: ${{ secrets.NF_CORE_BOT_AUTH_TOKEN }} @@ -36,7 +36,7 @@ jobs: fi gh pr checkout $PR_NUMBER - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" @@ -65,7 +65,7 @@ jobs: echo "File changed: ${{ env.changed }}" - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" cache: "pip" diff --git a/.github/workflows/create-lint-wf.yml b/.github/workflows/create-lint-wf.yml index e0b4c67cfc..5e32c4280e 100644 --- a/.github/workflows/create-lint-wf.yml +++ b/.github/workflows/create-lint-wf.yml @@ -48,12 +48,12 @@ jobs: export NXF_WORK=$(pwd) # Get the repo code - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out source-code repository # Set up nf-core/tools - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" cache: pip diff --git a/.github/workflows/create-test-lint-wf-template.yml b/.github/workflows/create-test-lint-wf-template.yml index 3a27cd5e4e..5871919ca3 100644 --- a/.github/workflows/create-test-lint-wf-template.yml +++ b/.github/workflows/create-test-lint-wf-template.yml @@ -40,7 +40,7 @@ jobs: - name: πŸ— Set up yq uses: frenck/action-setup-yq@v1 - name: checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Create Matrix id: create_matrix run: | @@ -77,11 +77,11 @@ jobs: cd create-lint-wf-template export NXF_WORK=$(pwd) - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out source-code repository - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" @@ -176,7 +176,7 @@ jobs: - name: Upload log file artifact if: ${{ always() }} - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: nf-core-log-file-${{ matrix.TEMPLATE }} path: create-test-lint-wf/artifact_files.tar diff --git a/.github/workflows/create-test-wf.yml b/.github/workflows/create-test-wf.yml index 782a08ac9f..a6f3b5ac6b 100644 --- a/.github/workflows/create-test-wf.yml +++ b/.github/workflows/create-test-wf.yml @@ -48,11 +48,11 @@ jobs: cd create-test-wf export NXF_WORK=$(pwd) - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out source-code repository - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" @@ -75,7 +75,7 @@ jobs: - name: Upload log file artifact if: ${{ always() }} - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: nf-core-log-file-${{ matrix.NXF_VER }} path: create-test-wf/log.txt diff --git a/.github/workflows/deploy-pypi.yml b/.github/workflows/deploy-pypi.yml index 1202891e4d..0e7ddf6755 100644 --- a/.github/workflows/deploy-pypi.yml +++ b/.github/workflows/deploy-pypi.yml @@ -13,11 +13,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out source-code repository - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 4334871c4c..9feff8d51a 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -32,7 +32,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" diff --git a/.github/workflows/lint-code.yml b/.github/workflows/lint-code.yml index 3bddd42d49..9581fa18b2 100644 --- a/.github/workflows/lint-code.yml +++ b/.github/workflows/lint-code.yml @@ -18,10 +18,10 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" cache: "pip" diff --git a/.github/workflows/push_dockerhub_dev.yml b/.github/workflows/push_dockerhub_dev.yml index c613e13a2d..3d676eabdb 100644 --- a/.github/workflows/push_dockerhub_dev.yml +++ b/.github/workflows/push_dockerhub_dev.yml @@ -23,7 +23,7 @@ jobs: fail-fast: false steps: - name: Check out code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Build nfcore/tools:dev docker image run: docker build --no-cache . -t nfcore/tools:dev diff --git a/.github/workflows/push_dockerhub_release.yml b/.github/workflows/push_dockerhub_release.yml index 5a076f6d3b..4b7e8aacb3 100644 --- a/.github/workflows/push_dockerhub_release.yml +++ b/.github/workflows/push_dockerhub_release.yml @@ -23,7 +23,7 @@ jobs: fail-fast: false steps: - name: Check out code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Build nfcore/tools:latest docker image run: docker build --no-cache . -t nfcore/tools:latest diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index ae2df47e61..a29a6970ed 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -61,7 +61,7 @@ jobs: name: Get test file matrix runs-on: "ubuntu-latest" steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out source-code repository - name: List tests @@ -87,11 +87,11 @@ jobs: cd pytest export NXF_WORK=$(pwd) - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out source-code repository - name: Set up Python ${{ needs.setup.outputs.python-version }} - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: ${{ needs.setup.outputs.python-version }} cache: "pip" @@ -148,14 +148,14 @@ jobs: echo "test=${test}" >> $GITHUB_ENV - name: Store snapshot report - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 if: always() with: name: Snapshot Report ${{ env.test }} path: ./snapshot_report.html - name: Upload coverage - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: coverage_${{ env.test }} path: .coverage @@ -170,9 +170,9 @@ jobs: mkdir -p pytest cd pytest - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 env: AGENT_TOOLSDIRECTORY: /opt/actions-runner/_work/tools/tools/ with: @@ -189,14 +189,14 @@ jobs: mv .github/.coveragerc . - name: Download all artifacts - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4 - name: Run coverage run: | coverage combine --keep coverage*/.coverage* coverage report coverage xml - - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4 + - uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4 with: files: coverage.xml env: diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index ea815a219a..42d0f5c092 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -60,10 +60,10 @@ jobs: matrix: ${{fromJson(needs.get-pipelines.outputs.matrix)}} fail-fast: false steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out nf-core/tools - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 name: Check out nf-core/${{ matrix.pipeline }} with: repository: nf-core/${{ matrix.pipeline }} @@ -73,7 +73,7 @@ jobs: fetch-depth: "0" - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" @@ -102,7 +102,7 @@ jobs: - name: Upload sync log file artifact if: ${{ always() }} - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: sync_log_${{ matrix.pipeline }} path: sync_log_${{ matrix.pipeline }}.txt diff --git a/.github/workflows/update-textual-snapshots.yml b/.github/workflows/update-textual-snapshots.yml index 2adb1b8d81..32983d38c9 100644 --- a/.github/workflows/update-textual-snapshots.yml +++ b/.github/workflows/update-textual-snapshots.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -33,7 +33,7 @@ jobs: # Install dependencies and run pytest - name: Set up Python - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" cache: "pip" diff --git a/.github/workflows/update_components_template.yml b/.github/workflows/update_components_template.yml index e2ecebfcb4..86e6ba7b87 100644 --- a/.github/workflows/update_components_template.yml +++ b/.github/workflows/update_components_template.yml @@ -11,10 +11,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.x" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 67aa3204c4..7eca8468e8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.6.9 + rev: v0.7.0 hooks: - id: ruff # linter args: [--fix, --exit-non-zero-on-fix] # sort imports and fix @@ -19,7 +19,7 @@ repos: alias: ec - repo: https://github.com/pre-commit/mirrors-mypy - rev: "v1.11.2" + rev: "v1.13.0" hooks: - id: mypy additional_dependencies: diff --git a/CHANGELOG.md b/CHANGELOG.md index 364a079a70..eac5adcdd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - Keep pipeline name in version.yml file ([#3223](https://github.com/nf-core/tools/pull/3223)) - Fix Manifest DOI text ([#3224](https://github.com/nf-core/tools/pull/3224)) - Do not assume pipeline name is url ([#3225](https://github.com/nf-core/tools/pull/3225)) +- fix worklfow_dispatch trigger and parse more review comments in awsfulltest ([#3235](https://github.com/nf-core/tools/pull/3235)) ### Download @@ -20,6 +21,12 @@ - Include .nf-core.yml in `nf-core pipelines bump-version` ([#3220](https://github.com/nf-core/tools/pull/3220)) - create: add shortcut to toggle all switches ([#3226](https://github.com/nf-core/tools/pull/3226)) +- Remove unrelated values when saving `.nf-core` file ([#3227](https://github.com/nf-core/tools/pull/3227)) +- chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.12.0 ([#3230](https://github.com/nf-core/tools/pull/3230)) +- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.7.0 ([#3229](https://github.com/nf-core/tools/pull/3229)) +- Update python:3.12-slim Docker digest to 032c526 ([#3232](https://github.com/nf-core/tools/pull/3232)) +- use correct `--profile` options for `nf-core subworkflows test` ([#3233](https://github.com/nf-core/tools/pull/3233)) +- Update GitHub Actions ([#3237](https://github.com/nf-core/tools/pull/3237)) ## [v3.0.2 - Titanium Tapir Patch](https://github.com/nf-core/tools/releases/tag/3.0.2) - [2024-10-11] @@ -53,7 +60,7 @@ **Highlights** -- Pipeline commands are renamed from `nf-core ` to `nf-core pipelines ` to follow the same command structure as modules and subworkflows commands. +- Pipeline commands are renamed from `nf-core ` to `nf-core pipelines ` to follow the same command structure as modules and subworkflows commands. - More customisation for pipeline templates. The template has been divided into features which can be skipped, e.g. you can create a new pipeline without any traces of FastQC in it. - A new Text User Interface app when running `nf-core pipelines create` to help us guide you through the process better (no worries, you can still use the cli if you give all values as parameters) - We replaced nf-validation with nf-schema in the pipeline template @@ -206,7 +213,7 @@ ### Download -- Replace `--tower` with `--platform`. The former will remain for backwards compatability for now but will be removed in a future release. ([#2853](https://github.com/nf-core/tools/pull/2853)) +- Replace `--tower` with `--platform`. The former will remain for backwards compatibility for now but will be removed in a future release. ([#2853](https://github.com/nf-core/tools/pull/2853)) - Better error message when GITHUB_TOKEN exists but is wrong/outdated - New `--tag` argument to add custom tags during a pipeline download ([#2938](https://github.com/nf-core/tools/pull/2938)) @@ -515,7 +522,7 @@ - Refactored the CLI parameters related to container images. Although downloading other images than those of the Singularity/Apptainer container system is not supported for the time being, a generic name for the parameters seemed preferable. So the new parameter `--singularity-cache-index` introduced in [#2247](https://github.com/nf-core/tools/pull/2247) has been renamed to `--container-cache-index` prior to release ([#2336](https://github.com/nf-core/tools/pull/2336)). - To address issue [#2311](https://github.com/nf-core/tools/issues/2311), a new parameter `--container-library` was created allowing to specify the container library (registry) from which container images in OCI format (Docker) should be pulled ([#2336](https://github.com/nf-core/tools/pull/2336)). - Container detection in configs was improved. This allows for DSL2-like container definitions inside the container parameter value provided to process scopes [#2346](https://github.com/nf-core/tools/pull/2346). -- Add apptainer to the list of false positve container strings ([#2353](https://github.com/nf-core/tools/pull/2353)). +- Add apptainer to the list of false positive container strings ([#2353](https://github.com/nf-core/tools/pull/2353)). #### Updated CLI parameters @@ -549,7 +556,7 @@ _In addition, `-r` / `--revision` has been changed to a parameter that can be pr - GitPod base image: Always self-update to the latest version of Nextflow. Add [pre-commit](https://pre-commit.com/) dependency. - GitPod configs: Update Nextflow as an init task, init pre-commit in pipeline config. - Refgenie: Create `nxf_home/nf-core/refgenie_genomes.config` path if it doesn't exist ([#2312](https://github.com/nf-core/tools/pull/2312)) -- Add CI tests to test running a pipeline whe it's created from a template skipping different areas +- Add CI tests to test running a pipeline when it's created from a template skipping different areas ## [v2.8 - Ruthenium Monkey](https://github.com/nf-core/tools/releases/tag/2.8) - [2023-04-27] @@ -585,7 +592,7 @@ _In addition, `-r` / `--revision` has been changed to a parameter that can be pr - Add an `--empty-template` option to create a module without TODO statements or examples ([#2175](https://github.com/nf-core/tools/pull/2175) & [#2177](https://github.com/nf-core/tools/pull/2177)) - Removed the `nf-core modules mulled` command and all its code dependencies ([2199](https://github.com/nf-core/tools/pull/2199)). -- Take into accout the provided `--git_remote` URL when linting all modules ([2243](https://github.com/nf-core/tools/pull/2243)). +- Take into account the provided `--git_remote` URL when linting all modules ([2243](https://github.com/nf-core/tools/pull/2243)). ### Subworkflows @@ -994,7 +1001,7 @@ Please note that there are many excellent integrations for Prettier available, f - `input:` / `output:` not being specified in module - Allow for containers from other biocontainers resource as defined [here](https://github.com/nf-core/modules/blob/cde237e7cec07798e5754b72aeca44efe89fc6db/modules/cat/fastq/main.nf#L7-L8) - Fixed traceback when using `stageAs` syntax as defined [here](https://github.com/nf-core/modules/blob/cde237e7cec07798e5754b72aeca44efe89fc6db/modules/cat/fastq/main.nf#L11) -- Added `nf-core schema docs` command to output pipline parameter documentation in Markdown format for inclusion in GitHub and other documentation systems ([#741](https://github.com/nf-core/tools/issues/741)) +- Added `nf-core schema docs` command to output pipeline parameter documentation in Markdown format for inclusion in GitHub and other documentation systems ([#741](https://github.com/nf-core/tools/issues/741)) - Allow conditional process execution from the configuration file ([#1393](https://github.com/nf-core/tools/pull/1393)) - Add linting for when condition([#1397](https://github.com/nf-core/tools/pull/1397)) - Added modules ignored table to `nf-core modules bump-versions`. ([#1234](https://github.com/nf-core/tools/issues/1234)) @@ -1013,7 +1020,7 @@ Please note that there are many excellent integrations for Prettier available, f - Update repo logos to utilize [GitHub's `#gh-light/dark-mode-only`](https://docs.github.com/en/github/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#specifying-the-theme-an-image-is-shown-to), to switch between logos optimized for light or dark themes. The old repo logos have to be removed (in `docs/images` and `assets/`). - Deal with authentication with private repositories -- Bump minimun Nextflow version to 21.10.3 +- Bump minimum Nextflow version to 21.10.3 - Convert pipeline template to updated Nextflow DSL2 syntax - Solve circular import when importing `nf_core.modules.lint` - Disable cache in `nf_core.utils.fetch_wf_config` while performing `test_wf_use_local_configs`. @@ -1035,15 +1042,15 @@ Please note that there are many excellent integrations for Prettier available, f - Defaults in `nextflow.config` must now match the variable _type_ specified in the schema - If you want the parameter to not have a default value, use `null` - Strings set to `false` or an empty string in `nextflow.config` will now fail linting -- Bump minimun Nextflow version to 21.10.3 -- Changed `questionary` `ask()` to `unsafe_ask()` to not catch `KeyboardInterupts` ([#1237](https://github.com/nf-core/tools/issues/1237)) +- Bump minimum Nextflow version to 21.10.3 +- Changed `questionary` `ask()` to `unsafe_ask()` to not catch `KeyboardInterrupts` ([#1237](https://github.com/nf-core/tools/issues/1237)) - Fixed bug in `nf-core launch` due to revisions specified with `-r` not being added to nextflow command. ([#1246](https://github.com/nf-core/tools/issues/1246)) - Update regex in `readme` test of `nf-core lint` to agree with the pipeline template ([#1260](https://github.com/nf-core/tools/issues/1260)) - Update 'fix' message in `nf-core lint` to conform to the current command line options. ([#1259](https://github.com/nf-core/tools/issues/1259)) - Fixed bug in `nf-core list` when `NXF_HOME` is set - Run CI test used to create and lint/run the pipeline template with minimum and latest edge release of NF ([#1304](https://github.com/nf-core/tools/issues/1304)) - New YAML issue templates for tools bug reports and feature requests, with a much richer interface ([#1165](https://github.com/nf-core/tools/pull/1165)) -- Handle synax errors in Nextflow config nicely when running `nf-core schema build` ([#1267](https://github.com/nf-core/tools/pull/1267)) +- Handle syntax errors in Nextflow config nicely when running `nf-core schema build` ([#1267](https://github.com/nf-core/tools/pull/1267)) - Erase temporary files and folders while performing Python tests (pytest) - Remove base `Dockerfile` used for DSL1 pipeline container builds - Run tests with Python 3.10 @@ -1149,7 +1156,7 @@ This marks the first Nextflow DSL2-centric release of `tools` which means that s - Updated `nf-core modules install` and `modules.json` to work with new directory structure ([#1159](https://github.com/nf-core/tools/issues/1159)) - Updated `nf-core modules remove` to work with new directory structure [[#1159](https://github.com/nf-core/tools/issues/1159)] - Restructured code and removed old table style in `nf-core modules list` -- Fixed bug causing `modules.json` creation to loop indefinitly +- Fixed bug causing `modules.json` creation to loop indefinitely - Added `--all` flag to `nf-core modules install` - Added `remote` and `local` subcommands to `nf-core modules list` - Fix bug due to restructuring in modules template @@ -1230,7 +1237,7 @@ This marks the first Nextflow DSL2-centric release of `tools` which means that s ## [v1.13.2 - Copper Crocodile CPR :crocodile: :face_with_head_bandage:](https://github.com/nf-core/tools/releases/tag/1.13.2) - [2021-03-23] - Make module template pass the EC linter [[#953](https://github.com/nf-core/tools/pull/953)] -- Added better logging message if a user doesn't specificy the directory correctly with `nf-core modules` commands [[#942](https://github.com/nf-core/tools/pull/942)] +- Added better logging message if a user doesn't specify the directory correctly with `nf-core modules` commands [[#942](https://github.com/nf-core/tools/pull/942)] - Fixed parameter validation bug caused by JSONObject [[#937](https://github.com/nf-core/tools/issues/937)] - Fixed template creation error regarding file permissions [[#932](https://github.com/nf-core/tools/issues/932)] - Split the `create-lint-wf` tests up into separate steps in GitHub Actions to make the CI results easier to read @@ -1470,7 +1477,7 @@ making a pull-request. See [`.github/CONTRIBUTING.md`](.github/CONTRIBUTING.md) ### Linting - Refactored PR branch tests to be a little clearer. -- Linting error docs explain how to add an additional branch protecton rule to the `branch.yml` GitHub Actions workflow. +- Linting error docs explain how to add an additional branch protection rule to the `branch.yml` GitHub Actions workflow. - Adapted linting docs to the new PR branch tests. - Failure for missing the readme bioconda badge is now a warn, in case this badge is not relevant - Added test for template `{{ cookiecutter.var }}` placeholders diff --git a/CITATION.cff b/CITATION.cff index 017666c018..d1246b69d7 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -24,7 +24,7 @@ version: 2.4.1 doi: 10.1038/s41587-020-0439-x date-released: 2022-05-16 url: https://github.com/nf-core/tools -prefered-citation: +preferred-citation: type: article authors: - family-names: Ewels diff --git a/Dockerfile b/Dockerfile index 8269e95702..cc230cc07b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.12-slim@sha256:af4e85f1cac90dd3771e47292ea7c8a9830abfabbe4faa5c53f158854c2e819d +FROM python:3.12-slim@sha256:032c52613401895aa3d418a4c563d2d05f993bc3ecc065c8f4e2280978acd249 LABEL authors="phil.ewels@seqera.io,erik.danielsson@scilifelab.se" \ description="Docker image containing requirements for nf-core/tools" diff --git a/docs/api/_src/api/index.md b/docs/api/_src/api/index.md index 035a896888..f25e166a90 100644 --- a/docs/api/_src/api/index.md +++ b/docs/api/_src/api/index.md @@ -8,4 +8,4 @@ This API documentation is for the [`nf-core/tools`](https://github.com/nf-core/t - [Module commands](./module_lint_tests/) (run by `nf-core modules lint`) - [Subworkflow commands](./subworkflow_lint_tests/) (run by `nf-core subworkflows lint`) - [nf-core/tools Python package API reference](./api/) - - [nf-core/tools pipeline commands API referece](./api/pipelines/) + - [nf-core/tools pipeline commands API reference](./api/pipelines/) diff --git a/nf_core/__main__.py b/nf_core/__main__.py index 473ba96a5f..4af5a99c5c 100644 --- a/nf_core/__main__.py +++ b/nf_core/__main__.py @@ -1411,7 +1411,7 @@ def command_subworkflows_create(ctx, subworkflow, directory, author, force, migr ) @click.option( "--profile", - type=click.Choice(["none", "singularity"]), + type=click.Choice(["docker", "singularity", "conda"]), default=None, help="Run tests with a specific profile", ) @@ -1630,7 +1630,7 @@ def command_subworkflows_remove(ctx, directory, subworkflow): "limit_output", is_flag=True, default=False, - help="Limit ouput to only the difference in main.nf", + help="Limit output to only the difference in main.nf", ) @click.option( "-a", diff --git a/nf_core/components/update.py b/nf_core/components/update.py index 3e4694adc8..bf176fb6d9 100644 --- a/nf_core/components/update.py +++ b/nf_core/components/update.py @@ -55,7 +55,7 @@ def __init__( self.branch = branch def _parameter_checks(self): - """Checks the compatibilty of the supplied parameters. + """Checks the compatibility of the supplied parameters. Raises: UserWarning: if any checks fail. diff --git a/nf_core/modules/lint/main_nf.py b/nf_core/modules/lint/main_nf.py index 54a69b113e..df5a48d5bf 100644 --- a/nf_core/modules/lint/main_nf.py +++ b/nf_core/modules/lint/main_nf.py @@ -269,7 +269,7 @@ def check_process_section(self, lines, registry, fix_version, progress_bar): url = None line = raw_line.strip(" \n'\"}:") - # Catch preceeding "container " + # Catch preceding "container " if line.startswith("container"): line = line.replace("container", "").strip(" \n'\"}:") diff --git a/nf_core/pipeline-template/.github/workflows/awsfulltest.yml b/nf_core/pipeline-template/.github/workflows/awsfulltest.yml index d8987330d5..1ca2ac2c74 100644 --- a/nf_core/pipeline-template/.github/workflows/awsfulltest.yml +++ b/nf_core/pipeline-template/.github/workflows/awsfulltest.yml @@ -19,9 +19,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: octokit/request-action@v2.x + if: github.event_name != 'workflow_dispatch' id: check_approvals with: - route: GET /repos/{%- raw -%}${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews + route: GET /repos/{%- raw -%}${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews?per_page=100 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - id: test_variables diff --git a/nf_core/pipeline-template/.github/workflows/ci.yml b/nf_core/pipeline-template/.github/workflows/ci.yml index 61738a4147..33631fdc5b 100644 --- a/nf_core/pipeline-template/.github/workflows/ci.yml +++ b/nf_core/pipeline-template/.github/workflows/ci.yml @@ -45,7 +45,7 @@ jobs: profile: "singularity" steps: - name: Check out pipeline code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Nextflow uses: nf-core/setup-nextflow@v2 diff --git a/nf_core/pipeline-template/.github/workflows/download_pipeline.yml b/nf_core/pipeline-template/.github/workflows/download_pipeline.yml index fdd5492ca2..6ba251e522 100644 --- a/nf_core/pipeline-template/.github/workflows/download_pipeline.yml +++ b/nf_core/pipeline-template/.github/workflows/download_pipeline.yml @@ -35,7 +35,7 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" architecture: "x64" diff --git a/nf_core/pipeline-template/.github/workflows/fix-linting.yml b/nf_core/pipeline-template/.github/workflows/fix-linting.yml index 18e6f9e158..13992f5c5b 100644 --- a/nf_core/pipeline-template/.github/workflows/fix-linting.yml +++ b/nf_core/pipeline-template/.github/workflows/fix-linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -32,7 +32,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" diff --git a/nf_core/pipeline-template/.github/workflows/linting.yml b/nf_core/pipeline-template/.github/workflows/linting.yml index 0eee862f96..878998ad9c 100644 --- a/nf_core/pipeline-template/.github/workflows/linting.yml +++ b/nf_core/pipeline-template/.github/workflows/linting.yml @@ -14,10 +14,10 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python 3.12 - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" @@ -31,12 +31,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Install Nextflow uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.12" architecture: "x64" @@ -74,7 +74,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 with: name: linting-logs path: | diff --git a/nf_core/pipeline-template/.github/workflows/release-announcements.yml b/nf_core/pipeline-template/.github/workflows/release-announcements.yml index 035ed63bba..a200d141ec 100644 --- a/nf_core/pipeline-template/.github/workflows/release-announcements.yml +++ b/nf_core/pipeline-template/.github/workflows/release-announcements.yml @@ -31,7 +31,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 + - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.10" - name: Install dependencies diff --git a/nf_core/pipeline-template/.github/workflows/template_version_comment.yml b/nf_core/pipeline-template/.github/workflows/template_version_comment.yml index 87a218446b..51f2f7f94e 100644 --- a/nf_core/pipeline-template/.github/workflows/template_version_comment.yml +++ b/nf_core/pipeline-template/.github/workflows/template_version_comment.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: ref: ${{ github.event.pull_request.head.sha }} diff --git a/nf_core/pipeline-template/conf/base.config b/nf_core/pipeline-template/conf/base.config index fa292339e3..16a4fe6cdf 100644 --- a/nf_core/pipeline-template/conf/base.config +++ b/nf_core/pipeline-template/conf/base.config @@ -20,7 +20,7 @@ process { maxErrors = '-1' // Process-specific resource requirements - // NOTE - Please try and re-use the labels below as much as possible. + // NOTE - Please try and reuse the labels below as much as possible. // These labels are used and recognised by default in DSL2 files hosted on nf-core/modules. // If possible, it would be nice to keep the same label naming convention when // adding in your local modules too. diff --git a/nf_core/pipeline-template/docs/usage.md b/nf_core/pipeline-template/docs/usage.md index ae2761797a..67fda78658 100644 --- a/nf_core/pipeline-template/docs/usage.md +++ b/nf_core/pipeline-template/docs/usage.md @@ -116,7 +116,7 @@ First, go to the [{{ name }} releases page](https://github.com/{{ name }}/releas This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. {% if multiqc %}For example, at the bottom of the MultiQC reports.{% endif %} -To further assist in reproducbility, you can use share and re-use [parameter files](#running-the-pipeline) to repeat pipeline runs with the same settings without having to write out a command with every single parameter. +To further assist in reproducibility, you can use share and reuse [parameter files](#running-the-pipeline) to repeat pipeline runs with the same settings without having to write out a command with every single parameter. :::tip If you wish to share such profile (such as upload as supplementary material for academic publications), make sure to NOT include cluster specific paths to files, nor institutional specific profiles. @@ -146,7 +146,7 @@ The pipeline also dynamically loads configurations from [https://github.com/nf-c Note that multiple profiles can be loaded, for example: `-profile test,docker` - the order of arguments is important! They are loaded in sequence, so later profiles can overwrite earlier profiles. -If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended, since it can lead to different results on different machines dependent on the computer enviroment. +If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended, since it can lead to different results on different machines dependent on the computer environment. {%- if test_config %} diff --git a/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf b/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf index 78fed1fcf6..263eca55d1 100644 --- a/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf +++ b/nf_core/pipeline-template/subworkflows/local/utils_nfcore_pipeline_pipeline/main.nf @@ -258,7 +258,7 @@ def toolBibliographyText() { } def methodsDescriptionText(mqc_methods_yaml) { - // Convert to a named map so can be used as with familar NXF ${workflow} variable syntax in the MultiQC YML file + // Convert to a named map so can be used as with familiar NXF ${workflow} variable syntax in the MultiQC YML file def meta = [:] meta.workflow = workflow.toMap() meta["manifest_map"] = workflow.manifest.toMap() diff --git a/nf_core/pipelines/create/basicdetails.py b/nf_core/pipelines/create/basicdetails.py index 09484fa2ea..2bd2ea1c79 100644 --- a/nf_core/pipelines/create/basicdetails.py +++ b/nf_core/pipelines/create/basicdetails.py @@ -69,7 +69,7 @@ def compose(self) -> ComposeResult: @on(Input.Submitted) def show_exists_warn(self): """Check if the pipeline exists on every input change or submitted. - If the pipeline exists, show warning message saying that it will be overriden.""" + If the pipeline exists, show warning message saying that it will be overridden.""" config = {} for text_input in self.query("TextInput"): this_input = text_input.query_one(Input) diff --git a/nf_core/pipelines/create/finaldetails.py b/nf_core/pipelines/create/finaldetails.py index bd15cf9ddd..dad81689a9 100644 --- a/nf_core/pipelines/create/finaldetails.py +++ b/nf_core/pipelines/create/finaldetails.py @@ -85,7 +85,7 @@ def on_button_pressed(self, event: Button.Pressed) -> None: @on(Input.Submitted) def show_exists_warn(self): """Check if the pipeline exists on every input change or submitted. - If the pipeline exists, show warning message saying that it will be overriden.""" + If the pipeline exists, show warning message saying that it will be overridden.""" outdir = "" for text_input in self.query("TextInput"): this_input = text_input.query_one(Input) diff --git a/nf_core/pipelines/create/githubrepo.py b/nf_core/pipelines/create/githubrepo.py index 99e7b09ab8..b37dfb6170 100644 --- a/nf_core/pipelines/create/githubrepo.py +++ b/nf_core/pipelines/create/githubrepo.py @@ -67,7 +67,7 @@ def compose(self) -> ComposeResult: yield TextInput( "repo_org", "Organisation name", - "The name of the organisation where the GitHub repo will be cretaed", + "The name of the organisation where the GitHub repo will be created", default=self.parent.TEMPLATE_CONFIG.org, classes="column", ) diff --git a/nf_core/pipelines/create/template_features.yml b/nf_core/pipelines/create/template_features.yml index 3eb6547265..0a3180286f 100644 --- a/nf_core/pipelines/create/template_features.yml +++ b/nf_core/pipelines/create/template_features.yml @@ -101,7 +101,7 @@ github_badges: nf_core_configs: skippable_paths: False short_description: "Add configuration files" - description: "The pipeline will include configuration profiles containing custom parameters requried to run nf-core pipelines at different institutions" + description: "The pipeline will include configuration profiles containing custom parameters required to run nf-core pipelines at different institutions" help_text: | Nf-core has a repository with a collection of configuration profiles. diff --git a/nf_core/pipelines/download.py b/nf_core/pipelines/download.py index b9028d4b3a..917665ff36 100644 --- a/nf_core/pipelines/download.py +++ b/nf_core/pipelines/download.py @@ -1692,7 +1692,7 @@ def tidy_tags_and_branches(self): self.repo.create_head("latest", "latest") # create a new head for latest self.checkout("latest") else: - # desired revisions may contain arbitrary branch names that do not correspond to valid sematic versioning patterns. + # desired revisions may contain arbitrary branch names that do not correspond to valid semantic versioning patterns. valid_versions = [ Version(v) for v in desired_revisions if re.match(r"\d+\.\d+(?:\.\d+)*(?:[\w\-_])*", v) ] diff --git a/nf_core/pipelines/launch.py b/nf_core/pipelines/launch.py index a80639ea94..aab0ec4287 100644 --- a/nf_core/pipelines/launch.py +++ b/nf_core/pipelines/launch.py @@ -276,7 +276,7 @@ def merge_nxf_flag_schema(self): self.schema_obj.schema["definitions"] = {} self.schema_obj.schema["definitions"].update(self.nxf_flag_schema) self.schema_obj.schema["allOf"].insert(0, {"$ref": "#/definitions/coreNextflow"}) - # Add the new defintion to the allOf key so that it's included in validation + # Add the new definition to the allOf key so that it's included in validation # Put it at the start of the list so that it comes first def prompt_web_gui(self): @@ -316,7 +316,7 @@ def launch_web_gui(self): raise AssertionError('"api_url" not in web_response') if "web_url" not in web_response: raise AssertionError('"web_url" not in web_response') - # DO NOT FIX THIS TYPO. Needs to stay in sync with the website. Maintaining for backwards compatability. + # DO NOT FIX THIS TYPO. Needs to stay in sync with the website. Maintaining for backwards compatibility. if web_response["status"] != "recieved": raise AssertionError( f'web_response["status"] should be "recieved", but it is "{web_response["status"]}"' @@ -434,7 +434,7 @@ def prompt_param(self, param_id, param_obj, is_required, answers): question = self.single_param_to_questionary(param_id, param_obj, answers) answer = questionary.unsafe_prompt([question], style=nf_core.utils.nfcore_question_style) - # If required and got an empty reponse, ask again + # If required and got an empty response, ask again while isinstance(answer[param_id], str) and answer[param_id].strip() == "" and is_required: log.error(f"'--{param_id}' is required") answer = questionary.unsafe_prompt([question], style=nf_core.utils.nfcore_question_style) @@ -457,7 +457,7 @@ def prompt_group(self, group_id, group_obj): Prompt for edits to a group of parameters (subschema in 'definitions') Args: - group_id: Paramater ID (string) + group_id: Parameter ID (string) group_obj: JSON Schema keys (dict) Returns: diff --git a/nf_core/pipelines/refgenie.py b/nf_core/pipelines/refgenie.py index 426ca5eb7d..46197e9cc8 100644 --- a/nf_core/pipelines/refgenie.py +++ b/nf_core/pipelines/refgenie.py @@ -144,14 +144,14 @@ def update_config(rgc): This function is executed after running 'refgenie pull /' The refgenie config file is transformed into a nextflow.config file, which is used to - overwrited the 'refgenie_genomes.config' file. + overwrite the 'refgenie_genomes.config' file. The path to the target config file is inferred from the following options, in order: - the 'nextflow_config' attribute in the refgenie config file - the NXF_REFGENIE_PATH environment variable - otherwise defaults to: $NXF_HOME/nf-core/refgenie_genomes.config - Additionaly, an 'includeConfig' statement is added to the file $NXF_HOME/config + Additionally, an 'includeConfig' statement is added to the file $NXF_HOME/config """ # Compile nextflow refgenie_genomes.config from refgenie config diff --git a/nf_core/pipelines/schema.py b/nf_core/pipelines/schema.py index cde4af3fd5..9bec75c9c0 100644 --- a/nf_core/pipelines/schema.py +++ b/nf_core/pipelines/schema.py @@ -51,7 +51,7 @@ def __init__(self): self.defs_notation = None self.ignored_params = [] - # Update the validation plugin code everytime the schema gets changed + # Update the validation plugin code every time the schema gets changed def set_schema_filename(self, schema: str) -> None: self._schema_filename = schema self._update_validation_plugin_from_config() @@ -971,7 +971,7 @@ def launch_web_builder(self): raise AssertionError('"api_url" not in web_response') if "web_url" not in web_response: raise AssertionError('"web_url" not in web_response') - # DO NOT FIX THIS TYPO. Needs to stay in sync with the website. Maintaining for backwards compatability. + # DO NOT FIX THIS TYPO. Needs to stay in sync with the website. Maintaining for backwards compatibility. if web_response["status"] != "recieved": raise AssertionError( f'web_response["status"] should be "recieved", but it is "{web_response["status"]}"' diff --git a/nf_core/utils.py b/nf_core/utils.py index c9e9afb262..9aa0bd589a 100644 --- a/nf_core/utils.py +++ b/nf_core/utils.py @@ -20,7 +20,7 @@ import time from contextlib import contextmanager from pathlib import Path -from typing import TYPE_CHECKING, Any, Callable, Dict, Generator, List, Optional, Tuple, Union +from typing import TYPE_CHECKING, Any, Callable, Dict, Generator, List, Literal, Optional, Tuple, Union import git import prompt_toolkit.styles @@ -438,7 +438,7 @@ def wait_cli_function(poll_func: Callable[[], bool], refresh_per_second: int = 2 refresh_per_second (int): Refresh this many times per second. Default: 20. Returns: - None. Just sits in an infite loop until the function returns True. + None. Just sits in an infinite loop until the function returns True. """ try: spinner = Spinner("dots2", "Use ctrl+c to stop waiting and force exit.") @@ -457,7 +457,7 @@ def poll_nfcore_web_api(api_url: str, post_data: Optional[Dict] = None) -> Dict: Takes argument api_url for URL - Expects API reponse to be valid JSON and contain a top-level 'status' key. + Expects API response to be valid JSON and contain a top-level 'status' key. """ # Run without requests_cache so that we get the updated statuses with requests_cache.disabled(): @@ -633,11 +633,11 @@ def request_retry(self, url, post_data=None): while True: # GET request if post_data is None: - log.debug(f"Seding GET request to {url}") + log.debug(f"Sending GET request to {url}") r = self.get(url=url) # POST request else: - log.debug(f"Seding POST request to {url}") + log.debug(f"Sending POST request to {url}") r = self.post(url=url, json=post_data) # Failed but expected - try again @@ -743,12 +743,12 @@ def parse_anaconda_licence(anaconda_response, version=None): license = re.sub(r"GNU GENERAL PUBLIC LICENSE", "GPL", license, flags=re.IGNORECASE) license = license.replace("GPL-", "GPLv") license = re.sub(r"GPL\s*([\d\.]+)", r"GPL v\1", license) # Add v prefix to GPL version if none found - license = re.sub(r"GPL\s*v(\d).0", r"GPL v\1", license) # Remove superflous .0 from GPL version + license = re.sub(r"GPL\s*v(\d).0", r"GPL v\1", license) # Remove superfluous .0 from GPL version license = re.sub(r"GPL \(([^\)]+)\)", r"GPL \1", license) license = re.sub(r"GPL\s*v", "GPL v", license) # Normalise whitespace to one space between GPL and v license = re.sub(r"\s*(>=?)\s*(\d)", r" \1\2", license) # Normalise whitespace around >= GPL versions - license = license.replace("Clause", "clause") # BSD capitilisation - license = re.sub(r"-only$", "", license) # Remove superflous GPL "only" version suffixes + license = license.replace("Clause", "clause") # BSD capitalisation + license = re.sub(r"-only$", "", license) # Remove superfluous GPL "only" version suffixes clean_licences.append(license) return clean_licences @@ -1145,10 +1145,10 @@ def get(self, item: str, default: Any = None) -> Any: class NFCoreYamlConfig(BaseModel): """.nf-core.yml configuration file schema""" - repository_type: str - """ Type of repository: pipeline or modules """ + repository_type: Optional[Literal["pipeline", "modules"]] = None + """ Type of repository """ nf_core_version: Optional[str] = None - """ Version of nf-core/tools used to create/update the pipeline""" + """ Version of nf-core/tools used to create/update the pipeline """ org_path: Optional[str] = None """ Path to the organisation's modules repository (used for modules repo_type only) """ lint: Optional[LintConfigType] = None @@ -1156,9 +1156,9 @@ class NFCoreYamlConfig(BaseModel): template: Optional[NFCoreTemplateConfig] = None """ Pipeline template configuration """ bump_version: Optional[Dict[str, bool]] = None - """ Disable bumping of the version for a module/subworkflow (when repository_type is modules). See https://nf-co.re/docs/nf-core-tools/modules/bump-versions for more information.""" + """ Disable bumping of the version for a module/subworkflow (when repository_type is modules). See https://nf-co.re/docs/nf-core-tools/modules/bump-versions for more information. """ update: Optional[Dict[str, Union[str, bool, Dict[str, Union[str, Dict[str, Union[str, bool]]]]]]] = None - """ Disable updating specific modules/subworkflows (when repository_type is pipeline). See https://nf-co.re/docs/nf-core-tools/modules/update for more information.""" + """ Disable updating specific modules/subworkflows (when repository_type is pipeline). See https://nf-co.re/docs/nf-core-tools/modules/update for more information. """ def __getitem__(self, item: str) -> Any: return getattr(self, item) @@ -1166,6 +1166,23 @@ def __getitem__(self, item: str) -> Any: def get(self, item: str, default: Any = None) -> Any: return getattr(self, item, default) + def model_dump(self, **kwargs) -> Dict[str, Any]: + # Get the initial data + config = super().model_dump(**kwargs) + + if self.repository_type == "modules": + # Fields to exclude for modules + fields_to_exclude = ["template", "update"] + else: # pipeline + # Fields to exclude for pipeline + fields_to_exclude = ["bump_version", "org_path"] + + # Remove the fields based on repository_type + for field in fields_to_exclude: + config.pop(field, None) + + return config + def load_tools_config(directory: Union[str, Path] = ".") -> Tuple[Optional[Path], Optional[NFCoreYamlConfig]]: """ diff --git a/requirements.txt b/requirements.txt index de368c55f0..51259938a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ packaging pillow pdiff pre-commit -prompt_toolkit<=3.0.36 +prompt_toolkit<=3.0.48 pydantic>=2.2.1 pyyaml questionary>=2.0.1 diff --git a/tests/pipelines/__snapshots__/test_create_app/test_github_details.svg b/tests/pipelines/__snapshots__/test_create_app/test_github_details.svg index 77a293fb79..03eeaab0d1 100644 --- a/tests/pipelines/__snapshots__/test_create_app/test_github_details.svg +++ b/tests/pipelines/__snapshots__/test_create_app/test_github_details.svg @@ -19,258 +19,258 @@ font-weight: 700; } - .terminal-661775892-matrix { + .terminal-660530708-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-661775892-title { + .terminal-660530708-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-661775892-r1 { fill: #c5c8c6 } -.terminal-661775892-r2 { fill: #e3e3e3 } -.terminal-661775892-r3 { fill: #989898 } -.terminal-661775892-r4 { fill: #e1e1e1 } -.terminal-661775892-r5 { fill: #4ebf71;font-weight: bold } -.terminal-661775892-r6 { fill: #a5a5a5;font-style: italic; } -.terminal-661775892-r7 { fill: #454a50 } -.terminal-661775892-r8 { fill: #e2e3e3;font-weight: bold } -.terminal-661775892-r9 { fill: #1e1e1e } -.terminal-661775892-r10 { fill: #008139 } -.terminal-661775892-r11 { fill: #000000 } -.terminal-661775892-r12 { fill: #e2e2e2 } -.terminal-661775892-r13 { fill: #18954b } -.terminal-661775892-r14 { fill: #e2e2e2;font-weight: bold } -.terminal-661775892-r15 { fill: #969696;font-weight: bold } -.terminal-661775892-r16 { fill: #808080 } -.terminal-661775892-r17 { fill: #7ae998 } -.terminal-661775892-r18 { fill: #507bb3 } -.terminal-661775892-r19 { fill: #0a180e;font-weight: bold } -.terminal-661775892-r20 { fill: #dde6ed;font-weight: bold } -.terminal-661775892-r21 { fill: #001541 } -.terminal-661775892-r22 { fill: #fea62b;font-weight: bold } -.terminal-661775892-r23 { fill: #a7a9ab } -.terminal-661775892-r24 { fill: #e2e3e3 } + .terminal-660530708-r1 { fill: #c5c8c6 } +.terminal-660530708-r2 { fill: #e3e3e3 } +.terminal-660530708-r3 { fill: #989898 } +.terminal-660530708-r4 { fill: #e1e1e1 } +.terminal-660530708-r5 { fill: #4ebf71;font-weight: bold } +.terminal-660530708-r6 { fill: #a5a5a5;font-style: italic; } +.terminal-660530708-r7 { fill: #454a50 } +.terminal-660530708-r8 { fill: #e2e3e3;font-weight: bold } +.terminal-660530708-r9 { fill: #1e1e1e } +.terminal-660530708-r10 { fill: #008139 } +.terminal-660530708-r11 { fill: #000000 } +.terminal-660530708-r12 { fill: #e2e2e2 } +.terminal-660530708-r13 { fill: #18954b } +.terminal-660530708-r14 { fill: #e2e2e2;font-weight: bold } +.terminal-660530708-r15 { fill: #969696;font-weight: bold } +.terminal-660530708-r16 { fill: #808080 } +.terminal-660530708-r17 { fill: #7ae998 } +.terminal-660530708-r18 { fill: #507bb3 } +.terminal-660530708-r19 { fill: #0a180e;font-weight: bold } +.terminal-660530708-r20 { fill: #dde6ed;font-weight: bold } +.terminal-660530708-r21 { fill: #001541 } +.terminal-660530708-r22 { fill: #fea62b;font-weight: bold } +.terminal-660530708-r23 { fill: #a7a9ab } +.terminal-660530708-r24 { fill: #e2e3e3 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - nf-core pipelines create + nf-core pipelines create - + - - ⭘nf-core pipelines create β€” Create a new pipeline with the nf-core pipeline templa… - - -Create GitHub repository - -  Now that we have created a new pipeline locally, we can create a new GitHub repository and push    -  the code to it. - - - - -Your GitHub usernameYour GitHub personal access tokenβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” -for login. Show  -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– -β–ŠGitHub usernameβ–Žβ–Šβ€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’                  β–Ž -β–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Žβ–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Ž - - - -The name of the organisation where the The name of the new GitHub repository -GitHub repo will be cretaed -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Ž -β–Šnf-core                               β–Žβ–Šmypipeline                            β–Ž -β–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Žβ–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Ž - - -β–Œβš οΈ You can't create a repository directly in the nf-core organisation. -β–ŒPlease create the pipeline repo to an organisation where you have access or use your user  -β–Œaccount. A core-team member will be able to transfer the repo to nf-core once the development -β–Œhas started. - -β–ŒπŸ’‘ Your GitHub user account will be used by default if nf-core is given as the org name. - - -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–ŽPrivate -β–Šβ–ŽSelect to make the new GitHub repo private. -β–Šβ–β–β–β–β–β–β–β–β–Ž -β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” - Back  Create GitHub repo  Finish without creating a repo  -▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - - - - - - - - - d Toggle dark mode  q Quit  a Toggle all  + + ⭘nf-core pipelines create β€” Create a new pipeline with the nf-core pipeline templa… + + +Create GitHub repository + +  Now that we have created a new pipeline locally, we can create a new GitHub repository and push    +  the code to it. + + + + +Your GitHub usernameYour GitHub personal access tokenβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” +for login. Show  +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– +β–ŠGitHub usernameβ–Žβ–Šβ€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’                  β–Ž +β–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Žβ–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Ž + + + +The name of the organisation where the The name of the new GitHub repository +GitHub repo will be created +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–Ž +β–Šnf-core                               β–Žβ–Šmypipeline                            β–Ž +β–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Žβ–Šβ–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–Ž + + +β–Œβš οΈ You can't create a repository directly in the nf-core organisation. +β–ŒPlease create the pipeline repo to an organisation where you have access or use your user  +β–Œaccount. A core-team member will be able to transfer the repo to nf-core once the development +β–Œhas started. + +β–ŒπŸ’‘ Your GitHub user account will be used by default if nf-core is given as the org name. + + +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–ŽPrivate +β–Šβ–ŽSelect to make the new GitHub repo private. +β–Šβ–β–β–β–β–β–β–β–β–Ž +β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” + Back  Create GitHub repo  Finish without creating a repo  +▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + + + + + + + + + d Toggle dark mode  q Quit  a Toggle all  diff --git a/tests/pipelines/__snapshots__/test_create_app/test_type_custom.svg b/tests/pipelines/__snapshots__/test_create_app/test_type_custom.svg index cff0309159..cc34c92537 100644 --- a/tests/pipelines/__snapshots__/test_create_app/test_type_custom.svg +++ b/tests/pipelines/__snapshots__/test_create_app/test_type_custom.svg @@ -19,256 +19,256 @@ font-weight: 700; } - .terminal-829842075-matrix { + .terminal-829252251-matrix { font-family: Fira Code, monospace; font-size: 20px; line-height: 24.4px; font-variant-east-asian: full-width; } - .terminal-829842075-title { + .terminal-829252251-title { font-size: 18px; font-weight: bold; font-family: arial; } - .terminal-829842075-r1 { fill: #c5c8c6 } -.terminal-829842075-r2 { fill: #e3e3e3 } -.terminal-829842075-r3 { fill: #989898 } -.terminal-829842075-r4 { fill: #e1e1e1 } -.terminal-829842075-r5 { fill: #4ebf71;font-weight: bold } -.terminal-829842075-r6 { fill: #1e1e1e } -.terminal-829842075-r7 { fill: #0178d4 } -.terminal-829842075-r8 { fill: #e2e2e2 } -.terminal-829842075-r9 { fill: #507bb3 } -.terminal-829842075-r10 { fill: #808080 } -.terminal-829842075-r11 { fill: #dde6ed;font-weight: bold } -.terminal-829842075-r12 { fill: #001541 } -.terminal-829842075-r13 { fill: #14191f } -.terminal-829842075-r14 { fill: #454a50 } -.terminal-829842075-r15 { fill: #7ae998 } -.terminal-829842075-r16 { fill: #e2e3e3;font-weight: bold } -.terminal-829842075-r17 { fill: #0a180e;font-weight: bold } -.terminal-829842075-r18 { fill: #000000 } -.terminal-829842075-r19 { fill: #008139 } -.terminal-829842075-r20 { fill: #fea62b;font-weight: bold } -.terminal-829842075-r21 { fill: #a7a9ab } -.terminal-829842075-r22 { fill: #e2e3e3 } + .terminal-829252251-r1 { fill: #c5c8c6 } +.terminal-829252251-r2 { fill: #e3e3e3 } +.terminal-829252251-r3 { fill: #989898 } +.terminal-829252251-r4 { fill: #e1e1e1 } +.terminal-829252251-r5 { fill: #4ebf71;font-weight: bold } +.terminal-829252251-r6 { fill: #1e1e1e } +.terminal-829252251-r7 { fill: #0178d4 } +.terminal-829252251-r8 { fill: #e2e2e2 } +.terminal-829252251-r9 { fill: #507bb3 } +.terminal-829252251-r10 { fill: #808080 } +.terminal-829252251-r11 { fill: #dde6ed;font-weight: bold } +.terminal-829252251-r12 { fill: #001541 } +.terminal-829252251-r13 { fill: #14191f } +.terminal-829252251-r14 { fill: #454a50 } +.terminal-829252251-r15 { fill: #7ae998 } +.terminal-829252251-r16 { fill: #e2e3e3;font-weight: bold } +.terminal-829252251-r17 { fill: #0a180e;font-weight: bold } +.terminal-829252251-r18 { fill: #000000 } +.terminal-829252251-r19 { fill: #008139 } +.terminal-829252251-r20 { fill: #fea62b;font-weight: bold } +.terminal-829252251-r21 { fill: #a7a9ab } +.terminal-829252251-r22 { fill: #e2e3e3 } - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - nf-core pipelines create + nf-core pipelines create - + - - ⭘nf-core pipelines create β€” Create a new pipeline with the nf-core pipeline templa… - - -Template features - - -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Ž -β–Šβ–Ž        Toggle all features -β–Šβ–β–β–β–β–β–β–β–β–Ž -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” -β–Šβ–Ž        Use a GitHub Create a GitHub  Show help  -β–Šβ–β–β–β–β–β–β–β–β–Ž        repository.repository for the β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– -pipeline. - -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” -β–Šβ–Ž        Add Github CI testsThe pipeline will  Show help  -β–Šβ–β–β–β–β–β–β–β–β–Žinclude several GitHub▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ -actions for Continuous -Integration (CI) β–β– -testing - -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” -β–Šβ–Ž        Use reference genomesThe pipeline will be  Show help  -β–Šβ–β–β–β–β–β–β–β–β–Žconfigured to use a β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– -copy of the most  -common reference  -genome files from  -iGenomes - -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” -β–Šβ–Ž        Add Github badgesThe README.md file of  Show help  -β–Šβ–β–β–β–β–β–β–β–β–Žthe pipeline will β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– -include GitHub badges - -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” -β–Šβ–Ž        Add configuration The pipeline will  Show help  -β–Šβ–β–β–β–β–β–β–β–β–Ž        filesinclude configuration β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– -profiles containing  -custom parameters  -requried to run  -nf-core pipelines at  -different institutions - -β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” -β–Šβ–Ž        Use code lintersThe pipeline will  Show help  -β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” - Back  Continue  -▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ - - d Toggle dark mode  q Quit  a Toggle all  + + ⭘nf-core pipelines create β€” Create a new pipeline with the nf-core pipeline templa… + + +Template features + + +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Ž +β–Šβ–Ž        Toggle all features +β–Šβ–β–β–β–β–β–β–β–β–Ž +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” +β–Šβ–Ž        Use a GitHub Create a GitHub  Show help  +β–Šβ–β–β–β–β–β–β–β–β–Ž        repository.repository for the β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– +pipeline. + +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” +β–Šβ–Ž        Add Github CI testsThe pipeline will  Show help  +β–Šβ–β–β–β–β–β–β–β–β–Žinclude several GitHub▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ +actions for Continuous +Integration (CI) β–β– +testing + +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” +β–Šβ–Ž        Use reference genomesThe pipeline will be  Show help  +β–Šβ–β–β–β–β–β–β–β–β–Žconfigured to use a β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– +copy of the most  +common reference  +genome files from  +iGenomes + +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” +β–Šβ–Ž        Add Github badgesThe README.md file of  Show help  +β–Šβ–β–β–β–β–β–β–β–β–Žthe pipeline will β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– +include GitHub badges + +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” +β–Šβ–Ž        Add configuration The pipeline will  Show help  +β–Šβ–β–β–β–β–β–β–β–β–Ž        filesinclude configuration β–β–β–β–β–β–β–β–β–β–β–β–β–β–β–β– +profiles containing  +custom parameters  +required to run  +nf-core pipelines at  +different institutions + +β–Šβ–”β–”β–”β–”β–”β–”β–”β–”β–Žβ–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” +β–Šβ–Ž        Use code lintersThe pipeline will  Show help  +β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–”β–” + Back  Continue  +▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ + + d Toggle dark mode  q Quit  a Toggle all  diff --git a/tests/pipelines/lint/test_nfcore_yml.py b/tests/pipelines/lint/test_nfcore_yml.py index 955c00da81..b49b60436d 100644 --- a/tests/pipelines/lint/test_nfcore_yml.py +++ b/tests/pipelines/lint/test_nfcore_yml.py @@ -33,7 +33,9 @@ def test_nfcore_yml_fail_repo_type(self): with open(self.nf_core_yml, "w") as fh: fh.write(new_content) lint_obj = nf_core.pipelines.lint.PipelineLint(self.new_pipeline) - lint_obj._load() + # assert that it raises assertion error + with self.assertRaises(AssertionError): + lint_obj._load() results = lint_obj.nfcore_yml() assert "Repository type in `.nf-core.yml` is not valid." in str(results["failed"]) assert len(results.get("warned", [])) == 0 diff --git a/tests/pipelines/test_download.py b/tests/pipelines/test_download.py index a898d37b70..e552582527 100644 --- a/tests/pipelines/test_download.py +++ b/tests/pipelines/test_download.py @@ -516,7 +516,7 @@ def test_singularity_image_filenames(self, tmp_path): result = download_obj.singularity_image_filenames("nf-core/ubuntu:20.04") assert result[0].endswith("/cachedir/nf-core-ubuntu-20.04.img") - ## Test phase III: Container wil lbe cached but also copied to out_path + ## Test phase III: Container will be cached but also copied to out_path # out_path: str, Path to cache # cache_path: str, Path to cache download_obj.container_cache_utilisation = "copy" diff --git a/tests/pipelines/test_launch.py b/tests/pipelines/test_launch.py index 5e230528a7..ed23872f66 100644 --- a/tests/pipelines/test_launch.py +++ b/tests/pipelines/test_launch.py @@ -298,7 +298,7 @@ def test_strip_default_params(self): assert self.launcher.schema_obj.input_params == {"input": "custom_input"} def test_build_command_empty(self): - """Test the functionality to build a nextflow command - nothing customsied""" + """Test the functionality to build a nextflow command - nothing customised""" self.launcher.get_pipeline_schema() self.launcher.merge_nxf_flag_schema() self.launcher.build_command() diff --git a/tests/pipelines/test_schema.py b/tests/pipelines/test_schema.py index 2abaf07bd2..ab543d8b90 100644 --- a/tests/pipelines/test_schema.py +++ b/tests/pipelines/test_schema.py @@ -49,7 +49,7 @@ def test_load_lint_schema(self): self.schema_obj.load_lint_schema() def test_load_lint_schema_nofile(self): - """Check that linting raises properly if a non-existant file is given""" + """Check that linting raises properly if a non-existent file is given""" with pytest.raises(RuntimeError): self.schema_obj.get_schema_path("fake_file") diff --git a/tests/test_utils.py b/tests/test_utils.py index bde561d95e..b13c8eb37d 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -113,7 +113,7 @@ def test_pip_package_pass(self): @mock.patch("requests.get") def test_pip_package_timeout(self, mock_get): """Tests the PyPi connection and simulates a request timeout, which should - return in an addiional warning in the linting""" + return in an additional warning in the linting""" # Define the behaviour of the request get mock mock_get.side_effect = requests.exceptions.Timeout() # Now do the test