Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Getting started with development
- Read the Themis architecture in depth documentation page, make sure that you understand everything (or at least you start thinking you understand everything).
- Get familiar with the directory structure and the way the system builds.
- Brace yourself for a lengthy session of reading the sources.
- We wrote Themis in portable C code so please try to stick to the coding style you see.
- We achieve OOP-like patterns of passing object context back and forth through all calls of related functions (object methods). The first parameter in every call is an object context pointer. Each object has a "constructor" — object_create method that allocates an object in the memory, initialises it, and returns the pointer for context. Each object also has a "destructor" — object_destroy method that uses object context pointer and correctly destroys its members and frees the memory. Please use this pattern if you'd like to go deeper into the core code.
- We wrote high-level wrappers and examples in the way we think would be the most beneficial for the end-users. However, we're boring system-level programmers who could've missed some important style-related things. So feel free to introduce stylistic changes to anything in the high-level area, just make sure that they work the way they were supposed to initially.
Typical change procedure
- Check out the latest version of the code with
git fetchor do a fork on GitHub.
- Modify the source to fix or improve something. Supply the change with a test, if you can.
- Create a diff of your work and send it to us as a patch or create a pull request if you're on GitHub.
- Wait for the team members to review, accept or discuss the changes you're proposing.
In a perfect world, you would also raise an issue in GitHub Issues to make sure no duplicate work takes place, but that's up to you :)