Although Popmotion is run by a single individual, contributions are gladly welcomed!
This guide will run through the types of contributions you can make and how to set the Popmotion repo up, ready for local development.
Open issues can be found on our GitHub issues page.
If you begin working on a bug, post your intent on the issue itself. This will prevent more than one person tackling a bug at once.
If the bug you wish to work on doesn't currently have an issue, make one and label it "Bug".
Before adding any features, open a Feature Proposal as a new issue.
This will let us talk through your proposed API and/or implementation before you spend time on it.
Follow these steps to get your code PR-ready:
- Fork the Popmotion repo.
- Clone your fork locally.
- Run
yarn
in the repo root (install Yarn if necessary). - Add your code and supporting tests.
- If this is a feature that requires doc changes, make as necessary.
- Update
CHANGELOG.md
. - Ensure your changes build by running
yarn build
in the appropriate package directory(s).
Other than Stylefire and Framesync, Popmotion is a monorepo. All Popmotion and Pose packages are contained in the packages
directory.
All code and tests must be written in Typescript.
This flowchart illustrates the Popmotion package dependency tree.
Note: Currently, this illustration depicts popmotion
as not dependent on stylefire
, which isn't currently true. In popmotion@9.0.0
, I'm considering removing Stylefire as a Popmotion dependency.
If you need help, you can reach out to the official Popmotion Twitter account or post a discussion in our Spectrum community.