When releasing software, either directly to end-users or as a library, it is convention to supply a version number. As there is no universal standard which defines version numbers, so it is not always clear how to calculate the number for a particular release. One approach is to use Semantic Versioning, also known as SemVer, which is used by a number of high profile codes including the Ruby programming language.
Here are the slides from the presentation on using Git with CCPForge at the SoFT software engineering workshop at RAL. There is a particular focus on basic operations, and using remote-tracking branches to facilitate the centralised version control model.
Watch this short screencast to get an introduction to the python code analysis tool pylint.
As part of my training as an instructor with Software Carpentry one task is to produce a 3 minute screencast on something related to the aims of that organisation. Since python features heavily in their courses I thought something about software engineering for python would be suitable.
The Software Sustainability Institute (SSI) ran a workshop for research software engineers (RSEs) in Oxford on 12 September 2013. Here are some thoughts that came to mind during the workshop.
Of course there are so many answers to that question from the simplistic to the outrageously formal. In this post I will give an answer that outlines SESCs view and concentrates on being pragmatic.
This is not a hard and fast, text book definition its just one we can work with for now. Software Engineering is:
The use of processes and associated tools to write good quality software that produces excellent scientific results
ack is a great alternative to grep especially when dealing with large trees of heterogeneous source code.
If you find yourself doing something like this often: grep -ri "some text" | grep -v .svn
ack is the answer to your misery!
In this post Ill describe how to generate call graphs for Fortran programs using the doxygen source code documentation tool.
I used version 1.8.3 for this work - you will need a version >= 1.5.6. Note that a complete call graph for the main program is not produced as doxygen treats the program as a module.
This short paper brings together some thoughts on the software engineering needs of ExaScale software development. The work was part of the efforts of Working Group 4.6 (Scientific Software Engineering) of EESI - the European ExaScale Software Initiative. EESI is a Support Action co-funded by the European Commission.
This report describes the design and implementation of a web-based collaborative document review and editing system used to support community driven proposals. The application was written in Python using the Django Web Framework which allowed for rapid development and deployment.
Authors: LS Chin
Reference: SEG Note, SEG-N-013 (March 2011)