Tags: dolthub/dumbodb
Tags
docker: align runtime ICU with the release build environment (#13) The runtime image was failing to start the downloaded binary with libicui18n.so.74: cannot open shared object file because (1) the runtime stage only installed libicu when DUMBODB_VERSION was "source", so the download-binary path landed in an image with no ICU at all, and (2) even with ICU installed, debian:bookworm-slim ships libicu72, while the release binaries are now linked against libicu74 (release.yml builds on ubuntu-24.04 / ubuntu-24.04-arm). Switch the base image to ubuntu:24.04 so its libicu74 matches the release build environment exactly, and install libicu74 in the runtime unconditionally -- the download-binary path needs it just as much as the source-build path. The source-build stage also moves to ubuntu:24.04 so the binary it produces links against the same libicu74 the runtime ships. Ubuntu's archive does not carry Go 1.26 yet, so the stage downloads the official Go tarball using TARGETARCH (already wired up for the download-binary stage) to stay multi-arch-correct. The stale comment about "bookworm icu dependency ver. between the base and golang images is the same" was already misleading once the release workflow stopped building inside golang:bookworm; that comment is now removed. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ci: install ICU dev libs on all release platforms
dumbodb depends transitively on github.com/dolthub/go-icu-regex (via
dolt's sqle package), which is a CGo binding against libicui18n /
libicuuc / libicudata. None of the three release build targets had the
right toolchain pieces, so the build was failing at link time:
- linux/amd64: was already working (ubuntu-latest ships libicu-dev)
- linux/arm64: cross-compile picked up host x86_64 g++ for the
final link step (CGo links via g++, not gcc), producing
"Relocations in generic ELF (EM: 183)"; arm64 ICU also missing.
- darwin/arm64: macOS runner toolchain has no ICU on its include
path -> "'unicode/regex.h' file not found".
- windows/amd64: MSVC toolchain has no ICU and is unsupported by
go-icu-regex anyway -> "'unicode/uregex.h' file not found".
Per the go-icu-regex README:
- Linux arm64: install g++-aarch64-linux-gnu and arm64 libicu-dev
via multiarch (ports.ubuntu.com), set CXX=aarch64-linux-gnu-g++
so the link step matches the cross-compiler.
- macOS: brew install icu4c, point CGO_CPPFLAGS/CGO_LDFLAGS at
the cellar (ICU is not on the default toolchain search path).
- Windows: MinGW-only; install msys2 + mingw-w64-x86_64-icu and
run the build inside the msys2 shell.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ci: install ICU dev libs on all release platforms
dumbodb depends transitively on github.com/dolthub/go-icu-regex (via
dolt's sqle package), which is a CGo binding against libicui18n /
libicuuc / libicudata. None of the three release build targets had the
right toolchain pieces, so the build was failing at link time:
- linux/amd64: was already working (ubuntu-latest ships libicu-dev)
- linux/arm64: cross-compile picked up host x86_64 g++ for the
final link step (CGo links via g++, not gcc), producing
"Relocations in generic ELF (EM: 183)"; arm64 ICU also missing.
- darwin/arm64: macOS runner toolchain has no ICU on its include
path -> "'unicode/regex.h' file not found".
- windows/amd64: MSVC toolchain has no ICU and is unsupported by
go-icu-regex anyway -> "'unicode/uregex.h' file not found".
Per the go-icu-regex README:
- Linux arm64: install g++-aarch64-linux-gnu and arm64 libicu-dev
via multiarch (ports.ubuntu.com), set CXX=aarch64-linux-gnu-g++
so the link step matches the cross-compiler.
- macOS: brew install icu4c, point CGO_CPPFLAGS/CGO_LDFLAGS at
the cellar (ICU is not on the default toolchain search path).
- Windows: MinGW-only; install msys2 + mingw-w64-x86_64-icu and
run the build inside the msys2 shell.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
add push-docker-image workflow Publishes dolthub/dumbodb:<version> (and optionally :latest) to Docker Hub for a previously-released git tag. Strictly tag-driven: requires vMAJOR.MINOR.PATCH input, checks out at the tag, verifies the ref is a tag (not a branch), and verifies the linux/amd64 + linux/arm64 release binaries exist before invoking buildx. Also syncs docker/README.md to the Docker Hub repo description. Requires DOCKER_HUB_USERNAME and DOCKER_HUB_ACCESS_TOKEN secrets. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: drop doltcore/merge import to avoid go-icu-regex transitive dep Use the local mergeJSON copy instead of merge.MergeJSON. Keep the Dolt dependency on acbcbc3583f4 for the TupleBuilder.Build context parameter change. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: remove "dolt: " prefix from backend error messages DumboDB has only one backend, so the prefix adds no information and would confuse users. Removed from 387 error strings across 7 files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PreviousNext