Skip to content

Repository files navigation

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

Projects Using Covector

These projects run covector. Each one lists its config, then the version job, the publish job, and the PR status or meta jobs.

Publishing to crates.io and npm

tauri-apps/tauri: Desktop and mobile apps with a Rust core and a TS layer. It is the multi-language setup covector was built for.

  • Config: dual rust and javascript managers, uses custom change tags that shape the changelog.
  • Version: on push to dev, change files trigger a version bump into an "Apply Version Updates" PR whose body is the assembled change summary.
  • Publish: once no change files remain, the same workflow publishes to crates.io and npm with provenance, cuts GitHub releases, and kicks off the downstream CLI publishing workflows.
  • Status / fork: comments the pending changes on every PR; the fork job re-posts via workflow_run since GITHUB_TOKEN can't comment there directly.

tauri-apps/plugins-workspace: 30+ official plugins, Rust crates and npm packages versioned together.

  • Config: each package lists its dependencies so bumps cascade through the graph in order.
  • Version: on push to v1 or v2, change files become a version bump PR.
  • Publish: when the change files are gone, every crate and npm package with changes is published.
  • Status / fork: comments the pending changes on every PR.

tauri-apps/wry: the WebView library and tauri-apps/tao: the windowing library for Tauri.

Publishing to npm

thefrontside/simulacrum. Foundational elements to write simulators to mimic real APIs. Includes Auth0 and the GitHub API simulators.

  • Config: npm publish with provenance, a postpublish check that each package actually landed on the registry, and a custom housekeeping bump type for chores.
  • Version: on push to main, change files direct generation of a draft version PR.
  • Publish: when the change files are gone, pnpm publish goes out with provenance and a preview tag where configured.
  • Meta: posts the pending changes on PRs including forks via workflow_run.

Publishing for Deno through git tags

thefrontside/interactors. Deno packages. Covector never touches a registry here; it pushes tags which trigger a Deno release within JSR.

  • Config: swaps the publish step for git tag commands and reads published versions back from the tag list.
  • Version: on push to main, change files become a version PR.
  • Publish: the publish leg cuts and pushes a pkg-vN.N.N tag per package, expecting that push to trigger the deno publish.
  • Status comments the pending changes on PRs, and a fork job re-posts them via workflow_run.

Deploying a site and desktop binaries

jbolda/finatr. One repo, two targets. The web package deploys to Netlify, the app package ships Tauri binaries to a GitHub release.

  • Config: points each package at its target and marks app as depending on web so it versions second.
  • Version: the version-or-release job bumps into a version PR on push to next.
  • Publish: when it's time to publish, tauri-action builds the desktop app across four platforms onto the GitHub release, then publish deploys the site with netlify-cli.
  • Status: comments the pending changes on PRs.

Using covector in your project? We would love to hear about it!

About

Transparent and flexible change management for publishing packages and assets.

Topics

Resources

Code of conduct

Contributing

Stars

89 stars

Watchers

6 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages