Support Major Version Tags
Autopilot
Merged in a post:
Tag cimg/node images by major version
R
Ross Warren
CircleCI already provides helpful floating tags like lts, but there isn’t a clean way to pin to a specific major Node version while still automatically receiving patch updates. If I want to stay on Node 22 and make a conscious decision about when to upgrade to Node 24, I currently have to specify a full minor version (e.g. 22.21), which then requires manual updates for every patch release.
It would be very helpful to support major-version-only tags such as cimg/node:22, which would always resolve to the latest available patch within that major release. This would allow teams to intentionally control major upgrades while still benefiting from automatic security and bug fix updates.
This approach would reduce maintenance overhead, improve security hygiene, and align with common Docker image tagging patterns.
Ricardo N Feliciano
Hey everyone. I just want to remind people that if major version alias tags exists, as the minor version alias tags exists now, these are moving tags. Moving tags will eventually point to newer images, which can contain breaking changes.
When an image updates, its not just moving from PostgreSQL v13.3 to v13.4 for example. Other tools, packages in the underlying OS, etc can also be updated at the same time. The tags for Convenience Images aren't SemVer and don't follow that policy.
Rob Cresswell
Same as the others, until https://github.com/CircleCI-Public/cimg-node/issues/130 (or equivalent) has merged, we wont use
cimg/node
tags. Having one more thing to update is frustrating; pinning to a major (i.e. 16
) is stable enoughboris@hysolate.com
Same here. We are using circle/node images as we are only interested in the latest version by major version. We cannot switch to cimg/node because of the missing major version tags in cimg/node.
D
David Glasser
Agreed that this would be quite helpful. We test open source projects like https://github.com/apollographql/apollo-server against a bunch of different major versions of Node, and it's quite convenient that
circleci/node
we can just specify major versions. That's why we are still on circleci/node
rather than cimg/node
. We know we can specify minor versions and use something like Renovate to keep them up to date but it's more work (esp since we abstract our executor away inside an orb that tags the tag as a parameter).