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/ |
| Explorer | https://explorer.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.