Best Practice - tool development
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@pharmazie.uni-freiburg.de Web: http://www.pharmaceutical-bioinformatics.org/
participants (1)
-
Björn Grüning