v3 (engine V1) is end-of-lifed and the v3 clusters are gone, so this removes the dead v3 execution code from the monorepo. It's the first pass of TRI-11824 - the webapp v3 code paths are deliberately left untouched and gated for a follow-up. ## Apps Deletes the three v3-only execution apps and their build wiring: - `apps/coordinator`, `apps/kubernetes-provider`, `apps/docker-provider` - `.github/workflows/publish-worker.yml` - it built only those three; the v4 worker publish is a separate workflow - Their references in `.changeset/config.json`, `.cursorignore`, `CHANGESETS.md`, `CONTRIBUTING.md`, `.server-changes/README.md` - `pnpm-lock.yaml` regenerated to prune the apps and their app-only dependencies (`socket.io`, `@kubernetes/client-node`, `p-queue`, `execa`, `prom-client`, `tinyexec`) ## Core Removes the helpers in `@trigger.dev/core` that only those apps used - `ProviderShell`, `SimpleLogger`, the `Exec`/process helpers, `isExecaChildProcess`, `getTextBody`, and `testDockerCheckpoint`. Each was verified to have no remaining consumers anywhere in the repo. Kept the helpers still used elsewhere: `ExponentialBackoff` (warm-start client), `HttpReply`/`getJsonBody` (serverOnly http server), `SimpleStructuredLogger` (widely used), and `ZodNamespace`/`ZodSocketConnection` (still referenced by legacy v3 webapp code, hence the follow-up pass). The `./v3/apps` and `./v3/serverOnly` export subpaths remain - only dead members were trimmed from their barrels, so no `package.json` exports changed. ## Verification `@trigger.dev/core` builds, and `typecheck` passes for core, supervisor, cli-v3, run-engine, redis-worker, and webapp. refs TRI-11824
3.1 KiB
Changesets and Server Changes
Trigger.dev uses changesets to manage package versions and releasing them to npm. For server-only changes, we use a lightweight .server-changes/ convention.
Adding a changeset (package changes)
To add a changeset, use pnpm run changeset:add and follow the instructions here. Please only ever select one of our public packages when adding a changeset.
Adding a server change (server-only changes)
If your PR only changes server components (apps/webapp/, apps/supervisor/, etc.) and does NOT change any published packages, add a .server-changes/ file instead of a changeset:
cat > .server-changes/fix-batch-queue-stalls.md << 'EOF'
---
area: webapp
type: fix
---
Speed up batch queue processing by removing stalls and fixing retry race
EOF
area:webapp|supervisortype:feature|fix|improvement|breaking
For mixed PRs (both packages and server): just add a changeset. No .server-changes/ file needed.
See .server-changes/README.md for full documentation.
When to add which
| PR changes | What to add |
|---|---|
Only packages (packages/) |
Changeset (pnpm run changeset:add) |
Only server (apps/) |
.server-changes/ file |
| Both packages and server | Just the changeset |
Release instructions (CI)
Please follow the best-practice of adding changesets in the same commit as the code making the change with pnpm run changeset:add, as it will allow our release.yml CI workflow to function properly:
- Anytime new changesets are added in a commit in the
mainbranch, the changesets-pr.yml workflow will run and will automatically create/update a PR with a fresh run ofpnpm run changeset:version. - The release PR body is automatically enhanced with a clean, deduplicated summary that includes both package changes and
.server-changes/entries. - Consumed
.server-changes/files are removed on thechangeset-release/mainbranch — the same way changesets deletes.changeset/*.mdfiles. When the release PR merges, they're gone from main. - When the version PR is merged into
main, the release.yml workflow will automatically build, release packages to npm, and create a single unified GitHub release.
Pre-release instructions
- Add changesets as usual
pnpm run changeset:add - Switch to pre-release mode by running
pnpm run changeset:next - Create version
pnpm run changeset:version - Release
pnpm run changeset:release - Switch back to normal mode by running
pnpm run changeset:normal
Snapshot instructions
- Update the
.changeset/config.jsonfile to set the"changelog"field to this:
"changelog": "@changesets/cli/changelog",
-
Do a temporary commit (do NOT push this, you should undo it after)
-
Run
./scripts/publish-prerelease.sh prerelease
You can choose a different tag if you want, but usually prerelease is fine.
- Undo the commit where you updated the config.json file.