SVGR is a small project, it is widely used but has not a lot of contributors. We're still working out the kinks to make contributing to this project as easy and transparent as possible, but we're not quite there yet. Hopefully this document makes the process for contributing clear and answers some questions that you may have.
We expect project participants to adhere to our Code of Conduct. Please read the full text so that you can understand what actions will and will not be tolerated.
All work on SVGR happens directly on GitHub. Both core team members and external contributors send pull requests which go through the same review process.
The SVGR repo is a monorepo using pnpm workspaces and Lerna. The package manager used to install and link dependencies must be pnpm. Note that website still uses npm, as there are some errors reported when using pnpm in gatsby.
You can use Gitpod(An Online Open Source VS Code like IDE which is free for Open Source) for contributing online. With a single click it will start a workspace and automatically:
- clone the
svgr
repo. - install dependencies in '/':
pnpm install
- install dependencies in '/website':
npm install
- run
pnpm run dev
in/
. - run
npm run dev
in/website
to start the dev server.
Before submitting a pull request, please make sure the following is done…
-
Fork the repo and create your branch from
main
. A guide on how to fork a repository: https://help.github.com/articles/fork-a-repo/Open terminal (e.g. Terminal, iTerm, Git Bash or Git Shell) and type:
$ git clone https://github.com/<your_username>/svgr $ cd svgr $ git checkout -b my_branch
Note: Replace
<your_username>
with your GitHub username -
Run
pnpm install
andpnpm run build
. -
If you've added code that should be tested, add tests. You can use watch mode that continuously transforms changed files to make your life easier.
# in the background pnpm run dev
-
If you've changed APIs, update the documentation.
-
Ensure the linting is good via
npm run lint
.$ pnpm run lint
-
Ensure the test suite passes via
npm run test
.$ pnpm run test
We will be using GitHub Issues for our public bugs. We will keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new issue, try to make sure your problem doesn't already exist.
The best way to get your bug fixed is to provide a reduced test case. Please provide a public repository with a runnable example.
Please follow the .prettierrc
in the project.
This project exists thanks to all the people who contribute.
Thank you to all our backers! 🙏
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
By contributing to SVGR, you agree that your contributions will be licensed under its MIT license.