Skip to content

Hold insert-ordered-containers below 0.3 in the image too - #344

Merged
ccomb merged 1 commit into
mainfrom
build/docker-pin-insord
Aug 22, 2026
Merged

Hold insert-ordered-containers below 0.3 in the image too#344
ccomb merged 1 commit into
mainfrom
build/docker-pin-insord

Conversation

@ccomb

@ccomb ccomb commented Aug 22, 2026

Copy link
Copy Markdown
Owner

The image build writes its own cabal.project at docker/Dockerfile:129
rather than copying the repository's, so the hold added when
insert-ordered-containers released 0.3 never reached it, and the
allow-newer: true on the line above let the breaking version in.
Building the engine from its own sources stopped at API.Types:

Couldn't match type: Data.HashMap.Strict.InsOrd.Compat.InsOrdHashMap
                       Text (Referenced Data.OpenApi.Internal.Schema)
                with: InsOrdHashMap.InsOrdHashMap k5 (...)

the same mismatch the repository-level constraint was added for, between
the plain InsOrdHashMap the schema code builds properties with and the
compat newtype openapi3 3.2.5 wraps it in from that version on.

What was and was not affected

The published image never hit this. volca-image.yml downloads the
released binary, checks it against SHA256SUMS, and passes it as a build
context that shadows the haskell-builder stage, so BuildKit resolves
COPY --from=haskell-builder against that directory and never builds the
stage. What was broken is the path that actually compiles: building the
image from source, and the image step of the deployment repository's
release gate.

The comment above the line now says why the constraint is repeated rather
than shared, so the next person does not delete it as a duplicate.

Verified by building the haskell-builder stage through to a statically
linked binary, which is what the stage's own check requires.

The image build writes its own cabal.project rather than copying the
repository's, so the hold added for the library's 0.3 release never
reached it, and allow-newer on the line above let the breaking version
in. Building the engine from its sources stopped at API.Types, on the
same mismatch between the plain InsOrdHashMap the schema code builds
and the compat newtype openapi3 3.2.5 wraps it in from that version on.

The published image never hit this: volca-image.yml downloads the
released binary and shadows the haskell-builder stage with it, so
BuildKit does not build that stage at all. What was broken is the path
that compiles: docker-build.sh from source, and the image step of the
deployment repository's release gate.

Verified by building the haskell-builder stage through to a statically
linked binary.
@ccomb
ccomb merged commit 4cf01f2 into main Aug 22, 2026
10 checks passed
@ccomb
ccomb deleted the build/docker-pin-insord branch August 25, 2026 09:16
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.

1 participant