jbolda / covector

Transparent and flexible change management for publishing packages and assets.
Apache License 2.0
74 stars 10 forks source link
hacktoberfest monorepo package-management polyglot

covector

Transparent and flexible change management for publishing packages and assets. Publish and deploy from a single asset repository, monorepos, and even multi-language repositories.

Docs

The documentation can be found in the main covector folder. It is placed there that it will be packaged when publishing to npm.

Packages

Below is a list of all of the packages within this repository. The usage and docs are in the main covector folder.

package version changelog
covector npm ./packages/covector/CHANGELOG.md
action git tag, e.g. v0 ./packages/action/CHANGELOG.md
@covector/apply npm ./packages/apply/CHANGELOG.md
@covector/assemble npm ./packages/assemble/CHANGELOG.md
@covector/changelog npm ./packages/changelog/CHANGELOG.md
@covector/command npm ./packages/command/CHANGELOG.md
@covector/files npm ./packages/files/CHANGELOG.md

Prior Art

We drew on inspiration from changesets which specifically focuses on the npm ecosystem with the expectation to publish to npmjs.com. We had a need for much greater flexibility, primarily around additional languages, which changesets wasn't looking to handle. You may notice some similarities around the markdown based change files, and it begins to diverge from there. Since we started the codebase from scratch, it also opened the door for incredibly flexible and unique publishing schemes, deep changelogs, and the ability to publish to any "target" with any "asset" (such as publishing a website, a github action or a vscode extension even!).

Below we other alternatives that we know about or had considered. Some of these have been released after since covector was created. There are also a fair number in the conventional commit ecosystem. If you feel that covector is not the library for your use case, one of these might be.