Skip to content

v1.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Feb 22:30
· 1 commit to main since this release

1.2.0

Rework workspace init with named groups and explicit creation

The boop init CLI now supports fully explicit workspace tree construction with named groups.

New CLI

boop init [dir] [-w] [-n <name>] [--version <version>] [--default]
  • boop init — single leaf at . (legacy, unchanged)
  • boop init -w — workspace root group at .
  • boop init -w <dir> — create a named group at <dir>
  • boop init <dir> — create a leaf workspace under the closest parent group

Named groups and workspaces

The -n/--name flag sets a custom name independent of the filesystem path. Names default to the relative path from the closest parent group, and workspace keys are fully qualified (parent group key + name).

boop init -w
boop init -w changelogs/typescript -n typescript
boop init changelogs/typescript/core
boop major -w typescript/core "breaking change"

Data model: GroupInfo

Groups are now stored as GroupInfo { path, children } instead of plain Vec<String>, decoupling the group name (map key) from the filesystem path. Group manifests write a name field to disk so names round-trip correctly.

Longest-prefix workspace resolution

-w selectors now use longest-prefix matching: boop major -w typescript/core first tries exact match, then finds group typescript and resolves core as a child. This works regardless of whether names contain /.

Other changes

  • Empty workspace groups are now allowed (a just-created group with no children)
  • Name collision detection prevents duplicate group/workspace names
  • All commands (add, apply, status, changelog, version) work with the new named workspace model