From 0513f5fe5751bee31f00f5c6732db91d9f8a7712 Mon Sep 17 00:00:00 2001 From: Maurus Decimus <11444311+mdecimus@users.noreply.github.com> Date: Tue, 5 May 2026 12:14:44 +0200 Subject: [PATCH] v0.16.4 --- CHANGELOG.md | 2 +- crates/store/src/backend/postgres/main.rs | 1 - tests/docker/docker-compose.yml | 26 ++++----------------- tests/docker/pebble/Dockerfile.challtestsrv | 5 ++++ 4 files changed, 11 insertions(+), 23 deletions(-) create mode 100644 tests/docker/pebble/Dockerfile.challtestsrv diff --git a/CHANGELOG.md b/CHANGELOG.md index b4c457c7..455c3399 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). -## [0.16.4] - 2026-05-XX +## [0.16.4] - 2026-05-05 If you are upgrading from v0.16.x, replace the binary (or run `docker pull`). If you are upgrading from v0.15.x and below, please read the [upgrading documentation](https://github.com/stalwartlabs/stalwart/blob/main/UPGRADING/v0_16.md) for more information on how to upgrade from previous versions. diff --git a/crates/store/src/backend/postgres/main.rs b/crates/store/src/backend/postgres/main.rs index 1dc73524..e37eab92 100644 --- a/crates/store/src/backend/postgres/main.rs +++ b/crates/store/src/backend/postgres/main.rs @@ -39,7 +39,6 @@ impl PostgresStore { if let Some(max_conn) = config.pool_max_connections { cfg.pool = PoolConfig::new(max_conn as usize).into(); } - let todo = "implement disabled languages properly"; let mut replicas = vec![]; for replica in config.read_replicas { diff --git a/tests/docker/docker-compose.yml b/tests/docker/docker-compose.yml index 7b7a4e36..7acd8a75 100644 --- a/tests/docker/docker-compose.yml +++ b/tests/docker/docker-compose.yml @@ -198,30 +198,15 @@ services: # certificates from Pebble. # --------------------------------------------------------------------------- pebble-challtestsrv: - image: ghcr.io/letsencrypt/pebble-challtestsrv:latest + build: + context: ./pebble + dockerfile: Dockerfile.challtestsrv + image: stalwart-pebble-challtestsrv:local ports: - "127.0.0.1:8055:8055" - command: [ "-defaultIPv6", "", "-defaultIPv4", "0.0.0.0" ] - - # Long-running sidecar: keeps pebble-challtestsrv's default-IPv4 set to the - # host gateway. Re-applies on every restart of pebble-challtestsrv (the - # default in-memory IPv4 reverts to 0.0.0.0 each time the server starts). - # Uses the bridge network (not service:pebble-challtestsrv) so it survives - # restarts of the target container. - pebble-challtestsrv-init: - image: alpine:latest - depends_on: - - pebble-challtestsrv extra_hosts: - "host.docker.internal:host-gateway" restart: unless-stopped - healthcheck: - test: [ "CMD-SHELL", "test -f /tmp/ready" ] - interval: 2s - timeout: 1s - retries: 30 - start_period: 3s - entrypoint: [ "/bin/sh", "-c", "rm -f /tmp/ready; while true; do HOSTIP=$$(getent hosts host.docker.internal | awk '{print $$1}'); if [ -n \"$$HOSTIP\" ] && wget -qO- --post-data='{\"ip\":\"'$$HOSTIP'\"}' http://pebble-challtestsrv:8055/set-default-ipv4 >/dev/null 2>&1; then touch /tmp/ready; else rm -f /tmp/ready; fi; sleep 10; done" ] # --------------------------------------------------------------------------- # Pebble (ACME server) – ports 14000 (directory) + 15000 (management) @@ -229,8 +214,7 @@ services: pebble: image: ghcr.io/letsencrypt/pebble:latest depends_on: - pebble-challtestsrv-init: - condition: service_healthy + - pebble-challtestsrv environment: PEBBLE_VA_NOSLEEP: "1" PEBBLE_WFE_NONCEREJECT: "0" diff --git a/tests/docker/pebble/Dockerfile.challtestsrv b/tests/docker/pebble/Dockerfile.challtestsrv new file mode 100644 index 00000000..58de88f0 --- /dev/null +++ b/tests/docker/pebble/Dockerfile.challtestsrv @@ -0,0 +1,5 @@ +FROM ghcr.io/letsencrypt/pebble-challtestsrv:latest AS upstream + +FROM alpine:latest +COPY --from=upstream /app /app +ENTRYPOINT ["/bin/sh", "-c", "HOSTIP=$(getent hosts host.docker.internal 2>/dev/null | awk '{print $1}' | head -n1); exec /app -defaultIPv6 \"\" -defaultIPv4 \"${HOSTIP:-127.0.0.1}\""]