Thanks for taking the time to contribute to Harlem! 🎉
The table below has basic information about the project to get you aquainted quickly without having to wade through paragraphs of documentation.
Description | Value |
---|---|
Project Structure | Monorepo |
Preferred IDE | VSCode |
Node Version | 14+ |
Package Manager | Yarn 1.22+ |
Primary Language | TypeScript |
Build Agent | Vite |
Test Runner | Vitest |
Documentation Framework | Vuepress |
Linter | ESLint |
Commit Convention | Angular (Standard) |
- Ensure your node version and package manager match the ones listed in the project specifications
- Ensure your IDE has the recommended extensions installed (ESLint, Jest etc.)
- Clone the repo locally
- Run
yarn install
to install the project dependencies - Run
yarn build
oryarn test
from the root directory to build or test the entire project
Harlem uses a monorepo structure to house the various different packages that are published and makes use of Lerna to handle root-level tasks such as builds and releases.
The key workspace folders are as follows:
- core - The core Harlem package
@harlem/core
- extensions - The extension packages
@harlem/extension-*
. Each extension has it's own folder. - plugins - The plugin packages
@harlem/plugin-*
. Each plugin has it's own folder. - packages - Various other public and private packages such as
@harlem/utilities
and@harlem/task
.
- Create a branch for your contribution in the following format:
feat/my-awesome-feature
orfix/some-critical-bug
. - Add your contributing code. Please respect the code conventions laid out in the ESLint config. Suggested changes to the project structure and conventions are welcome.
- Write any accompanying tests and run a build to ensure everything is in working order.
- Create a pull request.
- Once the pull request is reviewed and approved it will be merged to the default branch.