Making ILRI code open: Software as an International Public Good
1. Making ILRI code open: Software as an
International Public Good
Alan Orth
CKM / RMG / ICT
ILRI Open Access Week Workshop
Nairobi, 23-25 October 2019
2. Open Source Software in a Nutshell
“Open source software is software with source code
that anyone can inspect, modify, and enhance.”
― opensource.com
3. Brief Intro to Open Source Software
• Analogous to open access for publications and data
• “Open source” movement started in the 1970s by
users who wanted to understand, validate, and fix
bugs in the software running on their computers
• Users began collaborating in the open to develop
software and learn from each other
• The Cathedral and the Bazaar published in 1999,
discussed two development methodologies
4. You are probably already using open source software...
Examples of Popular Open Source
Software
For example: R, MediaWiki (Wikipedia), WordPress, Linux,
VLC, Mozilla Firefox, Android, and Chromium.
5. Values of Open Source Software
• Transparency and accountability, especially for
governments and publicly funded organizations
• Continuity for users and communities, especially
when data is stored in open data formats
• Independent verification and reproduction of results
• Avoid the “security by obscurity” promised by closed
source software
“Given enough eyeballs, all bugs are shallow” ― Eric S.
Raymond, The Cathedral and the Bazaar, 1999
6. Licensing of Open Source Software
• Licenses range in the permissiveness of the rights
given to — or restrictions placed on — the user
• Some parallels with Creative Commons licenses
• Most licenses require giving credit (“attribution”)
• Others require providing access to the source code
under the same license as the original (“share alike”)
• Unlike some Creative Commons licenses, open source
licenses do not prohibit commercial activity
• Popular licenses include the GPL, MIT, and BSD
7. ILRI Open Access/Open Data Implementation Plan 2015–2018
• Released in 2015, revised in 2017
• Plan on CGSpace: https://hdl.handle.net/10568/99370
• Section 3.1 recommends using GitHub as the official
repository for ILRI source code
• Section 4.2 recommends using the GNU Public License
version 3.0 (GPLv3)
Guidance for Open Source Software at ILRI
8. Open Source Software at ILRI
• ILRI began using GitHub as an institutional repository
for source code in 2011
• Sixty-three projects currently: https://github.com/ilri
• A few highlights:
• CGSpace: https://github.com/ilri/DSpace
• ADGG: https://github.com/ilri/adgg_v2
• Livegene: https://github.com/ilri/livegene
• CLEANED-R: https://github.com/ilri/CLEANED-R
• IMPACT: https://github.com/ilri/IMPACT
• GOBLET: https://github.com/ilri/GOBLET
Talk to me about putting your project here!
10. Open Source Publishing Best Practices
• A rich “README” file with:
• Explanation of what the software does
• Requirements for installation and use
• Sample data with tests
• How to cite the software (even better if on CGSpace!)
• Acknowledgement of other software your project is using
• Which license the software is available under
• A “LICENSE” file present in the root of the repository
• A few good examples:
• https://github.com/ilri/csv-metadata-quality
• https://github.com/ilri/dspace-statistics-api
11. Beyond Source Code
• Releasing source code is an imperative minimum
• Use “social code” workflows on GitHub, like issues,
pull requests, and wikis
• Publicly document progress of work in blog posts,
wikis, mailing lists, etc
• A few examples:
• CGSpace issues: https://github.com/ilri/DSpace/issues
• CGSpace worklog: https://alanorth.github.io/cgspace-notes
• HPC documentation: https://hpc.ilri.cgiar.org
12. Acknowledgements
Peter Ballantyne for trailblazing “open” at ILRI,
leading to the institutional adoption of Creative
Commons licenses in 2010.
Jane Poole for supporting the use of GitHub and
open source software licenses in research
computing since 2011.
13. This presentation is licensed for use under the Creative Commons Attribution 4.0 International Licence.
better lives through livestock
ilri.org
ILRI thanks all donors and organizations which globally support its work through their contributions
to the CGIAR Trust Fund
Hinweis der Redaktion
This takes for granted that the audience knows what “source code” is. Perhaps briefly mention that programmers use source code like C, C++, Python, PHP, etc to write software.
Main point: the concept is similar to the “open” concepts already used in data and publications.
The Cathedral model, in which source code is available with each software release, but code developed between releases is restricted to an exclusive group of software developers. The Bazaar model, in which the code is developed over the Internet in view of the public using mailing lists or public source code repositories.
Not as obscure or technical as you might think. Examples of popular open source software that are probably on your computer, phone, or in your daily workflow: R, MediaWiki (Wikipedia), WordPress, Linux, VLC, Mozilla Firefox, Android, Chromium.
Regarding reproduction of results: similar to other long-standing traditions in academia where people should be able to independently test and come to the same conclusions.
Regarding continuity: think of students that get hooked on “free” versions of proprietary software like Microsoft Office, MATLAB, Stata, Photoshop, etc during university. After they graduate they unable to afford proprietary software.
Regarding open formats: if Microsoft went bankrupt or started charging $1,000 for Microsoft Office, what would happen to all your work? Should countries store their constitutions and laws in Word documents? The concept of open source software goes hand in hand with open data and open access. Reproducibility. Independent verification of results. Avoiding vendor lock in.
If you are familiar with the Creative Commons licenses like CC-BY, CC-BY-SA, etc, open source software licenses share some of the same concepts.
Stress that, contrary to popular belief, no open source software licenses prohibit commercial activity. Some explicitly grant it.
Mention that we can create groups and invite external collaborators.
A rich “README” file explaining what the software does, how to install it, how to use it, how to cite it, which license it is available under, etc.
A rich “README” file explaining what the software does, how to use it, how to cite it, which license it is available under, etc.
Slightly advanced. Only if I have time to address.