Introduction
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make to Karrio are greatly appreciated.
Ways to Contribute
There are many ways to contribute to the Karrio ecosystem:
- Answer Questions: Help other users in GitHub Discussions
- Report Issues: Submit bugs or feature requests through GitHub Discussions
- Improve Documentation: Fix confusing or incomplete documentation sections
- Create Pull Requests: Fix bugs or add new features to the codebase
- Test and Provide Feedback: Try new features and provide feedback
- Spread the Word: Share Karrio with others if you like what we’re doing
Priorities
When contributing to Karrio, we have different priorities for different types of issues:
Type of issue | Priority |
---|---|
Critical bugs (API failures, shipping operations not working) | Urgent |
Core features (carrier integrations, tracking, label generation) | High |
Confusing UX (working but not intuitive) | Medium |
Minor improvements, non-core feature requests | Low |
Developing
The development branch is main
. This is the branch that all pull requests should be made against. The changes on the main
branch are tagged into a release periodically.
To start developing locally:
- Fork the repository to your own GitHub account and then clone it to your local device
- Create a new branch:
git checkout -b MY_BRANCH_NAME
- Follow the setup instructions in the Local Development guide
Building and Testing
You can build the project with:
For server components1source ./bin/setup-server-env 2 3# For UI components 4npm i 5 6# Start the development 7npm run dev
Running Tests
To run and test all flows:
For SDK tests1./bin/run-sdk-tests 2 3# For server tests 4./bin/run-server-tests 5 6# For a specific carrier integration 7# python -m unittest discover -v -f modules/connectors/[carrier_extension]/tests 8python -m unittest discover -v -f modules/connectors/fedex/tests 9 10# For a specific server component 11# karrio test --failfast karrio.server.[component].tests 12karrio test --failfast karrio.server.core.tests