How to contribute
If you want to help out with Cadabra, or think you can contribute a useful add-on package or perhaps just a sample notebook or a bit of documentation, you are more than welcome! Even just dropping us a note with some details about what computations you do with Cadabra is a useful contribution, and helps to get a better idea of what people expect from the software.
Sharing your notebooks
If you think you have a nice notebook which could be useful for other people to learn from, please consider sharing it. You can either email it to firstname.lastname@example.org, or use the cadabra2-contrib repository on github.
Get familiar with the software
The first thing to do is to get familiar with how the software works, by playing with the tutorials. Details of the software, including some of the logic that is behind its inner workings, are described in the reference guide, and documentation is available separately for all properties and algorithms. If you get stuck, do not hesitate to post a question on the questions&answers site. If you want to contribute at the level of the C++ core, or if you are simply interested in how things work behind the scenes, you will find the doxygen documentation useful.
Identify something to work on
Most likely you will have used (or will have tried to use) Cadabra for a concrete project, and found that you see room for improvement. This can be as simple as reporting a bug, perhaps even fixing it, or adding a tutorial or other documentation, providing add-on functionality in the form of packages, or helping with the core. We are also always interested to hear about issues installing Cadabra on new systems.
Setup your development environment
Contributions in any form are welcome, but if you want to submit substantial code contributions, it is useful to get familiar with the git version control system. This is used to track software changes over time and to effectively manage contributions from different authors. We also utilise github, a web interface to git, extensively and use it for communication, issue tracking, merging patches (pull requests) and so on. Check out the source code from there and follow the instructions on how to build it.
Source code and documentation
The source code is documented in quite some detail and the resulting Cadabra doxygen documentation is worth consulting if you want to become a developer. This is automatically generated from the latest status of the master branch on github whenever this web site is updated.
You can also generate this doxygen tree yourself in your own working
copy by running
make doc in the project root (not
build folder). The documentation then ends up in
The source code is formatted with the following astyle switches:
--style=k/r --indent=tab=3 --recursive --attach-classes --attach-namespaces --indent-classes --indent-namespaces --break-closing-braces
This is followed by indenting all curly brackets by one tab. All
this is automated by calling
make format from the