eeco

Upgrading

How to move between eeco releases.

README · Vision · Cockpit · Usage · Architecture · Public API · Extending · Contributing · Upgrading · Versioning · Changelog · Security

--- How to move between eeco releases. From v0.1.0 onward this file is the canonical upgrade log: each release that needs upgrade steps or carries a breaking change lands a section here. ## v0.1.0 and onward eeco is **pre-stability** on the `v0.x` line. The public surface (commands, flags, exit codes, workflow contract, config keys, memory frontmatter, queue and ledger formats, builtin workflow names — see [`PUBLIC_API.md`](PUBLIC_API.md)) follows semver under the pre-1.0 caveat of [`VERSIONING.md`](../VERSIONING.md) §2.1: while eeco is pre-1.0 a MINOR MAY make a breaking change, called out here and in the [`CHANGELOG.md`](../CHANGELOG.md) `### Changed` entry with its migration path; a PATCH never breaks. Once v1.0.0 ships, a breaking change requires a major-version bump and a dedicated section in this file. Each release section that needs one will document: - **Required steps** — anything an existing workspace must do to remain valid (usually nothing for a PATCH; pre-1.0 a MINOR may carry steps). - **Removed or renamed surfaces** — every breaking change with the old name, the new name, and a migration note. - **New optional features** — config keys, commands, or workflows added in the release that an existing workspace can adopt at its own pace. A workspace from any `v0.x` release reads cleanly with any later `v0.x` release: an unknown `config.local` key is tolerated; an unknown queue or memory field is preserved on write. ## Migrating a legacy workspace A repository that already ran an older eeco workspace at `/.eeco` moves to the per-user layout with one command: ``` eeco migrate v1 ``` This relocates the workspace to `//.eeco`, relinks the hook ledger, and rewrites the `.gitignore` line — idempotently. Running `eeco init` inside such a repository offers the same migration interactively. > **Note** — the `v1` in `eeco migrate v1` names the **workspace-layout > generation** (the per-user `/.eeco` layout), **not** the > product version. The verb keeps its name as frozen CLI surface even > though the product re-launches at v0.1.0. --- [← Prev: Contributing](../CONTRIBUTING.md) · [Next: Versioning →](../VERSIONING.md)