chore: bump process-compose from v1.110.0 to v1.116.0 (#2915) - #2916
Merged
mikeland73 merged 5 commits intoSep 13, 2026
Merged
Conversation
This bump fixes a process-compose bug where services with process_healthy dependencies would hang forever (stuck in Pending state) when the target process had no readiness_probe or liveness_probe configured. v1.116.0 (commit 85686e5) adds a nil-check in waitIfNeeded() that returns a clear error instead of blocking on a channel that is never closed for processes without probes. Fixes jetify-com#2915
…-1.116-fix-2915 # Conflicts: # go.mod # go.sum
The process-compose binary pinned in processComposeVersion and the process-compose library required in go.mod are independent pins that nothing keeps in sync. They had already diverged: go.mod sat at v1.64.1 while processComposeVersion had moved on to 1.110.0. The skew matters because internal/services decodes the running daemon's REST responses into the library's types, so a JSON tag that changes between the two versions makes `devbox services ls` misreport state rather than fail loudly. Add a test that parses go.mod and asserts the two versions match. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mikeland73
approved these changes
Aug 16, 2026
The flake pins a fixed-output hash of the vendored Go module set, so any
go.mod/go.sum change has to be accompanied by `devbox run update-hash`
(as devbox.json's `tidy` script encodes). The process-compose bump
changed the module set without regenerating it, so `nix build .` failed:
error: hash mismatch in fixed-output derivation 'devbox-0.17.3-go-modules.drv':
specified: sha256-Tw514qHKDA92LTpTDvEyUFulrR+FIcnqtD/qo6AzBX0=
got: sha256-Jyql54LvdqnTHAlyLP1M8hHZGyhFWVCGgWC505AjpQ4=
This broke both the "Test Flake Build" job and the
python_patch_old_glibc testscript, which builds devbox from source
through the glibc-patch flake and so hit the same stale hash.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mikeland73
pushed a commit
that referenced
this pull request
Sep 13, 2026
…cies (#2915) (#2917) ## Summary Adds readiness_probe to mariadb, mysql, redis, valkey (using native CLI ping commands), and apache, nginx (using http_get probes). PostgreSQL already had one (pg_isready). This enables consumers to use `condition: process_healthy` in their depends_on configuration, ensuring downstream services do not start until their dependencies are actually accepting connections. Fixes (along with #2916) #2915 ## How was it tested? First build a devbox with a working #2909 isolated #2906 mariadb plugin (unless those have been merged), plus this PR: ```sh cd /tmp git clone git@github.com:jetify-com/devbox.git devbox-2915 direnv allow /tmp/devbox-2915 cd devbox-2915 git remote add jefft git@github.com:jefft/devbox.git git fetch jefft git checkout -b merge-plugin-fixes main git merge --no-edit jefft/jefft/nginx-plugin-fix-2908 git merge --no-edit jefft/jefft/mysql-plugin-ignore-etc-mysql git merge --no-edit jefft/jefft/plugin_readiness_probes-fix-2915 devbox run build ``` Then to illustrate scripts waiting for their services to come up: ```bash cat > /tmp/testhealth.sh <<'EOF' #!/bin/bash -eu if [[ -d /tmp/testhealth ]]; then ( cd /tmp/testhealth && devbox services down >/dev/null 2>&1 || : ) rm -r /tmp/testhealth fi mkdir /tmp/testhealth cd /tmp/testhealth cat > devbox.json <<'EOF2' { "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/main/.schema/devbox.schema.json", "packages": [ "mariadb@latest", "apache@latest", "nginx@latest", "redis@latest", "valkey@latest" ], "env": { "HTTPD_PORT": "11101", "NGINX_WEB_PORT": "11102", "VALKEY_PORT": "11103" }, "shell": { "init_hook": [ "echo 'Welcome to devbox!' > /dev/null" ], "scripts": { "test": [ "echo \"Error: no test specified\" && exit 1" ] } } } EOF2 devbox services ls # create devbox.d/* dirs echo "port = $(( 10000 + RANDOM % 50000))" >> devbox.d/mariadb/my.cnf cat > my_database_using_app <<'EOF2' #!/bin/bash # Connect to MariaDBD via unix socket as root. sudo mariadb --show-warnings -u root --socket "$MYSQL_UNIX_PORT" -e "select 1;" EOF2 chmod +x ./my_database_using_app cat > process-compose.yml <<'EOF2' version: "0.5" processes: mariadb_tester: depends_on: mariadb: condition: process_healthy command: ./my_database_using_app apache_tester: depends_on: apache: condition: process_healthy command: curl http://localhost:11101 nginx_tester: depends_on: nginx: condition: process_healthy command: curl http://localhost:11102 valkey_tester: depends_on: valkey: condition: process_healthy command: valkey-cli -p $VALKEY_PORT ping EOF2 which devbox devbox services up EOF # Put our compiled version of devbox ahead of others in PATH PATH=/tmp/devbox-2915/dist:$PATH bash /tmp/testhealth.sh ``` The `*_tester` dependent services now work, coming up (after a delay) as Completed:: ```bash jturner@jturner-desktop:/tmp/testhealth$ devbox services ls Services running in process-compose: PID NAME NAMESPACE STATUS AGE HEALTH RESTARTS EXIT CODE 1982981 mariadb_logs default Running 5s - 0 0 1982980 redis default Running 5s Ready 0 0 1982983 apache default Running 5s Ready 0 0 1982984 apache-access default Running 5s - 0 0 1983151 mariadb_tester default Completed 0s - 0 0 1983126 apache_tester default Completed 0s - 0 0 1983127 valkey_tester default Completed 0s - 0 0 1982982 nginx default Running 5s Ready 0 0 1982978 nginx-error default Running 5s - 0 0 1982974 nginx-access default Running 5s - 0 0 1982977 valkey default Running 5s Ready 0 0 1982976 apache-error default Running 5s - 0 0 1983125 nginx_tester default Completed 0s - 0 0 1982973 mariadb default Running 5s Ready 0 0 ``` [devbox_dependent_services.webm](https://github.com/user-attachments/assets/51e78b8f-a848-4a36-9ac0-2745852f8e4a) ## Community Contribution License All community contributions in this pull request are licensed to the project maintainers under the terms of the [Apache 2 License](https://www.apache.org/licenses/LICENSE-2.0). By creating this pull request, I represent that I have the right to license the contributions to the project maintainers under the Apache 2 License as stated in the [Community Contribution License](https://github.com/jetify-com/opensource/blob/main/CONTRIBUTING.md#community-contribution-license).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This bump fixes a process-compose bug where services with
process_healthydependencies would hang forever (stuck in Pending state) when the target process had no readiness_probe or liveness_probe configured.process-compose v1.116.0 (commit 85686e5) adds a nil-check in waitIfNeeded() that returns a clear error instead of blocking on a channel that is never closed for processes without probes.
Changes made:
go.mod: changed github.com/f1bonacc1/process-compose v1.64.1 to v1.116.0internal/devbox/util.go: changed const processComposeVersion = "1.110.0" to "1.116.0"go mod tidy: updated go.sum and indirect dependenciesFixes #2915
How was it tested?
First build a devbox with a working #2909 isolated #2906 mariadb plugin (unless those have been merged), plus this PR:
Then using modified repro script from #2915:
With the fixed process-compose the myapp service is in Skipped, and the log contains a clear error message:
Community Contribution License
All community contributions in this pull request are licensed to the project
maintainers under the terms of the
Apache 2 License.
By creating this pull request, I represent that I have the right to license the
contributions to the project maintainers under the Apache 2 License as stated in
the
Community Contribution License.