diff --git a/README.md b/README.md index 44dfa69..18c2da0 100644 --- a/README.md +++ b/README.md @@ -132,7 +132,7 @@ See the [Documentation](#documentation) section below for the architecture, conf ```text Version ───────────────┐ Restore → Build → Test ├→ Pack → Validate → Publish → GitHub release - └→ Lint │ + └→ Lint │ Version ───────────────┘ ``` diff --git a/docs/wiki/Architecture.md b/docs/wiki/Architecture.md index 0c6161d..17b5592 100644 --- a/docs/wiki/Architecture.md +++ b/docs/wiki/Architecture.md @@ -24,13 +24,14 @@ The pipeline is registered in `Program.cs` in this order, with explicit `[Depend ```text VersionModule ──────────────┐ RestoreModule → BuildModule ├→ RunTestsModule → PackModule → ValidatePackModule -LintModule (independent) │ +RestoreModule → LintModule │ VersionModule ──────────────┘ ``` Explicit `[DependsOn]` edges: - `BuildModule` depends on `RestoreModule`. +- `LintModule` depends on `RestoreModule` (Web lint needs `node_modules` installed; dotnet lint is unaffected beyond running after restore). - `RunTestsModule` depends on `BuildModule`. - `PackModule` depends on `RunTestsModule` and `VersionModule`. - `ValidatePackModule` depends on `PackModule`. diff --git a/docs/wiki/Pipeline-Modules.md b/docs/wiki/Pipeline-Modules.md index 53ca3f7..84d6bd3 100644 --- a/docs/wiki/Pipeline-Modules.md +++ b/docs/wiki/Pipeline-Modules.md @@ -5,7 +5,7 @@ The pipeline is a Modular Pipelines orchestration. Modules are registered in `Pr ```text Version ───────────────┐ Restore → Build → Test ├→ Pack → Validate → Publish → GitHub release - └→ Lint │ + └→ Lint │ Version ───────────────┘ ``` @@ -26,7 +26,7 @@ Depends on `RestoreModule`. ## LintModule -Skip condition: skipped when `Build:RunLint` is false. +Depends on `RestoreModule` (Web lint invokes tooling from `node_modules`, so it must wait for `bun install`; dotnet lint is unaffected beyond running after restore). Skip condition: skipped when `Build:RunLint` is false. - **DotNet**: restores the repository's local tools (`dotnet tool restore` against `.config/dotnet-tools.json`, retried up to 3 times with a 2-second backoff on failure) and then runs `dotnet tool run csharpier check `. The repository root is resolved by walking up to the nearest `package.json`. - **Web**: runs `Build:WebFormatCheckCommand` (default `bun run format:check`) then `Build:WebLintCommand` (default `bun run lint`). Each step is skipped when the corresponding script is not declared in the root `package.json`. diff --git a/package.json b/package.json index c0373bf..d62a191 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "purview-build", - "version": "0.3.0", + "version": "0.3.1", "private": true, "homepage": "https://purview.dev/projects/build/", "bugs": { diff --git a/src/src/Build/Modules/LintModule.cs b/src/src/Build/Modules/LintModule.cs index c0a714f..cdfdffb 100644 --- a/src/src/Build/Modules/LintModule.cs +++ b/src/src/Build/Modules/LintModule.cs @@ -9,6 +9,7 @@ namespace Purview.Build.Modules; [ModuleCategory("Build")] +[DependsOn] public sealed class LintModule(IOptions settings) : Module { protected override ModuleConfiguration Configure() =>