From 9899e213ca2171e6df4d5041a90c3f4696c6c9f7 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Tue, 5 May 2026 11:59:44 +0200 Subject: [PATCH] build(turbo): add boundaries enforcement matching ESLint dependency graph MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per-package tags + root boundaries block now enforce the same three-tag model as eslint-plugin-boundaries: - app → may depend on: app, core, core-composition, feature, tooling - feature → may depend on: core, tooling - core → may depend on: core, core-composition, tooling - core-composition (core-api, core-cms) → may depend on: core, feature, tooling - tooling (core-eslint, core-typescript) → may depend on: tooling Tags applied: 4 apps (app), 3 core foundation packages (core), 2 core composition packages (core-composition), 5 features (feature), 2 tooling packages (tooling). All test suites pass. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/cms/turbo.json | 4 ++++ apps/storybook/turbo.json | 4 ++++ apps/web-next/turbo.json | 4 ++++ apps/web-tanstack/turbo.json | 4 ++++ packages/core-api/turbo.json | 2 +- packages/core-cms/turbo.json | 2 +- packages/core-eslint/turbo.json | 4 ++++ packages/core-typescript/turbo.json | 4 ++++ turbo.json | 29 +++++++++++++++++++++++++++++ 9 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 apps/cms/turbo.json create mode 100644 apps/storybook/turbo.json create mode 100644 apps/web-next/turbo.json create mode 100644 apps/web-tanstack/turbo.json create mode 100644 packages/core-eslint/turbo.json create mode 100644 packages/core-typescript/turbo.json diff --git a/apps/cms/turbo.json b/apps/cms/turbo.json new file mode 100644 index 0000000..5917af9 --- /dev/null +++ b/apps/cms/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["app"] +} diff --git a/apps/storybook/turbo.json b/apps/storybook/turbo.json new file mode 100644 index 0000000..5917af9 --- /dev/null +++ b/apps/storybook/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["app"] +} diff --git a/apps/web-next/turbo.json b/apps/web-next/turbo.json new file mode 100644 index 0000000..5917af9 --- /dev/null +++ b/apps/web-next/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["app"] +} diff --git a/apps/web-tanstack/turbo.json b/apps/web-tanstack/turbo.json new file mode 100644 index 0000000..5917af9 --- /dev/null +++ b/apps/web-tanstack/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["app"] +} diff --git a/packages/core-api/turbo.json b/packages/core-api/turbo.json index dcb8fb3..abaadc9 100644 --- a/packages/core-api/turbo.json +++ b/packages/core-api/turbo.json @@ -1,4 +1,4 @@ { "extends": ["//"], - "tags": ["core"] + "tags": ["core-composition"] } diff --git a/packages/core-cms/turbo.json b/packages/core-cms/turbo.json index dcb8fb3..abaadc9 100644 --- a/packages/core-cms/turbo.json +++ b/packages/core-cms/turbo.json @@ -1,4 +1,4 @@ { "extends": ["//"], - "tags": ["core"] + "tags": ["core-composition"] } diff --git a/packages/core-eslint/turbo.json b/packages/core-eslint/turbo.json new file mode 100644 index 0000000..db0d794 --- /dev/null +++ b/packages/core-eslint/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["tooling"] +} diff --git a/packages/core-typescript/turbo.json b/packages/core-typescript/turbo.json new file mode 100644 index 0000000..db0d794 --- /dev/null +++ b/packages/core-typescript/turbo.json @@ -0,0 +1,4 @@ +{ + "extends": ["//"], + "tags": ["tooling"] +} diff --git a/turbo.json b/turbo.json index 038e136..1992236 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,35 @@ { "$schema": "https://turborepo.dev/schema.json", "globalEnv": ["CI", "DATABASE_URL", "PAYLOAD_SECRET", "NODE_ENV"], + "boundaries": { + "tags": { + "app": { + "dependencies": { + "allow": ["app", "core", "core-composition", "feature", "tooling"] + } + }, + "feature": { + "dependencies": { + "allow": ["core", "tooling"] + } + }, + "core": { + "dependencies": { + "allow": ["core", "core-composition", "tooling"] + } + }, + "core-composition": { + "dependencies": { + "allow": ["core", "feature", "tooling"] + } + }, + "tooling": { + "dependencies": { + "allow": ["tooling"] + } + } + } + }, "tasks": { "build": { "dependsOn": ["^build"],