We are glad you are here! We want to foster contributions that follow a high standard so please read this entire section.
- ALWAYS make an issue before opening a PR
- If the issue already exists make a PR linked to the issue
- ALWAYS link to the specific issue your PR is solving
- PLEASE DO NOT OPEN A PUBLIC ISSUE ABOUT SECURITY FOR SECURITY ISSUES SEE security.md
- We will make sure it passes all automated checks
- We will make manual quality control checks
- We will allow the community to give feedback and for EVERYONE'S feedback to be resolved (the maintainer(s), votes, and original PR opener(s) will decide what feedback will be considered). This will last for about a week unless the issue is urgent
- The maintainer(s) will decide which version the PR will be included in. The PR will be merged into the version branch.
- Once the version is released your contribution will be live 🎉
- Commit messages should follow the conventions shown out in Conventional Commits
- Branch names should not have article adjectives in them. It is recommended to use the auto generated branch names made by GitHub.
- Do not ignore eslint or type errors this will be checked in CI
- Make sure your code is properly formatted (this should be done automatically in a pre-commit hook)
- Rollup for module bundling
- PNPM for managing dependencies
- Express for the file relay server
- Eslint/Prettier for code quality
- Husky for pre-commit hooks
- Nodemon for a live reloading server
Before these steps make sure you have PNPM and Nodemon installed globally
- Fork this project
- Clone it locally to your machine
- Run
pnpm install
to install dependencies
pnpm dev
Starts and dev server with live reload functionalitypnpm build
Builds the projectpnpm prepare
Starts huskypnpm lint:check
Checks for code quality issuespnpm lint:fix
Lints and writes the changespnpm format:check
Checks if the code is formattedpnpm format:fix
Fixes code style issues
- .github This is where GitHub actions code goes
- .husky This is where all pre-commit code generation goes
- dist This is where the final output of code goes
- src This is where all code that directly impacts the core functionality of the library goes
- client This is where all of the operations and authorization of the package goes
- helpers This is where all functions that will be reused but do not relate to the core functionality of the library goes
- server This is where all code for the file relay server goes
- types This is where global type overrides goes
Please note that becoming a maintainer is different than just contributing. If you would like to become a maintainer start by contributing often with quality contributions. Once you have done that please reach out to [email protected] to become a maintainer. Remember this is NOT a full time job. Just when you have some time to help the community.
Thank you for reading the instructions for contributing. Happy hacking!