Publishing Software for the Public Sector

All instructions for publishing the software in accordance with the regulations and guidelines.

Why release software for the public sector?

Publishing software for the public administration should not be merely a formality. It is a strategic initiative that allows us to highlight the work that has been done, improve the quality of public digital services, and contribute to a more open, efficient, and collaborative national and European technological ecosystem.

How to Proceed

Whether you are a government agency or a vendor, these steps will help you release software for the public sector: 

Release is a key step in the software lifecycle and must receive the same attention as other aspects such as security and accessibility.

  1. 1

    Define the software license

    Selecting a license is required in order to publish software in accordance with the Agency for Digital Italy’s Guidelines on the Acquisition and Reuse of Software in the Public Administration.

    • Preference should be given to recognized open source (OSI) and Free Software licenses; for the public administration, the EUPL is recommended, as it is recognized and validated at the EU level.
    • The entity must justify any exceptions if it is not possible to publish the software as open source.

  2. 2

    Define the metadata license

    In addition to the code, metadata must also be releaseable and reusable.

    • Metadata is generally published under open and permissive licenses, such as CC BY 4.0 or CC0
    • It must clearly describe: the project name, version, functional scope, responsible administration, technologies used, requirements, documentation, and contact information
    • The quality of the metadata is essential for making the software discoverable and indexable in dedicated catalogs

  3. 3

    Set up the code repository

    Before publication, you must organize the material in a structured manner that complies with the guidelines:

    • Choose a code hosting system or service
    • Register your organization on the Developers Italia portal
    • Publish the software following the guidelines, which include:
      1. A LICENSE file containing the chosen license
      2. A README file with a clear explanation of the solution, prerequisites, and installation instructions
      3. Any technical documentation
      4. Instructions for deployment and for contributing to the project (CONTRIBUTING.md, if applicable)
      5. A changelog to track changes

  4. 4

    Verify code security and quality

    Before publication, it is recommended to perform the following:

    • security scans (static code analysis, dependency checks);
    • checks for known vulnerabilities;
    • technical review of the code and documentation.

    These steps help ensure that the published software is reliable, maintainable, and compliant with public administration security standards.

  5. 5

    Prepare pubbliccode.yml

    To make the software searchable by other public administrations, you must correctly fill out the information form, which is encoded in the publiccode.yml format, with the following:

    • software title
    • functional description
    • link to the repository
    • license
    • contact information for the owning agency
    • category and keywords
    • maintenance status (active, under development, deprecated).

    A clear and complete information sheet facilitates reuse and makes the software more attractive.

  6. 6

    Publish through the government's official channels

    Once the repository is ready, the next step is to publish it through the designated channels:

    • Developers Italia – Reusable Software Catalog. This is the main national reference point. It allows other public administrations to find, evaluate, and reuse the software. Publication requires compliance with AgID guidelines and the presence of a well-structured repository.

    • Thematic catalogs and portals. If the software falls within specific ecosystems (e.g., APIs, interoperability, design systems), it can also be published in their respective catalogs.

  7. 7

    Publish through the government's official channels

    Once the repository is ready, the next step is to publish it through the designated channels:

    • Developers Italia – Reusable Software Catalog This is the main national reference point. It allows other public administrations to find, evaluate, and reuse the software. Publication requires compliance with AgID guidelines and the presence of a well-structured repository.

    • Thematic catalogs and portals If the software falls within specific ecosystems (e.g., APIs, interoperability, design systems), it can also be published in their respective catalogs.

  8. 8

    Verify code security and quality

    Release is not the end goal, but rather the beginning of the solution’s public lifecycle.

    • Regularly update the repository and metadata
    • Release new versions
    • Respond to contributions or reports (issues/pull requests)
    • Maintain transparency regarding the project’s development status

Proper maintenance increases the value of the software and ensures its longevity.

Continue exploring the guides

Last update: