If you have any questions, comments, doubts or concerns, please feel free to reach us at the #otr channel on the OFTC IRC network. We are working on also providing an slack channel for more contact. You can also contact us through our mailing list.
For requests, suggestions and bug reports, please open an issue on our Github, on the appropriate repository. If you want to fix a bug or suggest something, ask for mentoring to Sofía Celi at [email protected]
- Spread the word around OTR and its new version. Tell your friends!
- We always look for examples of how OTR is used or how or how can it be used. If you know, let us know!
Thanks so much for your interest in collaborating!
This guide is not only about collaborating with the OTRv4 protocol; but rather with the whole OTRv4 ecosystem!
The OTRv4 project is divided as follows:
- The OTRv4 core/main protocol, which can be found here.
- The OTRv4 protocol in its interaction with the Prekey Server, which can be found here.
- The OTRv4 main C library (libotr-ng), which can be found here.
- The OTRv4 main Golang library (otr4), which can be found here and here.
- The OTRv4 implementation of the Prekey Server in Golang, which can be found here.
- The OTRv4 implementation of the XMPP Prekey Server in Golang, which can be found here.
- The Prekey Server which can be used for testing. It can be found here.
- The OTRv4 plugin for the Pidgin client, which can be found here.
- The OTRv4 toolkit for checking its properties, which can be found here.
- The ed448-Goldilocks Golang library used by OTRv4, which can be found here.
- The ed448-Goldilocks C library used by OTRv4, which can be found here.
- Recommendations for clients implementing OTRv4, which can be found here.
- A list of OTRv4 properties and papers related to it, which can be found here.
- A draft of OTRv4 XEP, which can be found here.
Knowledge of the OTRv4 protocol is needed, so it is encouraged to read the protocols. Our libraries are manly written in C and in Golang, so you will have some knowledge of them in order to contribute.
You should also have background knowledge of Git. Here is a nice tutorial if you want to learn it.
Our libraries manly work on UNIX-like systems. They are not ready to be used in Windows.
Each OTRv4 repository has their own issues. That is the first step to look into.
- Get the source code of the repository you want to collaborate with.
- Find your way around the source code.
- Find an issue you want to work on. You can also find bugs and related by
yourself!
If this is your first collaboration, find issues which have the
first good issue
label. - Meet the team! Chat with us on the IRC channel or send us an email!
- Propose your patch and get feedback from us!
- Write the code: remember to follow the standards of our source code.
- Test, test and test! Don't forget to test.
- Submit the patch in the form of a pull request and wait for us ;)
- Review, revise and merge. Wait for out input, change what needs to be changed and wait for the merge!
- Congratz! You have your first patch merged!
Remember that you don't have to be a developer to help us. There is help needed on protocols, documents and specifications ;)
This is inspired on Mozillas Community Participation Guidelines.
- Be respectful
- Be direct and honest
- Be inclusive: understand other peoples background
- Have a feedback culture
- Strive for a non-hierarchical work
- Have a teaching culture
Remember, that we have zero tolerance with sexism, racism or any kind of discrimination.
We follow the Rust Code of Conduct and base our ideals on the Citizen Code of Conduct.
If you believe someone is violating the code of conduct in any way, we ask that you report it by sending an email to [email protected] . Don't hesitate to reach us.
You can always use the pseudonym cypherpunks
to report an issue or get in
contact with us in an anonymous way.
If you feel that someone from the OTRv4 community has violated the Code of Conduct or any of the expected behaviors, send an email to [email protected]. The email should contain:
- Names of the people involved or knowledgeable identifiers.
- Description of the incident in the form of:
- Relationship between the reporter/reportee.
We will not question you report; but rather research around it. There is no retaliation that can happen to you if you report. It is your right to report and it is our right to investigate it ;)