From dbad13e6bd9c561d63438ba013558e2f50818371 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 18 Jun 2024 14:46:45 -0500 Subject: [PATCH 01/17] ci(#2193): Add condalock file generation https://github.com/seqeralabs/wave-cli?tab=readme-ov-file#build-a-container-by-using-a-conda-lock-file --- .github/workflows/wave.yml | 73 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/wave.yml diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml new file mode 100644 index 00000000000..d0142d38d7e --- /dev/null +++ b/.github/workflows/wave.yml @@ -0,0 +1,73 @@ +# TODO Change to Wave +name: Generate conda-lock +# When environment.yml is changed +on: + pull_request: + paths: + - "**/environment.yml" + +env: + WAVE_VER: "1.4.1" + +jobs: + gen-matrix: + name: generate-matrix + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 + + - name: Calculate file differences + id: diff + uses: tj-actions/changed-files@v44 + with: + json: true + quotepath: false + # TODO Add Dockerfiles + files: | + modules/**/environment.yml + - name: Debug + run: echo ${{ steps.diff.outputs.all_changed_files }} + - id: set-matrix + run: echo "matrix={\"profile\":[\"docker\", \"singularity\"],\"files\":${{ steps.diff.outputs.all_changed_files }} }" >> "$GITHUB_OUTPUT" + + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + + build: + if: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}" + needs: gen-matrix + name: build + runs-on: ubuntu-latest + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}" + steps: + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 + + - uses: weiji14/conda-lock-refresh@main + with: + file: "${{ matrix.files }}" + # TODO platform: ["linux-64", "osx-arm64"] + + - name: Commit condalock files to PR + run: | + if [[ $(git ls-files --modified --others) ]]; then + git config --global user.name 'actions-bot' + git config --global user.email '58130806+actions-bot@users.noreply.github.com' + git add --all + git commit --message "[condalock-command] autogenerated conda-lock files" + git push + fi + shell: bash -l {0} + + - name: Get the lock file path + uses: actions/github-script@v7 + id: lockfile-name + with: + result-encoding: string + script: | + return '${{ matrix.files }}'.replace('/environment.yml', '/conda-lock.yml'); + + # TODO Build containers with Wave From 6ea762d4726c953de1fa8a336ee0e6dfcbd0cef6 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 18 Jun 2024 14:52:03 -0500 Subject: [PATCH 02/17] ci: Add write permissions --- .github/workflows/wave.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index d0142d38d7e..c8e9946ad79 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -38,6 +38,8 @@ jobs: if: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}" needs: gen-matrix name: build + permissions: + contents: write runs-on: ubuntu-latest timeout-minutes: 60 strategy: From b740f85808e39e378dc1f86b316ea6e70391bf6b Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 18 Jun 2024 14:56:43 -0500 Subject: [PATCH 03/17] ci: Add gh pr checkout --- .github/workflows/wave.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index c8e9946ad79..0e5eda54e3d 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -53,6 +53,13 @@ jobs: file: "${{ matrix.files }}" # TODO platform: ["linux-64", "osx-arm64"] + # Action runs on the issue comment, so we don't get the PR by default + # Use the gh cli to check out the PR + - name: Checkout Pull Request + run: gh pr checkout ${{ github.event.issue.number }} + env: + GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} + - name: Commit condalock files to PR run: | if [[ $(git ls-files --modified --others) ]]; then From 95ba6ccd0740af5b1053ee76fe70b0692164ad4a Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 18 Jun 2024 15:02:12 -0500 Subject: [PATCH 04/17] ci: Try a pre-canned action --- .github/workflows/wave.yml | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 0e5eda54e3d..1403152291e 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -53,23 +53,11 @@ jobs: file: "${{ matrix.files }}" # TODO platform: ["linux-64", "osx-arm64"] - # Action runs on the issue comment, so we don't get the PR by default - # Use the gh cli to check out the PR - - name: Checkout Pull Request - run: gh pr checkout ${{ github.event.issue.number }} - env: - GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} - - - name: Commit condalock files to PR - run: | - if [[ $(git ls-files --modified --others) ]]; then - git config --global user.name 'actions-bot' - git config --global user.email '58130806+actions-bot@users.noreply.github.com' - git add --all - git commit --message "[condalock-command] autogenerated conda-lock files" - git push - fi - shell: bash -l {0} + - name: Commit and push changes + uses: devops-infra/action-commit-push@master + with: + github_token: ${{ secrets.nf_core_bot_auth_token }} + commit_message: "[automated] autogenerated conda-lock files" - name: Get the lock file path uses: actions/github-script@v7 From 07a250eca50d047ed6708e918687bf9542faf07a Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 18 Jun 2024 15:16:57 -0500 Subject: [PATCH 05/17] ci: Cut out conda-lock-refresh Couldn't get it to commit --- .github/workflows/wave.yml | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 1403152291e..56c2a048598 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -48,10 +48,30 @@ jobs: steps: - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - - uses: weiji14/conda-lock-refresh@main + - uses: mamba-org/setup-micromamba@v1 with: - file: "${{ matrix.files }}" - # TODO platform: ["linux-64", "osx-arm64"] + environment-name: conda-lock-env + create-args: >- + python=3.11 + conda-lock + mamba + + # Print debugging information + # - name: Print debug info + # run: | + # conda-lock --version + # mamba --version + # echo Locking ${{ inputs.file }} file for ${{ inputs.platform }} platform. + # shell: bash -l {0} + + # Run conda-lock + - name: Run conda-lock + run: | + rm --force conda-lock.yml + conda-lock lock $MAMBA --file "${{ matrix.files }}" --kind lock --platform linux-64 + env: + MAMBA: "--mamba" + shell: bash -l {0} - name: Commit and push changes uses: devops-infra/action-commit-push@master From b3ef764a1697bd9345eefc2948265e9a08572fba Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 18 Jun 2024 15:19:42 -0500 Subject: [PATCH 06/17] ci: Use plain GITHUB_TOKEN secret --- .github/workflows/wave.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 56c2a048598..bb66a9cdbfb 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -76,7 +76,7 @@ jobs: - name: Commit and push changes uses: devops-infra/action-commit-push@master with: - github_token: ${{ secrets.nf_core_bot_auth_token }} + github_token: "${{ secrets.GITHUB_TOKEN }}" commit_message: "[automated] autogenerated conda-lock files" - name: Get the lock file path From 98cbce3c3db78913392439296d70281891eccf9b Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Tue, 18 Jun 2024 15:23:52 -0500 Subject: [PATCH 07/17] ci: Skip committing --- .github/workflows/wave.yml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index bb66a9cdbfb..694dc321c91 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -56,14 +56,6 @@ jobs: conda-lock mamba - # Print debugging information - # - name: Print debug info - # run: | - # conda-lock --version - # mamba --version - # echo Locking ${{ inputs.file }} file for ${{ inputs.platform }} platform. - # shell: bash -l {0} - # Run conda-lock - name: Run conda-lock run: | @@ -73,11 +65,12 @@ jobs: MAMBA: "--mamba" shell: bash -l {0} - - name: Commit and push changes - uses: devops-infra/action-commit-push@master - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - commit_message: "[automated] autogenerated conda-lock files" + # FIXME Why can nothing push? + # - name: Commit and push changes + # uses: devops-infra/action-commit-push@master + # with: + # github_token: "${{ secrets.GITHUB_TOKEN }}" + # commit_message: "[automated] autogenerated conda-lock files" - name: Get the lock file path uses: actions/github-script@v7 From 253a39875841dff5e4fc0498bc19b35cc1c2adc7 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 11:43:51 -0500 Subject: [PATCH 08/17] ci: Use Commit step from prettier linting https://github.com/nf-core/modules/blob/90b1d1bd7f9474e173abd9e4082dedb559c7542a/.github/workflows/fix-linting.yml#L62-L71 Co-authored-by: mashehu --- .github/workflows/wave.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 694dc321c91..4b9fe8c4b19 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -56,7 +56,6 @@ jobs: conda-lock mamba - # Run conda-lock - name: Run conda-lock run: | rm --force conda-lock.yml @@ -65,12 +64,15 @@ jobs: MAMBA: "--mamba" shell: bash -l {0} - # FIXME Why can nothing push? - # - name: Commit and push changes - # uses: devops-infra/action-commit-push@master - # with: - # github_token: "${{ secrets.GITHUB_TOKEN }}" - # commit_message: "[automated] autogenerated conda-lock files" + - name: Commit & push changes + run: | + git config user.email "core@nf-co.re" + git config user.name "nf-core-bot" + git config push.default upstream + git add . + git status + git commit -m "[automated] autogenerated conda-lock files" + git push - name: Get the lock file path uses: actions/github-script@v7 From f085cc15ae6fbe9c8963ae7addbb629331cad3e1 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 11:54:28 -0500 Subject: [PATCH 09/17] ci: Try actions/checkout#719 --- .github/workflows/wave.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 4b9fe8c4b19..044ff25ddf3 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -47,6 +47,8 @@ jobs: matrix: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}" steps: - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 + with: + ref: ${{ github.event.pull_request.head.ref }} - uses: mamba-org/setup-micromamba@v1 with: From fe828fa5c4eb9c5275231487c78c37a37b2b961e Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 12:09:06 -0500 Subject: [PATCH 10/17] ci: Clean up commit message --- .github/workflows/wave.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 044ff25ddf3..92c3ce36722 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -73,7 +73,7 @@ jobs: git config push.default upstream git add . git status - git commit -m "[automated] autogenerated conda-lock files" + git commit -m "[automated] autogenerated conda-lock file" git push - name: Get the lock file path From 8433c87a950a4eb4fc30f86be8605472996e802d Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 12:25:30 -0500 Subject: [PATCH 11/17] ci: Output lock file to the directory --- .github/workflows/wave.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 92c3ce36722..084f0f77701 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -58,10 +58,18 @@ jobs: conda-lock mamba + - name: Get the lock file path + uses: actions/github-script@v7 + id: lockfile-name + with: + result-encoding: string + script: | + return '${{ matrix.files }}'.replace('/environment.yml', '/conda-lock.yml'); + - name: Run conda-lock run: | - rm --force conda-lock.yml - conda-lock lock $MAMBA --file "${{ matrix.files }}" --kind lock --platform linux-64 + rm --force "${{steps.lockfile-name.outputs.result}}" + conda-lock lock $MAMBA --file "${{ matrix.files }}" --kind lock --platform linux-64 --lockfile "${{steps.lockfile-name.outputs.result}}" env: MAMBA: "--mamba" shell: bash -l {0} @@ -76,12 +84,4 @@ jobs: git commit -m "[automated] autogenerated conda-lock file" git push - - name: Get the lock file path - uses: actions/github-script@v7 - id: lockfile-name - with: - result-encoding: string - script: | - return '${{ matrix.files }}'.replace('/environment.yml', '/conda-lock.yml'); - # TODO Build containers with Wave From a9f4d26a363ad396227fe40c09c877f287080a20 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 12:43:31 -0500 Subject: [PATCH 12/17] chore: Update an environment file for testing --- modules/nf-core/bowtie2/align/environment.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/nf-core/bowtie2/align/environment.yml b/modules/nf-core/bowtie2/align/environment.yml index d2796359aeb..68adde8fc36 100644 --- a/modules/nf-core/bowtie2/align/environment.yml +++ b/modules/nf-core/bowtie2/align/environment.yml @@ -4,6 +4,9 @@ channels: - bioconda - defaults dependencies: - - bioconda::bowtie2=2.5.2 - - bioconda::samtools=1.18 - - conda-forge::pigz=2.6 + # renovate: datasource=conda depName=bioconda/bowtie2 + - bowtie2=2.5.2 + # renovate: datasource=conda depName=bioconda/samtools + - samtools=1.18 + # renovate: datasource=conda depName=conda-forge/pigz + - pigz=2.6 From 22c4985118c92f90b4f8e5fa5be3871e2cb775a5 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Thu, 8 Aug 2024 17:58:27 +0000 Subject: [PATCH 13/17] [automated] autogenerated conda-lock file --- modules/nf-core/bowtie2/align/conda-lock.yml | 615 +++++++++++++++++++ 1 file changed, 615 insertions(+) create mode 100644 modules/nf-core/bowtie2/align/conda-lock.yml diff --git a/modules/nf-core/bowtie2/align/conda-lock.yml b/modules/nf-core/bowtie2/align/conda-lock.yml new file mode 100644 index 00000000000..b3725d07f66 --- /dev/null +++ b/modules/nf-core/bowtie2/align/conda-lock.yml @@ -0,0 +1,615 @@ +# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT! +# +# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike +# e.g. `conda env create`, the resulting environment will not change as new package versions become +# available, unless you explicitly update the lock file. +# +# Install this environment as "YOURENV" with: +# conda-lock install -n YOURENV conda-lock.yml +# To update a single package to the latest version compatible with the version constraints in the source: +# conda-lock lock --lockfile conda-lock.yml --update PACKAGE +# To re-solve the entire environment, e.g. after changing a version constraint in the source file: +# conda-lock -f environment.yml --lockfile conda-lock.yml +version: 1 +metadata: + content_hash: + linux-64: b864a48e350c8ce3992e145bfed6961e07ccf9dc5a7e67b0a03943d2f2d87e94 + channels: + - url: conda-forge + used_env_vars: [] + - url: bioconda + used_env_vars: [] + - url: defaults + used_env_vars: [] + platforms: + - linux-64 + sources: + - environment.yml +package: +- name: _libgcc_mutex + version: '0.1' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + hash: + md5: d7c89558ba9fa0495403155b64376d81 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + category: main + optional: false +- name: _openmp_mutex + version: '4.5' + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + libgomp: '>=7.5.0' + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + hash: + md5: 73aaf86a425cc6e73fcf236a5a46396d + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + category: main + optional: false +- name: bowtie2 + version: 2.5.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + perl: '' + python: '>=3.10,<3.11.0a0' + python_abi: 3.10.* + tbb: '>=2021.10.0' + zlib: '' + zstd: '>=1.5.5,<1.6.0a0' + url: https://conda.anaconda.org/bioconda/linux-64/bowtie2-2.5.2-py310ha0a81b8_0.tar.bz2 + hash: + md5: 81764fc4a9f32df1724741af3f82e93d + sha256: 39d1db19a8e6fdbdc4270d53511c3a93a06c69da87f78bc0e61e9d0159a25291 + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + hash: + md5: 62ee74e96c5ebb0af99386de58cf9553 + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + category: main + optional: false +- name: c-ares + version: 1.32.3 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.32.3-h4bc722e_0.conda + hash: + md5: 7624e34ee6baebfc80d67bac76cc9d9d + sha256: 3c5a844bb60b0d52d89c3f1bd828c9856417fe33a6102fd8bbd5c13c3351704a + category: main + optional: false +- name: ca-certificates + version: 2024.7.4 + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda + hash: + md5: 23ab7665c5f63cfb9f1f6195256daac6 + sha256: c1548a3235376f464f9931850b64b02492f379b2f2bb98bc786055329b080446 + category: main + optional: false +- name: htslib + version: '1.20' + manager: conda + platform: linux-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + libcurl: '>=8.8.0,<9.0a0' + libdeflate: '>=1.20,<1.22.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0a0' + openssl: '>=3.3.1,<4.0a0' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/bioconda/linux-64/htslib-1.20-h5efdd21_2.tar.bz2 + hash: + md5: f0923cdb85b44dc77bdead8018645ea9 + sha256: 791ef4ff30944a56803344b168ffb400b4a8d1ea52edb1c348541d2a67a838ba + category: main + optional: false +- name: icu + version: '73.2' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + hash: + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + category: main + optional: false +- name: keyutils + version: 1.6.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=10.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + hash: + md5: 30186d27e2c9fa62b45fb1476b7200e3 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + category: main + optional: false +- name: krb5 + version: 1.21.3 + manager: conda + platform: linux-64 + dependencies: + keyutils: '>=1.6.1,<2.0a0' + libedit: '>=3.1.20191231,<4.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + openssl: '>=3.3.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda + hash: + md5: 3f43953b7d3fb3aaa1d0d0723d91e368 + sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 + category: main + optional: false +- name: ld_impl_linux-64 + version: '2.40' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + hash: + md5: b80f2f396ca2c28b8c14c437a4ed1e74 + sha256: 764b6950aceaaad0c67ef925417594dd14cd2e22fff864aeef455ac259263d15 + category: main + optional: false +- name: libcurl + version: 8.8.0 + manager: conda + platform: linux-64 + dependencies: + krb5: '>=1.21.3,<1.22.0a0' + libgcc-ng: '>=12' + libnghttp2: '>=1.58.0,<2.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<2.0a0' + openssl: '>=3.3.1,<4.0a0' + zstd: '>=1.5.6,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_1.conda + hash: + md5: b8afb3e3cb3423cc445cf611ab95fdb0 + sha256: 6b5b64cdcdb643368ebe236de07eedee99b025bb95129bbe317c46e5bdc693f3 + category: main + optional: false +- name: libdeflate + version: '1.21' + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.21-h4bc722e_0.conda + hash: + md5: 36ce76665bf67f5aac36be7a0d21b7f3 + sha256: 728c24ce835700bfdfdf106bf04233fdb040a61ca4ecfd3f41b46fa90cd4f971 + category: main + optional: false +- name: libedit + version: 3.1.20191231 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=7.5.0' + ncurses: '>=6.2,<7.0.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + hash: + md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf + category: main + optional: false +- name: libev + version: '4.33' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + hash: + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + category: main + optional: false +- name: libffi + version: 3.4.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=9.4.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + hash: + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + category: main + optional: false +- name: libgcc-ng + version: 14.1.0 + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + _openmp_mutex: '>=4.5' + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda + hash: + md5: ca0fad6a41ddaef54a153b78eccb5037 + sha256: b8e869ac96591cda2704bf7e77a301025e405227791a0bddf14a3dac65125538 + category: main + optional: false +- name: libgomp + version: 14.1.0 + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda + hash: + md5: ae061a5ed5f05818acdf9adab72c146d + sha256: 7699df61a1f6c644b3576a40f54791561f2845983120477a16116b951c9cdb05 + category: main + optional: false +- name: libhwloc + version: 2.11.1 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libxml2: '>=2.12.7,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.11.1-default_hecaa2ac_1000.conda + hash: + md5: f54aeebefb5c5ff84eca4fb05ca8aa3a + sha256: 8473a300e10b79557ce0ac81602506b47146aff3df4cc3568147a7dd07f480a2 + category: main + optional: false +- name: libiconv + version: '1.17' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + hash: + md5: d66573916ffcf376178462f1b61c941e + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + category: main + optional: false +- name: libnghttp2 + version: 1.58.0 + manager: conda + platform: linux-64 + dependencies: + c-ares: '>=1.23.0,<2.0a0' + libev: '>=4.33,<5.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + hash: + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb + category: main + optional: false +- name: libnsl + version: 2.0.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + hash: + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + category: main + optional: false +- name: libsqlite + version: 3.46.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + hash: + md5: 18aa975d2094c34aef978060ae7da7d8 + sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 + category: main + optional: false +- name: libssh2 + version: 1.11.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + openssl: '>=3.1.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + hash: + md5: 1f5a58e686b13bcfde88b93f547d23fe + sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + category: main + optional: false +- name: libstdcxx-ng + version: 14.1.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: 14.1.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-hc0a3c3a_0.conda + hash: + md5: 1cb187a157136398ddbaae90713e2498 + sha256: 88c42b388202ffe16adaa337e36cf5022c63cf09b0405cf06fc6aeacccbe6146 + category: main + optional: false +- name: libuuid + version: 2.38.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + hash: + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + category: main + optional: false +- name: libxcrypt + version: 4.4.36 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + hash: + md5: 5aa797f8787fe7a17d1b0821485b5adc + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + category: main + optional: false +- name: libxml2 + version: 2.12.7 + manager: conda + platform: linux-64 + dependencies: + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libzlib: '>=1.2.13,<2.0a0' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda + hash: + md5: 340278ded8b0dc3a73f3660bbb0adbc6 + sha256: 576ea9134176636283ff052897bf7a91ffd8ac35b2c505dfde2890ec52849698 + category: main + optional: false +- name: libzlib + version: 1.2.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h4ab18f5_6.conda + hash: + md5: 27329162c0dc732bcf67a4e0cd488125 + sha256: 8ced4afed6322172182af503f21725d072a589a6eb918f8a58135c1e00d35980 + category: main + optional: false +- name: ncurses + version: '6.5' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + hash: + md5: fcea371545eda051b6deafb24889fc69 + sha256: 4fc3b384f4072b68853a0013ea83bdfd3d66b0126e2238e1d6e1560747aa7586 + category: main + optional: false +- name: openssl + version: 3.3.1 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + ca-certificates: '' + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4bc722e_2.conda + hash: + md5: e1b454497f9f7c1147fdde4b53f1b512 + sha256: b294b3cc706ad1048cdb514f0db3da9f37ae3fcc0c53a7104083dd0918adb200 + category: main + optional: false +- name: perl + version: 5.32.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libxcrypt: '>=4.4.36' + url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda + hash: + md5: f2cfec9406850991f4e3d960cc9e3321 + sha256: 9ec32b6936b0e37bcb0ed34f22ec3116e75b3c0964f9f50ecea5f58734ed6ce9 + category: main + optional: false +- name: pigz + version: '2.6' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + zlib: '' + url: https://conda.anaconda.org/conda-forge/linux-64/pigz-2.6-h2797004_1.conda + hash: + md5: 5f19233669faf26889f27a2d2710e170 + sha256: 074bfefe3552545257babaaca0d6e00a5f9732118d0824382c6eb5c7befe7c7e + category: main + optional: false +- name: python + version: 3.10.14 + manager: conda + platform: linux-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + ld_impl_linux-64: '>=2.36.1' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libnsl: '>=2.0.1,<2.1.0a0' + libsqlite: '>=3.45.2,<4.0a0' + libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' + libzlib: '>=1.2.13,<2.0.0a0' + ncurses: '>=6.4.20240210,<7.0a0' + openssl: '>=3.2.1,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.13,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.10.14-hd12c33a_0_cpython.conda + hash: + md5: 2b4ba962994e8bd4be9ff5b64b75aff2 + sha256: 76a5d12e73542678b70a94570f7b0f7763f9a938f77f0e75d9ea615ef22aa84c + category: main + optional: false +- name: python_abi + version: '3.10' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-4_cp310.conda + hash: + md5: 26322ec5d7712c3ded99dd656142b8ce + sha256: 456bec815bfc2b364763084d08b412fdc4c17eb9ccc66a36cb775fa7ac3cbaec + category: main + optional: false +- name: readline + version: '8.2' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + ncurses: '>=6.3,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + hash: + md5: 47d31b792659ce70f470b5c82fdfb7a4 + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + category: main + optional: false +- name: samtools + version: '1.18' + manager: conda + platform: linux-64 + dependencies: + htslib: '>=1.18,<1.21.0a0' + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<1.3.0a0' + ncurses: '>=6.4,<7.0a0' + url: https://conda.anaconda.org/bioconda/linux-64/samtools-1.18-h50ea8bc_1.tar.bz2 + hash: + md5: 7a53b527d66566e2bd8d436766e9c39e + sha256: f18a5e13293da2452dcf22c139daeaacebecad7908699764585c03925da1a92d + category: main + optional: false +- name: tbb + version: 2021.12.0 + manager: conda + platform: linux-64 + dependencies: + __glibc: '>=2.17,<3.0.a0' + libgcc-ng: '>=12' + libhwloc: '>=2.11.1,<2.11.2.0a0' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.12.0-h434a139_3.conda + hash: + md5: c667c11d1e488a38220ede8a34441bff + sha256: e901e1887205a3f90d6a77e1302ccc5ffe48fd30de16907dfdbdbf1dbef0a177 + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + hash: + md5: d453b98d9c83e71da0741bb0ff4d76bc + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + category: main + optional: false +- name: tzdata + version: 2024a + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + hash: + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 + category: main + optional: false +- name: xz + version: 5.2.6 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + hash: + md5: 2161070d867d1b1204ea749c8eec4ef0 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + category: main + optional: false +- name: zlib + version: 1.2.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: 1.2.13 + url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h4ab18f5_6.conda + hash: + md5: 559d338a4234c2ad6e676f460a093e67 + sha256: 534824ea44939f3e59ca8ebb95e3ece6f50f9d2a0e69999fbc692311252ed6ac + category: main + optional: false +- name: zstd + version: 1.5.6 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + hash: + md5: 4d056880988120e29d75bfff282e0f45 + sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + category: main + optional: false From 3afecb6b0b746493427a159af3e7ac6894eed942 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 13:08:58 -0500 Subject: [PATCH 14/17] ci: Clean up the matrix to avoid a race condition --- .github/workflows/wave.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 084f0f77701..9039cdcf647 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -1,4 +1,3 @@ -# TODO Change to Wave name: Generate conda-lock # When environment.yml is changed on: @@ -6,9 +5,6 @@ on: paths: - "**/environment.yml" -env: - WAVE_VER: "1.4.1" - jobs: gen-matrix: name: generate-matrix @@ -23,25 +19,23 @@ jobs: with: json: true quotepath: false - # TODO Add Dockerfiles files: | modules/**/environment.yml - name: Debug run: echo ${{ steps.diff.outputs.all_changed_files }} - id: set-matrix - run: echo "matrix={\"profile\":[\"docker\", \"singularity\"],\"files\":${{ steps.diff.outputs.all_changed_files }} }" >> "$GITHUB_OUTPUT" + run: echo "matrix={\"files\":${{ steps.diff.outputs.all_changed_files }} }" >> "$GITHUB_OUTPUT" outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} - build: + lock: if: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}" needs: gen-matrix - name: build + name: Generate conda-lock file permissions: contents: write runs-on: ubuntu-latest - timeout-minutes: 60 strategy: fail-fast: false matrix: "${{ fromJson(needs.gen-matrix.outputs.matrix) }}" From c6b7ae66421deefaed8456f68c04590bd970072f Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 13:33:11 -0500 Subject: [PATCH 15/17] style: Ignore conda-lock for prettier --- .prettierignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.prettierignore b/.prettierignore index 41fc3479697..cb3f3e47fb4 100644 --- a/.prettierignore +++ b/.prettierignore @@ -15,3 +15,4 @@ __pycache__ *.pyo *.pyc .github/renovate.json5 +**/conda-lock.yml From 251b8cabf365bbf538349130259f6cb4fa07bd85 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 8 Aug 2024 13:44:07 -0500 Subject: [PATCH 16/17] ci: Allow no conda-lock updates --- .github/workflows/wave.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/wave.yml b/.github/workflows/wave.yml index 9039cdcf647..849e59ee2b2 100644 --- a/.github/workflows/wave.yml +++ b/.github/workflows/wave.yml @@ -69,6 +69,7 @@ jobs: shell: bash -l {0} - name: Commit & push changes + id: commit-and-push run: | git config user.email "core@nf-co.re" git config user.name "nf-core-bot" @@ -78,4 +79,9 @@ jobs: git commit -m "[automated] autogenerated conda-lock file" git push + - name: If no conda-lock update + if: steps.commit-and-push.outcome == 'failure' + run: | + echo "No conda-lock update" + # TODO Build containers with Wave From de2fdf78092816e986068db18bed83ce493854e6 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 9 Aug 2024 13:15:21 -0500 Subject: [PATCH 17/17] build: Try a conda-lock file --- modules/nf-core/bowtie2/align/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/bowtie2/align/main.nf b/modules/nf-core/bowtie2/align/main.nf index 809525ad36c..9f5480c5175 100644 --- a/modules/nf-core/bowtie2/align/main.nf +++ b/modules/nf-core/bowtie2/align/main.nf @@ -2,7 +2,7 @@ process BOWTIE2_ALIGN { tag "$meta.id" label 'process_high' - conda "${moduleDir}/environment.yml" + conda "${moduleDir}/conda-lock.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:f70b31a2db15c023d641c32f433fb02cd04df5a6-0' : 'biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:f70b31a2db15c023d641c32f433fb02cd04df5a6-0' }"