ABI-2 image isolation for the 3.0 transition¶

The unchanged server line must keep consuming ABI 2 while libdrizzle 3.0 is prepared. The server Containerfile defaults LIBDRIZZLE_IMAGE and WIREDTIGER_IMAGE to the respective quay.io/drizzle repositories’ abi2-testing-slim channels. The WiredTiger build and runtime stages also use the libdrizzle ABI-2 channel, and its build/upload/promote jobs publish the WiredTiger ABI-2 tag.

These tags follow compatible C++ builds until the 3.0 cutover. Before either image is built against ABI 3, remove its ABI-2 publication tag from the job configuration. Leave the last ABI-2 tags pointing to their existing images so unchanged consumers and rollback builds retain a served manifest. Do not retarget these channels to ABI 3.

A digest identifies content but does not retain it in Quay. Moving every tag off a manifest can make its digest unavailable; a build must not depend on an old digest whose tags have all moved. For an exact reproducible rollback, first publish and retain a distinct snapshot tag, verify its manifest and platforms, and then record that tag and digest together.

The server consumes libdrizzle directly and copies /usr/local from the WiredTiger payload image. A paired 3.0 candidate can override LIBDRIZZLE_IMAGE with its actual speculative image reference. Override WIREDTIGER_IMAGE as well when testing a rebuilt payload. Pass the same libdrizzle candidate to both WiredTiger stages when rebuilding it. Ensure candidate publication no longer includes the ABI-2 tags before using those overrides for a 3.0 build.

The images inspected for this transition provide linux/amd64. The ABI-2 channel names do not imply multi-architecture support: publish and verify arm64-compatible inputs before an arm64 3.0 promotion. Validate downstream builds and rollback inputs in Zuul before the packaging switch.