Skip to main content

How to Contribute

Setting Expectations​

We're laser-focused on two things:

  1. Helping minimalists manage their schedule and focus, so they can do more of what matters
  2. Being profitable, so that we can continue doing #1 for decades

We're only accepting contributions that help us reach those goals. If you submit a PR that doesn't align with our goals, it will be rejected. The best way to avoid this scenario is to confirm that your proposed changes align with our priorities. You can verify this by reviewing the Roadmap and timeline (more links and details on how to do this below).

If these goals align with your own, we'd love to work with you!

What's in it for you​

πŸ† Recognition (GitHub, changelogs, etc)

What may be offered after consistent excellence:

  • πŸ“ Reference for your next job
  • πŸ“ˆ Compensation
  • πŸ“ˆ Preference for future opportunities @ Switchback (the company behind Compass)

Workflows​

🏁 You're ready to pick up a new task​

  1. Review the roadmap to confirm that the issue you'd like to work on is aligned with our goals
  2. Review the quarterly backlog. This is the view that shows each important issue by the quarter it's planned for.
  3. Review the timeline to confirm that you could finish the issue you'd like to work on before its deadline.
  4. If this is your first time contributing, pick an issue in the Ready state for the next quarter. Working on an issue in the next quarter gives you time to familiarize yourself with the codebase while still working on a priority change. It also gives us the chance to assess the quality of work and your reliability before giving you more responsibility.
  5. Find an issue you'd like to work on. If you can submit a PR for it before the End date assigned to it: ask to have the issue reassigned to you in the issue comments. If you can't finish it on time, find another issue in the next quarter that you could.
  6. Ask any clarifying questions in the issue thread.
  7. Leave a comment stating that you're working on this issue, and share when you'll have the PR ready for review. We will then assign the issue to you. This helps us avoid duplicate work, and ensures that you're on track to meet the End date.
  8. Fork the repository
  9. Create a new branch with a descriptive name
  10. Make your changes, following the coding conventions
  11. Push your branch to your fork
  12. Create a pull request
  13. Wait for feedback. You can continue this process with another issue while waiting for feedback.

🐞 You found an undocumented bug​

  • If the bug is a security vulnerability, please report it here.
  • Ensure the bug was not already reported by searching under the issues
  • If it's a new bug, open a new issue, including as much relevant information as possible.

☝️ You want to add a new feature or dramatically change an existing one​

Larger features or changes that are not already on our Roadmap or in the backlog will most likely be rejected. If you're unsure, open a GitHub issue before you start working. This will help ensure that your work is aligned with the project's goals and that you don't spend time on something that won't be prioritized.

πŸ’… You fixed whitespace, formatted code, or made a purely cosmetic patch​

Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability will generally not be accepted.