3.4. Process of making software available for reuse under open licence¶
The process of making software available for reuse is as follows:
- The administration identifies a code hosting tool. Once the tool has been identified, it can be utilised for all software that is to be reused (3.4.1 Identifying a code hosting tool).
- The administration chooses an open licence to use (3.5 Open licences and choice of licence).
- The administration, using its own resources or through procurement, publishes the complete source code of the software and the relevant technical documentation on the code hosting tool. This technological process is described in Annex A: Guide to publishing software as open source, attached to these guidelines. The guide is written in such a way that it can be attached to a tender technical specification, to facilitate the acquisition of a service by entrusting the supplier with the obligations required by these guidelines.
- The administration shall ‘register’ the software on the Developers Italia platform, so that it is indexed by the search engine and made visible to other administrations looking for reusable software.
The process outlined here is valid for existing software owned by administrations (3.6 Releasingexisting software under open licence), as well as for software that will be developed in the future (3.7 Development of softwarefrom scratch).
3.4.1. Identifying a code hosting tool¶
The release of software must be carried out through a code hosting tool, which is specialised in hosting and making distributed software available under an open licence. There are many solutions on the market, both free and commercial.
Since the purpose of Article 69(1) is to encourage reuse between administrations, the tool must follow best practices in terms of functionality for the publication of the source code, in order not to create additional costs for administrations hoping to find and use the software.
In particular, the tool must at least have the following functions:
- Free read access to the source code, without authentication;
- Free and unobstructed registration, open to the public;
- A web interface for viewing and browsing the code and its documentation;
- The use of a version control system with the functionality of managing parallel branches of development;
- An issue tracker system open to the public for read access without authentication and for write access following authentication;
- Implementation of at least one flow for sending modifications, code review and integration of the modification, fully managed by the tool, open to the public;
- A release management system;
- Availability of an API to interface with the tool and extract data and metadata related to the repositories.
To simplify the choice, in Annex A: Guide to publishing software as open source there is a non-exhaustive list of the main platforms on the market that meet the requirements.
Some platforms fully adhering to the minimum parameters are available in SaaS mode (i.e. they can be used directly via the internet without having to install a copy on a server), without any licence cost and without the need to sign contracts or conventions; selecting one of these SaaS platforms is therefore to be considered preferential, in the event that there are no other technical constraints (e.g. integration requirements), so as not to create direct or indirect costs for the administration.
The administration must choose a tool (or tools, where justified for organisational purposes) on which to release all the software it owns. Alternatively, in Annex A: Guide to publishingsoftware as open source,an alternative process is outlined that leaves the choice to the party responsible for developing the software and/or releasing it on behalf of the administration (whether this party corresponds to a resource that is internal or external to the administration).
Once one or more code hosting tools have been selected, the administration must provide adequate visibility of the tools on its web page, as detailed in the same guide (Registration of therepository on Developers Italia).
3.4.2. Registration of open software on Developers Italia¶
Software released by the administration must be ‘registered’ in the search engine of Developers Italia, to facilitate access by other administrations that are looking for reusable software.
The precise technical process for registration is indicated in the section Registering the repository onDevelopers Italia.