Hi all,
I have a few general questions about best practices in tool development
and would like to collect a few opinions.
Maybe the Intergalactic Utilities Commission can discuss some points at
their first meeting.
1. How to handle dependencies that are not guaranteed to exist for a
large time. Sometimes I'm very sceptical about whether upstream will
keep every software version for the next X years, which I will define in
my tools, e.g. some ftp server for binaries or some beta-versions of
actually used software (bowtie2?). Is it possible/wished to create a
repository for such software?
2. How to handle different compiler versions or other system level
changes? For example with the new gcc-4.7 some 'include'-definitions
changed and because of that bowtie2 is not compiling any more. Should we
add a feature to ship patches in our tools for such simple workarounds?
Or should we rather wait for a new upstream version and not support our
tool on such systems?
3. Should we standardize the version numbering of tools to reflect if a
update is important or not?
For example something like foo.bar.baz.
With:
foo = major tool-dependency changing: expected result changes
bar = minor tool-dependency changing due to bug fixing: results can
change but it is not expected
baz = no expected changes in the result due to wrapper changes
(help-text, adding of new parameters, etc.).
I think in the end we need to decide how much effort do we put into
reproducibility over the next X years and how do we guarantee that,
either as Community or as Intergalactic Utilities Commission.
What did you think?
Björn
[1]
http://gcc.gnu.org/gcc-4.7/porting_to.html
--
Björn Grüning
Albert-Ludwigs-Universität Freiburg
Institute of Pharmaceutical Sciences
Pharmaceutical Bioinformatics
Hermann-Herder-Strasse 9
D-79104 Freiburg i. Br.
Tel.: +49 761 203-4872
Fax.: +49 761 203-97769
E-Mail: bjoern.gruening(a)pharmazie.uni-freiburg.de
Web:
http://www.pharmaceutical-bioinformatics.org/