Skip to content

Clean up legacy/experimental environment-variable leftovers - #14085

Open
ndeloof wants to merge 4 commits into
mainfrom
env-legacy-leftovers
Open

Clean up legacy/experimental environment-variable leftovers#14085
ndeloof wants to merge 4 commits into
mainfrom
env-legacy-leftovers

Conversation

@ndeloof

@ndeloof ndeloof commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Cleans up the legacy/experimental environment-variable leftovers identified in #14074 (section D, item 4), one commit per point:

  • COMPOSE_EXPERIMENTAL_WATCH_TAR=0 no longer breaks compose watch 🐛 — since the docker-cp syncer removal (d203402) the tar syncer is the only implementation, so opting out failed hard with "no available sync implementation". The variable is now ignored, with a warning when explicitly set to false.
  • Remove dead internal/experimental package — zero importers; its COMPOSE_EXPERIMENTAL global opt-out and Desktop feature-flag loading are not wired anywhere.
  • Drop stale COMPOSE_BAKE=1 from the build e2e env — no production code reads it since the internal buildkit builder was dropped.
  • Document COMPOSE_EXPERIMENTAL_GIT_REMOTE / COMPOSE_EXPERIMENTAL_OCI_REMOTE as opt-outs enabled by default — the EXPERIMENTAL name suggests an opt-in, but both default to true; the semantics are now stated at the declaration and read sites. No behavior change (renaming the variables would break existing opt-outs).

Part of #14074.

🤖 Generated with Claude Code

@ndeloof

ndeloof commented Aug 18, 2026

Copy link
Copy Markdown
Contributor Author

I wonder we should deprecate COMPOSE_EXPERIMENTAL_*_REMOTE variables, wdyt @glours ?

The docker-cp based syncer was removed in d203402, leaving the tar
implementation as the only one. Since then, setting
COMPOSE_EXPERIMENTAL_WATCH_TAR to a falsy value made `compose watch`
fail hard with "no available sync implementation".

Ignore the variable and warn when it is explicitly set to false, so a
stale environment cannot disable watch entirely.

Part of #14074 (section D, item 4)

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
The package has no importers: its COMPOSE_EXPERIMENTAL global opt-out
and the Docker Desktop feature-flag loading are not wired anywhere.
Keeping it around suggests an experiments mechanism that does not
actually exist.

Part of #14074 (section D, item 4)

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
No production code reads COMPOSE_BAKE since the internal buildkit
builder was dropped (af579eb): bake is the only BuildKit path.
The e2e env entry was the last reference and implied the variable
still selects the builder.

Part of #14074 (section D, item 4)

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
COMPOSE_EXPERIMENTAL_GIT_REMOTE and COMPOSE_EXPERIMENTAL_OCI_REMOTE
default to true when unset, despite the EXPERIMENTAL name suggesting
an opt-in. Document that semantic at the declaration and read sites
instead of leaving readers to infer it from the parsing code.

Part of #14074 (section D, item 4)

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
@ndeloof
ndeloof force-pushed the env-legacy-leftovers branch from ead33a7 to 5f5685e Compare August 18, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant