Code Hosting Policies

General Rules

Make sure to publish your code in a version control repository.

  • There are a number of well-known commercial solutions, such as

    They all offer some free options and using them has a number of advantages, e.g.

    • Good and established usability
    • High visibility of you code
    • Low barrier for find-ability and re-use
    • Good integration with other services and solutions

    When using commercial and in particular external services, you must have a backup and data extraction strategy in place, which ensures that you can always move to another solution.

  • There are a number of possibilities to host your own solution

Specific Solutions

On Site

  • Be sure to implement all relevant operational procedures.

GitHub

When using GitHub, implementing a suitable policy is recommended. This should include the following considerations.

Organisations

GitHub organisations can be used to group all repositories of an institution or a research project. It should be clearly stated who is responsible for an organisation, ideally stated on the organisation’s GitHub Page.

Always ensure rights are managed by a sufficient number of people:

  • At least two people should be owner of the organisation. It may be appropriate to have two owners from each institution involved in the project.
  • Create an institutional account. This account becomes owner of all organisations the institution is involved in and makes sure access is granted to all appropriate individual employees.

Organisations should have a policy on who can be a member as well as how repository maintainers and maintenance status are defined and communicated.

Backup

As GitHub is owned by a commercial company (the Microsoft Corporation), the service provided through GitHub is subject to change through corporate development. It is highly recommended to set up an automated backup system, in order to ensure that a copy of all code and metadata (including issues, wikis etc.) exists.

Features

Use the features provided by GitHub, such as issue labels, issue and pull-request templates etc.