Skip to content

Commit d0a40db

Browse files
authored
Merge pull request #3833 from nf-core/dev
dev > main for 3.4.0 release
2 parents 75e643a + 1ebee76 commit d0a40db

File tree

270 files changed

+11438
-5380
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

270 files changed

+11438
-5380
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# devcontainers/miniconda image based on debian (bookworm)
2+
# see tags and images: https://mcr.microsoft.com/en-us/artifact/mar/devcontainers/miniconda/tags
3+
FROM "mcr.microsoft.com/devcontainers/miniconda@sha256:8e262a2664fab1d53054738d3633338558a2078ce66d3abde55c130f0d5da94f" AS build
4+
5+
# copy this repo at current revision
6+
COPY . /root/nfcore-tools/
7+
8+
# Explicitly reinstall python 3.13 via conda
9+
# install local nf-core tools version, and precommit hooks
10+
RUN cd /root/nfcore-tools/ && \
11+
conda install -y python=3.13 && \
12+
pip install --no-cache-dir --upgrade pip setuptools wheel pre-commit && \
13+
pip install -r requirements.txt --no-cache-dir -e . && \
14+
pre-commit install --install-hooks && \
15+
rm -rf /root/.cache/pip
16+
17+
# Install nextflow and nf-test via conda and run conda clean
18+
RUN conda install -c bioconda -y nextflow nf-test && \
19+
conda clean -afy
20+
21+
# Install dependencies for apptainer build and apptainer and run apt clean
22+
RUN apt-get update --quiet && \
23+
apt-get install -y curl rpm2cpio cpio && \
24+
curl -s https://raw.githubusercontent.com/apptainer/apptainer/main/tools/install-unprivileged.sh | bash -s - /usr/local/apptainer && \
25+
echo "PATH=/usr/local/apptainer/bin:$PATH" >> $HOME/.bashrc && \
26+
apt-get clean && \
27+
rm -rf /var/lib/apt/lists/*
28+
29+
# Final stage to copy only the required files after installation
30+
FROM "mcr.microsoft.com/devcontainers/base:debian@sha256:ce2e9e611939e611b737362c045bb6d3449bb3efb84898525d724aace1737b90" AS final
31+
32+
# Copy only the conda environment and site-packages from build stage
33+
COPY --from=build /opt/conda /opt/conda
34+
COPY --from=build /root/nfcore-tools/nf_core /root/nfcore-tools/nf_core
35+
36+
# Copy aptainer install from build stage
37+
COPY --from=build /usr/local/apptainer /usr/local/apptainer
38+
COPY --from=build /root/.bashrc /root/.bashrc
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"name": "nfcore-devcontainer-build",
3+
4+
// installs python3.14, nf-core tools from current workspace, nextflow, nf-test,
5+
// and apptainer based on mcr.microsoft.com/devcontainers/miniconda image
6+
"build": {
7+
"dockerfile": "./Dockerfile",
8+
"context": "../.."
9+
},
10+
11+
"features": {
12+
"ghcr.io/devcontainers/features/docker-outside-of-docker:1.6.3": {}
13+
},
14+
15+
"remoteEnv": {
16+
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}"
17+
},
18+
19+
"remoteUser": "root",
20+
"privileged": true,
21+
22+
// Configure tool-specific properties.
23+
"customizations": {
24+
// Configure properties specific to VS Code.
25+
"vscode": {
26+
// Set *default* container specific settings.json values on container create.
27+
"settings": {
28+
"python.defaultInterpreterPath": "/opt/conda/bin/python"
29+
},
30+
31+
// Add the IDs of extensions you want installed when the container is created.
32+
"extensions": [
33+
"charliermarsh.ruff",
34+
"ms-python.python",
35+
"ms-python.vscode-pylance",
36+
"nf-core.nf-core-extensionpack"
37+
]
38+
}
39+
}
40+
}

.devcontainer/devcontainer.json

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
{
22
"name": "nfcore",
3-
"image": "nfcore/gitpod:latest",
4-
"postCreateCommand": "python -m pip install --upgrade -r ../requirements-dev.txt -e ../ && pre-commit install --install-hooks",
5-
"remoteUser": "gitpod",
6-
"runArgs": ["--privileged"],
3+
"image": "nfcore/devcontainer:latest",
74

8-
// Configure tool-specific properties.
9-
"customizations": {
10-
// Configure properties specific to VS Code.
11-
"vscode": {
12-
// Set *default* container specific settings.json values on container create.
13-
"settings": {
14-
"python.defaultInterpreterPath": "/opt/conda/bin/python"
15-
},
5+
"remoteEnv": {
6+
// Workspace path on the host for mounting with docker-outside-of-docker
7+
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}"
8+
},
169

17-
// Add the IDs of extensions you want installed when the container is created.
18-
"extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"]
19-
}
10+
"onCreateCommand": "./.devcontainer/setup.sh",
11+
12+
"remoteUser": "root",
13+
"privileged": true,
14+
15+
"hostRequirements": {
16+
"cpus": 4,
17+
"memory": "16gb",
18+
"storage": "32gb"
2019
}
2120
}

.devcontainer/setup.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/usr/bin/env bash
2+
3+
# Customise the terminal command prompt
4+
echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc
5+
echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc
6+
export PROMPT_DIRTRIM=2
7+
export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '
8+
9+
# Update Nextflow
10+
nextflow self-update
11+
12+
# Update welcome message
13+
echo "Welcome to the nf-core devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,4 @@ body:
3838
* Executor _(eg. slurm, local, awsbatch)_
3939
* OS _(eg. CentOS Linux, macOS, Linux Mint)_
4040
* Version of nf-core/tools _(eg. 1.10, 1.12.1, 1.13)_
41-
* Python version _(eg. 3.12, 3.13)_
41+
* Python version _(eg. 3.13, 3.14)_

.github/RELEASE_CHECKLIST.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,22 @@
44
2. Most importantly, pick an undeniably outstanding [name](http://www.codenamegenerator.com/) for the release where _Prefix_ = _Metal_ and _Dictionary_ = _Animal_.
55
3. Check the [pipeline health page](https://nf-co.re/pipeline_health) to make sure that all repos look sane (missing `TEMPLATE` branches etc)
66
4. Check that modules/subworkflows in template are up to date with the latest releases
7-
5. Create a PR to `dev` to bump the version in `CHANGELOG.md` and `setup.py` and change the gitpod container to `nfcore/gitpod:latest`.
7+
5. Create a PR to `dev` to bump the version in `CHANGELOG.md` and `setup.py` and change the `.devcontainer/devcontainer.json` container to `nfcore/gitpod:latest`.
88
6. Make sure all CI tests are passing!
99
7. Create a PR from `dev` to `main`
10-
8. Make sure all CI tests are passing again (additional tests are run on PRs to `main`)
11-
9. Request review (2 approvals required)
12-
10. Merge the PR into `main`
13-
11. Wait for CI tests on the commit to passed
14-
12. (Optional but a good idea) Run a manual sync on `nf-core/testpipeline` and check that CI is passing on the resulting PR.
15-
13. Create a new release copying the `CHANGELOG` for that release into the description section.
10+
8. Run a manual sync on `nf-core/testpipeline` and check that CI is passing on the resulting PR: use the `Sync template` GitHub Action from the tools repository specifying the pipeline name and running from the `dev` branch.
11+
9. Warn someone from Seqera to make sure that the Seqera Platform is working as expected with the new template: use the `nf-core/testpipeline` new branch with the template updates.
12+
10. Make sure all CI tests are passing again (additional tests are run on PRs to `main`)
13+
11. Request review (2 approvals required)
14+
12. Merge the PR into `main`
15+
13. Wait for CI tests on the commit to passed
16+
14. Create a new release copying the `CHANGELOG` for that release into the description section.
1617

1718
## After release
1819

19-
1. Check the automated template synchronisation has been triggered properly. This should automatically open PRs directly to individual pipeline repos with the appropriate changes to update the pipeline template.
20-
2. Check that the automatic `PyPi` deployment has worked: [pypi.org/project/nf-core](https://pypi.org/project/nf-core/)
21-
3. Check `BioConda` has an automated PR to bump the version, and merge. eg. [bioconda/bioconda-recipes #20065](https://github.com/bioconda/bioconda-recipes/pull/20065)
22-
4. Create a tools PR to `dev` to bump back to the next development version in `CHANGELOG.md` and `setup.py` and change the gitpod container to `nfcore/gitpod:dev`.
23-
5. Run `rich-codex` on the [tools/website repo](https://github.com/nf-core/website/actions/workflows/rich-codex.yml) to regenerate docs screengrabs (actions `workflow_dispatch` button)
20+
1. Run the `Sync template` GitHub Action to trigger the template update PR to some selected pipelines (sarek, createtaxdb, proteinfold, mag, #team-maintainers channel) and ask the pipeline maintainers to make the update and report any issues/comments.
21+
2. Run `rich-codex` to regenerate docs screengrabs: `Generate images for docs` GitHub Action on the [tools/website repo](https://github.com/nf-core/website/actions/workflows/rich-codex.yml).
22+
3. Manually trigger the `Sync template` GitHub Action for all pipelines.
23+
4. Check that the automatic `PyPi` deployment has worked: [pypi.org/project/nf-core](https://pypi.org/project/nf-core/)
24+
5. Check `BioConda` has an automated PR to bump the version, and merge. eg. [bioconda/bioconda-recipes #20065](https://github.com/bioconda/bioconda-recipes/pull/20065)
25+
6. Create a tools PR to `dev` to bump back to the next development version in `CHANGELOG.md` and `setup.py` and change the `.devcontainer/devcontainer.json` container to `nfcore/gitpod:dev`.

.github/renovate.json5

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
$schema: "https://docs.renovatebot.com/renovate-schema.json",
33
extends: ["github>nf-core/ops//.github/renovate/default.json5"],
44
ignorePaths: ["**/nf_core/pipeline-template/modules/nf-core/**"],
5-
baseBranches: ["dev"],
5+
baseBranchPatterns: ["dev"],
66
packageRules: [
77
{
88
matchDatasources: ["docker"],

.github/snapshots/adaptivecard.nf.test.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"-profile test": {
33
"content": [
4-
4,
54
{
65
"FASTQC": {
76
"fastqc": "0.12.1"
@@ -26,7 +25,6 @@
2625
"fastqc/SAMPLE3_SE_2_fastqc.zip",
2726
"multiqc",
2827
"multiqc/multiqc_data",
29-
"multiqc/multiqc_data/BETA-multiqc.parquet",
3028
"multiqc/multiqc_data/fastqc-status-check-heatmap.txt",
3129
"multiqc/multiqc_data/fastqc_overrepresented_sequences_plot.txt",
3230
"multiqc/multiqc_data/fastqc_per_base_n_content_plot.txt",
@@ -38,7 +36,9 @@
3836
"multiqc/multiqc_data/fastqc_sequence_duplication_levels_plot.txt",
3937
"multiqc/multiqc_data/fastqc_sequence_length_distribution_plot.txt",
4038
"multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt",
39+
"multiqc/multiqc_data/llms-full.txt",
4140
"multiqc/multiqc_data/multiqc.log",
41+
"multiqc/multiqc_data/multiqc.parquet",
4242
"multiqc/multiqc_data/multiqc_citations.txt",
4343
"multiqc/multiqc_data/multiqc_data.json",
4444
"multiqc/multiqc_data/multiqc_fastqc.txt",
@@ -106,7 +106,7 @@
106106
]
107107
],
108108
"meta": {
109-
"nf-test": "0.9.2",
109+
"nf-test": "0.9.3",
110110
"nextflow": "25.03.1"
111111
},
112112
"timestamp": "2025-05-07T13:52:10.350817122"

.github/snapshots/changelog.nf.test.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"-profile test": {
33
"content": [
4-
4,
54
{
65
"FASTQC": {
76
"fastqc": "0.12.1"
@@ -26,7 +25,6 @@
2625
"fastqc/SAMPLE3_SE_2_fastqc.zip",
2726
"multiqc",
2827
"multiqc/multiqc_data",
29-
"multiqc/multiqc_data/BETA-multiqc.parquet",
3028
"multiqc/multiqc_data/fastqc-status-check-heatmap.txt",
3129
"multiqc/multiqc_data/fastqc_overrepresented_sequences_plot.txt",
3230
"multiqc/multiqc_data/fastqc_per_base_n_content_plot.txt",
@@ -38,7 +36,9 @@
3836
"multiqc/multiqc_data/fastqc_sequence_duplication_levels_plot.txt",
3937
"multiqc/multiqc_data/fastqc_sequence_length_distribution_plot.txt",
4038
"multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt",
39+
"multiqc/multiqc_data/llms-full.txt",
4140
"multiqc/multiqc_data/multiqc.log",
41+
"multiqc/multiqc_data/multiqc.parquet",
4242
"multiqc/multiqc_data/multiqc_citations.txt",
4343
"multiqc/multiqc_data/multiqc_data.json",
4444
"multiqc/multiqc_data/multiqc_fastqc.txt",
@@ -106,7 +106,7 @@
106106
]
107107
],
108108
"meta": {
109-
"nf-test": "0.9.2",
109+
"nf-test": "0.9.3",
110110
"nextflow": "25.03.1"
111111
},
112112
"timestamp": "2025-05-07T13:52:01.993722854"

.github/snapshots/ci.nf.test.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"-profile test": {
33
"content": [
4-
4,
54
{
65
"FASTQC": {
76
"fastqc": "0.12.1"
@@ -26,7 +25,6 @@
2625
"fastqc/SAMPLE3_SE_2_fastqc.zip",
2726
"multiqc",
2827
"multiqc/multiqc_data",
29-
"multiqc/multiqc_data/BETA-multiqc.parquet",
3028
"multiqc/multiqc_data/fastqc-status-check-heatmap.txt",
3129
"multiqc/multiqc_data/fastqc_overrepresented_sequences_plot.txt",
3230
"multiqc/multiqc_data/fastqc_per_base_n_content_plot.txt",
@@ -38,7 +36,9 @@
3836
"multiqc/multiqc_data/fastqc_sequence_duplication_levels_plot.txt",
3937
"multiqc/multiqc_data/fastqc_sequence_length_distribution_plot.txt",
4038
"multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt",
39+
"multiqc/multiqc_data/llms-full.txt",
4140
"multiqc/multiqc_data/multiqc.log",
41+
"multiqc/multiqc_data/multiqc.parquet",
4242
"multiqc/multiqc_data/multiqc_citations.txt",
4343
"multiqc/multiqc_data/multiqc_data.json",
4444
"multiqc/multiqc_data/multiqc_fastqc.txt",
@@ -106,7 +106,7 @@
106106
]
107107
],
108108
"meta": {
109-
"nf-test": "0.9.2",
109+
"nf-test": "0.9.3",
110110
"nextflow": "25.03.1"
111111
},
112112
"timestamp": "2025-05-07T13:52:03.306256217"

0 commit comments

Comments
 (0)