@thefittingroom/shop-ui 5.0.38 → 5.0.39

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.
Files changed (3) hide show
  1. package/README.md +35 -18
  2. package/dist/index.js +25042 -24999
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -47,7 +47,7 @@ For an interactive debug loop, `npm run watch-serve &` in one terminal and
47
47
  Releases are explicit, human-initiated steps via a single GitHub Actions
48
48
  workflow. No magic on PR merges.
49
49
 
50
- **1. Cut a `next` release.**
50
+ **1. Publish a release.**
51
51
 
52
52
  - Go to https://github.com/TheFittingRoom/shop-sdk-ui/actions/workflows/release.yaml
53
53
  - Click **Run workflow**
@@ -57,30 +57,47 @@ workflow. No magic on PR merges.
57
57
  The `release.yaml` workflow does everything in one run:
58
58
 
59
59
  1. Checks out `main`, installs deps, builds (verifies it compiles)
60
- 2. Runs `npm version <bump>` — bumps `package.json` and creates the
61
- `vX.Y.Z` tag
62
- 3. Rebuilds with the new version embedded
63
- 4. Pushes the bump commit + tag back to `main`
64
- 5. Publishes to npm under dist-tag `next` via
60
+ 2. Creates a fresh `release-bump-<timestamp>` branch
61
+ 3. Runs `npm version <bump>` — bumps `package.json`, creates the
62
+ bump commit, tags it `vX.Y.Z`
63
+ 4. Rebuilds with the new version embedded
64
+ 5. Pushes the bump branch + tag (not to `main` — see below)
65
+ 6. Publishes to npm under dist-tag `next` via
65
66
  [npm trusted publishing](https://docs.npmjs.com/trusted-publishers)
66
67
  (OIDC, no long-lived secret) with `--provenance` for supply-chain
67
68
  attestation
69
+ 7. Opens a PR from the bump branch to `main` and queues auto-merge
68
70
 
69
71
  The npm trusted-publisher entry for `@thefittingroom/shop-ui` must
70
72
  point at `release.yaml`.
71
73
 
72
- > **Branch protection note:** the workflow pushes commits + tags
73
- > directly to `main`. If you enable required-PR branch protection on
74
- > `main` later, this push will fail until either (a) the workflow uses
75
- > a credential listed in the branch-protection bypass list, or (b)
76
- > branch protection allows the workflow to bypass via some other means.
77
- > The current setup deliberately defers that complication.
78
-
79
- **2. Promote `next` `latest` when ready for end users.**
80
-
81
- `release.yaml` only publishes under dist-tag `next`. To make a version
82
- the default that consumers get from `npm install @thefittingroom/shop-ui`,
83
- you have to explicitly promote it:
74
+ **Demo storefront visibility:** the `shopify` theme's `tfr.js` loads
75
+ the SDK from `unpkg.com/@thefittingroom/shop-ui@5` a semver range
76
+ that unpkg (and jsdelivr) resolves to the highest matching published
77
+ 5.x version regardless of dist-tag. Publishing under `--tag next` is
78
+ therefore enough for demo to pick up the new version on the next
79
+ reload; no `latest` promotion is required for that path. Demo picks
80
+ up the new version even before the auto-merge PR completes — npm
81
+ publish and GitHub merge are independent steps.
82
+
83
+ > **Ruleset + auto-merge note:** `main` is protected by a repository
84
+ > ruleset requiring PRs + a passing `verify` check. `release.yaml`
85
+ > works around this by pushing to a `release-bump-*` branch and
86
+ > opening an auto-merge PR. The `verify` job in `pr-checks.yml` is
87
+ > `if:`-skipped for `release-bump-*` branches (safe — the bump only
88
+ > touches `package.json` + `package-lock.json` + a `dist/` rebuild
89
+ > whose only diff is the embedded version), so the required-check
90
+ > reports success immediately and auto-merge fires within seconds
91
+ > of the branch push. See `AGENTS.md` → "Ruleset + auto-merge
92
+ > coupling" for the full rationale.
93
+
94
+ **2. (Optional) Promote to `latest` dist-tag.**
95
+
96
+ Only matters for consumers who install without a version pin
97
+ (`npm install @thefittingroom/shop-ui` → gets `latest`) or reference
98
+ `@latest` in a CDN URL. The demo storefront does neither, so this
99
+ step is not required for changes to appear on demo. When you do want
100
+ to move the `latest` pointer:
84
101
 
85
102
  ```sh
86
103
  git pull origin main # ensure package.json reflects the latest release