Sharing Software

Licenses
Software
Author

Esther Plomp

Published

September 2, 2022

Why share your software/code?

  • Accelerates innovation as it is easier to receive feedback that you can learn from and use to improve the software

  • Provide evidence for your scientific claims and increases the reproducibility of your work, as other people can now check the work

  • Saves time and resources when other people do not have to reinvent the wheel

  • Increases impact and visibility of your research (software can also be cited!)

  • Facilitates collaboration

  • Improves sustainability as you’re not the only one who can maintain the software and contributions can be made by community members

  • Open Source Software is encouraged by the UNESCO recommendations

  • Your funder may require you to share the underlying software/code of your publications

  • Your software may be checked during peer review (see Nature Human Behaviour)

  • Your work is probably relying on open source software to a certain degree, so it would be good to contribute back to the community!

TU Delft and Open Software

TU Delft encourages sharing of your software/code and the TU Delft Research Software Policy preapproves the following licenses: MIT, BSD, Apache, GPL, AGPL, LGPL, EUPL, CC0 when you share your software.

When sharing your software you should also share a version of the software using a data repository. You can either use 4TU.ResearchData or another repository to share your software/code:

4TU.ResearchData

  • Log in right top using TU Delft credentials

  • Select ‘Add a New Dataset’:

  • Add relevant metadata in the information fields

  • Under the header ‘Files’ you can find the instructions to publish directly from a Git repository under ‘Software deposit’:

Other repositories

  • Upload your software in another repository (for example: Zenodo).

  • Go to https://pure.tudelft.nl/admin/ and log in using TU Delft credentials

  • Select Datasets/Software -> Software

  • Fill out the metadata in the information fields and add DOI, select license and save the information

Feedback

Before sharing your code/software in a data repository it can be helpful to ask a colleague or collaborator to review it.

Critical elements for usable software (Doherty et al. 2023)

  • License

  • Documentation: Usage examples are an integral part of the documentation that is often ignored, but can make a significant difference for the user. Well-structured documentation such as (https://documentation.divio.com/) is essential for software to be usable.

  • Versioning: If there are multiple releases of code, it should be bundled in releases and accompanied by changelog and release notes.

  • Deployability: There needs to be an installation routine available that takes care of compilation and dependency resolution in an automated fashion (see also executable containers so that users can start immediately).

  • Avoiding proprietary code base: software that depends on licensed code bases creates severe barriers to portability and adoption.

More information