Monorepo containing various packages specific to semantic-release configurations and plugins
This project is managed with the pnpm package manager. It allows for local testing and development of local packages without having to publish them. It additionally allows for centralized dependency management while maintaining the strict isolation rules of a conceptual package. pnpm is only a development time dependency. Published packages do not required it to be used.
$ npm install -g pnpm@5
pnpm operates on the concept of workspaces
. Most all commands can be passed the --recursive
or -r
flag to run the command against all packages in every workspace. To install all dependencies
of all packages in this repo you can run a single install command
$ pnpm install -r
- semantic-release-core - the baseline configuration for defining common release rules, changelog formatting, release commits, etc, that can be applied to all projects independent of their release workflow
- release-config-npm - Configuration for publishing npm packages and associating a tarball to the final github release
package | changelog support | auto versioning | npm publish | docker publish | github release |
---|---|---|---|---|---|
release-config-core | ✔️ | ✔️ | ❌ | ❌ | ✔️ |
release-config-npm | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
All testing is isolated in each respective package and run in isolation. All tests can be run in parallel with a recursive pnpm command
$ pnpm run -r test