This is an initial version of the Contribution Guide. Feel free to discuss it and suggest any changes on our discord server.
Before contributing to the project, please read our Code of Conduct.
Before you submit an issue, please search the issue tracker. An issue for your problem might already exist and the discussion might inform you of workarounds readily available.
You can file new issues by selecting an issue template and filling out the necessary information.
If you intend to change the public API, make any non-trivial changes to the
implementation, or create brand-new guides in the documentation, make sure to
create an issue first. This will let us discuss a proposal before
you put significant effort into it. After a proposal has been discussed it may
receive the c-accepted
label indicating that it's ready to
be implemented.
If you're only fixing a bug or a typo, it's fine to submit a pull request right away without creating an issue, but make sure it contains a clear and concise description of the bug.
Before you start working on an issue make sure that it has been accepted
(indicated by a c-accepted
label) and that no one has
claimed it yet. Otherwise, you may duplicate other people's efforts. If somebody
claims an issue but doesn't follow up for more than two weeks, it’s fine to take
it over, but you should still leave a comment. You should also leave a comment
on any issue you're working on, to let others know.
Motion Canvas follows semantic versioning.
- Fork the motion-canvas/motion-canvas repo.
- In your forked repo, create a new branch for your changes:
git checkout -b my-fix-branch main
- Update the code.
- Commit your changes using a descriptive commit message that follows the
Angular Commit Message Conventions. We strongly discourage
using AI to generate commit descriptions. If you believe the description is
not worth writing then it's probably not necessary.
When committing the changes, our git hooks should automatically run Prettier and ESLint for you. If, for some reason, hooks are not supported in your working environement, you can run these tools using
git commit --all
npm run prettier:fix
andnpm run eslint:fix
respectively. - Push your branch to GitHub:
git push origin my-fix-branch
- In GitHub, send a pull request to the main branch and request a review from aarthificial.
After you made a pull request, a GitHub workflow will be dispatched to verify it. There are a few checks that can fail:
Check name | Description |
---|---|
Prepare |
Something bad happened when preparing your pull request for verification. This is most likely a problem with our pipeline so make sure to notify us about it. |
Commit message |
The commit message doesn't follow the Angular Commit Message Conventions. You can ignore this check since maintainers can modify your commit message before merging, but make sure to follow the conventions in the future. |
Lint |
ESLint has failed. Run npm run eslint locally to list the problems. |
Code style |
The code is not correctly formatted. Run npm run prettier:fix locally to fix the formatting issues. |
Build |
The build process failed. Run npx lerna run build locally to see the errors. |
Unit tests |
Unit tests failed. Run npx lerna run test locally to see the which tests are failing and fix them. |
Examples |
The examples failed to build. Run npm run examples:build locally to see the errors. |
E2E |
End-to-end tests failed to build. Run npm run examples:build locally to see the errors. |
Documentation |
The documentation website failed to build. Run npm run docs:build locally to see the errors. |
- Make required updates to the code.
- Create a fixup commit and push it to your GitHub repo:
git commit --all --fixup HEAD git push
Using generative AI to help you write code and documentation is allowed, but use it to enhance your work, not replace it. Pull requests that are a mindless copy of the output of an AI model will be rejected.
After one of your pull requests has been merged, you can receive the Contributor role on our discord server. To do that, create a secret gist on GitHub and DM one of the server moderators with the link. This will let us verify that you're the author of the pull request.
This Contribution Guide was partially inspired by React and Angular.