Skip to content
jaredwrayPublic

About

Cloud Queues with Task and Messages and Multiple Providers

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

2 watching

Forks

Repository files navigation

site/logo.svg

tests GitHub license codecov npm npm

qified

Task and Message Queues with Multiple Providers

This is a mono repo that contains the following packages:

  • qified - The main package that contains the core functionality and a built in in-memory provider.

Additional packages:

Development and Testing

Qified is written in TypeScript and tests are written in vitest. To run the tests, use the following command:

  1. nvm use - This will use the correct node version
  2. pnpm install - This will install all the dependencies
  3. pnpm test:services:start - This will start the services needed for testing (Redis, RabbitMQ, etc)
  4. pnpm test - This will run the tests

To contribute follow the Contributing Guidelines and Code of Conduct.

Publishing

This is a mono repo and uses pnpm for package management. All packages share a semantic version. Releases are staged from GitHub Actions, reviewed in Drydock, then promoted with 2FA. Publish and stage commands live only in .github/workflows/release.yaml — not in published package.json scripts, which ship in the tarball and would look like a tampered release pipeline to artifact scanners.

To do a version bump and publish:

  1. Make sure you have the latest changes from the main branch.
  2. Update the package.json in the root directory with the new version number.
    • If you are making a breaking change, use the major version bump. X.0.0
    • If you are adding new features, use the minor version bump. 0.X.0
    • If you are making a bug fix, use the patch version bump. 0.0.X
  3. Sync the version changes to all packages by running pnpm version:sync.
  4. Copy the root LICENSE into every publishable package by running pnpm license:sync, and commit those files. pnpm pack:packages runs this sync before packing, and the release workflow rejects any tarball that does not contain LICENSE.
  5. Check the changes and commit them to the main branch.
  6. Do a release on GitHub. CI then:
    1. Builds and tests
    2. Packs each package (pnpm pack:packages) so workspace: ranges become real semver
    3. Stages the tarballs with pnpm stage publish --access public --provenance (OIDC; they do not go live)
  7. Review the staged artifacts in Drydock, then promote with 2FA.

License

MIT & © Jared Wray

About

Cloud Queues with Task and Messages and Multiple Providers

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages