Best Practices

Some best practices for creating submissions and evaluation containers.

Put your code under version control

After you generated a submission or evaluation project, put it under version control! If you are using git, you can so by typing:

git init
git add -A
git commit -m "Initial commit"

And put it on GitHub.

Put the complicated parts of your algorithm in a separate Python package

Although all code and other files that are put inside the src directory are copied to the container, once your code gets complicated, it might be a better idea to create a separate Python package for your code, install it inside the container and call the required functionality from src/run_submission.py or run_evaluation.py.

Have a look at the section on building and packaging Python code in the Netherlands eScience Center Software Development guide to get pointers on how to create a Python package.

Use semantic versioning for your Docker tags

Using semantic versioned Docker tags helps you and others to keep track of what you did. If you use the latest tag for your submission or evaluation, the EYRA Benchmark Platform might fail to use the latest version.

Start with version 0.1.0.

Add an Open Source license to your code

Having a license on your code allows others to inspect and (re-)use your code. This is essential to reproducibility, peer-review, and the ability to build upon others’ work. Do you need more information about software licenses and/or advice on what license to choose? Have a look at these blog posts: