By submitting code as an individual you agree to the
individual contributor license agreement.
By submitting code as an entity you agree to the
corporate contributor license agreement.
Thank you for your interest in contributing to Torproxy.
This guide helps make contributing to Torproxy simple and efficient for everyone.
If you are starting out contributing to Torproxy, there might be smaller scoped "starter issues" available: Current starter issues
If you are sure you found a bug and no issue exists yet, please feel free to create an issue following the issue template.
As your time is precious and not all features might be in the scope of what the Torproxy wants to achieve, please open up an issue first.
It would be helpful to answer some questions:
- Why do you need this feature?
- Why do you think it might be valuable for other users?
- How would you implement the feature?
Please help other users whenever you can.
Non technical or user centric support might be available from the community for more information read our support guidelines
Time is precious and sparse, please consider this and search through available issues first.
Treat every participant with courtesy, respect and add as much information when creating an issue or pull/merge request.
All issues and pull/merge requests should be in English and refrain from using any inappropriate language.
Any issues or pull/merge requests not following our code of conduct or any other guidelines provided may be closed without notice out of respect for our volunteers.
Inactive issues or pull/merge requests may be closed after a specific period. This enables us to focus and work on the current/primary items.
Please keep the change in a single pull/merge request as small as possible.
If you want to contribute a large feature think very hard what the minimum viable change is.
The smaller a pull/merge request is the more likely it is it will be merged (quickly).
Afterwards follow-up requests for enhancements are appreciated.
- The change is as small as possible
- Includes proper tests and passes all tests
- Does not break any existing functionality
- Fixes one specific issue or implements one specific feature (do not combine things, send separate requests if needed)
- Contains functionality we think other users will benefit from too
- If the request adds any new libraries, they should have a compatible license.