diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c46ae4d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,35 @@ +# http://editorconfig.org + +# A special property that should be specified at the top of the file outside of +# any sections. Set to true to stop .editor config file search on current file +root = true + +[*] +# Indentation style +# Possible values - tab, space +indent_style = space + +# Indentation size in single-spaced characters +# Possible values - an integer, tab +indent_size = 2 + +# Line ending file format +# Possible values - lf, crlf, cr +end_of_line = lf + +# File character encoding +# Possible values - latin1, utf-8, utf-16be, utf-16le +charset = utf-8 + +# Denotes whether to trim whitespace at the end of lines +# Possible values - true, false +trim_trailing_whitespace = true + +# Denotes whether file should end with a newline +# Possible values - true, false +insert_final_newline = true + +# Verbatim legal text, reproduced exactly as published. Its roman-numeral +# hanging indents are not ours to normalise. +[LICENSE] +indent_size = unset diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..e7a7433 --- /dev/null +++ b/.envrc @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# shellcheck disable=all # https://devenv.sh/integrations/direnv/#configure-shell-activation + +eval "$(devenv direnvrc)" + +# You can pass flags to the devenv command +# For example: use devenv --impure --option services.postgres.enable:bool true +use devenv diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..07f0059 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,58 @@ +name: Lint + +on: + push: + # Kept in step with render-docs.yml's trigger list: a branch worth rendering + # is a branch worth linting. Nothing here depends on which branch publishes. + branches: [main, develop] + pull_request: + +permissions: + contents: read + +# Deliberately not the `pages` group that render-docs.yml uses: linting does not +# touch the deployment, and sharing that group would queue every lint run behind +# a publish. +concurrency: + group: lint-${{ github.ref }} + cancel-in-progress: true + +jobs: + git-hooks: + runs-on: ubuntu-latest + steps: + # The hooks read the index, not just the work tree -- check-asciidoc and + # site-index.sh both call `git ls-files` -- so this needs a real checkout. + # Full history is not needed: every hook looks at the tree as it stands. + - uses: actions/checkout@v7 + + - name: Install Nix + uses: cachix/install-nix-action@v31 + + # Pulls the prebuilt devenv closure instead of compiling it on the runner. + - name: Use the devenv binary cache + uses: cachix/cachix-action@v17 + with: + name: devenv + + - name: Install devenv + run: nix profile install nixpkgs#devenv + + # `prek run --all-files` rather than `devenv test`: devenv reports only + # that the git-hooks task failed, without saying which hook or why, even + # with tasks."devenv:git-hooks:run".showOutput set. Running prek directly + # prints the per-hook result and the offending lines, which is the whole + # point of having this job. + # + # --show-diff-on-failure matters because several of these hooks fix the + # file rather than just complaining (end-of-file-fixer, dos2unix, + # trim-trailing-whitespace, nixfmt). Without the diff, CI would report + # "files were modified by this hook" and show nothing else. + # + # `--option env.cicd:bool true` drops the interactive-only packages, most + # of which is VS Code. Without it this job would download the whole + # editor closure on every push just to run the hooks. + - name: Run every git hook over every file + run: | + devenv --option env.cicd:bool true \ + shell -- prek run --all-files --show-diff-on-failure diff --git a/.github/workflows/render-docs.yml b/.github/workflows/render-docs.yml new file mode 100644 index 0000000..c61e5cd --- /dev/null +++ b/.github/workflows/render-docs.yml @@ -0,0 +1,232 @@ +name: Render docs + +on: + push: + # `on:` is the one block where expressions are not allowed, so this list + # cannot itself be driven by PAGES_PUBLISH_BRANCH (see `env:` below). Read + # it as the set of branches CI may *run* on; the variable picks which one of + # them *publishes*. A branch missing from here triggers nothing at all, so + # pointing the variable at a new branch means listing it here as well. + branches: [main, develop] + # Docs releases only. `open-govpress-v*` tags the renderer binary released + # from this repo (see GOVPRESS_URL below), and must not publish a docs + # archive of its own -- `v*` excludes it by construction. + tags: ['v*'] + pull_request: + +permissions: + contents: read + +concurrency: + group: pages + cancel-in-progress: false + +env: + # Keep in sync with devenv.nix's govpressVersion/govpressUrl/govpressSha256. + # Fetched from a GitHub Release rather than committed to the repo: at + # ~112MiB it clears GitHub's 100MB hard limit on regular git objects, and + # this repo is a fork, which GitHub's LFS policy blocks from uploading + # *new* LFS objects at all -- release assets hit neither limit. + GOVPRESS_VERSION: "0.0.19" + GOVPRESS_URL: https://github.com/736-c41-2c1-e464fc974/opensource-guidelines/releases/download/open-govpress-v0.0.19/open-govpress-0.0.19-linux-x64.tar.gz + GOVPRESS_SHA256: 946c7f187ec1eb109681e89cbd9aebcba869e560df8f7493ddbecd3540a9b679 + + # Which branch owns the published site. Set the repository variable + # PAGES_PUBLISH_BRANCH (Settings -> Secrets and variables -> Actions -> + # Variables) to move publishing to another branch without editing this file; + # unset means `main`, so the default is the behaviour this workflow has always + # had. Tags publish regardless -- a release archives itself whatever branch is + # currently the published one. + # + # Carried into tools/site-publish.sh, which re-checks it rather than trusting + # the caller, and on into tools/site-archive.sh, which names the branch on the + # archive page. + PUBLISH_BRANCH: ${{ vars.PAGES_PUBLISH_BRANCH || 'main' }} + +jobs: + # One job per language. Every document carries all five languages in one + # file, so the same sources are rendered five times, each pinned with + # `--lang`, into a directory of its own -- `-o
| - Open source software - | -
- Software is considered open source software (OSS) when it is published underone of approximately 80 licences recognised by the Open Source Initiative OSI [OSI2019]. Specifically, the definition of open source sets out ten criteria that all open source licences must meet [PE1999]. These can essentially be summarised in four points:
- -
|
-
| - Free software - | -- Before the term 'open source', the Free Software Foundation (FSF) introduced the concept of 'free software' in the 1980s.In essence, free software meets the conditions of open source software, but aims to ensure that the software is always freely accessible and, wherever possible, is not integrated into proprietary software.⁶ - | -
| - Proprietary software - | -- With proprietary software, a supplier develops software and sells a usage licence to the user. Generally, the user does not know the software code and may not redistribute or modify the software. They can only use the software according to the licence terms (e.g. End-User Licence Agreement, EULA) in return for payment of licence fees. For example, the software may be authorised to be used by only a certain number of users or a certain number of processors.⁷ In return for the usually annual maintenance fees, the supplier commits to fixing errors within a reasonable timeframe and to continuously developing the software. - | -
| - Licence - | -- A licence is a document that contains binding guidelines for the use and distribution of software. In the case of open source, licences that comply with OSI are usually used.⁸ - | -
| - Community - | -- A community in the context of open source software is broadly defined. It can be a loose ecosystem or a structure with governance that develops the software. The document Em002-4 OSS Community Guidelines covers this topic. Community members can jointly manage the product, develop, test, translate, provide feedback or simply use the software. - | -
| - Third-party rights - | -- Even with open source software, protective rights may exist (copyright, trademark law, patent law) and can be asserted by third parties, e.g. when using source code created by third parties. - | -
| - Exceptions under EMOTA - | -- Exceptions according to Art. 9 para. 1 EMOTA include third-party rights and security-related reasons. Both are covered in Section 3 of Em002-2 Instructions for Publishing Open Source Software. - | -
| - Open source software - | -
- Software is considered open source software (OSS) when it is published underone of approximately 80 licences recognised by the Open Source Initiative OSI [OSI2019]. Specifically, the definition of open source sets out ten criteria that all open source licences must meet [PE1999]. These can essentially be summarised in four points:
- -
|
-
| - Free software - | -- Before the term 'open source', the Free Software Foundation (FSF) introduced the concept of 'free software' in the 1980s.In essence, free software meets the conditions of open source software, but aims to ensure that the software is always freely accessible and, wherever possible, is not integrated into proprietary software.⁶ - | -
| - Proprietary software - | -- With proprietary software, a supplier develops software and sells a usage licence to the user. Generally, the user does not know the software code and may not redistribute or modify the software. They can only use the software according to the licence terms (e.g. End-User Licence Agreement, EULA) in return for payment of licence fees. For example, the software may be authorised to be used by only a certain number of users or a certain number of processors.⁷ In return for the usually annual maintenance fees, the supplier commits to fixing errors within a reasonable timeframe and to continuously developing the software. - | -
| - Licence - | -- A licence is a document that contains binding guidelines for the use and distribution of software. In the case of open source, licences that comply with OSI are usually used.⁸ - | -
| - Community - | -- A community in the context of open source software is broadly defined. It can be a loose ecosystem or a structure with governance that develops the software. The document Em002-4 OSS Community Guidelines covers this topic. Community members can jointly manage the product, develop, test, translate, provide feedback or simply use the software. - | -
| - Third-party rights - | -- Even with open source software, protective rights may exist (copyright, trademark law, patent law) and can be asserted by third parties, e.g. when using source code created by third parties. - | -
| - Exceptions under EMOTA - | -- Exceptions according to Art. 9 para. 1 EMOTA include third-party rights and security-related reasons. Both are covered in Section 3 of Em002-2 Instructions for Publishing Open Source Software. - | -
| - Source code - | -- In computing, source code (or source text) is the human-readable text of a computer program written in a programming language.⁹ - | -
| - Publication - | -- Publication primarily refers to the release of the source code under an open licence according to OSI. For practical reasons, this usually also includes documentation and automated instructions for building the application from the source code. Automated tests and test documents are also typically included. To enable a community to develop, a platform is used that then takes on several functions of a development platform (build, test, support). - | -
| - Digital -sovereignty - | -- We use the definition from the FDFA's Digital Sovereignty Report [St2024]: 'Digital sovereignty of a state or organisation necessarily includes complete control over stored and processed data as well as independent decision-making about who may access it. It further includes the ability to independently develop, modify, control and supplement technological components and systems.' - | -
| - Repository - | -- A repository is a storage location used by a version control tool for files and metadata about the code base. -Repositories allow multiple contributors to work on the same files and store different versions. Most also allow issue tracking, release management, automated builds and documentation. - | -
| - Fork - | -- A fork[^10] of an open source project is the process of setting up an independent development of the original project. - | -
| - Contributor Licence Agreement (CLA) - | -- A Contributor Licence Agreement1 is a document that describes the conditions under which intellectual property can be contributed to a project or venture. - | -
| - Source code management (SCM) - | -- Source code management,1 also known as version control, is a tool that effectively manages changes and version numbers, particularly in software development. The free software Git2 for managing distributed SCM has become established. - | -
| - Open source software development (OSSD) - | -- In open source software development (OSSD),1 in addition to publishing the source code, the entire development process is carried out publicly. Everything from requirements (issues) to source code is transparent. OSSD is supported by public communication tools (mailing lists, forums, etc.), a version control system (git), bug and feature lists, roadmap and developer tools. - | -
| - Software Package Data Exchange (SPDX) - | -- Software Package Data Exchange (SPDX)1 describes a standard format for Software Bill of Materials (SBOM) with the aim of facilitating the correct handling of free software or open source software. - | -
| - Copyleft effect - | -- If software is under a licence with a copyleft provision, any modification or extension of the source code must be released again under the licence of the modified open source software (see also Em002-3 OSS Licensing Guidelines ). - | -
| - 1. Digital sovereignty - | -- This involves the ability to use and control digital services. Digital sovereignty extends over the entire lifecycle of a digital system. Open ource software promotes digital sovereignty, as it guarantees interchangeability, design flexibility and influence.[^16] - | -
| - 2. No licence fees - | -- There are no licence costs for using open source software. However, when obtaining complex standard open source software packages, it may make sense to purchase support subscriptions, for which a fee is paid. - | -
| - 3. Cost savings through cooperation with other users - | -- As software under an open source licence can be used and further developed without restriction, costs of further developments can be shared or existing additional developments from other administrative units can be adopted according to the principle of 'develop once – use multiple times'. At the same time, there is the opportunity to benefit from the experience and developments of others. - | -
| - 4. Community building & knowledge sharing - | -- Open source software facilitates community building and knowledge sharing, for example between the different federal levels in Switzerland. Software can be jointly further developed, errors fixed and individual experiences shared. The increased exchange of knowledge between different administrative units leads to a better understanding of what others are working on, so that duplication is avoided and the best solutions can spread. - | -
| - 5. Lower dependence on manufacturers - | -- Vendor lock-in (dependency on software suppliers) is considered very high in computing. Using software under an open source licence reduces vendor lock-in as operation, maintenance, support, further development and other services for open source software can be openly tendered. Instead of completely re-procuring an entire system due to vendor lock-in, extensions or lifecycle services for an OSS solution can also be put out to tender separately. This can save significant migration costs. - | -
| - 6. Open standards and interoperability - | -- With open source software, compatibility with other software solutions and IT systems (interoperability) is generally higher than with proprietary software. Open source solutions also use almost exclusively open data formats, which is why they can be easily exchanged with other systems. - | -
| - 7. Transparency about the structure of the software - | -- As the software is also available in the form of source code, its quality can be checked, for example, through external reviews. In addition, documentation can be created based on the source code (e.g. with regard to new tenders for further development services or the replacement of open source software at the end of its service life). - | -
| - 8. Security and trust through transparency - | -- Because of the open nature of the source code, the security of open source software can be higher than that of proprietary software. Moreover, it is much more difficult to build backdoors and other loopholes into open source software, which leads to more trust in the software. - | -
| - 9. Higher quality and modularity of code - | -- The quality of open source software can be higher than proprietary software because the motivation to write good code may be greater when developers know that their source code will be published. In addition, open source solutions tend to be highly modular, so that individual modules can be easily replaced and the remaining modules can continue to be used.[^17] - | -
| - 10. Easy customisation - | -- Access to the source code allows users to make further developments themselves or through external suppliers. This means the software can be quickly adapted to their own needs. - | -
| - 11. Rapid innovation and integration - | -- There is rapid, continuous further development of open source software by the community. For example, new technologies and data standards are often published as open source programming libraries. This enables the rapid realisation of innovative software solutions. - | -
| - 12. Employer attractiveness - | -- The use of modern open source technologies and informal collaboration with international communities promotes employee motivation and thus increases employer attractiveness, which in turn facilitates the recruitment of young, qualified professionals. - | -
| - 1. High switching costs due to existing dependencies - | -- Replacing proprietary software with open source solutions can be very costly if the application is closely embedded in the existing IT system through interface integration or other dependencies. These switching costs mean that introducing open source software often only pays off at the end of the proprietary software's lifecycle. - | -
| - 2. Missing features or no suitable open source solution - | -- When procuring standard software, it may happen that there is no open source software alternative to the (previous) proprietary solution, or only one that is functionally inadequate. As a solution approach, there is the possibility of jointly developing the missing features together with other users of the open source software and adding them to the open source project.[^18] - | -
| - 3. Higher integration costs - | -- Short-term cost savings resulting from licence savings when using open source software are often offset by higher integration costs. Therefore, it is important to recognise that the professional use of open source software is not 'free' but actually generates internal or external costs. - | -
| - 4. Unclear responsibilities and support - | -- Open source software is often criticised for the lack of support and maintenance by external companies. However, there are now a variety of suppliers offering commercial services (long-term support, ongoing maintenance, further development, liability and warranty, etc.) for open source solutions. The different business models with open source software are explained in Annex D and the different support models in Section 8. An up-to-date overview of open source service providers and their services can be found in the Open Source Directory (https://www.ossdirectory.com) or in the OSS Study 2024[^19] [OSS2024] . - | -
| - 5. Small market with few suppliers - | -- As certain open source applications, such as desktop applications, generally require little or no support and maintenance, there may be little market for open source providers of support and maintenance. In this case, a tendering process for open source software services can help to create a market that increases competition between suppliers. The existence of a broad development community for the software in question and the quality of the development documentation are of practical importance when tendering for such services. - | -
| - 6. Low visibility - | -- Communities of open source projects focus primarily on product development and rarely on marketing. In contrast, manufacturers of proprietary software invest heavily in marketing and selling their products. This lack of advertising for open source software often creates the false impression that there is no alternative to proprietary products. However, there are platforms such as alternativeTo1 that provide an overview of solutions for specific tasks (more on OSS alternatives in Section ). - | -
| - 7. Lack of acceptance by end users - | -- Due to different user interfaces, missing functions, low user-friendliness and little advertising for open source software, there is a lack of acceptance by end users for certain open source products. Appropriate communication, documentation and training offerings can counteract this challenge. The fact that open source software can be further developed according to users' needs can also lead to higher acceptance. - | -
| - 8. Little or no in-house expertise - | -- Open source solutions evolve rapidly and at the same time require in-depth technical understanding. Thus, it may happen that internal employees have little or no expertise with certain open source software. In-house OSS know-how can be built up through further training and opportunities for self-study via online sources and building in-house wikis, etc. - | -
| - 9. Difficult future assessment - | -- It is often difficult for outsiders of an open source community to recognise how the project will develop in the future. Therefore, it is important to be able to make a realistic assessment of the future development of an open source solution. In this regard, Section Fehler: Verweis nicht gefunden introduces the Open Hub platform, which allows an assessment of the activity and heterogeneity of the developer community. This makes it possible to better assess the future development of an open source project. - | -
| - 10. Legal uncertainties - | -- The multitudes of different open source licences and small number of court rulings on interpretation issues to date can sometimes lead to legal uncertainties with open source software. These practical guidelines are intended to provide an overview of the most important open source licences and their characteristics and compatibilities. Sources for in-depth answers to legal questions can be found in the documents Em002-3 OSS Licensing Guidelines and in Em002-6 FAQ on OSS and Art. 9 EMOTA . - | -
| - 11. Too extensive offering of open source software - | - The number of open source software products has increased dramatically in recent years. Potential users of open source software therefore complain about the multitude of existing open source solutions on the market. For this reason, the section ‘Findability of…’ introduces two platforms, alternativeTo and Open Hub, which enable a comparison of Open Source solutions. - | -
| - 12. Coordination effort involved in collaborative development - | -- When the Federal Administration participates in and contributes to collaborative projects, this results in a coordination effort within those collaborations, but also when a community needs to be brought on board. Ideally, this additional effort should still be worthwhile thanks to an improved solution, greater acceptance or increased participation from third parties. - | -
| - 1. Digital sovereignty - | -- This involves the ability to use and control digital services. Digital sovereignty extends over the entire lifecycle of a digital system. Open source software promotes digital sovereignty, as it guarantees interchangeability, design flexibility and influence.[^16] - | -
| - 2. No licence fees - | -- There are no licence costs for using open source software. However, when obtaining complex standard open source software packages, it may make sense to purchase support subscriptions, for which a fee is paid. - | -
| - 3. Cost savings through cooperation with other users - | -- As software under an open source licence can be used and further developed without restriction, costs of further developments can be shared or existing additional developments from other administrative units can be adopted according to the principle of 'develop once – use multiple times'. At the same time, there is the opportunity to benefit from the experience and developments of others. - | -
| - 4. Community building & knowledge sharing - | -- Open source software facilitates community building and knowledge sharing, for example between the different federal levels in Switzerland. Software can be jointly further developed, errors fixed and individual experiences shared. The increased exchange of knowledge between different administrative units leads to a better understanding of what others are working on, so that duplication is avoided and the best solutions can spread. - | -
| - 5. Lower dependence on manufacturers - | -- Vendor lock-in (dependency on software suppliers) is considered very high in computing. Using software under an open source licence reduces vendor lock-in as operation, maintenance, support, further development and other services for open source software can be openly tendered. Instead of completely re-procuring an entire system due to vendor lock-in, extensions or lifecycle services for an OSS solution can also be put out to tender separately. This can save significant migration costs. - | -
| - 6. Open standards and interoperability - | -- With open source software, compatibility with other software solutions and IT systems (interoperability) is generally higher than with proprietary software. Open source solutions also use almost exclusively open data formats, which is why they can be easily exchanged with other systems. - | -
| - 7. Transparency about the structure of the software - | -- As the software is also available in the form of source code, its quality can be checked, for example, through external reviews. In addition, documentation can be created based on the source code (e.g. with regard to new tenders for further development services or the replacement of open source software at the end of its service life). - | -
| - 8. Security and trust through transparency - | -- Because of the open nature of the source code, the security of open source software can be higher than that of proprietary software. Moreover, it is much more difficult to build backdoors and other loopholes into open source software, which leads to more trust in the software. - | -
| - 9. Higher quality and modularity of code - | -- The quality of open source software can be higher than proprietary software because the motivation to write good code may be greater when developers know that their source code will be published. In addition, open source solutions tend to be highly modular, so that individual modules can be easily replaced and the remaining modules can continue to be used.[^17] - | -
| - 10. Easy customisation - | -- Access to the source code allows users to make further developments themselves or through external suppliers. This means the software can be quickly adapted to their own needs. - | -
| - 11. Rapid innovation and integration - | -- There is rapid, continuous further development of open source software by the community. For example, new technologies and data standards are often published as open source programming libraries. This enables the rapid realisation of innovative software solutions. - | -
| - 12. Employer attractiveness - | -- The use of modern open source technologies and informal collaboration with international communities promotes employee motivation and thus increases employer attractiveness, which in turn facilitates the recruitment of young, qualified professionals. - | -
| - 1. High switching costs due to existing dependencies - | -- Replacing proprietary software with open source solutions can be very costly if the application is closely embedded in the existing IT system through interface integration or other dependencies. These switching costs mean that introducing open source software often only pays off at the end of the proprietary software's lifecycle. - | -
| - 2. Missing features or no suitable open source solution - | -- When procuring standard software, it may happen that there is no open source software alternative to the (previous) proprietary solution, or only one that is functionally inadequate. As a solution approach, there is the possibility of jointly developing the missing features together with other users of the open source software and adding them to the open source project.[^18] - | -
| - 3. Higher integration costs - | -- Short-term cost savings resulting from licence savings when using open source software are often offset by higher integration costs. Therefore, it is important to recognise that the professional use of open source software is not 'free' but actually generates internal or external costs. - | -
| - 4. Unclear responsibilities and support - | -- Open source software is often criticised for the lack of support and maintenance by external companies. However, there are now a variety of suppliers offering commercial services (long-term support, ongoing maintenance, further development, liability and warranty, etc.) for open source solutions. The different business models with open source software are explained in Annex D and the different support models in Section 8. An up-to-date overview of open source service providers and their services can be found in the Open Source Directory (https://www.ossdirectory.com) or in the OSS Study 2024[^19] [OSS2024] . - | -
| - 5. Small market with few suppliers - | -- As certain open source applications, such as desktop applications, generally require little or no support and maintenance, there may be little market for open source providers of support and maintenance. In this case, a tendering process for open source software services can help to create a market that increases competition between suppliers. The existence of a broad development community for the software in question and the quality of the development documentation are of practical importance when tendering for such services. - | -
| - 6. Low visibility - | -- Communities of open source projects focus primarily on product development and rarely on marketing. In contrast, manufacturers of proprietary software invest heavily in marketing and selling their products. This lack of advertising for open source software often creates the false impression that there is no alternative to proprietary products. However, there are platforms such as alternativeTo1 that provide an overview of solutions for specific tasks (more on OSS alternatives in Section ). - | -
| - 7. Lack of acceptance by end users - | -- Due to different user interfaces, missing functions, low user-friendliness and little advertising for open source software, there is a lack of acceptance by end users for certain open source products. Appropriate communication, documentation and training offerings can counteract this challenge. The fact that open source software can be further developed according to users' needs can also lead to higher acceptance. - | -
| - 8. Little or no in-house expertise - | -- Open source solutions evolve rapidly and at the same time require in-depth technical understanding. Thus, it may happen that internal employees have little or no expertise with certain open source software. In-house OSS know-how can be built up through further training and opportunities for self-study via online sources and building in-house wikis, etc. - | -
| - 9. Difficult future assessment - | -- It is often difficult for outsiders of an open source community to recognise how the project will develop in the future. Therefore, it is important to be able to make a realistic assessment of the future development of an open source solution. In this regard, Section Fehler: Verweis nicht gefunden introduces the Open Hub platform, which allows an assessment of the activity and heterogeneity of the developer community. This makes it possible to better assess the future development of an open source project. - | -
| - 10. Legal uncertainties - | -- The multitudes of different open source licences and small number of court rulings on interpretation issues to date can sometimes lead to legal uncertainties with open source software. These practical guidelines are intended to provide an overview of the most important open source licences and their characteristics and compatibilities. Sources for in-depth answers to legal questions can be found in the documents Em002-3 OSS Licensing Guidelines and in Em002-6 FAQ on OSS and Art. 9 EMOTA . - | -
| - 11. Too extensive offering of open source software - | - The number of open source software products has increased dramatically in recent years. Potential users of open source software therefore complain about the multitude of existing open source solutions on the market. For this reason, the section ‘Findability of…’ introduces two platforms, alternativeTo and Open Hub, which enable a comparison of Open Source solutions. - | -
| - 12. Coordination effort involved in collaborative development - | -- When the Federal Administration participates in and contributes to collaborative projects, this results in a coordination effort within those collaborations, but also when a community needs to be brought on board. Ideally, this additional effort should still be worthwhile thanks to an improved solution, greater acceptance or increased participation from third parties. - | -
| - Free open source - | -- Software that is published under an open source licence. - | -
| - Free - | -- Free software (freeware) but whose source code is not freely available and -may not be modified. - | -
| - Freemium - | -- Such software offers a free and a premium version, with all important functionalities already available in the free version. This category does not include software that can be tested free of charge for a certain period of time (e.g. a 30-day trial version), which falls into the 'Commercial' category. - | -
| - Commercial - | -- This is proprietary software for which licence fees are charged when used. - | -
| - Pulse - | -- Overview of the recent activities of an open source project on GitHub: Summary of the most important information about development intensity, community heterogeneity, open reports, improvements (pull requests), etc. - | -
| - Contributors - | -- Display of which developers have been active and when. This is an important indicator of whether everything depends on one person or whether there is a larger community behind it. - | -
| - Commits - | -- Display of which contributions were made to this open source project in which time period. - | -
| - Code frequency - | -- Visualisation of how much source code was added or removed and when. - | -
| - Dependency graph - | -- Dependencies of the open source project on other open source software (e.g. relevant for identifying security vulnerabilities and updates). - | -
| - Network - | -- Display of when which developer contributed to which development branch. - | -
| - Forks - | -- List of all copies of the open source project on GitHub. Indicator of the popularity and distribution of the open source software. - | -
| - Project Summary - | -- A brief description of the open source project. - | -
| - In a Nutshell - | -- The most important facts about an open source project, such as the number of commits, contributors and lines of code, as well as the most used programming language, the time of the first commit and last change. In addition, an assessment of the code base and the size of the development team is listed (e.g. 'Mozilla Firefox has a well-established, mature codebase maintained by a very large development team with stable Y-O-Y commits'). - | -
| - Quick Reference - | -- Contains information about the organisation, links to the project and the code, as well as references to similar projects. - | -
| - Licences - | -- Indicates the licence(s) under which the open source project is licensed and what consequences are associated with it. - | -
| - Project Security - | -- Provides information on the security and vulnerabilities of the open source project. - | -
| - Code - | -- A graph showing the number of lines of code over time, broken down by programming language. - | -
| - Activity - | -- A graph showing the number of commits per month. A summary of the last 30 days and 12 months is also provided. - | -
| - Community - | -- A graph showing the number of active contributors per month is displayed. A rating of the project is also displayed on a five-star scale. - | -
| - Advantages - | -
-
|
-
| - Disadvantages - | -
-
|
-
| - Risk and safeguarding - | -- High risk: There are no support contracts or guarantees and there is little or no developer expertise in the organisation. - | -
| - Typical area of application - | -- Standard open source software that can be updated independently of other systems. - | -
| - Advantages - | -
-
|
-
| - Disadvantages - | -
-
|
-
| - Risk and safeguarding - | -- Medium risk: Support depends on know-how and availability of internal IT. - | -
| - Typical area of application - | -- In-house development, strategically used open source software for which in-depth know-how is available. - | -
| - Advantages - | -
-
|
-
| - Disadvantages - | -
-
|
-
| - Risk and safeguarding - | -- Low risk: Warranty is provided according to terms of reference or service level agreement - | -
| - Typical area of application - | -- Business-critical open source software where little or no in-house development expertise is available - | -
- This project uses open source software:
-
|
-
| - URL - | -- https://gitlab.com/swiss-armed-forces/cyber-command/cea/loom - | -
| - Federal authority - | -- Cyber Command - | -
| - Description - | -- Loom is a powerful, easy-to-use document search engine. It automates the indexing of configured data sources, performs OCR, extracts content and metadata, enables tagging and offers powerful search and operating options. - | -
| - Year - | -- 2025 - | -
| - Licence - | -- MIT - | -
| - Justification - | -- - - | -
| - URL - | -- https://github.com/trustbroker-swiss/trustbroker.swiss - | -
| - Federal authority - | -- FCh, FOITT - | -
| - Description - | -
- Trust Broker Swiss provides federation services between relying parties (applications, service providers, other IAM systems or policy enforcement points) and identity providers (IdP, also called claims providers) using trusted attribute stores to enrich authenticated users. -It enables Identity/Claims Providers and Relying Parties to exchange information via a third party that hides the IdP specifics and provides a unified or at least additionally verified identity. - |
-
| - Year - | -- 2024 - | -
| - Licence - | -- AGPL - | -
| - Justification - | -
- Code changes should always remain open and be returned. -A very detailed examination of the licence issue was carried out for the Trust Broker. For very large projects, it can be carried out at this level of detail. All compatible licences that are compatible with the Software Bill of Materials were listed in a licence pool. - |
-
| - URL - | -- https://github.com/geonetwork/core-geonetwork - | -
| - Federal authority - | -- Swisstopo - | -
| - Description - | -- GeoNetwork is a catalogue application for managing spatially referenced resources. It offers powerful metadata editing and search functions as well as an interactive web map viewer. It is currently being used in numerous spatial data infrastructure initiatives around the world. - | -
| - Year - | -- 2012 - | -
| - Licence - | -- GPL 2.0 - | -
| - Justification - | -- - - | -
| - URL - | -- https://meteoswiss.github.io/ampycloud/ - | -
| - Federal authority - | -- MeteoSwiss - | -
| - Description - | -- Python package for determining the proportion of sky coverage and the base height of cloud layers using ceilometer data. - | -
| - Year - | -- 2023 - | -
| - Licence - | -- Various licences, FSS - | -
| - Justification - | -- - - | -
| - URL - | -- https://github.com/astra-emsg/ASTRA.EMSG - | -
| - Federal authority - | -- MeteoSwiss - | -
| - Description - | -- EMSG is a C# GIS web application developed by the Swiss government to manage the asset management of urban road systems. - | -
| - Year - | -- 2017 - | -
| - Licence - | -- BSD - | -
| - Justification - | -- - - | -
| - URL - | -- https://github.com/admin-ch/CovidCertificate-Documents - | -
| - Federal authority - | -- FOITT - | -
| - Description - | -- Swiss application for COVID certificates - | -
| - Year - | -- 2020 - | -
| - Licence - | -- MIT - | -
| - Justification - | -- As permissive as possible so that anyone can use the code. - | -
| - URL - | -- https://github.com/govcert-ch/website - | -
| - Federal authority - | -- NCSC - | -
| - Description - | -- Source code of the website for the Computer Emergency Response Team (GovCERT) of the Swiss government - | -
| - Year - | -- 2023 - | -
| - Licence - | -- MIT - | -
| - Justification - | -- - - | -
| - URL - | -- https://github.com/SwissFederalArchives - | -
| - Federal authority - | -- SFA - | -
| - Description - | -- The Swiss Federal Archives repository on GitHub provides access to the source codes of our applications. It allows you to create your own forks and report errors or suggest extended functionalities at the 'Issues' interface. - | -
| - Year - | -- 2023 - | -
| - Licence - | -- AGPL, Apache, MIT - | -
| - Justification - | -- Opendata and open source software are heading in the same direction. AGPL allows maximum openness. - | -
| - URL - | -- https://xmlgraphics.apache.org/fop/ - | -
| - Federal authority - | -- IPI - | -
| - Description - | -- The IPI wanted a version of Apache FOP that could generate archivable PDFs. To this end, an extension was commissioned by one of the core developers (Jeremias Märki). The adjustments were incorporated directly into the project. - | -
| - Year - | -- 2007 - | -
| - Licence - | -- Apache - | -
| - Justification - | -- Extensions were made to an existing open source project. - | -
| - URL - | -- https://launchpad.net/ekomm - | -
| - Federal authority - | -- IPI - | -
| - Description - | -- The IPI wanted software for electronic input. - | -
| - Year - | -- 2009 - | -
| - Licence - | -- Apache - | -
| - Justification - | -- The IPI wanted to have the vendor (Glue) perform the release and authorise this as permissive (integration in its own applications). - | -
| - Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. - -Everyone is permitted to copy and distribute verbatim copies of this licence document, but changing it is not allowed. - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, we certify that: - -(a) The rights to this contribution are owned by the Swiss Confederation and I am authorised to submit it under the open source licence indicated in the file; or - -(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source licence and I have the right under that licence to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different licence), as indicated in the file; or - -(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. - -(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source licence(s) involved. - | -
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - open - | -- Partner - | -- Federal government - | -
- Contents or suggestions, if the basic decisions are: -Product management c) Open organisation -Supplier involvement: b) Supplier as partner -Cost distribution: b) Each their own -The text above can be copied into the template and adapted. - |
| - Joint - | -- - - | -- Each their own - | -
- Contents or suggestions, if the basic decisions are: -Product management b) Joint development -Supplier involvement: a) or b) (not relevant) -Cost distribution: c) Originator pays principle or d) Cost sharing - |
| - Joint - | -- - - | -- Originator - | -- |
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - Federal government - | -- - - | -- Internal - | -
- As the Confederation retains direct control, no additional organisational structures are necessary. -The publishing entity (e.g. a federal office) retains ownership and assumes all coordination tasks. In this case, the 'Organisation' section can be kept very brief. - |
| - Joint - | -- - - | -- Internal - | -
- For this scenario, organisation as a simple partnership is usually recommended. -To enable joint development and coordination of the roadmap and requirements, it is advisable to create two groups, each with one participant per community member: -
|
| - Joint - | -- - - | -- Third party - | -
- Organisation as an association is recommended. Either a separate association is founded specifically for the application, or the application is transferred to an existing association. An association is recommended because otherwise, the distribution of costs becomes complex, and there is likely to be enough work within the coordination tasks to employ a part-time manager for the association. - -The rights to the code are then transferred to the association, which takes over community management and ordering from suppliers. - | - Joint - | -- Contractor - | -- Internal - | -
- Organisation as an association is recommended. Either a separate association is founded specifically for the application, or the application is transferred to an existing association. An association is recommended because otherwise, the distribution of costs becomes complex, and there is likely to be enough work within the coordination tasks to employ a part-time manager for the association. -The rights to the code are then transferred to the association, which takes over community management and ordering from suppliers. -Here, the suppliers are not members of the association, but only contractors. The manager should not be appointed by a supplier. - - | - Joint - | -- Contractor - | -- Third party - | -
- Organisation as an association is recommended. Either a separate association is founded specifically for the application, or the application is transferred to an existing association. An association is recommended because otherwise, the distribution of costs becomes complex, and there is likely to be enough work within the coordination tasks to employ a part-time manager for the association. -The rights to the code are then transferred to the association, which takes over community management and ordering from suppliers. -The suppliers are members of the association; the manager can also be provided by a supplier. - - | - open - | -- - - | -- Internal - | -
- There is no need for a detailed description of an organisation, as it is deliberately designed to be open. However, it is important to establish who receives and processes external enquiries (responsibility).
-It should also be determined whether and to what extent external persons can be involved:
-
| - open - | -- Contractor - | -- Internal - | -
- There is no need for a detailed description of an organisation, as it is deliberately designed to be open. However, it is important to establish who receives and processes external enquiries (responsibility).
-It should also be determined whether and to what extent external persons can be involved:
-
-This variant corresponds to the organisation of 'classic' open source projects; see for example https://opensource.guide/leadership-and-governance/ for further information. -The supplier should only take on purely technical coordination tasks (code review, assessment). - - | - Third party - | -- Partner - | -- Internal - | -
- There is no need for a detailed description of an organisation, as it is deliberately designed to be open. However, it is important to establish who receives and processes external enquiries (responsibility).
-It should also be determined whether and to what extent external persons can be involved:
-
|
-
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - Federal government - | -- Contractor - | -- - - | -- The federal authority defines the roadmap and decides which changes will be implemented. The standard processes of the office XY are used for this. - |
| - Federal government - | -- Partner - | -- - - | -- The federal authority defines the roadmap in collaboration with company XY. It decides which changes will be implemented. The standard processes of the office XY are used for this. - |
| - Joint - | -- - - | -- Internal - | -
- The process for developing the roadmap and approving changes must be determined by the members of the company or association. Depending on the member structure (number, size ratio, etc.), other processes may be appropriate. -However, the processes must include measures for conflict resolution and finding a majority. - |
| - Joint - | -- - - | -- Third party - | -- The process for developing the roadmap and approving changes must be determined by the members of the company or association. Depending on the member structure (number, size ratio, etc.), other processes may be appropriate. - -However, the processes must include measures for conflict resolution and finding a majority. - -With the addition that a cost distribution key must also be established. Consideration should also be given as to how to handle cost sharing for adjustments not desired by the relevant members. Especially in associations with members of unequal size, situations may arise where a large member (e.g. the federal authority) bears a significant portion of the costs for an extension without deriving any benefit from it. - |
| - open - | -- - - | -- - - | -- Example, not suitable for all situations -There is no need to create a roadmap; the application currently meets the needs. - -Changes are decided upon in an open discussion and a consensus is sought. The final decision lies with the owner of the code (Swiss Confederation). - |
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - Federal government - | -- - - | -- - - | -- The committer rights (write access to the code) lie with the persons/entities/suppliers selected by the Confederation. After the contract expires, the respective rights are revoked. - -The service providers and suppliers are responsible for conducting the technical code review process for external contributions that have been technically accepted by the Confederation. They are responsible for the technical quality. The suppliers are compensated for this work by the Confederation. - |
| - Joint - | -- Contractor - | -- Internal - | -- In principle, all entities commissioned by a community member receive write access to the code (committer rights). After the contract expires, the respective rights are revoked. - -Where changed code affects core areas of the application, all changes must be reviewed by an entity specially commissioned by the community for this purpose. This entity is responsible for the technical quality of the application. It is also responsible for reviewing changes that have been technically accepted by the community. - |
| - Joint - | -- Partner - | -- Third party - | -- The committer rights (write access to the code) lie with the members of the community. These persons organise themselves and jointly bear responsibility for the quality of the code. - -If a community member commissions an external supplier for an adjustment or extension, the adjustment is reviewed by a member of the community. They are compensated for this by the client. - -Changes to the core of the application must be reviewed by a second member of the community. - -The suppliers who are community members are also responsible for reviewing external contributions and new technical code that has been technically accepted by the association. - |
| - open - | -- - - | -- - - | -- Initially, the committer rights lie with the developers or their employers. Committer rights are granted to all developers who actively contribute to the project for several months and demonstrate appropriate social competence. - -The individual developers generally retain their committer rights, even if they change their employer or the Confederation chooses a different supplier. Committer rights only expire if they are voluntarily relinquished or if the majority of other committers decide to revoke them. - -The Confederation has the right to designate individual developers from the companies it commissions as committers. It does not have the right to revoke someone's committer rights without reason. - -Code reviews are carried out by at least one person who acts as a committer. Committers organise themselves. - -The Confederation undertakes to compensate the review work as far as it is financially feasible for them. - |
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - Federal government - | -- Contractor - | -- Internal - | -- Suppliers are periodically selected through WTO tenders or a direct award procedure (depending on the scope of the maintenance services). - |
| - Federal government - | -- Partner - | -- - - | -- Important: Check beforehand whether this is permissible under procurement law in the specific case. - -We will make additions to the documentation on this point. -The Confederation chooses the supplier XXX as a strategic partner and aims for long-term cooperation. - |
| - Joint - | -- Contractor - | -- Internal - | -- Each member of the community independently commissions one or more software suppliers to implement the adjustments and extensions they require. -Cost sharing is agreed on a case-by-case basis for adjustments requested by several members. The member with the largest share of the costs is responsible for selecting and commissioning the supplier. -(Regulations for software maintenance) - |
| - Joint - | -- Contractor - | -- Third party - | -- The association centrally selects the software suppliers periodically through WTO tenders or direct award procedures (depending on the scope of maintenance services). -The costs are allocated to the members according to a key: (to be defined: by population, user, etc.) - |
| - Joint - | -- Partner - | -- Internal - | -- Each member of the community independently commissions one or more software suppliers to implement the adjustments and extensions they require. -Cost sharing is agreed on a case-by-case basis for adjustments requested by several members. The member with the largest share of the costs is responsible for selecting and commissioning the supplier. - -(Regulations for software maintenance) -If necessary, supplemented by a contribution from the participating suppliers. Example: - Each software development company that is a member of the community commits to investing at least XY working days per year at its own expense in the further development, technological updating, or marketing of the application. - | -
| - Joint - | -- Partner - | -- Third party - | -- The association centrally selects the software suppliers periodically through WTO tenders or direct award procedures (depending on the scope of maintenance services). -The costs are allocated to the members according to a key: (to be defined: by population, user, etc.) -If necessary, supplemented by the addition: - Each software development company that is a member of the community commits to investing at least XY working days per year at its own expense in the further development, technological updating, or marketing of the application. - - |
| - Third party - | -- Contractor - | -- - - | -- Suppliers are periodically selected through WTO tenders or a direct award procedure (depending on the scope of the maintenance services). -With the addition: - The improvements contributed by potential suppliers and activities in the community are considered as a factor in the evaluation. - -Changes requested by external parties are not financed by the Confederation, but must be commissioned and paid for by the parties themselves. - |
| - Third party - | -- Partner - | -- - - | -- Suppliers are periodically selected through WTO tenders or a direct award procedure (depending on the scope of the maintenance services). -With the addition: - The improvements contributed by potential suppliers and activities in the community are considered as a factor in the evaluation. -Changes requested by external parties are not financed by the Confederation, but must be commissioned and paid for by the parties themselves. - - |
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - Federal government - | -- Contractor - | -- - - | -- The Confederation does not actively market the application but publishes it on open-source software platforms. The publication of the application is announced in professional committees. -If interested parties come forward, we will consider whether to establish a joint community or continue working with their version of the software. - | -
| - Joint - | -- Partner - | -- - - | -
- Additionally: -Suppliers may market the application and seek further interested parties. The Confederation may be cited as a reference. We consciously accept that divergent versions of the software may emerge as a result. - |
-
| - Joint - | -- Contractor - | -- Internal - | -- The application is marketed by the members or the association. - | -
| - Joint - | -- Partner - | -- Internal - | -- The application is marketed by suppliers. - | -
| - Joint - | -- - - | -- Third party - | -- The application is marketed by the association, the simple partnership and its members. - | -
| - open - | -- - - | -- - - | -- The application may be marketed by suppliers, or explicit marketing may be foregone. -Alternative without explicit marketing: -The Confederation does not actively market the application but publishes it on open-source software platforms. In professional committees, we indicate that we have published the application and that collaboration is welcome. -We demonstrate the software to interested parties and attempt to integrate them into our processes for shaping the roadmap. - |
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - Federal government - | -- Contractor - | -- - - | -- External contributions and enquiries must also be processed even if the Confederation remains the sole decision-maker regarding the software (except in cases of minimum release, where a fork is inevitable). -We propose the following approach: - -Handling reported errors -We attempt to reproduce errors reported by external individuals, requesting clarification if necessary. If reproduction is successful, the Confederation commissions the correction of errors. -If the error cannot be verified or if the effort to fix it is disproportionately high, we apologise to the person reporting the error and ask if they could submit a pull request to address it. -Handling enquiries -We respond to every incoming enquiry. If an enquiry cannot be resolved with reasonable effort and further time investment seems inefficient, we apologise, citing limited resources, and offer to connect the enquiring person with a supplier for further consultation. -Handling pull requests -We review each pull request carefully. To avoid unnecessary effort on the contributor's part, we immediately indicate if something contradicts our roadmap or if it is questionable whether we will accept the contribution. The Confederation decides independently and based on technical criteria which contributions to accept. Error corrections that have passed the review process are always accepted. -Handling forks -We support forks of our application. Those who implement the application should create their own fork. We review the resulting forks at least once a year and adopt good and suitable extensions. - | -
| - Joint - | -- - - | -- - - | -
- External refers to contributions from outside the defined community (association members). Deviations from above: -Handling forks -We aim to prevent (long-lived) forks of the application. Instead, interested parties should join the community directly. Within the community, we try to ensure all members use the main version. - |
-
| - Open - | -- - - | -- - - | -- Building a functioning community and an open culture is important to us. - -Handling reported errors -We attempt to reproduce and correct reported errors. We require active cooperation from the reporting individuals. If possible, they should create a pull request with an error correction directly. -Handling enquiries -We address each enquiry within a maximum of one week. Enquiries from active contributors are treated with priority and in depth. We try to involve other members in handling enquiries. -Handling pull requests -We aim to receive as many high-quality pull requests as possible. We involve all active contributors in the reviews and technical and professional assessment of pull requests. For controversial contributions, we try to reach a decision through informal voting. -Handling forks -We try to make forks unnecessary through active and open community management. If forks do emerge, we actively review them and attempt to incorporate the extensions and improvements developed there. In such cases, we actively request pull requests. - | -
| - Product management - | -- Supplier as - | -- Development - | -- Proposal - | -
| - Joint - | -- - - | -- - - | -- Central operation can optionally be offered additionally by the central association, in the sense of Software as a Service (SaaS). It should be examined whether this is desired. - | -
| - - - | -- Partner - | -- - - | -- It should be specified whether the supplier should also operate the software. - | -
| - - - | -- Lead - | -- - - | -- It should be stated that the supplier is responsible for operation. - | -
| Document \ Target group | -- Management - | -- IT management (a) - | -- ISBO / DSBO (a) - | -- Application Manager - | -- Project Management - | -- Legal Services - | -- Procurement - | -- Development - | -- Communications - | - -
|---|---|---|---|---|---|---|---|---|---|
| Em002 Strategic Guidelines | -X -3,4,5 |
-X -2-5 -Annex B, C |
-X -2-5 -Annex B, C |
-- | (X) -5 |
-- | - | - | (X) | -
| Em002-1 Practical Guidelines | -X | -X | -X | -X | -X | -- | - | - | - |
| Em002-2 Instructions for Publishing OSS | -- | (X) -1,3,5 |
-X -1,3 5 |
-(X) -1,3,5 |
-(X) -3,5 |
-- | - | X -1-5 |
-- |
| Em002-2.1 OSS Preliminary Assessment Checklist | -- | (X) -(c) |
-X -(b), (c) |
-X -(b) |
-X -(b) |
-- | - | - | - |
| Em002-2.2 OSS Analysis and Preparation Checklist | -- | - | X -(c) |
-X -(c) |
-X -(c) |
-- | - | X -(b) |
-- |
| Em002-2.3 OSS Release and Publication Checklist | -- | - | X -(c) |
-X -(c) |
-- | - | - | X -(b) |
-X -(d) |
-
| Em002-3 OSS Licensing Guidelines | -- | (X) | -(X) | -- | - | X | -(X) -8 |
-(X) | -- |
| Em002-4 OSS Community Guidelines | -(X) -3 |
-X -3,5 |
-X -4,5 |
-X | -- | - | - | (X) | -X | -
| Em002-4.1 OSS Community Checklist | -- | (X) -(c) |
-(X) -(c) |
-(X) -(d) |
-X -(b) |
-(X) -(d) |
-- | - | (X) -(d) |
-
| Em002-5 OSS Tools information sheet (e) | -X | -X | -X | -X | -X | -X | -X | -X | -X | -
| Em002-6 FAQ about OSS (e) | -(X) | -(X) | -(X) | -X | -- | X | -(X) | -(X) | -(X) | -
| Em002-7 Strategic Aspects of Procurement and OSS | -- | (X) | -(X) | -- | (X) | -X | -X | -- | - |
| CCPP information sheet | -X | -X | -X | -X | -(X) | -X | -X | -- | - |
| FOBL Guidelines | -- | - | - | (X) | -(X) | -- | X | -- | - |
| FOBL Checklist for blanket exception | -- | (X) | -- | (X) | -(X) | -- | X | -- | - |
| - Q - | -- How does ISO Standard 5230 relate to the guidelines? - | -
| - A - | -
- ISO Standard 5230:2020 was reviewed and taken into account during the drafting of the guidelines. The list below sets out the requirements of the standard and how these have been addressed in the guidelines:
-
|
-
| - Digital sovereignty means the state having the necessary control and capacity to act in the digital space in order to ensure that government tasks are fulfilled. - | -
| - A - | -- Technological control - | -- To what extent does the Federal Administration have control over the technologies used and their further development? - | -
| - B - | -- Data sovereignty - | -- Who has access to, control over and decision-making power regarding the data – particularly sensitive administrative data? - | -
| - C - | -- Legal capacity to act - | -- To what extent can Switzerland and the Federal Administration influence the legal and political framework for digitalisation? - | -
| - D - | -- Resilience - | -- How robust and crisis-proof are the Federal Administration's digital systems and processes in the face of disruptions, crises and dependencies? - | -
| - E - | -- Economic control - | -- How can the Federal Administration exercise economic control and strategic sourcing to secure its digital sovereignty cost-efficiently, while minimising dependencies and risks in IT procurement? - | -
| - Use case - | -- Make or buy - | -- Publication obligation under Art. 9 para. 1 EMOTA - | -
| - Developing software within the Federal Administration - | -- Make - | -- Yes, publication obligation - | -
| - Having software developed by third parties - | -- Buy as IT service contract - | -- Yes, publication obligation - | -
| - Procuring existing software - | -- Buy - | -
- - Generally no, - but check whether publication requirements apply to any parts being developed. Handling of third-party rights is particularly relevant (see [Em002-3 OSS Licensing Guidelines](./em002-3.md)). - |
-
| - Acquiring software from other public bodies - | -- Make or buy - | -
- - – Within the Federal Administration: publication obligation for the transferring administrative unit. - - – Others: Examine on a case-by-case basis whether adaptations by the Federal Administration give rise to a publication obligation, at least for those parts. - |
-
| - Procuring development resources - | -- Make - | -- Yes, publication obligation (contracts must allow for publication) - | -
| - Collaborating with other public bodies on software development - | -- Make - | -- Yes, publication obligation (contracts must allow for publication), particularly where there are substantial development contributions by or for the Confederation - | -
| Background | -Results | -||
| Lifecycle costs → WTO threshold?[^31] |
- In-state?[^32] | -WTO tender required?[^33] | -Comments | -
| No | -No | -No [^34] | -- Rarely a complete software package with support – mostly minor support and individual features. - | -
| No | -Yes | -No | -|
| Yes | -No | -Yes | -Only the volume to third parties is relevant. | -
| Yes | -Yes | -No | -The tender was issued by the other public body. | -
| - [A029] - | -- Product standard for office automation (OA) client software -Intranet: https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html - | -
| - [BBL2015] - | -- Information sheet: Software tenders: Ensuring broad competition; 2015; no longer in force - | -
| - [BITKOM2024] - | -- Open Source Software 2.0 Guidelines. Berlin: Bitkom e. V. Bundes-verband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2024. https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html - | -
| - [BöB] - | -- Federal Act on Public Procurement (PPA) https://www.fedlex.admin.ch/eli/oc/2020/126/de - | -
| - [DigiV] - | -- Ordinance on Digital Services and the Digital Transformation in the Federal Administration, DigiO) -SR 172.019.1 – Ordinance of 2 April 2025 | Fedlex - | -
| - [BBL-WL] - | -- Open Source in Procurement Guidelines: Software purchasing in accordance with Art. 9 EMOTA; FOBL; on the intranet: https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html - | -
| - [BBL-CL] - | -- for Art. 9 EMOTA Blanket Exception, FOBL, on the intranet: https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html - | -
| - [KKB-MB] - | -Information sheet: Procurement of software and Art. 9 EMOTA of the Competence Centre for Federal Public Procurement: https://perimap.admin.ch/goto_perimap_file_46835_download.html - | -
| - [KBB-KV] - | -Sample criteria – Procurement and EMOTA. https://perimap.admin.ch/goto_perimap_file_47064_download.html -Sample contractual texts – Software development https://perimap.admin.ch/goto_perimap_file_47059_download.html - |
-
| - [KBB-Perimap] - | -- CCPP learning and template platform - | -
| - [OSBA-VK] - | -- Award criteria for sustainable procurement of open source software | OSBA – Open Source Business Alliance - | -
| - [Sto2024] - | -- Certificate of competency 3 on Procurement-related criteria in relation to the new Federal Act on the Use of Electronic Means to Carry Out Official Tasks (EMOTA) based on Art. 9 (open source software) by Reto Stoll, 2024 - | -
| - [Stü2015] - | -- Open source business model: Added value of the subscription offer, Matthias Stürmer, 2015 - | -
| - [Stü2024] - | -- Technological Perspective on Digital Sovereignty, Matthias Stürmer, 2024, https://arbor.bfh.ch/entities/publication/b77d2f8b-4148-4325-82cd-405fa077a28a - | -
| - [SIK] - | -- SIK for procuring open source software: https://www.parldigi.ch/de/sik-e-fuer-beschaffung-von-open-source-software/, 2015 - | -
| - [W012] - | -- W012 – Directives for Digital Sovereignty in the Federal Administration, V1.0 2025 - | -
| - Application area - | -- This refers to the office automation (OA) software categories according to [A029] and other classifications. - | -
| - Branch - | -- A development branch of an OSS. - | -
| - CCPP - | -- Competence Centre for Federal Public Procurement - | -
| - Collaboration - | -
- The term collaboration derives from the Latin word 'collaborare' and means 'to work together'.
-It describes a way of working in which several people or teams work together towards a common goal, contributing their skills and resources. The focus is on mutual exchange, transparency and the sharing of knowledge. According to the Gabler Business Dictionary, collaboration also refers to 'cooperation between a company and its customers and suppliers, using modern information technologies to integrate internal and cross-company business processes.' - |
-
| - Committer - | -- A committer is a person who enters a change to data in a version control system. - | -
| - Contribution - | -- OSS contribution refers to the contribution to the development and improvement of open source software (OSS). This can take the form of providing code, documentation, tests, feedback or other types of contributions. (Google AI) - | -
| - Contributor Licence Agreement (CLA) - | -- A Contributor Licence Agreement (CLA), also known as a Contributor Agreement, is a document that sets out the terms under which intellectual property may be contributed to a project or initiative. This usually refers to a software project under an open-source licence (Wikipedia). - | -
| - DTI - | -- Digital Transformation and ICT Steering Sector. Part of the Federal Chancellery FCh - | -
| - eOperations - | -- eOperations Switzerland enables joint digital public services for the federal government, cantons and communes. www.eoperation.ch - | -
| - FITSU - | -- Federal IT Steering Unit. Predecessor of FCh-DTI - | -
| - FOBL - | -- Federal Office for Buildings and Logistics - | -
| - Life cycle - | -- A software life cycle describes the process of software development with the aim of providing software to the customer. As a rule, the cycle begins with a problem identified by the customer and its analysis, and ends on the customer side with the replacement of the software by a successor. - | -
| - Lock-in - | -- The lock-in effect refers to close customer loyalty to products/services or a provider or vendor, which makes it difficult for the customer to switch products or providers due to the costs and other barriers involved in switching. - | -
| - Market analysis - | -
- A specific market analysis is used to identify and process information on the current and potential procurement market. The purpose of the market analysis is to identify and understand market structures and, in particular, the supplier structure with regard to all relevant characteristics: price situation (high, low, fluctuations);market size; geographical distribution of potential suppliers and key players, etc. (see https://perimap.admin.ch/goto_perimap_file_38221_download.html ). Possible sources of OSS software can be found in [Em002-1 Practical Guidelines for OSS](em002-1.md) in Section 7. - |
-
| - Product - | -
- Used here as a synonym for ‘application’. -The term originates from ITIL. In ITIL (Information Technology Infrastructure Library), a product is a configuration of resources designed to deliver value to a customer or organisation. Unlike a service, which is typically an ongoing, interactive process, a product is a static entity. -Products can be software, hardware, data or other resources provided by the organisation. (Google AI) - |
-
| - Product standardisation - | -- In this document, standardisation primarily refers to SD120, the ICT standard service for office automation, and other standardisations by DTI. - | -
| - SBOM - | -- A Software Bill of Materials (SBOM) is an inventory list of all components and software dependencies that are part of the development and deployment of a piece of software. - | -
| - Subscription - | -
- When subscribing to software, a subscription is taken out. This means that the software is not purchased. -In most cases, this involves not only permission to use the software, but also includes all relevant services and support. - |
-
| - Upstream project - | -- Upstream is a term used in distributed software development (often open source) and refers to the direction of a patch to its origin (upstream), i.e. to the original developers or maintainers of the software, or to the original project. These can also be software libraries. - | -
| - ZenDiS - | -- ZenDiS is a publicly owned limited liability company (GmbH) in Germany. It supports the federal government, states, and municipalities in implementing digital sovereignty. With opdencode.de and container.gov.de, it offers a platform for secure open-source development. (www.zendis.de ) - | -
| - Zero-day exploit - | -- A zero-day exploit refers to the exploitation of a security vulnerability for which no patch is yet available from the component manufacturer. - | -
| - Measure 1: - | -- Implement the Practical Guidelines for Open Source Software in the Federal Administration [Em002-1](em002-1.md). - | -
|
- Although the term open source software is already over 20 years old, the steady spread of open source software and the continuous development of application scenarios constantly lead to new practices and questions. New and further developments of open source solutions are also increasingly forming full-fledged alternatives to proprietary software. With EMOTA, the obligation to publish in-house developments is added.
- - The Practical Guidelines for Open Source Software in the Federal Administration give an overview and introduction to the topic, outlines the advantages and disadvantages of open source software and explains all other tools. It also contains best practices, proven alternatives and practical recommendations on how the Federal Administration should handle open source software. - - These practical guidelines and the other tools should be used and implemented by the federal authorities when dealing with open source software and releases. - - As a brief introduction to the topic, an information sheet on the application of Art. 9 EMOTA and [EM002-6 FAQ about Publishing OSS (OSS-FAQ)](em002-6.md) are available. - |
- |
| - | |
| - Measure 2: - | -- Implement the Instructions for Publishing Open Source Software [Em002-2](em002-2.md) and the tools derived from that. - | -
|
- The efficient use of OSS in software development often requires contributions in the form of bug fixes and functional enhancements. With EMOTA, there is also an obligation to release self-created software. The necessary guidance is available with various tools. -The checklists are part of the instructions for publishing OSS. They should be used as a supplement to the corresponding guidelines of the administrative units before and during development. -The handling of legacy code under Art. 9 EMOTA is also discussed. The aim is to find and implement pragmatic solutions. -Licences are particularly important in the OSS environment. When releasing, procuring and using software, licences must be aligned with what is legally feasible and the desired effect. The necessary knowledge and corresponding decisions should be documented. In this context, the necessary additional documents such as the Contributor Licence Agreement (CLA) are also provided. -To facilitate the application of Art. 9 EMOTA, additions will be made to the Confederation's project management method (HERMES). Administrative units should find the necessary tools in the regular process. - |
- |
| - | |
| - Measure 3: - | -- Procurement authorities build up open source know-how and thus support the Federal Administration. - | -
|
- The new [Em002-7 Strategic Aspects of Procurement and OSS](em002-7.md) was created to address procurement aspects. -To ensure broad competition, procurement requires that open and closed source software be treated equally. -The increased requirements in connection with Art. 9 EMOTA regarding the resources to be procured for software publication must be taken into account. -The Competence Centre for Federal Public Procurement (CCPP) has published an information sheet on software procurement and Art. 9 EMOTA [KBB-MB] at the following link https://perimap.admin.ch/goto_perimap_file_46835_download.html. -Further assistance is available on the FOBL intranet (accessible only from the federal network) with the Open Source in Procurement Guidelines [BBL-WL] and the Checklist for Art. 9 EMOTA Blanket Exception [BBL-CL]. - |
- |
| - Measure 4: - | -- Promote knowledge and experience exchange - | -
|
- Creating and using open source software requires in-depth, specialised know-how. At the same time, open source solutions are constantly evolving and new open source projects are being launched. It is therefore a challenge to maintain a comprehensive overview of current trends and technologies. -To promote the professional use of open source and facilitate the exchange of knowledge and experience, information should be shared within an extended community of interest, and employees within the Federal Administration should be competently supported. - |
- |
| - Measure 5: - | -- Promote and communicate an open source culture - | -
|
- Advancing digitalisation has further exacerbated the shortage of skilled workers in IT. This also makes it difficult for the Federal Administration's service providers to recruit qualified IT staff. The use of open source software and the associated developer culture is known to be an argument for professionals to apply for such positions. -In order to be perceived by the public as an 'open source-friendly' employer, the various measures and the open source solutions used should be actively communicated in the form of a technology radar.[^16] For employer attractiveness, it is also important to allow federal employees to contribute to existing open source software. - |
- |
| - Measure 6: - | -- Implement joint procurement of services - | -
|
- Maintenance and support of open source software is currently provided by internal employees of the Federal Administration, while external suppliers offer services for certain open source solutions. These services are often procured independently by the respective offices, which can lead to duplication and the associated financial losses. -The joint procurement of services for open source software should increase the reliability of maintenance and support in operation and simplify the use of open source solutions. Based on the technology radar (see Measure 5), services for the most widespread open source systems and technologies should be centrally procured. These services can then be obtained by all offices as needed.[^17] - |
- |
| - Measure 7: - | -- Create an overview of open source software used, released and co-developed. - | -
|
- Since no licences need to be purchased when using open source software, the time-consuming procurement process is often eliminated. -This makes it difficult to track where the Federal Administration uses which open source software. As a result, the potential of open source software – such as the use of synergies, the formation of communities for the experience exchange, etc. – cannot be fully utilised. -A technology radar within the Federal Administration should provide an overview of where which open source software is being used and who has what know-how. - |
- |
| - Measure 8: - | -- Promote community building - | -
| - Building and participating in communities for project development is very important for OSS. A significant number of synergies result from this. It may be that the project already exists and the Confederation only participates, or the Confederation may lead the project, or indeed it may be a collaboration. Omitting a community is also an important decision. Direct development on an open repository14 (without subsequent release) can bring further efficiency gains and promote joint development. Em002-4 provides guidance and motivation for community building by the federal authorities. - | -|
| - Measure 9: - | -- Examine the possibility of establishing own publication platform; promote Open Development - | -
|
-The establishment and operation of an internal or Swiss publication platform will be examined and implemented after such a decision has been taken. -The aim of an independent platform for the Federal Administration is to preserve digital sovereignty and independence. Collaboration is simplified and at the same time it creates an overview of activities. -Federal cooperation across all authorities in Switzerland (similar to opencode.de) is being examined (e.g. DPSS or eOperations Switzerland). - |
- |
| - Source note: The tools and especially the checklists are partly based on the OSS documents of the Canton of Bern , which are released under a BSD3 licence (https://github.com/kanton-bern/oss). - | -
| - [Em002] - | -- Em002 Strategic Guidelines for Open Source Software in the Federal Administration, version 2.0, 2025 - | -
| - [Em002-1] - | -- Em002-1 Practical Guidelines for Open Source Software in the Federal Administration, version 2.0, 2025 - | -
| - [Em002-2] - | -- Em002-2 Instructions for Publishing Open Source Software, version 2.0, 2025 - | -
| - [Em002-2.1] - | -- Em002-2.1 OSS Preliminary Assessment Checklist, version 2.0, 2025 - | -
| - [Em002-2.2] - | -- Em002-2.2 OSS Analysis and Preparation Checklist, version 2.0, 2025 - | -
| - [Em002-2.3] - | -- Em002-2.3 OSS Release and Publication Checklist, version 2, 2025 - | -
| - [Em002-3] - | -- Em002-3 OSS Licensing Guidelines, version 2.0, 2025 - | -
| - [Em002-4] - | -- Em002-4 OSS Community Guidelines, version 2.0, 2025 - | -
| - [Em002-4.1] - | -- Em002-4.1 OSS Community Checklist, version 2.0, 2025 - | -
| - [Em002-5] - | -- Em002-5 OSS Tools information sheet, Version 2.0, 2025 - | -
| - [Em002-6] - | -- Em002-6 Frequently Asked Questions about Publishing OSS (FAQ-OSS), version 2.0. 2025 - | -
| - [Em002-7] - | -- Em002-7 Strategic Aspects of Procurement and Open Source Software, version 2.0, 2025 - | -
| - [BBL-WZK] - | -- Information sheets for the FOBL requesting offices can be found in the corresponding toolbox (in German):https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html - | -
| - [BBL-AGB] - | -- GTCs of the Confederation. https://www.bkb.admin.ch/bkb/de/home/themen/agb.html - | -
| - [BBL-WL] - | -
- Open Source in Procurement guidelines, FOBL; 2025 -Decision-making aid for purchasers in projects with possible OSS relevance. Contains information on correct implementation in tenders and contracts. (PDF) - Only accessible to federal agencies on the federal intranet - |
-
| - [BBL-CL] - | -
- Checklist for Art. 9 EMOTA Blanket Exception, FOBL, 2025, -Assists in reviewing and documenting whether, in individual cases, the publication of developed software can be waived. (DOCX) - Only accessible to federal agencies on the federal intranet - |
-
| - [KBB-MB] - | -
- Information sheet: Software procurement and Art. 9 EMOTA, Competence Centre for Federal Public Procurement: -https://perimap.admin.ch/goto_perimap_file_46835_download.html - |
-
| - [KBB-KV] - | -
- Musterkriterien Kriterien – Beschaffung und EMBAG https://perimap.admin.ch/goto_perimap_file_47064_download.html -Mustertexte Vertrag – Software-Entwicklung -https://perimap.admin.ch/goto_perimap_file_47059_download.html - |
-
| - [KBB-Perimap] - | -- Lern und Vorlagenplattform KBB (Registration is required) - | -
| - [A029] - | -- Product standard for office automation (OA) client software -Intranet: https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html - | -
| - [BITKOM2023] - | -- Leitfaden Open-Source-Software 2.0. Berlin: Bitkom e. V. Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2023. https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html - | -
| - [BöB] - | -- Federal Act on Public Procurement (PPA) https://www.fedlex.admin.ch/eli/oc/2020/126/de - | -
| - [DigiV] - | -- Ordinance on Digital Services and the Digital Transformation in the Federal Administration, DigiO) - SR 172.019.1 – Ordinance of 2 April 2025 | Fedlex - | -
| - [EY2011] - | -- Open Source Software im geschäftskritischen Einsatz. Ernst & Young. 2011. https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young. - | -
| - [EMBAG2023] - | -- 172.019 Federal Act on the Use of Electronic Means to Carry Out Official Tasks (EMOTA) https://www.fedlex.admin.ch/eli/cc/2023/682/de - | -
| - [Fr2012] - | -- Fröhlich-Bleuler, Gianni. Open Source Compliance. Jusletter 12 November 2012. - | -
| - [Ga2021] - | -- Gartner for Application and Software Engineering Leaders Tool: Open Source Software Governance Policy Template. Gartner, March 2021 - | -
| - [GoAy2022] - | -- Goldstein, Ayala. Top 10 Open Source Licenses in 2022: Trends and Predictions. 2022. https://resources.whitesourcesoftware.com/blog-whitesource/top-open-source-licenses-trends-and-predictions - | -
| - [Gu2024] - | -- Günter, Matthias. Selection criteria for enterprise-ready Open Source software. 2024. https://gnostx.com/wp_gnostx/blog/2024/05/31/selection-criteria-for-enterprise-ready-open-source-software/ - | -
| - [IZqCab2023] - | -- Izquierdo, Javier Luis, Canovas and Cabot, Jordi; For a more transparent governance of open source; Communications of the ACM; August 2023 - | -
| - [JaAx2016] - | -- Jaeger, Till, and Metzger, Alex. Open Source Software: Rechtliche Rahmenbedingungen der Freien Software. 4th ed. Munich: C.H.Beck. 2016 - | -
| - [KuWiSa2008] - | -- Kuhn, Bradley M., Williamson, Aaron; and Sandler, Karen M. A Practical Guide to GPL Compliance. Software Freedom Law Center. 2008. https://softwarefreedom.org/resources/2008/compliance-guide.html - | -
| - [LaOp2023] - | -- Lambach, D. and Oppermann, K.. Narratives of digital sovereignty in German political discourse’, Governance, 36(3), pp. 693–709. 2023. Available at: https://doi.org/10.1111/gove.12690 - | -
| - [LaWu2022] - | -- Laux, Christian and Wüst, Anja. Datensouveränität – Was es zur Begriffsklärung braucht. Swiss Data Alliance. Version 1.0. July 2022 - | -
| - [Le2023] - | -- Lehmann, David. Erfahrungen mit Open Source Freigabe beim BIT. Presentation from 18 September 2023 - | -
| - [OSI2024] - | -- Open Source Initiative. Open Source Licenses by Name. 2024. https://opensource.org/licenses/alphabetical - | -
| - [OSS2024] - | -- Open Source Studie 2024; https://www.oss-studie.ch/ - | -
| - [Pe1999] - | -- Perens, Bruce. The Open Source Definition. In Open Sources: Voices from the Open Source Revolution.1999. https://www.oreilly.com/openbook/opensources/book/perens.html. - | -
| - [SB001] - | -- Digital Federal Administration Strategy and Transformation Plan. - | -
| - [Sc2024] - | -- Schlauri, Simon. Charakteristika gängiger Open-Source-Lizenzen. 2024 - | -
| - [ScScPo2017] - | -- Schlauri, Simon, Schweizer, Samuel, and Poledna, Thomas. 2017. Rechtliche Voraussetzungen Der Nutzung von Open-Source-Software in Der Öffentlichen Verwaltung, Insbesondere des Kantons Bern. Carl Grossmann Verlag. http://www.oapen.org/search?identifier=632680 (26 August 2019). - | -
| - [St2011] - | -- Straub, Wolfgang. Softwareschutz: Urheberrecht, Patentrecht, Open Source. Zurich: 2011. Dike. https://www.it-recht.ch/wp-content/uploads/2014/11/Straub-Softwareschutz-Open-Source-Software-Zurich-2011.pdf. - | -
| - [St2024] - | -- Stürmer, Matthias. Technological Perspective on Digital Sovereignty, report for the FDFA. 2024 [2406.03266] Technological Perspective on Digital Sovereignty (arxiv.org) - | -
| - [StGa2018] - | -- Stürmer, Matthias, and Gauch, Carole. Open Source Studie Schweiz 2018. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2018. https://www.oss-studie.ch/open-source-studie-2018.pdf. - | -
| - [StNu2021] - | -- Stürmer, Matthias and Nussbaumer, Jasmin. Open Source Studie Schweiz 2021. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2021. https://www.ch-open.ch/open-source-studie-schweiz-2021/ - | -
| - [Whe2007] - | -- Wheeler, David A. The Free-Libre / Open Source Software (FLOSS) License Slide. 2007. https://dwheeler.com/essays/floss-license-slide.pdf - | -
Each entry is the complete set of documents, in all languages, as\nthey stood at that point. Released versions are kept permanently; builds of the\n%s branch are kept for the most recent commits only.
\n' \ + "${branch_html}" + + echo 'No release has been tagged yet.
' + fi + + printf 'No build has been archived yet.
' + fi + + cat <<'HTML' + + +HTML +} > "${dir}/archive.html" + +echo "wrote ${dir}/archive.html" diff --git a/tools/site-index.sh b/tools/site-index.sh new file mode 100755 index 0000000..5bebfb6 --- /dev/null +++ b/tools/site-index.sh @@ -0,0 +1,160 @@ +#!/usr/bin/env bash +# +# Write the listing page for one language directory of the published site. +# +# tools/site-index.sh${lead_html}
+Tools for publishing open source software in the Swiss Federal +Administration. Choose a language.
+