@flytedan/flytebot-design-system 0.14.0 → 0.16.0

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/README.md CHANGED
@@ -82,6 +82,50 @@ pnpm run lint # eslint .
82
82
  pnpm run test # vitest run
83
83
  ```
84
84
 
85
+ ## Releasing
86
+
87
+ There is no publish CI. Releases are manual and run only from a dedicated
88
+ deploy clone — never hand-published from a working checkout, which could ship
89
+ whatever a builder happens to be mid-edit on.
90
+
91
+ One-time setup, once per machine:
92
+
93
+ ```bash
94
+ git clone git@github.com:flytedan/flytebot-design-system.git C:/Users/newms/deploy/flytebot-design-system
95
+ cd C:/Users/newms/deploy/flytebot-design-system
96
+ touch .deploy-clone-marker # git-ignored; scripts/release.sh refuses to run without it
97
+ ```
98
+
99
+ Then, for every release:
100
+
101
+ ```bash
102
+ cd C:/Users/newms/deploy/flytebot-design-system
103
+ bash scripts/release.sh <new-version> "<summary>"
104
+ ```
105
+
106
+ `scripts/release.sh`:
107
+
108
+ - refuses to run anywhere except a directory carrying `.deploy-clone-marker`;
109
+ - refuses a dirty tree, and takes a `.release.lock` so two runs can't overlap;
110
+ - fetches `origin` and checks out `origin/main`'s exact tip — never unmerged
111
+ work;
112
+ - installs with `pnpm install --frozen-lockfile`;
113
+ - runs the gates: `vitest run`, `tsc --noEmit`, `tsc --noEmit -p
114
+ tsconfig.docs.json`, the docs `vite build`, `tsup`, and `lint` if the repo
115
+ has that script;
116
+ - refuses `<new-version>` unless it is greater than both the working
117
+ checkout's `package.json` version and npm's currently published `latest`;
118
+ - bumps `package.json`, commits `chore(release): <new-version> — <summary>`,
119
+ and pushes (failing on a non-fast-forward);
120
+ - `npm publish`es (account `flytedan`, via the existing `~/.npmrc`), then
121
+ pushes tag `v<new-version>`;
122
+ - prints `RESULT: sha=<sha> version=<new-version> status=published` on
123
+ success.
124
+
125
+ `scripts/release.test.ts` covers its guards (wrong directory, dirty tree,
126
+ held lock, missing/malformed version argument) against throwaway git repos —
127
+ no network, no real publish.
128
+
85
129
  ## License
86
130
 
87
131
  UNLICENSED — internal flytedesk use only.