matthewp / robot

🤖 A functional, immutable Finite State Machine library
https://thisrobot.life
BSD 2-Clause "Simplified" License
1.91k stars 88 forks source link

New project structure #189

Closed matthewp closed 1 year ago

matthewp commented 1 year ago

This updates the project structure, adding newer CI features and automating releases.

Project structure

This updates the project to use npm workspaces. Packages will go in the packages/ folder. So far there is only core, but the plan is to move the integrations into this repo.

Builds and testing

The repo now uses wireit to handle building and dependencies. This means if you need to check the bundle size you can just run:

npm run --workspace=packages/core bundlesize

And wireit will handle calling the minify task before bundlesize is run. This is true of all of the commands.

The contributing document goes over how you can run tests and do releases.

CI tasks

CI automates most things now:

This should make day-to-day maintenance of the project much less tedious.

Breaking changes

This includes a new minor changeset because it drops support for Node 14. This is mostly because npm didn't support workspaces in that version. Also Node 14 is end of life in a couple of months anyways.

changeset-bot[bot] commented 1 year ago

🦋 Changeset detected

Latest commit: 92c596efc9fdcfe46eaead7c0c96ce40c4576ad8

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

This PR includes changesets to release 1 package | Name | Type | | ------ | ----- | | robot3 | Minor |

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

matthewp commented 1 year ago

@gkiely this is ready for review.

If you would, let me merge this one after approved, as I would like to keep on an eye on CI and make sure everything works since this is the first time CI will handle the release (I always did it manually before).