Skip to content

Move the npm package to framework (publishing stays manual) #1635

Description

@suleimansh

🤖 curated

From Discord: "TODO: let's move the npm package to https://npmjs.com/package/framework".

The name is already ours. framework on npm lists brillout and suleimansh as its maintainers. It was created by Mikeal Rogers in 2011 and last really published as 0.6.0 in April 2022; the registry record was modified 2026-08-11, which is the handover. So this is a rename, not an acquisition — no dispute process, no waiting on npm support.

Where we are

Published today as @gemstack/the-framework
Latest on npm 1.5.0, published 2026-08-19 (7 versions)
package.json says "version": "0.0.0"
Legacy versions under framework up to 0.6.0 (2022)

Versioning is not a problem. We are already at 1.5.0, comfortably above the 2022 0.6.0, so the first publish under framework supersedes the old package cleanly. Nothing needs deprecating or unpublishing.

Nothing in the repo records what shipped. package.json is pinned at 0.0.0 while npm serves 1.5.0, so the version is decided at publish time and the repo has no memory of it. Tolerable while a human runs the command, which is what we are keeping — see the decision below.

The work

  • name: @gemstack/the-frameworkframework
  • version: 0.0.00.7.0 (brillout, 2026-08-22 — stay in 0.x for experimental semver)
  • homepage, bugs, repository: all three still point at gemstack-land/the-framework, and follow the repo to framework/the-framework
  • README.md — the npm badge and both install lines (npm i -g @gemstack/the-framework, npx @gemstack/the-framework)
  • Delete the 11 orphaned .changeset/*.md files (see below)

One sub-question left open: the bin is the-framework, so the command users type stays the-framework even though the package becomes framework. npx framework would then not work, which is mildly surprising. I would keep the-framework as the command — it is what the CLI, the docs and the website all say, and renaming it is a much larger change than renaming the package. Say if you would rather they match.

Decision: publishing stays manual

It used to be automatic. .github/workflows/release.yml published on every push to main via changesets, and it was deliberately deleted in a745e2e3 — "delete the release history — changesets, changelogs, migration notes, semver" — which removed 77 changesets, the changesets tooling, four CHANGELOGs totalling 2,861 lines, and reset the versions to 0.0.0.

We are leaving it deleted. The reasons, in order of weight:

  • Nothing installs the package. No workflow does, and a dogfood runs node packages/the-framework/dist/bin.js from the local build. The only consumer is the README telling a human to npm i -g. A stale npm blocks no machine.
  • Automation needs an NPM_TOKEN in CI — publish rights to a freshly acquired name, sitting in a repo secret, bought for a benefit nobody is waiting on.
  • It would need a version policy first. 0.0.0 in the repo versus 1.5.0 on npm has to be resolved before a workflow can bump anything. A human typing the number does not need that resolved.
  • This repo merges several PRs a day. "Every green main publishes" means several versions a day of a package with no installs.

This is a "not yet", not a "no". The day the package has users, automatic publishing is obviously right, and this issue is where that gets revisited.

The part that argues for doing this now: changesets are half-back

a745e2e3 removed the tooling but not the habit. Eleven .changeset/*.md files are tracked in the repo today, the newest added 2026-08-19 in #1595. Nothing consumes them: no .changeset/config.json, no @changesets/cli dependency, no release workflow, and no prompt instructing agents to write them. Agents write them from training, every PR commits more, and no process ever reads one.

So we currently carry the cost of changesets and none of the benefit. They go with this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions