Development

Discussion of ASE development takes place on the AICCM developers mailing list. We welcome new developers who would like to help work on improving AICCM. If you want to join the AICCM development team, please send an e-mail to Michael (mpei) with a short description of the feature you want to implement and your programming experience.

Mailing List

The address of developers mailing list is developers at aiccm.de.

Developers

AICCM is developed by Michael F. Peintinger (mpei) at the Mulliken Center for Theoretical Chemistry at the University of Bonn with contributions (in alphabetic order) from

You can send e-mails to the developers by using the nickname in brackets at aiccm.de.

Documentation of the source code

The documentation of the source code is automatically generated with epydoc using Python docstrings. It will be available online, located here shortly after the first release of the source code. Developers who already obtained the source code can generate the documentation directly from the source code. The version of epydoc shipped with some distribution might contain bugs, like in the latest version of Ubuntu. It is highly recommended, that you use the latest of version from svn.

http://epydoc.sourceforge.net

Planned Features and Features under Development

Please take a look at the bugtracker!

Coding Conventions

Please use the camelCase notation with first letter lower case for local and method definitions. Class definitions start with upper case. In the case you have two upper case expression following, underscore is allowed.

Example: >>> writeWSC_BFNG

Underscore should be used with file names.

Example: >>> converger_diis.py

The rules for the Python code are identical with those used by the ASE.

  • Importing Modules

There are two different kinds of imports. In scripts a wild import is recommended. For example to get all symbols from the ASE use:

>>> from ase import *

In classes of AICCM no wild imports must be used. To import exactly what is needed use:

>>> from diis import DIIS
  • Respect Python Coding Conventions

Especially indentions! Use 4 spaces per indentation level. No hard tabs.

  • PEP 8 – Style Guide for Python Code

http://www.python.org/dev/peps/pep-0008/

Python 3 Strategy

  • Currently the main focus lies on Python 2.7
  • We maintain one codebase for Python 2.X and 3.X
  • All code must be written Python 3.X compatible
  • We switch to Python 3.X when Ubuntu does

Commiting changes

  • You can clone the git repository using this command:
>>> git clone git@aiccm.de:aiccm.git
* Pull changes of branch "BRANCH" from the server using:
 >>> git pull BRANCH
* Commit your changes to the repository on the server using the push command:
>>> git push BRANCH

Development Tools

  • Eclipse and PyDev, Vim or EMacs
  • Git (Fast Version Control System)
  • Sphinx: generation of the manual
  • RsTEd - Restructured Text Editor: Used for writing the manual
  • Epydoc: documentation of the source code