Skip to content

feat: npm workspaces, packable packages, and Changesets release CI#314

Merged
maxnorm merged 11 commits intoPerfect-Abstractions:mainfrom
maxnorm:feat/add-pkg
Mar 30, 2026
Merged

feat: npm workspaces, packable packages, and Changesets release CI#314
maxnorm merged 11 commits intoPerfect-Abstractions:mainfrom
maxnorm:feat/add-pkg

Conversation

@maxnorm
Copy link
Copy Markdown
Collaborator

@maxnorm maxnorm commented Mar 26, 2026

Summary

Prepare Compose repo for intial release

Changes Made

  • npm workspaces: Added root compose-workspace with workspaces src, cli, and website, a root package-lock.json, and shared scripts (compose@check, compose@pack:check, cli@check, cli@pack:check, aggregate check, plus Changesets helpers version-packages, release).
  • Library package: Added src/package.json for @perfect-abstractions/compose with files for Solidity and shipped docs; root README.md / LICENSE.md / CHANGELOG.md are staged into the package tarball via prepack / postpack, with pack:check / prepublishOnly.
  • CLI package: Updated cli/package.json for @perfect-abstractions/compose-cli (metadata, pack:check / prepublishOnly, files including LICENSE.md); added cli/LICENSE.md; aligned the changelog heading with the library line (0.0.1).
  • Changesets: Added .changeset/ (config, README, initial changeset) with ignore for the website package compose-documentation; added root CHANGELOG.md; version-packages copies the root changelog through src/ during versioning.
  • Release automation: release.yml — manual workflow_dispatch, npm run check, then changesets/action to open/update the version bump PR. publish.yml — runs when a changeset-release/* PR merges to main or on workflow_dispatch; fails if non-README files remain under .changeset/; uses .github/scripts/publish-plan.js and .github/publish-packages.json to decide what to publish; npm publish with provenance, git tags, and GitHub Releases.
  • Contributor UX: Updated .github/pull_request_template.md with a Changesets / changeset-bot note for changes under src/ or cli/ (no separate “changeset required” workflow or skip-changeset label in this diff).
  • Documentation: Added RELEASING.md (two-package model and release flow).
  • Licensing: Adjusted root LICENSE.md copyright line to “Perfect Abstractions LLC & Compose Contributors” (supports packaging copies into published tarballs).
  • .gitignore: Replaced legacy docs/ ignores with root node_modules/ and ignored src/CHANGELOG.md as the temporary copy used during changeset version.
  • Website workspace: Bumped website/package.json / lockfile for the monorepo layout.

Checklist

Before submitting this PR, please ensure:

  • Code follows the Solidity feature ban - No inheritance, constructors, modifiers, public/private variables, external library functions, using for directives, or selfdestruct

  • Code follows Design Principles - Readable, uses diamond storage, favors composition over inheritance

  • Code matches the codebase style - Consistent formatting, documentation, and patterns (e.g. ERC20Facet.sol)

  • Code is formatted with forge fmt

  • Existing tests pass - Run tests to be sure existing tests pass.

  • New tests are optional - If you don't provide tests for new functionality or changes then please create a new issue so this can be assigned to someone.

  • All tests pass - Run forge test and ensure everything works

  • Documentation updated - If applicable, update relevant documentation

Make sure to follow the contributing guidelines.

Additional Notes

@netlify
Copy link
Copy Markdown

netlify bot commented Mar 26, 2026

👷 Deploy request for compose-diamonds pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit 9731e74

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

Coverage Report

Coverage

Metric Coverage Details
Lines 79% 1560/1981 lines
Functions 92% 445/483 functions
Branches 74% 161/217 branches

Last updated: Mon, 30 Mar 2026 01:11:11 GMT for commit 9731e74

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

Gas Report

No gas usage changes detected between main and feat/add-pkg.

All functions maintain the same gas costs. ✅

Last updated: Mon, 30 Mar 2026 01:11:46 GMT for commit 9731e74

@maxnorm maxnorm changed the title Feat/add pkg feat: npm workspaces, packable packages, and Changesets release CI Mar 26, 2026
@maxnorm maxnorm closed this Mar 29, 2026
@maxnorm maxnorm reopened this Mar 29, 2026
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 29, 2026

🦋 Changeset detected

Latest commit: 9731e74

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@perfect-abstractions/compose-cli Patch
@perfect-abstractions/compose Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@maxnorm maxnorm merged commit a817754 into Perfect-Abstractions:main Mar 30, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant