There are many ways to contribute to Open Babel -- it's a community effort. The project has benefitted significantly from contributions (some small, some large) from many users. Like many open source projects, Open Babel needs contributions of all sorts, not just development of C++ code.
If you'd like to contribute in some way, here are some suggestions, although other ideas are more than welcome.
Possible Non-Coding Contributions
This cannot be stressed enough. Some of the most important contributions to Open Babel do not involve source code at all. Improvements to the website and documentation are some of the highest priorities.
- Help improve the documentation or website.
- Include references to Open Babel in research talks or publications.
- Help with internationalization: translate to Open Babel's messages and errors to a foreign language.
- Supply example files for various formats to the test repository.
- Contact your proprietary software vendors and suggest they contribute to Open Babel or standardize and publish their file format specifications for use by other programs.
- Help compile data, e.g. for molecular fingerprints and rotatable bonds.
- Suggest a needed feature.
- Suggest a needed file format.
- Report a bug.
Possible Code Contributions
Source code contributions are obviously a major motivation for continual improvement of any open source project. Please keep in mind best practices when adding code. This serves to make development easier for others.
- Fix a bug.
- Add additional tests for stress-testing the code.
- Perform "software archeology" tasks for improving the codebase.
- Add a new file format.
- Write a GUI for Linux like the current versions on Windows or iBabel for Mac OS X. (Or even better: a cross-platform GUI.)
- Integrate Open Babel into another program.
- Write Perl or Python scripts using the Open Babel bindings for these languages.
- Port and integrate code contributed for point-group and space group symmetry perception. (in progress)
- Contribute a molecular mechanics force field to assist with coordinate generation and rotamer / conformer evaluation.
- Enhance "lazy perception" by adding subclasses to OBMol.
- Add a requested feature from the tracker.
- Add support for additional data type translation and perception.
- Contribute an item off of the potential roadmap.
In short, we're just getting started. There's still plenty to do. Contact the openbabel-discuss mailing list for more questions, comments, suggestions, etc.