Skip to content

fix: bump outdated feature references (node & docker in docker) - #1957

Merged
Sam Byng (sam-byng) merged 5 commits into
devcontainers:mainfrom
V-Subhankar-infy:fix-base
Aug 11, 2026
Merged

fix: bump outdated feature references (node & docker in docker)#1957
Sam Byng (sam-byng) merged 5 commits into
devcontainers:mainfrom
V-Subhankar-infy:fix-base

Conversation

@V-Subhankar-infy

@V-Subhankar-infy Venkumahanti Subhankar (V-Subhankar-infy) commented Aug 10, 2026

Copy link
Copy Markdown
Member

Summary

Bumps outdated ghcr.io/devcontainers/features/* major version pins across 11 images. Partially Resolves #1944.

Current Issue

Multiple images pin ghcr.io/devcontainers/features/node:1 when :2 is the current major. The root .devcontainer pins docker-in-docker:2 when :4 is current. src/ruby pins ruby:1 when :2 is current. These stale pins persist because devcontainer upgrade only refreshes lockfiles within the pinned major — it does not bump the major version in devcontainer.json. No automation exists to detect this drift.

universal is excluded from this PR — it shares the ruby:1 and docker-in-docker:3 pins but requires separate coordination due to its complexity.

Changes

Per image:

  • Updated feature reference in .devcontainer/devcontainer.json
  • Regenerated .devcontainer/devcontainer-lock.json via devcontainer upgrade
  • Updated feature reference in README.md (where documented)
  • Version bump in manifest.json + corresponding README version tags

Root .devcontainer/devcontainer.json: docker-in-docker:2:4 (no manifest for workspace config).

Ruby-specific (breaking):

  • ruby:1:2 drops rvm by default (uses ruby-build instead)
  • Test updated: check "rvm"check "ruby-build"
  • Added "Migrating from rvm" section to README documenting opt-in via "versionManager": "rvm"
  • Major version bump (3.0.94.0.0)

Anaconda fix (pre-existing bug):

  • jupyterlab=4.4.8 and notebook=7.5.6 were pinned in apply_security_patches.sh and test.sh but neither version was ever published on PyPI or conda
  • Fixed pins to jupyterlab=4.5.3 and notebook=7.5.7 (first available conda versions above the invalid pins)
  • Updated test assertions to match

Affected Images

Image Feature Change Version Bump Type
anaconda node:1→:2 1.3.24 → 1.4.0 minor
dotnet node:1→:2 2.1.4 → 2.2.0 minor
go node:1→:2 2.1.6 → 2.2.0 minor
java node:1→:2 3.0.11 → 3.1.0 minor
java-8 node:1→:2 3.1.0 → 3.2.0 minor
javascript-node node:1→:2 5.0.2 → 5.1.0 minor
jekyll node:1→:2 2.2.12 → 2.3.0 minor
miniconda node:1→:2 1.2.11 → 1.3.0 minor
php node:1→:2 4.0.2 → 4.1.0 minor
python node:1→:2 3.1.6 → 3.2.0 minor
ruby ruby:1→:2, node:1→:2 3.0.9 → 4.0.0 major
.devcontainer (root) docker-in-docker:2→:4 N/A

Impact

  • All images with node feature set to "version": "none" — no runtime behavior change from node bump.
  • docker-in-docker:4 is backward compatible with :2/:3.
  • Ruby breaking change: rvm no longer pre-installed. Users can opt-in via "versionManager": "rvm" in their devcontainer.json. Migration documented in README.
  • Anaconda: Fixed invalid security patch pins (jupyterlab=4.4.8, notebook=7.5.6 never existed). Now pins to real versions available on conda.
  • All images built and smoke-tested successfully.
  • universal intentionally excluded — to be addressed separately.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates this repo’s devcontainer configs to stop pinning outdated major versions of upstream features (primarily ghcr.io/devcontainers/features/node and workspace docker-in-docker), and bumps affected image versions / docs accordingly.

Changes:

  • Bumped ghcr.io/devcontainers/features/node references from :1:2 across the affected image .devcontainer/devcontainer.json files and regenerated the corresponding lockfiles.
  • Bumped each affected image’s manifest.json minor version and updated README examples where referenced.
  • Updated the root workspace .devcontainer/devcontainer.json to use docker-in-docker:4.

Reviewed changes

Copilot reviewed 41 out of 41 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
src/anaconda/README.md Updates documented semantic-version tag example and node feature reference
src/anaconda/manifest.json Minor version bump for the anaconda image
src/anaconda/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/anaconda/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/dotnet/README.md Updates documented semantic-version tag examples for current image version
src/dotnet/manifest.json Minor version bump for the dotnet image
src/dotnet/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/dotnet/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/go/README.md Updates documented semantic-version tag example and node feature reference
src/go/manifest.json Minor version bump for the go image
src/go/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/go/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/java/README.md Updates documented semantic-version tag example and node feature reference
src/java/manifest.json Minor version bump for the java image
src/java/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/java/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/java-8/README.md Updates documented semantic-version tag example to current image version
src/java-8/manifest.json Minor version bump for the java-8 image
src/java-8/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/java-8/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/javascript-node/README.md Updates documented semantic-version tag example to current image version
src/javascript-node/manifest.json Minor version bump for the javascript-node image
src/javascript-node/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/javascript-node/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/jekyll/README.md Updates documented semantic-version tag example and node feature reference
src/jekyll/manifest.json Minor version bump for the jekyll image
src/jekyll/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/jekyll/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/miniconda/README.md Updates documented semantic-version tag example and node feature reference
src/miniconda/manifest.json Minor version bump for the miniconda image
src/miniconda/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/miniconda/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/php/README.md Updates documented semantic-version tag example and node feature reference
src/php/manifest.json Minor version bump for the php image
src/php/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/php/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
src/python/README.md Updates documented semantic-version tag example and node feature reference
src/python/manifest.json Minor version bump for the python image
src/python/.devcontainer/devcontainer.json Bumps node feature major (node:1node:2)
src/python/.devcontainer/devcontainer-lock.json Regenerated lockfile reflecting node:2 resolution
.devcontainer/devcontainer.json Bumps docker-in-docker feature major (:2:4) for the workspace devcontainer
Suppressed comments (1)

src/dotnet/README.md:40

  • The README’s semantic-version examples still reference the previous minor tag (2.1-9.0) even though this PR bumps the image version to 2.2.0. To keep the documented tags aligned with the current manifest version, update the minor example to 2.2-9.0.
- `mcr.microsoft.com/devcontainers/dotnet:2.1-9.0`
- `mcr.microsoft.com/devcontainers/dotnet:2.2.0-9.0`

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/python/README.md Outdated
Comment thread src/php/README.md Outdated
Comment thread src/miniconda/README.md Outdated
Comment thread src/jekyll/README.md Outdated
Comment thread src/javascript-node/README.md Outdated
Comment thread src/go/README.md Outdated
Comment thread src/java/README.md Outdated
Comment thread src/java-8/README.md Outdated
Comment thread src/dotnet/README.md Outdated
Comment thread src/anaconda/README.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 46 out of 46 changed files in this pull request and generated no new comments.

Suppressed comments (5)

src/ruby/README.md:64

  • Same issue here: the fenced block is labeled json, but the example starts at the "features" property and is not valid JSON on its own. Wrapping it in an outer object makes it directly usable in devcontainer.json.
    src/ruby/README.md:35
  • The semver tag examples mention *-bullseye for the Ruby 4.x variants, but src/ruby/manifest.json only defines 4.0 variants for trixie and bookworm (no 4.0-bullseye). This makes the README examples for 4-4[-bullseye], 4.0-4[-bullseye], and 4.0.0-4[-bullseye] incorrect.
    src/ruby/README.md:45
  • This sentence says the container includes nvm, but the example immediately below uses the Node feature. To avoid confusing readers, align the wording with the feature-based example (or update the example to match nvm).
    src/ruby/README.md:52
  • The snippet is fenced as json but the contents are not valid JSON as written (it starts at the "features" property without an enclosing object). Wrap it in an outer object so it can be copied directly into a devcontainer.json.

This issue also appears on line 60 of the same file.
src/ruby/.devcontainer/devcontainer.json:15

  • The PR description says ruby:1→:2 changes are excluded pending a separate decision, but this PR updates ghcr.io/devcontainers/features/ruby:1 to :2 here (and also bumps src/ruby/manifest.json to 4.0.0 with README notes about migrating from rvm). Either update the PR description/"Affected Images" section to include Ruby, or split/revert the Ruby-related changes into a separate PR to match the stated scope.

@V-Subhankar-infy
Venkumahanti Subhankar (V-Subhankar-infy) marked this pull request as ready for review August 11, 2026 06:15

@sam-byng Sam Byng (sam-byng) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@sam-byng
Sam Byng (sam-byng) merged commit 987c6fc into devcontainers:main Aug 11, 2026
12 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bump our own version references

3 participants