From 8bcaa43753b7a8e67ff8159a32a03e520e4f2eb4 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 17 Jul 2026 03:55:09 +0000 Subject: [PATCH 1/3] style(config): gofmt TestRequiredToolsScopesToSelection comment alignment --- internal/config/config_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 835f8e2..89d6ca9 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -295,7 +295,7 @@ func toolNames(tools []Tool) []string { func TestRequiredToolsScopesToSelection(t *testing.T) { c := &Config{Requires: []Tool{ - {Name: "git"}, // baseline: always required + {Name: "git"}, // baseline: always required {Name: "docker", Services: []string{"postgres"}}, {Name: "dotnet", Services: []string{"service"}}, {Name: "node", Services: []string{"studio", "studio-cloud"}}, From fb6f7b8e3fc9adc931b2f8032fbd4a9078e0acc9 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 17 Jul 2026 03:55:09 +0000 Subject: [PATCH 2/3] docs: document versioned workspaces, tool scoping, and missing commands MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The named-workspace mechanism (`version:` / `up --version`) was documented in the README but absent from the website docs: quickstart only described fresh timestamped workspaces, the command reference lacked `tarjan pull` and `tarjan upgrade` entirely, and `--version` / `--ai` were missing from the `up` flag list. Bring the website up to date (quickstart, commands, configuration — including a new "Workspaces & versions" section), and state explicitly in both README and website that parallel version workspaces coexist on disk but cannot RUN simultaneously, since services publish fixed host ports that every workspace shares — the existing already-running guard only covers re-`up` of the same workspace. Also document the service-scoped tool checks (`requires[].services`, `tarjan doctor `) in the README tool reference, the configuration page, and the changelog. --- CHANGELOG.md | 6 ++++ README.md | 17 ++++++++++ website/content/docs/commands.mdx | 15 ++++++--- website/content/docs/configuration.mdx | 44 ++++++++++++++++++++++++-- website/content/docs/quickstart.mdx | 9 ++++-- 5 files changed, 81 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1d789f..3e1885a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,12 @@ development history from before the open-sourcing is not carried over. ### Added +- Service-scoped tool checks: a `requires` tool may list the `services:` that + need it. Untagged tools stay baseline (always checked); a tagged tool is + checked only when one of its services is in the run's selection, so a partial + `tarjan up ` skips toolchains it won't use. `tarjan doctor + ` scopes the same way, and the Starlark `tool()` builtin gains a + `services` argument. - Initial public release of tarjan: spin up a complete local development environment for a whole product from a single config file (`tarjan.yaml` / `tarjan.star`). diff --git a/README.md b/README.md index d0755b1..421f2c4 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,7 @@ Other commands: tarjan upgrade # update tarjan to the latest release (--check to only look) tarjan doctor # check required tools are installed & up to date tarjan doctor --install # ...and install the missing ones (opt-in) +tarjan doctor api # ...checking only the toolchain the api service needs tarjan validate # parse the config and print the service start order tarjan pull # git pull every cloned repo in the current workspace tarjan pull 0.1.0 # ...in the named "-0.1.0" workspace @@ -120,6 +121,14 @@ By default each `tarjan up` materialises a **fresh, timestamped workspace** unde Set a top-level `version:` (or pass `tarjan up --version