scrolloop publishes scoped packages (@scrolloop/core, @scrolloop/react,
@scrolloop/react-native, @scrolloop/preact, @scrolloop/vue,
@scrolloop/svelte) via Changesets.
The repo root is private and is not published.
- With your change, add a changeset describing it and which packages bump:
Commit the generated
pnpm changeset
.changeset/*.mdfile alongside your code. - Open a PR. CI runs lint / typecheck / knip /
lint:package(publint + attw) / size / test / e2e as merge gates.
On push to master, the release job runs changesets/action:
- If unreleased changesets exist → it opens/updates a "Version Packages" PR
that bumps versions and writes changelogs (
pnpm version). - When that PR is merged → it publishes the changed packages to npm with
provenance (
pnpm release= build +changeset publish).
- The
NPM_TOKENrepo secret already exists (the previous publish flow used it). Before the first scoped release, verify it can publish the new@scrolloopscope — the old flow only published the singlescrollooppackage, so a package-scoped/granular token may need the@scrolloopscope (and its org) granted. A classic automation token covers everything you own. (Alternatively, configure npm Trusted Publishing (OIDC) per package —releasealready hasid-token: write.) - First release: package versions are set directly to
1.0.0(no changeset), sochangesets/actionpublishes them on the first master push.scrolloopgoes0.5.2 → 1.0.0; the@scrolloop/*adapters are published fresh at1.0.0. Changesets governs every release after that.
scrolloop is now the framework-agnostic core (Virtualizer, InfiniteSource,
layout/scroll utilities) that every adapter depends on — like eslint is the
core that eslint-plugin-* build on. Every @scrolloop/<framework> install
pulls scrolloop transitively, so its download count and history continue on
this package.
The previous scrolloop@0.5.x shipped the React components directly. Those
moved to @scrolloop/react. Existing React users migrate:
- import { VirtualList } from "scrolloop";
+ import { VirtualList } from "@scrolloop/react";pnpm changeset status --verbose # preview which packages version/publish (read-only)
pnpm lint:package # publint + attw on every publishable package