Add Python 3.13 to devcontainer to support latest nf-core tools - #683
Merged
Merged
Conversation
Adds the official Python devcontainer feature (version 3.13) to both codespaces-dev and local-dev configurations. This ensures that when uv installs nf-core tools, it uses Python 3.13 and can install the latest version of nf-core that requires this Python version. Previously, uv was falling back to Ubuntu 22.04's system Python 3.10, which meant it could only install older versions of nf-core that were compatible with Python 3.10. Also updates the uv-tools feature to declare it installs after the Python feature, ensuring proper installation order. This change aligns with the native installation philosophy introduced in PR #609, using native Python installation rather than conda for dev container tooling, while keeping conda available for pipeline execution within training materials. Related to #609 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
✅ Deploy Preview for nextflow-training ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Collaborator
Author
|
Note: build logs now show correct version of nf-core tools, so I'm pretty sure this has worked |
Collaborator
Author
|
Thanks @kenibrewer ! |
pinin4fjords
added a commit
that referenced
this pull request
Nov 25, 2025
PR #683 enabled automatic installation of the latest nf-core version by adding Python 3.13 support. While this approach ensures access to new features, pinning to a specific version provides consistency for training environments where reproducible behavior is important. Related to #683 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2 tasks
pinin4fjords
added a commit
that referenced
this pull request
Nov 25, 2025
* Pin nf-core to 3.4.1 for training stability PR #683 enabled automatic installation of the latest nf-core version by adding Python 3.13 support. While this approach ensures access to new features, pinning to a specific version provides consistency for training environments where reproducible behavior is important. Related to #683 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix check-headings workflow to run on all PRs The workflow was only triggered when markdown files changed, causing it to be skipped entirely for non-markdown PRs. Since check-headings is a required status check, this blocked PRs that didn't touch markdown. Now the workflow runs on all PRs but conditionally skips the actual check when no markdown files have changed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The devcontainer configuration was unable to install the latest version of nf-core tools. When
uv tool install nf-coreran, it was using Ubuntu 22.04's system Python 3.10 to create the isolated environment, which limited it to installing only versions of nf-core compatible with Python 3.10. If the latest nf-core requires Python 3.13, an older version would be installed instead.Solution
This PR adds the official
ghcr.io/devcontainers/features/python:1feature with version 3.13 to both thecodespaces-devandlocal-devdevcontainer configurations. By installing Python 3.13 early in the feature installation order (beforeuv), we ensure that whenuv tool install nf-coreruns, it will:Changes
Design Rationale
This approach aligns with the native installation philosophy introduced in #609:
uvautomatically gets the latest compatible nf-core versionTesting
The changes should be tested by:
python --version(should show 3.13.x)nf-core --version(should show latest version)/root/.local/share/uv/tools/nf-core/bin/python --versionRelated to #609