From b7a01bd1e45bb40615c507ecde510271a3502f21 Mon Sep 17 00:00:00 2001 From: O6lvl4 Date: Mon, 28 Sep 2026 17:11:22 +0900 Subject: [PATCH 1/3] bench/tb2: build on Almide 51b9d8e and porta d51cccb from develop onogoro's default hands golemide placeholders through porta's credential broker, which needs porta with --credential (almide/porta#42) and an Almide whose HTTP client honours HTTPS_PROXY and a proxy's CA (almide/almide#2833). Neither is released, so the bundle names the commits. porta's develop is rustls only, so the sed for #35 goes; the build checks --credential is there. Co-Authored-By: Claude Opus 5.5 (1M context) --- bench/tb2/Dockerfile | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/bench/tb2/Dockerfile b/bench/tb2/Dockerfile index 8052730..1df522f 100644 --- a/bench/tb2/Dockerfile +++ b/bench/tb2/Dockerfile @@ -9,28 +9,32 @@ FROM rust:1-bullseye SHELL ["/bin/bash", "-o", "pipefail", "-c"] -ARG ALMIDE_REF=v0.64.0 -ARG PORTA_VERSION=v0.6.16 +# Both from develop until they release what onogoro rests on: Almide's HTTP client +# honouring HTTPS_PROXY and a proxy's CA (almide/almide#2833), and porta's credential +# broker (almide/porta#42). A commit, not a branch, so the bundle can be named. +ARG ALMIDE_REF=51b9d8e6d7594239f990c94283a57ae7e8549392 +ARG PORTA_REF=d51cccbf991f RUN git init -q /tmp/almide && cd /tmp/almide \ && git remote add origin https://github.com/almide/almide \ - && git fetch -q --depth 1 origin "refs/tags/${ALMIDE_REF}:refs/tags/${ALMIDE_REF}" && git checkout -q "${ALMIDE_REF}" \ + && git fetch -q --depth 1 origin "${ALMIDE_REF}" && git checkout -q FETCH_HEAD \ && cargo build --release --locked --bin almide > /tmp/almide-build.log 2>&1 \ || { tail -30 /tmp/almide-build.log; exit 1; } RUN install -m 0755 /tmp/almide/target/release/almide /usr/local/bin/almide && rm -rf /tmp/almide && almide --version -# porta from its tag, built here (almide/porta#35). The released Linux binary needs glibc -# 2.39 and libssl.so.3, so it does not start on bookworm or python:*-slim: its reqwest asks -# for rustls without turning off the default native-tls. Built here with default-features -# = false it is rustls only, and links this glibc. The better fix, a static musl build as -# Codex ships, waits on almide/almide#2772. -RUN git clone -q --depth 1 --branch "${PORTA_VERSION}" https://github.com/almide/porta /tmp/porta && cd /tmp/porta \ - && sed -i 's/^reqwest = { version = \("[^"]*"\), features/reqwest = { version = \1, default-features = false, features/' almide.toml \ - && grep '^reqwest' almide.toml \ +# porta built here, with this glibc. Its develop is rustls only (almide/porta#35), so the +# binary needs no libssl. porta is built with the Almide above rather than its own pin +# (0.63): the pin is about porta's integration suite and process.exit's range +# (almide/almide#2780), which this build does not run. +RUN git init -q /tmp/porta && cd /tmp/porta \ + && git remote add origin https://github.com/almide/porta \ + && git fetch -q origin develop && git checkout -q "${PORTA_REF}" \ + && grep '^reqwest.*default-features = false' almide.toml \ && almide build --release src/main.almd -o porta > /tmp/porta-build.log 2>&1 \ || { tail -30 /tmp/porta-build.log; exit 1; } RUN mkdir -p /bundle/bin && install -m 0755 /tmp/porta/porta /bundle/bin/porta && rm -rf /tmp/porta \ - && ! ldd /bundle/bin/porta | grep -q ssl && /bundle/bin/porta --version + && ! ldd /bundle/bin/porta | grep -q ssl && /bundle/bin/porta --version \ + && /bundle/bin/porta run --help | grep -q -- --credential COPY src/ /src/ RUN for t in gramide-cli:gramide hew:hew ctxgate:ctxgate golemide:golemide comide:comide onogoro:onogoro; do \ From 4731748507a5efdc4c640f2b3784e3af8a946044 Mon Sep 17 00:00:00 2001 From: O6lvl4 Date: Mon, 28 Sep 2026 17:19:01 +0900 Subject: [PATCH 2/3] bench/tb2: build gramide-cli on v0.64.0 until almide/almide#2839 is fixed Almide develop resolves gramide's builtin Map to gramide's module named map and stops at E029. gramide needs none of the HTTP fixes the other tools are built on develop for. Co-Authored-By: Claude Opus 5.5 (1M context) --- bench/tb2/Dockerfile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/bench/tb2/Dockerfile b/bench/tb2/Dockerfile index 1df522f..7e1df74 100644 --- a/bench/tb2/Dockerfile +++ b/bench/tb2/Dockerfile @@ -22,6 +22,16 @@ RUN git init -q /tmp/almide && cd /tmp/almide \ || { tail -30 /tmp/almide-build.log; exit 1; } RUN install -m 0755 /tmp/almide/target/release/almide /usr/local/bin/almide && rm -rf /tmp/almide && almide --version +# gramide-cli alone is built on v0.64.0: develop resolves gramide's builtin `Map` to its +# module named map and stops at E029 (almide/almide#2839). gramide needs none of the +# HTTP fixes the rest is built on develop for. +RUN git init -q /tmp/almide064 && cd /tmp/almide064 \ + && git remote add origin https://github.com/almide/almide \ + && git fetch -q --depth 1 origin "refs/tags/v0.64.0:refs/tags/v0.64.0" && git checkout -q v0.64.0 \ + && cargo build --release --locked --bin almide > /tmp/almide064-build.log 2>&1 \ + || { tail -30 /tmp/almide064-build.log; exit 1; } +RUN install -m 0755 /tmp/almide064/target/release/almide /usr/local/bin/almide064 && rm -rf /tmp/almide064 && almide064 --version + # porta built here, with this glibc. Its develop is rustls only (almide/porta#35), so the # binary needs no libssl. porta is built with the Almide above rather than its own pin # (0.63): the pin is about porta's integration suite and process.exit's range @@ -38,8 +48,8 @@ RUN mkdir -p /bundle/bin && install -m 0755 /tmp/porta/porta /bundle/bin/porta & COPY src/ /src/ RUN for t in gramide-cli:gramide hew:hew ctxgate:ctxgate golemide:golemide comide:comide onogoro:onogoro; do \ - dir="${t%%:*}"; bin="${t##*:}"; \ - ( cd "/src/$dir" && almide build --release src/main.almd -o "$bin" > "/tmp/$bin.log" 2>&1 && install -m 0755 "$bin" "/bundle/bin/$bin" ) \ + dir="${t%%:*}"; bin="${t##*:}"; compiler=almide; [ "$dir" = gramide-cli ] && compiler=almide064; \ + ( cd "/src/$dir" && "$compiler" build --release src/main.almd -o "$bin" > "/tmp/$bin.log" 2>&1 && install -m 0755 "$bin" "/bundle/bin/$bin" ) \ || { echo "== $dir failed"; tail -30 "/tmp/$bin.log"; exit 1; }; \ done \ && /bundle/bin/comide --help > /dev/null && /bundle/bin/golemide --version \ From 4d1c44bbe788b40058edb8917abac240221d346e Mon Sep 17 00:00:00 2001 From: O6lvl4 Date: Mon, 28 Sep 2026 17:25:46 +0900 Subject: [PATCH 3/3] bench/tb2: only golemide, comide and onogoro on develop hew and ctxgate are built on gramide too and hit almide/almide#2839 as gramide-cli does; they need none of develop's HTTP fixes. Co-Authored-By: Claude Opus 5.5 (1M context) --- bench/tb2/Dockerfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bench/tb2/Dockerfile b/bench/tb2/Dockerfile index 7e1df74..5c8900d 100644 --- a/bench/tb2/Dockerfile +++ b/bench/tb2/Dockerfile @@ -22,9 +22,10 @@ RUN git init -q /tmp/almide && cd /tmp/almide \ || { tail -30 /tmp/almide-build.log; exit 1; } RUN install -m 0755 /tmp/almide/target/release/almide /usr/local/bin/almide && rm -rf /tmp/almide && almide --version -# gramide-cli alone is built on v0.64.0: develop resolves gramide's builtin `Map` to its -# module named map and stops at E029 (almide/almide#2839). gramide needs none of the -# HTTP fixes the rest is built on develop for. +# Only golemide, comide and onogoro are built on develop, which they need for its HTTP +# fixes. The tools built on gramide (gramide-cli, hew, ctxgate) stay on v0.64.0: develop +# resolves gramide's builtin `Map` to gramide's module named map and stops at E029 +# (almide/almide#2839). RUN git init -q /tmp/almide064 && cd /tmp/almide064 \ && git remote add origin https://github.com/almide/almide \ && git fetch -q --depth 1 origin "refs/tags/v0.64.0:refs/tags/v0.64.0" && git checkout -q v0.64.0 \ @@ -48,7 +49,7 @@ RUN mkdir -p /bundle/bin && install -m 0755 /tmp/porta/porta /bundle/bin/porta & COPY src/ /src/ RUN for t in gramide-cli:gramide hew:hew ctxgate:ctxgate golemide:golemide comide:comide onogoro:onogoro; do \ - dir="${t%%:*}"; bin="${t##*:}"; compiler=almide; [ "$dir" = gramide-cli ] && compiler=almide064; \ + dir="${t%%:*}"; bin="${t##*:}"; compiler=almide064; case "$dir" in golemide|comide|onogoro) compiler=almide ;; esac; \ ( cd "/src/$dir" && "$compiler" build --release src/main.almd -o "$bin" > "/tmp/$bin.log" 2>&1 && install -m 0755 "$bin" "/bundle/bin/$bin" ) \ || { echo "== $dir failed"; tail -30 "/tmp/$bin.log"; exit 1; }; \ done \