Reads changesets and adds information on dependents that need bumping

Usage no npm install needed!

<script type="module">
  import changesetsAssembleReleasePlan from 'https://cdn.skypack.dev/@changesets/assemble-release-plan';


Assemble Release Plan

View changelog

Assemble a release plan for changesets from data about a repository.


import assembleReleasePlan from "@changesets/assemble-release-plan";
import readChangesets from "@changesets/read";
import { read } from "@changesets/config";
import { getPackages } from "@manypkg/get-packages";
import { readPreState } from "@changesets/pre";

const packages = await getPackages(cwd);
const preState = await readPreState(cwd);
const config = await read(cwd, packages);
const changesets = await readChangesets(cwd, sinceRef);

const releasePlan = assembleReleasePlan(changesets, packages, config, preState);


import { NewChangeset, Config, ReleasePlan } from "@changesets/types";
import { Packages } from "@manypkg/get-packages";

assembleReleasePlan = (
  changesets: NewChangeset[],
  packages: Packages,
  config: Config
) => ReleasePlan;

This package exists so assembling a release plan can be done without reading from disc. This is useful primarily for testing within the changesets project, and when you cannot run commands within the repository you want a release plan for (some CI cases).

For most cases, you should use @changesets/get-release-plan which will read local changeset files, config, and workspaces, to assemble the release plan from.