SIGN IN SIGN UP

chore(dev): retire the unused Docker dev environment (#25429)

* chore(makefile): kill ENVIRONMENT=true Docker dev shell wiring

Strips the `make environment` / `ENVIRONMENT=true` Docker/Podman dev
shell wiring: ENVIRONMENT_* variables, MAYBE_ENVIRONMENT_EXEC /
MAYBE_ENVIRONMENT_COPY_ARTIFACTS macros, ENVIRONMENT_EXEC /
ENVIRONMENT_PREPARE blocks, the `environment`, `environment-prepare`,
`environment-clean`, `environment-push` targets, and the
${MAYBE_ENVIRONMENT_EXEC} prefix on every build/test/bench/check recipe.

Also drops the dead `build-graphql-schema` target: no `graphql-schema`
binary exists in the workspace.

The VDEV macro uses `?=` so a caller-supplied VDEV (e.g. the pinned
prebuilt binary path exported by .github/actions/setup) wins over the
local `cargo vdev` default, avoiding a vdev source recompile per recipe.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(ci): drop Environment Suite workflow

Removes .github/workflows/environment.yml (the weekly cron and
workflow_dispatch that built and pushed timberio/vector-dev:latest to
Docker Hub) and the /ci-run-environment review-trigger wiring in
ci-review-trigger.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(internal docs): drop Docker dev environment section

Removes the "Using a Docker or Podman environment" walkthrough and the
remaining `ENVIRONMENT=true` / `make environment-generate` / `build-dev`
mentions from docs/DEVELOPING.md, matching the Makefile cleanup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(dev): drop dev environment Dockerfile, entrypoint, and Ubuntu bootstrap

Deletes scripts/environment/Dockerfile and scripts/environment/entrypoint.sh,
which only existed to build the timberio/vector-dev:latest image used by
`make environment` and the Environment Suite workflow (both removed in
this PR).

Also deletes scripts/environment/bootstrap-ubuntu-24.04.sh. Its callers
in .github/workflows/publish.yml and vdev_publish.yml were removed in
d1524c480a (Apr 2026), leaving only the deleted Dockerfile as a caller;
with that gone the script has no live consumers in the tree. The
remaining environment scripts (`prepare.sh`, `binstall.sh`,
`install-protoc.sh`, the macOS/Windows bootstraps) stay; they are still
consumed by CI, cross/e2e/regression/tilt Dockerfiles, and the install
docs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(rfc): archive dev-workflow RFC 2685

The Docker/Podman dev environment this RFC proposed is no longer
maintained; this PR removes the last of its wiring. Marks the RFC as
archived and points readers to CONTRIBUTING.md and docs/DEVELOPING.md
for current instructions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(internal docs): point contributors at prepare.sh for tooling

Adds a tooling-shortcut note in docs/DEVELOPING.md showing
`bash scripts/environment/prepare.sh` as the one-shot way to install
the Rust and npm tooling that the bullet list otherwise enumerates
manually. Same script CI uses, so what contributors get locally
matches what CI installs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(dev): drop orphaned setup-helm.sh

scripts/environment/setup-helm.sh has had no consumers in the tree
since 2022, when nightly.yml / release.yml / CODEOWNERS stopped
referencing it. Only the now-deleted scripts/environment/Dockerfile
kept it alive. Its pins (kubectl v1.18.6, helm v3.2.4, kubeval) are
~5 years old; current Vector k8s e2e drives a separate minikube setup
via scripts/test-e2e-kubernetes.sh.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* enhancement(dev): make prepare.sh safer on workstations

prepare.sh is primarily a CI bootstrap, but docs/DEVELOPING.md now
points contributors at it as the one-shot install. This adds three
CI-gated guards so running the script on a personal laptop is less
surprising. Each guard preserves the existing CI behavior; the
differences only apply when `CI` is unset.

1. `git config --global --add safe.directory "$(pwd)"` is skipped
   outside CI. Contributors own their checkouts and do not hit git's
   dubious-ownership error, so the global config write is avoided.

2. The version-pin check no longer downgrades cargo tools the user has
   already installed at a newer version. CI starts from nothing and
   keeps installing the exact pin; on workstations, a newer-than-pin
   version is kept and the script prints a notice. `CI=1` forces the
   pin if a contributor wants it.

3. The npm tool symlinks into the global npm bin dir are skipped
   outside CI. Avoids `sudo ln -sf` into /usr/local/bin (or equivalent)
   without the user opting in. To keep the make-driven workflow working
   without any contributor PATH edits, the Makefile prepends
   scripts/environment/npm-tools/node_modules/.bin to PATH so vdev's
   bare-name spawns of `markdownlint-cli2` and `prettier` resolve from
   the project-local install.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
P
Pavlos Rontidis committed
e1772733754c4d069928169675791b2a484375a2
Parent: 989f2ae
Committed by GitHub <noreply@github.com> on 5/14/2026, 2:28:23 PM