Development

Some information for those interested in contributing.

Generally, the framework should be able to run in any JavaScript runtime. However, development happens primarily in Bun, because I really like Bun for my own projects & dapps. Bun is the runtime, package manager, and test runner, and can even serve as a bundler with built-in plugins support and server.

Clone and install the project with:

git clone https://github.com/Kiruse/apophis-sdk.git
cd apophis-sdk
bun install

Run unit and integration tests with:

cd packages/core
bun test

We have some scripts to aid in package management:

  • vertool.sh helps manage versions. Whenever you make a change and are ready to release, use this tool to keep them in sync across all Apophis SDK packages.

  • build.sh is a rudimentary build helper, with a hard-coded semblance of build order. Since this is a monorepo with internal cross-dependencies, the project must use TypeScript's incremental builds. You can clean these builds with ./build.sh clean.

  • publish.sh is a rudimentary publishing helper. For local testing in another project, we use a Verdaccio private local registry. By default, it publishes to this local registry. Call ./publish.sh npm to publish to NPM, accordingly.

  • localreg.sh is a simple helper for managing the aforementioned Verdaccio private local registry. It has subcommands init, start, stop, and clean.

Last updated