From 6cc0edc6000f27b33b4caa652c876a92c4c080c1 Mon Sep 17 00:00:00 2001 From: Kim Gustyr Date: Wed, 28 Oct 2026 12:13:04 +0000 Subject: [PATCH 1/4] feat: Document spec flow --- README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index be276c0..0a52389 100644 --- a/README.md +++ b/README.md @@ -57,10 +57,6 @@ SDKs implement. The runner creates the scenario's SDK client just before its fir The spec is released as semver tags (`vX.Y.Z`). SDKs pin a tag, so spec changes never break an SDK until it opts in. -- **Major** — changed behaviour, reworded `When` steps, or a changed harness protocol. -- **Minor** — new scenarios, tags or `When` steps. -- **Patch** — wording and runner fixes. - Each release also pins the Flagsmith version in `compose.yml` that it was verified against. ## Onboarding an SDK @@ -158,3 +154,16 @@ uv run pytest -v `SDK_COMMAND` can be any command, so you can also run a harness straight against an SDK checkout, without Docker, e.g. `python ../harness/python/harness.py ../../flagsmith-python-client/sdk-spec/steps.py`. + +## Implementing a new spec version + +A spec version is implemented in three phases: + +1. Spec update. A pull request to this repository is merged, and the new spec version is tagged (see [Versioning](#versioning)). +2. Spec implementation. Renovate proposes the new version to every SDK onboarded in the + [compatibility matrix](.github/workflows/compatibility.yml), as a bump pull request in the SDK's + repository. A bump whose CI is red is fixed by implementing the spec in it. Fixed bumps are + reviewed by the SDK's code owners and merged. +3. SDK releases. Each SDK releases a version that includes its merged bump. + +A spec version is implemented once every onboarded SDK has released the new spec version. From 7c740899ae82c5d23c90272259765609c8923ae3 Mon Sep 17 00:00:00 2001 From: Kim Gustyr Date: Wed, 28 Oct 2026 12:15:27 +0000 Subject: [PATCH 2/4] clarify responsibility --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a52389..1094741 100644 --- a/README.md +++ b/README.md @@ -159,11 +159,11 @@ without Docker, e.g. `python ../harness/python/harness.py ../../flagsmith-python A spec version is implemented in three phases: -1. Spec update. A pull request to this repository is merged, and the new spec version is tagged (see [Versioning](#versioning)). +1. Spec update. A pull request to this repository is merged, and the new spec version is tagged by a maintainer (see [Versioning](#versioning)). 2. Spec implementation. Renovate proposes the new version to every SDK onboarded in the [compatibility matrix](.github/workflows/compatibility.yml), as a bump pull request in the SDK's repository. A bump whose CI is red is fixed by implementing the spec in it. Fixed bumps are reviewed by the SDK's code owners and merged. -3. SDK releases. Each SDK releases a version that includes its merged bump. +3. SDK releases. Maintainers release each SDK version that includes its merged bump. A spec version is implemented once every onboarded SDK has released the new spec version. From c6f0741e8abef6faacea5cef6096411a03e30363 Mon Sep 17 00:00:00 2001 From: Kim Gustyr Date: Wed, 28 Oct 2026 13:29:12 +0100 Subject: [PATCH 3/4] docs: Point agents to the README, and add code owners AGENTS.md sends agents to the README, and CLAUDE.md to AGENTS.md, as in Flagsmith/flagsmith. CODEOWNERS makes GitHub request reviews from the team maintaining this repository, so agents know whom to ask. --- .github/CODEOWNERS | 1 + AGENTS.md | 1 + CLAUDE.md | 1 + 3 files changed, 3 insertions(+) create mode 100644 .github/CODEOWNERS create mode 100644 AGENTS.md create mode 100644 CLAUDE.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..ea2b5c0 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @Flagsmith/flagsmith diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..5dcaeee --- /dev/null +++ b/AGENTS.md @@ -0,0 +1 @@ +Read @README.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..8d770e2 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +Read @AGENTS.md From 5753e33afa59f8a22d3d0abf39ee9f8b25642b7c Mon Sep 17 00:00:00 2001 From: Kim Gustyr Date: Wed, 28 Oct 2026 13:30:54 +0100 Subject: [PATCH 4/4] docs: Make the back-end and front-end teams code owners They own the SDKs, so they own the spec too. --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ea2b5c0..1e7b7e3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @Flagsmith/flagsmith +* @Flagsmith/flagsmith-back-end @Flagsmith/flagsmith-front-end