Closed gvwilson closed 7 years ago
Thanks to our pre-print reviewers: jon_petters, morungos, froggleston, JungeAlexander, apmasell, michaelhoffman, Moran Neuhof, Spencer Smith, Radovan Bast, Patrick O'Beirne, Phillip Lord , Konrad Hinsen, Emily Davenport, ctitusbrown, aurelg
If I've missed you or misinterpreted your comments, please leave a comment and let us know.
On what "Robust" means
Different disciplines
0. Introduction
1. READMEs
2. Usage
3. Version number
4. Older versions
5. Reuse software
6. No root
7. No hard-coding
8. Parameters
9. Test sets
10. Identical results
11. Conclusion
Code documentation.
Reference suggestions:
Other suggestions:
Allowing/promoting community contributions
A couple of comments that I didn't find covered above (though may have overlooked):
TMPDIR
, and/or don't use the language's built-in API for creating temporary files. Or they do but assume every user already knows how to control where temp files are put. As a result, shared compute machines are frequently rendered unusable for everyone because someone ran some program that filled up /tmp (which, especially on an HPC cluster, is often quite limited in size). Another one is not clearly separating output between stdout
and stderr
. Or not using exit codes to indicate error status. And of course parsing command line arguments with custom code rather than using the language's built-in API (though I suppose that would go under Reuse).I don’t think I belong on this thread, though it is very interesting.
-MH
On Sep 29, 2016, at 8:36 AM, Hilmar Lapp notifications@github.com<mailto:notifications@github.com> wrote:
A couple of comments that I didn't find covered above (though may have overlooked):
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/oicr-gsi/robust-paper/issues/20#issuecomment-250502674, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJNO9N4xMY5BIFYHRMijqBc5HuzMmoVxks5qu9rsgaJpZM4J6wTH.
@michaelhoffman Sorry about that. It was a Twitter handle/GitHub name overlap.
No problem! Just thought you'd like to include the intended "Michael Hoffman"
-MH
This was sent from my phone. I blame autocorrect.
On Sep 29, 2016, at 10:21 AM, Morgan Taschuk notifications@github.com<mailto:notifications@github.com> wrote:
@michaelhoffmanhttps://github.com/michaelhoffman Sorry about that. It was a Twitter handle/GitHub name overlap.
You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/oicr-gsi/robust-paper/issues/20#issuecomment-250533193, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AJNO9IibZ64GaOaZVoourkhzwHMRNAv-ks5qu_NxgaJpZM4J6wTH.
Closing this issue as a pre-submission thread. Please open a new issue if you'd like to address these comments further.
The submitted manuscript seems to lack acknowledgments, including to this thread. Intention or oversight? And most of the above feedback seems to have gone neither into a rule nor into "What was left out". Intention or oversight?
Good point about the acknowledgements. We should definitely add a section. That was an oversight.
We definitely took all of the feedback into account. You can see the diffs and our discussion in pull requests here: https://github.com/oicr-gsi/robust-paper/pull/21 and https://github.com/oicr-gsi/robust-paper/pull/22.
I looked at your feedback in particular. We agree with each of your points about memory leaks and checkpointing, but we decided those topics are beyond the scope of "simple rules". These rules are intended to be made on software in order to make code reuse simpler and more straightforward, not necessarily to make it the best software out there. Randomly, the term "robust" in this paper is probably a misnomer on our part. We took your suggestion about combining versioning and old versions sections, and we also incorporated your feedback regarding checking input values into the second part of rule 9.
Randomly, the term "robust" in this paper is probably a misnomer on our part.
Perhaps. As a reviewer, one of my major comments would be that the set of rules conflates robustness to run ("use") and robustness to "reuse". E.g., software can run quite robustly even if it has no tests at all that a user would be able to run. For example, the quoted mkdir
doesn't come with tests that execute when it's installed (most installations are from binary, and this is no different for scientific software).
Personally, I feel these are better separated than commingled, even though I believe quite strongly that collaboratively developed software tends to be much more robust than software developed by a single individual. But the manuscript isn't putting up develop collaboratively as a rule (which is fair enough), and arguably individually developed software need not lack robustness.
we also incorporated your feedback regarding checking input values into the second part of rule 9.
I see. I didn't recognize that when I read that section. (And checking user input is not specifically mentioned as to what is most useful to test to improve robustness -- certain tests contribute to robustness much more than others.)
We welcome feedback on this draft - please either:
robust-software.tex
(by preference) orindex.md
.