Release: dev → main (first public release) #258

Merged
bvandeusen merged 94 commits from dev into main 2026-09-25 10:02:40 -04:00
Showing only changes of commit f174981b07 - Show all commits
+18 -9
View File
@@ -49,15 +49,22 @@ ROOT=$(git rev-parse --show-toplevel)
# frontend/public/extension/ before the docker build), so an extension change # frontend/public/extension/ before the docker build), so an extension change
# changes the web image. The extension's packaged set is appended in cmd_paths # changes the web image. The extension's packaged set is appended in cmd_paths
# rather than restated — one definition, per #2397. # rather than restated — one definition, per #2397.
WEB_PATHS='Dockerfile requirements.txt backend alembic alembic.ini entrypoint.sh frontend :(exclude)frontend/test :(exclude)frontend/test/**' WEB_PATHS='Dockerfile requirements.txt requirements-ml.txt backend alembic alembic.ini entrypoint.sh frontend :(exclude)frontend/test :(exclude)frontend/test/**'
# ml (Dockerfile, context `.`) — no frontend, no extension. Note it copies # ml — THE SAME IMAGE as web since milestone 422 step 6, built from the same
# BOTH requirements-ml.txt and requirements.txt. # Dockerfile with the same context and published under a second name only
# Dockerfile, not Dockerfile.ml: the images merged at milestone 422 step 6 # because the operator's Swarm stack still references it.
# and Dockerfile.ml is gone. A path set naming a deleted file silently #
# stops contributing to the derived revision, which is what the reuse # So it is the same path set, by assignment rather than by a copy that would
# check and the version string both read (#3202's shape). # drift. This was two lists describing one image for about an hour, and the
ML_PATHS='Dockerfile requirements-ml.txt requirements.txt backend alembic alembic.ini entrypoint.sh' # artifact-paths guard caught it immediately: the merged Dockerfile carries
# the frontend-builder stage, so the ml image copies `frontend/package.json`,
# and the old ml list did not cover it — its version would not have moved when
# the frontend changed, and a pinned build would serve stale bytes (#3202).
#
# `requirements-ml.txt` is in WEB_PATHS for the mirror-image reason: the web
# image now installs the ML requirements, so changing them changes it.
ML_PATHS="$WEB_PATHS"
# agent (agent/Dockerfile, context `agent`) — copies requirements.txt and # agent (agent/Dockerfile, context `agent`) — copies requirements.txt and
# fc_agent only. agent/README.md, agent/docker-compose.yml and agent/ruff.toml # fc_agent only. agent/README.md, agent/docker-compose.yml and agent/ruff.toml
@@ -108,7 +115,9 @@ ext_paths() {
cmd_paths() { cmd_paths() {
case "$1" in case "$1" in
web) echo "$WEB_PATHS $DERIVER $(ext_paths)" ;; web) echo "$WEB_PATHS $DERIVER $(ext_paths)" ;;
ml) echo "$ML_PATHS" ;; # Identical to web, deliberately: it IS web's image. That includes the
# deriver and the bundled extension — the XPI is in these bytes too.
ml) echo "$ML_PATHS $DERIVER $(ext_paths)" ;;
agent) echo "$AGENT_PATHS" ;; agent) echo "$AGENT_PATHS" ;;
extension) ext_paths ;; extension) ext_paths ;;
*) usage ;; *) usage ;;