Managing Software As Data » History » Version 19

Simon Dixon, 2013-02-25 06:37 PM

1 1 Steve Welburn
h1. Managing Software As Data
2 1 Steve Welburn
3 19 Simon Dixon
For existing software used in research, the appropriate citation, version and source should be documented. This may need to include versions of any libraries required by the software as changes to the libraries might affect the outputs. 
4 17 Steve Welburn
5 17 Steve Welburn
For new software, as for data, the management issues are:
6 13 Steve Welburn
* [[Backing_up|backing up]]
7 13 Steve Welburn
* [[Documenting_data|documentation]]
8 2 Steve Welburn
9 14 Steve Welburn
However, whereas data changes slowly / infrequently, software is subject to ongoing changes during a project. Source code for software usually consists of text files and should therefore be stored in a suitable version control system (e.g. "Mercurial":http://mercurial.selenic.com/, "Subversion":http://subversion.apache.org/, "git":http://git-scm.com/). Binary releases of software may also be created as downloads for a project.
10 2 Steve Welburn
11 15 Steve Welburn
Additionally, software documentation has broader requirements - including both documentation to make the code maintainable (e.g. comments in the code, documenting APIs, Javadoc style documentation) and user documentation to explain how to install and use the software.
12 7 Steve Welburn
13 1 Steve Welburn
The "Sound Software":http://www.soundsoftware.ac.uk project provides software project management facilities for digital music and audio research including Mercurial version control, downloads, documentation, issue lists and wikis through its "code repository":http://code.soundsoftware.ac.uk
14 8 Steve Welburn
15 8 Steve Welburn
Other possible repositories for source code include:
16 8 Steve Welburn
* "Sourceforge":http://sourceforge.net/ (Subversion, git, Mercurial, Bazaar, CVS)
17 8 Steve Welburn
* "Google code":http://code.google.com/ (Subversion, git, Mercurial)
18 8 Steve Welburn
* "github":https://github.com/ (git)
19 8 Steve Welburn
* "bitbucket":https://bitbucket.org/ (git, Mercurial)
20 8 Steve Welburn
21 19 Simon Dixon
The Sound Software project has information on "choosing a version control system":http://soundsoftware.ac.uk/version-control-what-system-to-use and provides a "cross-platform, easy-to-use, graphical client":http://easyhg.org/ for use with Mercurial.