Semaphore Tools and Extensions Monorepo.
Semaphore Extensions is a set of applications, tools and libraries that can be used with the Semaphore protocol. |
---|
♚ Yarn workspaces: minimal monorepo package management (yarn
, yarn build
, yarn docs
)
♛ Conventional Commits: human and machine readable meaning to commit messages (yarn commit
)
♜ Jest: tests and test coverage for all libraries (yarn test:libraries
)
♞ ESLint, Prettier: code quality and formatting (yarn prettier
& yarn lint
)
♝ Typedocs: documentation generator for TypeScript (yarn docs
)
♟ Github actions: software workflows for automatic testing, documentation deploy and code quality checks
Package | Version | Downloads |
---|---|---|
@semaphore-extensions/contracts | ||
@semaphore-extensions/heyauthn | ||
@semaphore-extensions/identity-proof | ||
@semaphore-extensions/identity-proof.circom |
App | URL |
---|---|
benchmarks | https://benchmarks.semaphore.pse.dev/ |
Clone this repository:
git clone https://github.com/semaphore-protocol/extensions.git
and install the dependencies:
cd extensions && yarn
Run ESLint to analyze the code and catch bugs:
yarn lint
Run Prettier to check formatting rules:
yarn format
or to automatically format the code:
yarn format:write
Semaphore uses conventional commits. A command line utility to commit using the correct syntax can be used by running:
yarn commit
It will also automatically check that the modified files comply with ESLint and Prettier rules.
Test the code:
yarn test
Build all the packages:
yarn build
A dist
folder will be created inside each JavaScript package.
Generate a documentation website for each package:
yarn docs
The output will be placed on the docs
folder.
Bump a new version for your package with:
yarn version:bump <package-name> <version>
# e.g. yarn version:bump utils 2.0.0
It will create a commit and a git tag that you'll need to push on the main branch. A workflow will be triggered and will publish your package on npm and release a new version on Github with its changelogs automatically.