Skip to content

refactor: move npm package into javascript/ - #208

Merged
tvdeyen merged 3 commits into
mainfrom
refactor/monorepo-package-separation
Sep 1, 2026
Merged

tvdeyen merged 3 commits into
mainfrom
refactor/monorepo-package-separation

Conversation

@tvdeyen

@tvdeyen tvdeyen commented Aug 31, 2026

Copy link
Copy Markdown
Member

Stage 1 of a two-stage monorepo reorganization — the move. Stage 2 (release-please automation) is stacked on top as a separate PR so this mechanical change can be reviewed and merged on its own.

The repository ships two independently-consumed packages — the alchemy-json_api Ruby gem and the @alchemy_cms/json_api npm package — with conflated layout and CI. This stage relocates the npm package into javascript/ (pure git mv — no content changes, dist/ byte-identical), splits the shared README/CHANGELOG so each package documents itself, and splits CI into language-scoped, path-filtered workflows so a JS-only change no longer runs the Ruby matrix and vice versa. The gem stays at the repo root, untouched; there are no versioning or release changes here.

Verified locally

  • JS package from javascript/: typecheck, 17 tests, prettier, and build all green; committed dist/ matches a fresh build.
  • All workflow YAML validated; actionlint clean.

Note: the JS CI job names change (Build, Vitest, Prettier now under the JavaScript workflow; RSpec/Standard unchanged). Branch-protection required checks may need updating, and because the workflows are path-filtered, single-language PRs won't produce the other language's checks — so cross-language checks shouldn't be marked blocking-required.

@tvdeyen
tvdeyen force-pushed the refactor/monorepo-package-separation branch from 57e4527 to 734007a Compare September 1, 2026 06:16
@tvdeyen
tvdeyen force-pushed the refactor/monorepo-package-separation branch from 53c738f to 665083d Compare September 1, 2026 10:08
@tvdeyen tvdeyen changed the title refactor: separate gem and npm package in the monorepo refactor: move npm package into javascript/ Sep 1, 2026
@tvdeyen
tvdeyen marked this pull request as ready for review September 1, 2026 10:20
@tvdeyen tvdeyen added this to the 8.4 milestone Sep 1, 2026
@tvdeyen tvdeyen added the skip-changelog Skip this PR in release notes label Sep 1, 2026
@tvdeyen tvdeyen removed this from the 8.4 milestone Sep 1, 2026
@tvdeyen
tvdeyen merged commit 44fd9a6 into main Sep 1, 2026
13 checks passed
@tvdeyen
tvdeyen deleted the refactor/monorepo-package-separation branch September 1, 2026 10:21
tvdeyen added a commit that referenced this pull request Sep 1, 2026
Stage 2 of the monorepo reorganization — the npm release automation.
**Stacked on #208** (the move); this PR's diff is only the
release-please machinery. Retarget its base to `main` once #208 merges.

Adds release-please as a single, path-scoped component: it tags
`package-vX.Y.Z` — continuing the existing `package-v1.2.0 …
package-v3.0.1` series, separate from the gem's `vX.Y.Z` — maintains
`javascript/CHANGELOG.md`, and publishes to npm via OIDC trusted
publishing (no stored token).

The manifest is seeded at the last published version `3.0.1`, and a
per-package `release-as: "4.0.0"` makes release-please's first release
publish `4.0.0` (which is not on npm yet). The override is necessary
because the breaking `chore(npm)!` commit predates the `javascript/`
move, so release-please's path-based commit analysis wouldn't attribute
it to the package and compute `4.0.0` on its own.

## Around merge
- [x] npm trusted publisher registered on npmjs (repo +
`release-please.yml`).
- [x] Enable Settings → Actions → General → "Allow GitHub Actions to
create and approve pull requests" (else release-please can't open its
release PR).
- [ ] After merge, confirm release-please opens a `4.0.0` release PR;
merging it tags `package-v4.0.0` and publishes `4.0.0`.
- [ ] Remove `release-as` from `release-please-config.json` after that
PR merges — it does not self-clear, or it will keep forcing `4.0.0`.
- [ ] Update branch-protection required checks to the new job names
(`RSpec`, `Standard`, `Build`, `Vitest`, `Prettier`).
tvdeyen added a commit that referenced this pull request Sep 2, 2026
🤖 I have created a release *beep* *boop*
---


##
[4.0.0](package-v3.0.1...package-v4.0.0)
(2026-09-01)


### ⚠ BREAKING CHANGES

* `deserializePage`/`deserializePages` no longer filter deprecated
content; they are now deprecated aliases for `deserialize`
([#201](#201))
* an `exports` map restricts imports to the package root and
`./deserialize`
([#202](#202))


### Bug Fixes

* **deserialize:** break reference cycles to prevent stack overflow
([#200](#200))
([f7147ae](f7147ae))


### Code Refactoring

* **ts:** migrate deserializer to TypeScript with typed distribution
([#202](#202))
([3b93397](3b93397))
* stop filtering deprecated content in the deserializer
([#201](#201))
([40b9145](40b9145))
* move npm package into javascript/
([#208](#208))
([44fd9a6](44fd9a6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Skip this PR in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant