Skip to content

Commit 9419a05

Browse files
authored
chore: keep server private for first alpha (#43)
Mark @intent-framework/server as a private workspace package so it is excluded from npm publishing during the first alpha release. - Set private: true in packages/server/package.json - Removed publishConfig from server package - Updated pack:check to filter only 4 publishable packages (core, dom, router, testing) instead of all packages/* - Updated Release-Readiness.md to reflect that server is private and not a first-alpha publishing blocker - Server continues to build and test as part of the workspace
1 parent fbd68b9 commit 9419a05

3 files changed

Lines changed: 21 additions & 13 deletions

File tree

docs/Release-Readiness.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,20 @@ Intent is in early experimental development. No packages have been published to
66

77
The repository has five workspace packages under `packages/*`, all at version `0.1.0`, all using `workspace:*` dependency references. The codebase is functional and validated by CI, but several metadata and workflow steps are missing before a first alpha release.
88

9+
Four packages are intended for first-alpha publishing. `packages/server` is a private workspace package for now.
10+
911
## Intended publishable packages
1012

11-
All five packages under `packages/*` are intended to be published:
13+
The first alpha will publish four packages:
1214

1315
| Package | npm name | Purpose |
1416
|---|---|---|
1517
| `packages/core` | `@intent-framework/core` | Platformless semantic graph and runtime |
1618
| `packages/dom` | `@intent-framework/dom` | DOM materializer for screens and router |
1719
| `packages/router` | `@intent-framework/router` | Typed route definitions and navigation |
1820
| `packages/testing` | `@intent-framework/testing` | Semantic test harness |
19-
| `packages/server` | `@intent-framework/server` | Early server-side package |
21+
22+
`packages/server` remains a private workspace package until the server API matures.
2023

2124
Packages under `examples/` (e.g., `web-basic`) are private and must not be published.
2225

@@ -103,19 +106,20 @@ Packages under `examples/` (e.g., `web-basic`) are private and must not be publi
103106
| `repository` | Present | Points to `intent-framework/intent` (`packages/server`) |
104107
| `dependencies` | `@intent-framework/core` | Uses `workspace:*` |
105108
| Build tool | `tsdown` | Bundles ESM + `.d.ts` |
109+
| Publish? | No, private for first alpha | `"private": true` set; `publishConfig` removed |
106110
| Note | Early stage | Server package has global registries and basic action/resource/policy types. Not yet production-ready. |
107111

108112
## Package naming
109113

110-
All five packages use the `@intent-framework/*` npm scope.
114+
All packages use the `@intent-framework/*` npm scope.
111115

112116
The `intent-framework` npm organization has been created. The scope is:
113117

114118
- `@intent-framework/core`
115119
- `@intent-framework/dom`
116120
- `@intent-framework/router`
117121
- `@intent-framework/testing`
118-
- `@intent-framework/server`
122+
- `@intent-framework/server` (private workspace package for first alpha)
119123

120124
## Build outputs
121125

@@ -163,15 +167,15 @@ Package-level `tsconfig.json` files use `composite: true` (except `@intent-frame
163167

164168
## Files included in npm packages
165169

166-
The `files` field in every package is `["dist"]`. Based on `npm pack --dry-run` output:
170+
The `files` field in every package is `["dist"]`. Based on `npm pack --dry-run` output (pack:check now checks only publishable packages):
167171

168172
| Package | Files in tarball | Size |
169173
|---|---|---|
170174
| `@intent-framework/core` | 13 `dist/*` files + `package.json` (14 total) | 38.5 kB unpacked |
171175
| `@intent-framework/dom` | 4 `dist/*` files + `package.json` (4 total) | 10.9 kB unpacked |
172176
| `@intent-framework/router` | 3 `dist/*` files + `package.json` (4 total) | 6.5 kB unpacked |
173177
| `@intent-framework/testing` | 2 `dist/*` files + `package.json` (3 total) | 4.5 kB unpacked |
174-
| `@intent-framework/server` | 2 `dist/*` files + `package.json` (3 total) | 4.2 kB unpacked |
178+
| `@intent-framework/server` | 2 `dist/*` files + `package.json` (3 total) | 4.2 kB unpacked — not checked by pack:check since it is private |
175179

176180
No unnecessary files (source maps, config files, tests, node_modules) leak into the tarball. The `files` policy is correct.
177181

@@ -224,6 +228,7 @@ Do not manually create GitHub Releases.
224228
- [x] npm scope is `@intent-framework/*``intent-framework` org created, packages renamed
225229
- [ ] Reconfirm MIT is the intended public license before publishing
226230
- [x] Confirm package metadata (`repository` field in all packages)
231+
- [x] Server is private — not a publishing blocker
227232
- [ ] Confirm package exports (all point to correct `dist/` paths — already correct)
228233
- [ ] Confirm package files (`files: ["dist"]` — already correct)
229234
- [ ] Confirm declaration files (`dist/index.d.ts` exists — already correct)
@@ -238,7 +243,12 @@ Do not manually create GitHub Releases.
238243

239244
- repository fields are present
240245
- GitHub repository home is https://github.com/intent-framework/intent
241-
- remaining blockers are release workflow, server maturity, alpha prerelease versioning, and human confirmation of MIT license if still listed
246+
- remaining first-alpha blockers: release workflow not yet added, alpha prerelease versioning not configured, and human confirmation that MIT is the intended public license
247+
248+
## Future server-package decisions
249+
250+
- Server maturity is no longer a first-alpha publishing blocker because server is private
251+
- When the server API matures, the package can be made public and published as a separate decision
242252

243253
## Do not do yet
244254

@@ -251,10 +261,10 @@ Do not manually create GitHub Releases.
251261

252262
## Pack check command
253263

254-
This PR adds a root pack-check command:
264+
The root `pack:check` command:
255265

256266
```sh
257267
pnpm pack:check
258268
```
259269

260-
It dry-runs `npm pack` for all five workspace packages after build. It does not publish, does not require network access, and does not create committed tarballs.
270+
dry-runs `npm pack` for the four publishable workspace packages (core, dom, router, testing). It excludes the private `@intent-framework/server` package. It does not publish, does not require network access, and does not create committed tarballs.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"test": "pnpm -r test",
77
"typecheck": "tsc -p tsconfig.typecheck.json",
88
"lint": "tsc -p tsconfig.typecheck.json",
9-
"pack:check": "pnpm -r --filter './packages/*' exec npm pack --dry-run",
9+
"pack:check": "pnpm -r --filter @intent-framework/core --filter @intent-framework/dom --filter @intent-framework/router --filter @intent-framework/testing exec npm pack --dry-run",
1010
"dev:web-basic": "pnpm --dir examples/web-basic dev"
1111
},
1212
"engines": {

packages/server/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
{
22
"name": "@intent-framework/server",
3-
"publishConfig": {
4-
"access": "public"
5-
},
3+
"private": true,
64
"version": "0.1.0",
75
"description": "Early server-side package for Intent",
86
"license": "MIT",

0 commit comments

Comments
 (0)