Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/boulder-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ jobs:
matrix:
# Add additional docker image tags here and all tests will be run with the additional image.
BOULDER_TOOLS_TAG:
- go1.24.6_2025-08-06
- go1.25.0_2025-08-15
# Tests command definitions. Use the entire "docker compose" command you want to run.
tests:
Expand Down Expand Up @@ -123,7 +122,7 @@ jobs:
# When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true
fail-fast: false
matrix:
go-version: [ '1.24.1' ]
go-version: [ '1.25.0' ]

steps:
# Checks out your repository under $GITHUB_WORKSPACE, so your job can access it
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ jobs:
fail-fast: false
matrix:
GO_VERSION:
- "1.24.6"
- "1.25.0"
runs-on: ubuntu-24.04
permissions:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/try-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ jobs:
fail-fast: false
matrix:
GO_VERSION:
- "1.24.6"
- "1.25.0"
runs-on: ubuntu-24.04
steps:
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ services:
context: test/boulder-tools/
# Should match one of the GO_CI_VERSIONS in test/boulder-tools/tag_and_upload.sh.
args:
GO_VERSION: 1.24.6
GO_VERSION: 1.25.0
environment:
# To solve HTTP-01 and TLS-ALPN-01 challenges, change the IP in FAKE_DNS
# to the IP address where your ACME client's solver is listening. This is
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/letsencrypt/boulder

go 1.24.0
go 1.25.0
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.

nit: technically this should remain 1.24.0 until you land the PR which adds a dependency on the new csrf lib. But updating it now is fine in the grand scheme of things.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hm; yeah, this looks to be forcing our hands to drop support for go1.24 (which is still a supported release);

Given that this module is used as a library module, it's generally best to stick to MVS, and keep versions as low as possible.

Would it be possible for this project to test against latest (stable) and latest -1 (oldstable) to not force consumers into dropping support for Go versions?

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.

We can't generally guarantee compatibility with older releases. As alluded to by the comment above, this PR was immediately followed by #8365, which added a dependency on http.CrosOriginProtection, which is new in go1.25. So this is actually the minimum viable version.

Nothing in this repo is designed to be used as a library outside of Boulder -- all library packages here exist to support the binaries under //cmd. We're aware that some projects have taken dependencies on Boulder's library packages, and we try to support that as best we can, but our guiding principle is that we develop this repo for our own consumption.

We're discussing internally whether we can take on the maintenance burden of splitting goodkey out into its own repository or its own module within this repository, but I can't make any guarantees at this time.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nothing in this repo is designed to be used as a library outside of Boulder -- all library packages here exist to support the binaries under //cmd. We're aware that some projects have taken dependencies on Boulder's library packages, and we try to support that as best we can, but our guiding principle is that we develop this repo for our own consumption.

Ah; that wasn't clear to me, and I can definitely relate to that. Apologies if my comment came across the wrong way; we've been hit many times by modules that are designed to be a module that over-aggressively update dependencies to "yolo-latest", which sometimes can cause an unwanted ripple-effect.

Go makes it really convenient to share code, but it's a bit of a double-edged-sword; when the language was still gaining early adopters, it was a nice way to share your work for others who may find it useful, but especially with Go modules now enforcing SemVer compatibility, that's become more of an issue.

We were in the process to try and reduce indirect dependencies through various upstreams which exploded our binary sizes and it looks indeed that in our case we inherited the dependency indirectly through other modules;

go mod graph | grep 'github.com/letsencrypt/boulder'
github.com/sigstore/[email protected] github.com/letsencrypt/[email protected]
github.com/sigstore/rekor-tiles/[email protected] github.com/letsencrypt/[email protected]
github.com/sigstore/[email protected] github.com/letsencrypt/[email protected]
github.com/sigstore/[email protected] github.com/letsencrypt/[email protected]
github.com/sigstore/timestamp-authority/[email protected] github.com/letsencrypt/[email protected]
github.com/theupdateframework/go-tuf/[email protected] github.com/letsencrypt/[email protected]

We're discussing internally whether we can take on the maintenance burden of splitting goodkey out into its own repository or its own module within this repository, but I can't make any guarantees at this time.

I feel the pain; we've just gone through the process of migrating github.com/moby/moby to use modules, and it was painful (splitting off modules where suitable, and - sometimes aggressively - moving things to internal/ packages); and we're not done yet!

Either way; I appreciate you taking the time to reply, and outline the situation. Happy to think along if needed if you choose to split library modules (always feel free to @ me)


require (
github.com/aws/aws-sdk-go-v2 v1.36.5
Expand Down
2 changes: 1 addition & 1 deletion test/boulder-tools/tag_and_upload.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ DOCKER_REPO="letsencrypt/boulder-tools"
# .github/workflows/release.yml,
# .github/workflows/try-release.yml if appropriate,
# and .github/workflows/boulder-ci.yml with the new container tag.
GO_CI_VERSIONS=( "1.24.6" "1.25.0" )
GO_CI_VERSIONS=( "1.25.0" )

echo "Please login to allow push to DockerHub"
docker login
Expand Down
2 changes: 1 addition & 1 deletion tools/container-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ docker buildx build \
.

docker run boulder tar -C /opt/boulder -cpz . > "./boulder-${VERSION}-${COMMIT_ID}.${ARCH}.tar.gz" .
# Produces e.g. boulder-1.24.5.1754519595-591c0545.x86_64.deb
# Produces e.g. boulder-1.25.0.1754519595-591c0545.x86_64.deb
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.

I don't really want to establish a pattern of updating this comment every time we update versions; it's good and fine for it to be out of date.

docker run -v .:/boulderrepo \
-e "COMMIT_ID=$(git rev-parse --short=8 HEAD)" \
-e "VERSION=${VERSION}" \
Expand Down