Skip to content

Conversation

@yomna-shousha
Copy link
Contributor

initial pass at adding build image policies for Workers Builds and Cloudflare Pages

@github-actions
Copy link
Contributor

github-actions bot commented Dec 1, 2025

This pull request requires reviews from CODEOWNERS as it changes files that match the following patterns:

Pattern Owners
/src/content/changelog/ @cloudflare/pm-changelogs, @cloudflare/pcx-technical-writing
/src/content/docs/pages/ @cloudflare/workers-docs, @GregBrimble, @WalshyDev, @aninibread, @irvinebroque, @cloudflare/pcx-technical-writing
/src/content/docs/workers/ci-cd/ @irvinebroque, @aninibread, @GregBrimble, @cloudflare/pcx-technical-writing, @yomna-shousha


- **Minor version updates**: Default versions are updated to the latest minor version without notice (e.g., Node.js 22.15.0 → 22.16.0). If you need a specific minor version, [override the default version](/workers/ci-cd/builds/build-image/#overriding-default-versions).

- **Major version updates**: When a language runtime or tool approaches its end-of-life (EOL) date, e.g. Node.js, we update to the latest supported version. We will provide at least 3 months advance notice via
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- **Major version updates**: When a language runtime or tool approaches its end-of-life (EOL) date, e.g. Node.js, we update to the latest supported version. We will provide at least 3 months advance notice via
- **Major version updates**: When a language runtime or tool approaches its end-of-life (EOL) date, e.g. Node.js, we update the build image to the latest supported version. We will provide at least 3 months advance notice via

We update to the latest supported version or to the oldest supported version?

Ex — we are saying Node.js 24 or 26?

Screenshot 2025-12-01 at 4 57 18 PM

Copy link
Contributor Author

Choose a reason for hiding this comment

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

clarified in this most recent commit -- we'd be moving to the next version not the latest one


- **Major version updates**: When a language runtime or tool approaches its end-of-life (EOL) date, e.g. Node.js, we update to the latest supported version. We will provide at least 3 months advance notice via
- [Cloudflare Changelog](https://developers.cloudflare.com/changelog/)
- Dashboard notification to affected projects upon announcement
Copy link
Contributor

Choose a reason for hiding this comment

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

"affected" is ambiguous here - i could take that to mean

  • cloudflare will notify me if my code relies on an API that will break with the transition
  • cloudflare will notify me if they know I am relying on that dependency
  • cloudflare will notify me if I am currently pinned to an older version

We've published build image policies for [Workers Builds](/workers/ci-cd/builds/build-image/#build-image-policy) and [Cloudflare Pages](/pages/configuration/build-image/#build-image-policy) that establish:

- **Minor version updates**: Default versions are updated to the latest available minor version without notice
- **Major version updates**: When language runtimes or tools reach end-of-life, we update to the next stable LTS version with at least 3 months advance notice via Changelog and dashboard notifications
Copy link
Contributor

Choose a reason for hiding this comment

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

It would be great if this was also an email notification I think. It's not uncommon for folks to not touch projects for >3 months, and changelogs are just supplementary to user comms.


We've published build image policies for [Workers Builds](/workers/ci-cd/builds/build-image/#build-image-policy) and [Cloudflare Pages](/pages/configuration/build-image/#build-image-policy) that establish:

- **Minor version updates**: Default versions are updated to the latest available minor version without notice
Copy link
Contributor

Choose a reason for hiding this comment

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

How will this work for anything that is zero-versioned, like Hugo? The current version is extended_0.147.7, and I believe breaking changes are very common in minor versions for them at this stage.


We've published build image policies for [Workers Builds](/workers/ci-cd/builds/build-image/#build-image-policy) and [Cloudflare Pages](/pages/configuration/build-image/#build-image-policy) that establish:

- **Minor version updates**: Default versions are updated to the latest available minor version without notice
Copy link
Contributor

Choose a reason for hiding this comment

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

How will this work for projects that don't follow semver, like Bun? Bun is quite popular, but doesn't really follow semver - we saw breaking changes from 1.1 -> 1.2, 1.2 -> 1.3, etc.


We've published build image policies for [Workers Builds](/workers/ci-cd/builds/build-image/#build-image-policy) and [Cloudflare Pages](/pages/configuration/build-image/#build-image-policy) that establish:

- **Minor version updates**: Default versions are updated to the latest available minor version without notice. For tools that don't follow semantic versioning (e.g., Bun, Hugo), minor updates that may contain breaking changes will receive 3 months notice via Changelog, dashboard notifications, and email
Copy link
Contributor

Choose a reason for hiding this comment

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

Should soften to may be here?

Suggested change
- **Minor version updates**: Default versions are updated to the latest available minor version without notice. For tools that don't follow semantic versioning (e.g., Bun, Hugo), minor updates that may contain breaking changes will receive 3 months notice via Changelog, dashboard notifications, and email
- **Minor version updates**: Default versions may be updated to the latest available minor version without notice. For tools that don't follow semantic versioning (e.g., Bun, Hugo), minor updates that may contain breaking changes will receive 3 months notice via Changelog, dashboard notifications, and email

Copy link
Contributor

Choose a reason for hiding this comment

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

Default versions of what?

We've published build image policies for [Workers Builds](/workers/ci-cd/builds/build-image/#build-image-policy) and [Cloudflare Pages](/pages/configuration/build-image/#build-image-policy) that establish:

- **Minor version updates**: Default versions are updated to the latest available minor version without notice. For tools that don't follow semantic versioning (e.g., Bun, Hugo), minor updates that may contain breaking changes will receive 3 months notice via Changelog, dashboard notifications, and email
- **Major version updates**: When language runtimes or tools reach end-of-life, we update to the next stable LTS version with 3 months notice via Changelog, dashboard notifications, and email
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe this should say "before they reach EOL"?

We may update tools well before they reach EOL so that we aren't having to make many updates throughout the year

Copy link
Contributor

Choose a reason for hiding this comment

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

+1


We've published build image policies for [Workers Builds](/workers/ci-cd/builds/build-image/#build-image-policy) and [Cloudflare Pages](/pages/configuration/build-image/#build-image-policy) that establish:

- **Minor version updates**: Default versions are updated to the latest available minor version without notice. For tools that don't follow semantic versioning (e.g., Bun, Hugo), minor updates that may contain breaking changes will receive 3 months notice via Changelog, dashboard notifications, and email
Copy link
Contributor

Choose a reason for hiding this comment

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

Default versions of what?

We've published build image policies for [Workers Builds](/workers/ci-cd/builds/build-image/#build-image-policy) and [Cloudflare Pages](/pages/configuration/build-image/#build-image-policy) that establish:

- **Minor version updates**: Default versions are updated to the latest available minor version without notice. For tools that don't follow semantic versioning (e.g., Bun, Hugo), minor updates that may contain breaking changes will receive 3 months notice via Changelog, dashboard notifications, and email
- **Major version updates**: When language runtimes or tools reach end-of-life, we update to the next stable LTS version with 3 months notice via Changelog, dashboard notifications, and email
Copy link
Contributor

Choose a reason for hiding this comment

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

+1


- **Minor version updates**: Default versions are updated to the latest available minor version without notice. For tools that don't follow semantic versioning (e.g., Bun, Hugo), minor updates that may contain breaking changes will receive 3 months notice via Changelog, dashboard notifications, and email
- **Major version updates**: When language runtimes or tools reach end-of-life, we update to the next stable LTS version with 3 months notice via Changelog, dashboard notifications, and email
- **Build image version deprecation** (Pages only): Build image versions are supported for at least 2 years and receive 6 months notice before removal via Changelog, dashboard notifications, and email
Copy link
Contributor

Choose a reason for hiding this comment

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

When a build image version is no longer supported, customers will be moved to the newer build image version

Would be good to say this, otherwise it is undefined what happens when a build image is "removed"

But if I get it that I'll just be moved onto the latest, I get that - in the base case, lot of things keep working, it's not like we are going to just turn off your builds, etc.

Copy link
Contributor

Choose a reason for hiding this comment

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

One thing that would be good to clarify

We are saying that for both Workers and Pages, we make minor bumps all the time, and we make major bumps with advance notice and before EOL.

So — for both Workers and Pages — there is no reason from here forward to deprecate a build image version. Because even for Pages — so long as we are keeping dependencies up-to-date, there's not a need to deprecate a build image. Deps just get updated — v3 will just continue to get updated dependencies moving forward

i.e. — before our approach to this was to have distinct build images

...and now our approach to this is just — update dependencies based on policy described above — which obviates the need for distinct build images

The only case where the build image version deprecation is relevant is for deprecating the existing pages v1 and v2 build images. Once that happens — both Pages and Workers have the same policy

accurate? if so there is a bit of dot connecting maybe to do here

Copy link
Contributor

Choose a reason for hiding this comment

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

i.e. — if the above is accurate, then is this actually just simple as saying

If you are on the Pages v1 build image, you will be moved automatcially to v3 on
If you are on the Pages v2 build image, you will be moved automatcially to v3 on
If you are on the Pages v3 build image — dependencies will be updated based on the policy described above


To prepare for updates and avoid unexpected build failures:
- Monitor the [Cloudflare Changelog](https://developers.cloudflare.com/changelog/), the dashboard, and your email for announcements
- [Override default versions](/workers/ci-cd/builds/build-image/#overriding-default-versions) if you need to maintain specific versions for your applications
Copy link
Contributor

Choose a reason for hiding this comment

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

Version of what? (especially because directly above you are talking about build image versions but also about versions of software packages that are provided as part of the build image

Copy link
Contributor

Choose a reason for hiding this comment

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

i.e. Github says "preinstalled software"

https://docs.github.com/en/actions/concepts/runners/github-hosted-runners#preinstalled-software-for-github-owned-images

which I immediately get what that means

@yomna-shousha yomna-shousha force-pushed the yomna/build-image-policies branch from ababb92 to e141739 Compare December 12, 2025 20:24
Copy link
Contributor

@irvinebroque irvinebroque left a comment

Choose a reason for hiding this comment

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

See comment re: date placeholders but otherwise 👍


If you are currently using the v1 or v2 build image, your project will be automatically moved to v3:

- **v1 build image**: if you are on the Pages v1 build image, you will be moved automatcially to v3 on [date]
Copy link
Contributor

Choose a reason for hiding this comment

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

what date? :)

@yomna-shousha yomna-shousha merged commit e2c6792 into production Dec 18, 2025
9 checks passed
@yomna-shousha yomna-shousha deleted the yomna/build-image-policies branch December 18, 2025 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants