Developers
- Current developments
- [[==]]
- Getting involved
- [[==]]
We strongly encourage participation in the code development.
We want to provide a clear path for collaboration and a transparent process for including patches.
- Git Repository
- Git is the distributed source-code management tool we use.
- Help with this Wiki
- [[==]]
Developer Documentation
- Access The Exciting Input File
- The exciting code uses one input file which is written in XML. To access the data in the input file exciting uses the FoX library. The Fox library can parse the contents of the xml into a Document object model (DOM) which is a representation of the XML-structure in memory.
- Code Format
- Indentation helps to structure source code. In order to reach a standard indentation format over the project there is a make tidy command. It uses emacs fortran formating functionality and indents wit two space characters, leaving the case of the keywords untouched. This was introduced with commit 27300285
- Exciting Development With Git Tutorial
- This exercise is meant to be explored with the help of the online documentation of git http://git-scm.com/ and github.
- Modularity For Physicists
- There is a danger of growing complexity in program code: It becomes spaghetti code. Spaghetti code means that it is not predictable how changes in one part of the code affect any other part of the program (side effects). This this side effects increase debugging time and learning time, until, in the worst case, stagnation is reached. The answer from software engineering is: modularity. There has been written a fair amount of book on this topic. Most books however, directly address object oriented programming. As Fortran doesn't really have objects or classes the terminology is hard to apply. The Core concepts however apply to any language. A good reference with a more abstract view in this field is Hunt2000. Therefor a short review of what modularity may mean for scientific software written in FORTRAN will be given here.
- Release Checklist
- List of things to remember when making a release.
- Writing Input Parameter Documentation
- The input parameters of exciting are defined and documented in the files in the schema directory. These {.xsd} files describe the schema of the exciting input file. The master file is input.xsd. It includes definitions of its child elements via <xs:include/>. The include element is part of the XML Schema language such each of the schema files constitute a valid schema. For some processing, the files have to be combined to one long file. The template schemaexpand.xsl cares for that and the results are stored in excitinginput.xsd. The scripts that generate the documentation expect the sub-schema files to have only one element in their root and that the file is named with the element name. For a more detailed picture se the Step by step howto update input docu