@mannyc1/ts-release 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +13 -8
- package/README.md +226 -447
- package/SPEC.md +48 -43
- package/dist/artifacts/adapter.d.ts +39 -0
- package/dist/artifacts/adapter.d.ts.map +1 -0
- package/dist/artifacts/adapter.js +23 -0
- package/dist/artifacts/adapter.js.map +1 -0
- package/dist/artifacts/registry.d.ts +21 -0
- package/dist/artifacts/registry.d.ts.map +1 -0
- package/dist/artifacts/registry.js +21 -0
- package/dist/artifacts/registry.js.map +1 -0
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/domain/artifact.d.ts +85 -3
- package/dist/domain/artifact.d.ts.map +1 -1
- package/dist/domain/artifact.js +171 -3
- package/dist/domain/artifact.js.map +1 -1
- package/dist/domain/evidence.d.ts +16 -65
- package/dist/domain/evidence.d.ts.map +1 -1
- package/dist/domain/evidence.js +15 -60
- package/dist/domain/evidence.js.map +1 -1
- package/dist/domain/operation.d.ts +7 -17
- package/dist/domain/operation.d.ts.map +1 -1
- package/dist/domain/operation.js +27 -154
- package/dist/domain/operation.js.map +1 -1
- package/dist/domain/release.d.ts +1 -49
- package/dist/domain/release.d.ts.map +1 -1
- package/dist/domain/release.js +2 -47
- package/dist/domain/release.js.map +1 -1
- package/dist/domain/remote-state.d.ts +1 -38
- package/dist/domain/remote-state.d.ts.map +1 -1
- package/dist/domain/remote-state.js +2 -38
- package/dist/domain/remote-state.js.map +1 -1
- package/dist/domain/target.d.ts +14 -1
- package/dist/domain/target.d.ts.map +1 -1
- package/dist/domain/target.js +17 -3
- package/dist/domain/target.js.map +1 -1
- package/dist/host/platform.d.ts.map +1 -1
- package/dist/host/platform.js +4 -11
- package/dist/host/platform.js.map +1 -1
- package/dist/internal/workspace-path.d.ts +4 -5
- package/dist/internal/workspace-path.d.ts.map +1 -1
- package/dist/internal/workspace-path.js +3 -0
- package/dist/internal/workspace-path.js.map +1 -1
- package/dist/planner/artifact-inventory.d.ts.map +1 -1
- package/dist/planner/artifact-inventory.js +4 -3
- package/dist/planner/artifact-inventory.js.map +1 -1
- package/dist/planner/errors.d.ts +2 -16
- package/dist/planner/errors.d.ts.map +1 -1
- package/dist/planner/errors.js +2 -14
- package/dist/planner/errors.js.map +1 -1
- package/dist/planner/evidence-recorder.d.ts +8 -6
- package/dist/planner/evidence-recorder.d.ts.map +1 -1
- package/dist/planner/evidence-recorder.js +72 -54
- package/dist/planner/evidence-recorder.js.map +1 -1
- package/dist/planner/executor.d.ts +12 -12
- package/dist/planner/executor.d.ts.map +1 -1
- package/dist/planner/executor.js +45 -68
- package/dist/planner/executor.js.map +1 -1
- package/dist/planner/normalize-release.d.ts +3 -0
- package/dist/planner/normalize-release.d.ts.map +1 -1
- package/dist/planner/normalize-release.js +128 -4
- package/dist/planner/normalize-release.js.map +1 -1
- package/dist/planner/reconcile.d.ts.map +1 -1
- package/dist/planner/reconcile.js +2 -6
- package/dist/planner/reconcile.js.map +1 -1
- package/dist/planner/render-plan.d.ts.map +1 -1
- package/dist/planner/render-plan.js +12 -19
- package/dist/planner/render-plan.js.map +1 -1
- package/dist/targets/adapter-helpers.d.ts +36 -6
- package/dist/targets/adapter-helpers.d.ts.map +1 -1
- package/dist/targets/adapter-helpers.js +103 -7
- package/dist/targets/adapter-helpers.js.map +1 -1
- package/dist/targets/github.d.ts +2 -2
- package/dist/targets/github.d.ts.map +1 -1
- package/dist/targets/github.js +4 -14
- package/dist/targets/github.js.map +1 -1
- package/dist/targets/homebrew.d.ts +2 -2
- package/dist/targets/homebrew.d.ts.map +1 -1
- package/dist/targets/homebrew.js +143 -40
- package/dist/targets/homebrew.js.map +1 -1
- package/dist/targets/live.d.ts.map +1 -1
- package/dist/targets/live.js +29 -20
- package/dist/targets/live.js.map +1 -1
- package/dist/targets/npm.d.ts +2 -2
- package/dist/targets/npm.d.ts.map +1 -1
- package/dist/targets/npm.js +33 -61
- package/dist/targets/npm.js.map +1 -1
- package/dist/targets/pypi.d.ts +2 -2
- package/dist/targets/pypi.d.ts.map +1 -1
- package/dist/targets/pypi.js +67 -41
- package/dist/targets/pypi.js.map +1 -1
- package/dist/targets/scoop.d.ts.map +1 -1
- package/dist/targets/scoop.js +18 -8
- package/dist/targets/scoop.js.map +1 -1
- package/dist/workflows/config.d.ts +69 -121
- package/dist/workflows/config.d.ts.map +1 -1
- package/dist/workflows/config.js +80 -129
- package/dist/workflows/config.js.map +1 -1
- package/dist/workflows/diagnostics.d.ts +2 -2
- package/dist/workflows/diagnostics.d.ts.map +1 -1
- package/dist/workflows/diagnostics.js +14 -20
- package/dist/workflows/diagnostics.js.map +1 -1
- package/dist/workflows/distribution.d.ts +25 -0
- package/dist/workflows/distribution.d.ts.map +1 -0
- package/dist/workflows/distribution.js +24 -0
- package/dist/workflows/distribution.js.map +1 -0
- package/dist/workflows/evidence.d.ts +4 -13
- package/dist/workflows/evidence.d.ts.map +1 -1
- package/dist/workflows/evidence.js +15 -37
- package/dist/workflows/evidence.js.map +1 -1
- package/dist/workflows/index.d.ts +1 -0
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +1 -0
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/init.d.ts +3 -3
- package/dist/workflows/init.d.ts.map +1 -1
- package/dist/workflows/init.js +49 -13
- package/dist/workflows/init.js.map +1 -1
- package/examples/README.md +4 -4
- package/package.json +18 -15
- package/templates/README.md +15 -2
- package/templates/bun-cli-github/README.md +14 -0
- package/templates/bun-cli-github/release.config.json +89 -0
- package/dist/domain/status.d.ts +0 -43
- package/dist/domain/status.d.ts.map +0 -1
- package/dist/domain/status.js +0 -51
- package/dist/domain/status.js.map +0 -1
- package/dist/planner/release-eligibility.d.ts +0 -39
- package/dist/planner/release-eligibility.d.ts.map +0 -1
- package/dist/planner/release-eligibility.js +0 -578
- package/dist/planner/release-eligibility.js.map +0 -1
- package/dist/planner/status.d.ts +0 -40
- package/dist/planner/status.d.ts.map +0 -1
- package/dist/planner/status.js +0 -342
- package/dist/planner/status.js.map +0 -1
package/ARCHITECTURE.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
-
`@mannyc1/ts-release` is library-first and CLI-second.
|
|
3
|
+
`@mannyc1/ts-release` is artifact-first, library-first, and CLI-second.
|
|
4
4
|
|
|
5
|
-
The package turns release intent into
|
|
5
|
+
The package turns release intent into staged artifacts, installable artifact
|
|
6
|
+
variants, target-specific distribution plans, evidence, and approved operations.
|
|
7
|
+
The CLI and GitHub Action are adapters over those workflows.
|
|
6
8
|
|
|
7
9
|
## Target Boundary
|
|
8
10
|
|
|
@@ -35,9 +37,10 @@ than reaching into CLI modules.
|
|
|
35
37
|
|
|
36
38
|
## Current Module Taxonomy
|
|
37
39
|
|
|
38
|
-
- `domain/` contains durable schema-backed data models, typed errors, and scalar schemas owned by their semantic domain modules, such as release names in `domain/release`, target IDs in `domain/target`, artifact IDs in `domain/artifact`, operation IDs in `domain/operation`, and evidence IDs in `domain/evidence`.
|
|
40
|
+
- `domain/` contains durable schema-backed data models, typed errors, and scalar schemas owned by their semantic domain modules, such as release names in `domain/release`, target IDs in `domain/target`, artifact IDs and installable variants in `domain/artifact`, operation IDs in `domain/operation`, and evidence IDs in `domain/evidence`.
|
|
39
41
|
- `config/` parses and validates release config into domain values.
|
|
40
|
-
- `
|
|
42
|
+
- `artifacts/` defines the recipe staging adapter and registry boundary. Recipes are data until a runtime provides a staging layer.
|
|
43
|
+
- `planner/` normalizes release intent, builds artifact inventory, carries installable variants, builds plans, renders plans, executes operation data through injected services, records evidence, and reconciles modeled remote state.
|
|
41
44
|
- `targets/` models ecosystem-specific target semantics and produces operation data. Target modules may describe commands and HTTP checks, but they do not execute them.
|
|
42
45
|
- `host/` defines injectable command and HTTP services plus live or test implementations.
|
|
43
46
|
- `workflows/` contains reusable application workflows over config files, init/scaffolding plans, diagnostics, evidence files, and live target/HTTP composition. This is the high-level programmatic surface.
|
|
@@ -56,8 +59,9 @@ The normal flow is:
|
|
|
56
59
|
```text
|
|
57
60
|
domain <- config
|
|
58
61
|
domain <- planner <- targets
|
|
62
|
+
domain <- artifacts
|
|
59
63
|
domain <- host
|
|
60
|
-
workflows -> config/planner/host/targets
|
|
64
|
+
workflows -> config/artifacts/planner/host/targets
|
|
61
65
|
apps/release-ts runtime -> host/workflows/platform layers
|
|
62
66
|
apps/release-ts cli -> workflows/runtime boundary
|
|
63
67
|
apps/ts-release-action runtime -> host/workflows/platform layers
|
|
@@ -70,14 +74,15 @@ apps/ts-release-action action -> workflows/runtime boundary
|
|
|
70
74
|
|
|
71
75
|
There is no public `./api` facade, and the root package export stays empty. The public workflow modules are named after the work they own:
|
|
72
76
|
|
|
73
|
-
- `./workflows` for the curated opt-in `Config`, `Init`, `Diagnostics`, `Evidence`, and `Live` namespaces.
|
|
77
|
+
- `./workflows` for the curated opt-in `Distribution`, `Config`, `Init`, `Diagnostics`, `Evidence`, and `Live` namespaces.
|
|
78
|
+
- `./workflows/distribution` for the artifact-first high-level distribution facade.
|
|
74
79
|
- `./workflows/config` for config-file release workflows.
|
|
75
80
|
- `./workflows/init` for data-first scaffolding previews and approved writes.
|
|
76
81
|
- `./workflows/diagnostics` for static config, auth, and CI readiness reports.
|
|
77
82
|
- `./workflows/evidence` for reusable evidence persistence.
|
|
78
83
|
- `./workflows/live` for runtime-neutral live target and HTTP services.
|
|
79
84
|
|
|
80
|
-
The `./workflows` facade lives at `src/workflows/index.ts` and should only re-export workflow namespaces. Use exact workflow leaf imports for maximum tree-shaking or direct option-class access, and lower-level `domain/`, `config/`, `planner/`, `host/`, and `targets/` subpaths when a caller needs more control than the workflow modules provide.
|
|
85
|
+
The `./workflows` facade lives at `src/workflows/index.ts` and should only re-export workflow namespaces. Use `Distribution` for the product path: stage artifacts, plan distribution, render target files, execute approved operations, verify, and reconcile. Use exact workflow leaf imports for maximum tree-shaking or direct option-class access, and lower-level `domain/`, `config/`, `planner/`, `host/`, and `targets/` subpaths when a caller needs more control than the workflow modules provide.
|
|
81
86
|
|
|
82
87
|
## Boundary Rules
|
|
83
88
|
|
|
@@ -86,7 +91,7 @@ The `./workflows` facade lives at `src/workflows/index.ts` and should only re-ex
|
|
|
86
91
|
- Reusable effectful operations use `Effect.fn`; inline orchestration bodies use `Effect.gen`.
|
|
87
92
|
- Durable models, options, target variants, and typed errors use `Schema.Class`, `Schema.TaggedClass`, and `Schema.TaggedErrorClass`.
|
|
88
93
|
- Layers are provided at CLI, action, runtime, script, application, and test boundaries.
|
|
89
|
-
- Config parsing,
|
|
94
|
+
- Config parsing, artifact staging, distribution planning, evidence persistence, reconciliation, and approved execution are library workflows, not CLI behavior.
|
|
90
95
|
- Terminal formatting, argv parsing, and `--out` file writing belong in
|
|
91
96
|
`apps/release-ts/src/cli/`.
|
|
92
97
|
- GitHub Action input parsing, output names, step summaries, and evidence artifact
|