From 276c695a03197e7684ce4b0e2565f67efacc6d7b Mon Sep 17 00:00:00 2001 From: shrewd-laidback palace Date: Tue, 20 Oct 2026 23:38:45 +0200 Subject: [PATCH 1/2] Convert docs to AsciiDoc, localise into all five languages, add open-govpress rendering and publishing pipeline (#21) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary This turns the guidelines into a single localised AsciiDoc source tree that renders itself. Today the repository holds English-only Markdown and ODT files and publishes nothing; after this it holds 15 documents that each carry all five languages in one file (en, de, fr, it, rm), renders them to 75 PDFs through [open-govpress](https://github.com/swiss/open-govpress) — the Swiss federal AsciiDoc rendering tool — and publishes them to GitHub Pages with a language chooser, a per-language index, and an archive of every past build. Live preview of the result, built from this branch by the same workflow being proposed here: [736-c41-2c1-e464fc974.github.io/opensource-guidelines](https://736-c41-2c1-e464fc974.github.io/opensource-guidelines/) **This needs open-govpress 0.0.19**, which is what the build pins. Sections 5 to 7 record what each release from 0.0.12 to 0.0.15 contributed, and why — those are the ones this work drove. 0.0.16 to 0.0.19 are upstream releases it did not; the pin was moved to 0.0.19 and checked by re-rendering, not by reading their changelog. **How to read the counts and the complaints.** The base of this branch is 38 files: eight English Markdown documents, four ODT checklists, 21 bitmaps and three config files. Nothing else. So de, fr, it and rm are new here, and so is every AsciiDoc construct in the diff — the attribute headers, the `image::` and `link:` macros, the tables, `tools/`, the workflows and every rendered PDF. Two consequences, applied throughout below: a number given for the whole set is a per-language figure multiplied by five, and that multiplication is this branch's doing, not a quantity the repository already had; and where a defect was created *and* repaired inside this branch, it says so rather than being filed as inherited debt. Sections 5, 6 and 8 each contain one of those. The work, in eight parts — 1 to 4 are the conversion itself, 5 to 8 the cleanups that followed: ## 1. Markdown/ODT → AsciiDoc - Every `.md` and `.odt` document converted to `.adoc` and the originals removed. `git ls-files '*.md'` now returns nothing — the contributor guides went too, so every tracked document in the repository is linted by the same gate. `docs/en/` is flattened to `docs/`, since a per-language directory has nothing left to name once each file carries five languages. - The four OSS checklists become `[%interactive]` AsciiDoc checklists — 87 static `☐` glyphs in the ODT source (25/14/9/39) turned into real fillable PDF AcroForm widgets, not just squares that look clickable. - Intra-repo `link:` targets point at `.pdf`, because they are followed inside the rendered PDFs next to their siblings; `README.adoc` keeps `.adoc` targets, being read on GitHub. - pandoc left its own litter, cleaned up in the same pass: a stray `\–` escaping a character AsciiDoc does not treat as markup, and a handful of alt texts and captions written during conversion that did not match the picture (see section 3). ## 2. All five languages, in one file per document - A document is `:lang:` on line 1, a conditional doctitle, a shared attribute header (pared back in section 8 to only what a renderer actually reads), and five whole-body `ifeval::` blocks in the order `en, de, fr, it, rm`. `open-govpress render --lang` pins `{lang}` as a locked attribute, which drives the guards. - **`TRANSLATING.adoc` is the entry point for reviewers** — it documents the file shape, the rules, the Kennzeichnung table and what a translator can silently destroy. **`DEVENV-SETUP.adoc`** is the companion: Nix, devenv, direnv, the helper scripts, the hooks, and seven troubleshooting entries for the failures this setup actually produces. Both carry `:l10n-languages: en` and render in English only — contributor documentation has no translated body, and without the attribute each would take a row on all five index pages. README links to both from all five language blocks. - Deliberately one file, not five copies: five copies drift apart the first time someone fixes a typo in only one of them. - The title-page Kennzeichnung is per-language and names the DTI sector per the Federal Chancellery's own pages (the abbreviation differs: **DTI** de/en, **TNI** fr, **TDT** it and rm). `TRANSLATING.adoc` settles on TDT, which is what the corpus overwhelmingly uses — 45 against 5 — but **the documents are not yet consistent**: five `TDI` stragglers remain in the Italian and Romansh blocks, and `docs/partials/glossary.it.adoc` still defines a `TDI::` entry whose own expansion spells out TDT. Worth an FCh ruling before this is published. - `publiccode.yml` gains `rm-CH`. ## 3. Diagrams that are text The 21 diagram bitmaps — 19 distinct images, two of them used twice — cannot carry translated labels, so one set of pixels would have had to serve all five languages. Six already carried text in the wrong language in the English-only source: four in German (the ZenDiS goals diagram, and the sovereignty pediment, scale and matrix in Em002-7) and two in Italian (the publication-measures diagram in Em002-2 and the licence tree in Em002-3). They are now: - `[mermaid]` blocks with translated labels — they diff, spell-check and are reviewable in a pull request. Authored bare, so open-govpress supplies the project palette. - Three pictures that were tables all along → real AsciiDoc tables. They translate, and are announced as tables by a screen reader. - The four-Cs gears → a generated SVG per language (`tools/make-four-cs-svg.sh`), so the labels are real text. The PNGs it replaces had no editable source in the repo at all — the base tree contains no `.svg`, `.drawio` or `.pptx` of any kind. - The document map was drawn five times across four documents in the English source and had already diverged into two disagreeing copies — they disagree on the key ("Checklists DTI (.odt)" against "Checklists (.docx)") and on the entire right-hand column. It now lives once per language in `docs/partials/` and is included at all 25 points. Two figure captions were casualties of this branch rather than the source, and are noted here rather than in the pre-existing list: Em002-5's picture had no caption at all in the Markdown, and the one written during conversion described the Art. 9 EMOTA process while the picture shows the four Cs; and Em002-4's Figure 1 was the morphological box, so converting it to a table left Figure 2 as the only figure, since renumbered. `docs/en/assets/` held 1.72 MB of bitmaps across 21 files. `docs/assets/` is 233 kB, and all but the 154 kB `publiccode.yml` screenshot is now text. ## 4. Build, CI and publishing - `devenv.nix` / `.envrc` for local work: `render-docs` (all languages, or `render-docs de rm`) produces byte-identical output to CI, including the index pages — an index reimplemented in the workflow is an index that stops matching what you see before you push. - `.github/workflows/render-docs.yml`: renders the five languages as a matrix, merges them into one site, uploads PDFs as an artifact on every push and PR, and deploys to Pages from whichever branch the `PAGES_PUBLISH_BRANCH` repository variable names (`develop` here). - Every build is kept: pushes to the publishing branch land under `commits//` (newest 10) and own the site root, `v*` release tags land permanently under `tags//`. Backed by a `site-history` branch, since a Pages deployment replaces the whole site and cannot read back what is published. - `.github/workflows/lint.yml` runs 13 pre-commit hooks — whitespace/EOF/symlink/executable checks, `editorconfig-checker`, `nixfmt`, `yamllint`, `ripsecrets`, `shellcheck -x -o all`, and a repository-local `check-asciidoc` that renders every document once per language (a conditional left unterminated in the Romansh block is invisible while parsing as English) and checks every cited reference key against the entries actually emitted — see section 6. `typos` and `vale` are deliberately excluded: they are English-language tools and four of five languages here are not English. - The shell that does the work lives in `tools/*.sh` rather than inside Nix strings, where shellcheck and editorconfig-checker cannot see it. Two remnants are not yet covered: about twenty lines of document-selection bash inline in `render-docs.yml`, which also duplicates the `:l10n-languages:` logic in `tools/render-docs.sh`, and the short `enterShell`/`scripts` bodies in `devenv.nix`. ## 5. Tables that were never tables The English source drew 101 Markdown tables — 57 pipe blocks and 44 `` elements — plus four ODT checklists built out of tables throughout. Converted, that is 114 AsciiDoc tables per language, and only ten of them per language hold tabular data. The rest are FAQ question-and-answer pairs, glossaries, reference lists, project fact-sheets, single-cell callouts, empty write-in boxes, and tables whose only job was to indent something. They are tables because the source came out of Word, not because the content has columns. That matters once these render. open-govpress sets `tr { break-inside: avoid }` and deliberately keeps it: a row that breaks mid-cell is the one fragment shape its repair logic refuses to handle, and Paged.js then abandons the rest of the document. Converted verbatim, a page-tall FAQ answer becomes an atomic block the layout cannot place — so the remedy is the construct, not a stylesheet. Each family moved to the construct that already described it: - **The Em002-6 FAQ** — 48 tables per language whose first column held nothing but a localised literal `Q`/`F`/`D` and `A`/`R` — became `[qanda.unnumbered]`. The bolding convention was applied inconsistently in the English source and reproduced faithfully across the translations; the construct supplies the emphasis, so the inconsistency went with it, along with the legend table that documented the convention. - **Glossaries, references and the ten Annex D project fact-sheets** became description lists. Em002-6's glossary came out of the conversion as a description list already — it was hand-built `
` pairs in the Markdown, not a table — so this finishes what the first commit started. - **The chapter-opening definition of digital sovereignty** in Em002-7 became a sidebar, and a source attribution in Em002 became a `NOTE:`, which also deleted the hand-maintained "Source note:" prefix — one in the English source, five once translated. - **The four checklists** lost their wrapper tables. Em002-2.3's third column was empty in every row in the ODT; the first column was emptied earlier in this branch by the checkbox conversion, which moved the `☐` into the list item where it belongs. Neither was doing anything but indenting. **The 15 write-in boxes per language were the worst of it — and briefly, a defect this branch created for itself.** The conversion turned each empty ODT box into a `[cols="1"]` table holding one empty cell, and such a table is an *implicit* header row: asciidoctor emits a `
` with a single empty `
` and no body, and the theme paints `th` black. Every box in all five languages printed as a solid black rectangle — three of them on page 2 of the English Em002-2.1 — until they became `field::[]`, a real `/Tx` widget you can type into and save. Together with the checkboxes, the checklists are fillable rather than half-fillable. The same implicit-header trap bit Em002 from the other direction. In the Markdown all nine measures sat in one `` with `Measure 1:` as an ordinary bold cell, and HTML has no implicit header, so nothing repeated. Split into AsciiDoc tables and then rendered by 0.0.12 — which this PR commissioned, and which repeats a table's header on every continuation page — "Measure 1: Implement the Practical Guidelines…" printed as a heading above Measures 3, 6 and 8. Both are gone with the tables. Ten tables per language stay, 50 in all, and each earns it: Em002-5's ten-column target-group matrix, Em002-4's morphological box, Em002-7's self-assessment grid, use-case classification and WTO-threshold case distinction, Em002-3's two licence comparisons, Em002-2's document and platform tables, and Em002-1's constellation/impact pairs. Em002-7 cites "Table 1" by number in running prose, and Em002-3 numbers its two licence tables in hand-written captions, so converting either would have stranded the reference. Almost no prose changed. Four of the eight commits leave the per-language word census byte-identical, and three of the other four differ only by markup that was deliberately removed, `{empty}` guards that render as nothing, or the `field` and `rows` tokens of the new macro. The exception is Em002, where ten lead-in sentences named the construct being removed — "the following table" became the following overview / Übersicht / liste / elenco / glista — and the "Source note:" prefix gave way to the localised NOTE label. **open-govpress 0.0.12 was released for this part**: `[qanda.unnumbered]`, page-break protection for terms, questions and bordered blocks, the `field::[]` `/Tx` widget, and tables that repeat their header and hold their column widths across a page break. One item was asked for and did not ship — the Romansh admonition terminology in `attributes-rm.adoc` still needs TERMDAT or a native speaker before a published document relies on it. ## 6. Lists kept in two places each, and a gate that did not reach conversion Three lists — abbreviations, glossary, references — were each maintained by hand in two documents, spread across Em002, Em002-6 and Em002-7, and all three had drifted. They now live once, in `docs/partials/{abbreviations,glossary,references}..adoc`, and each document includes the subset it needs by tag. The drift is the reason it was worth doing, and it was in the English source before anything here touched it: - The **abbreviation** lists (Em002 and Em002-6) differed on four entries: `AO` read "aApplication owner" in one and "Application owner" in the other, `HERMES` was italicised in one only, `OSSD` disagreed on capitalisation, and an organisational unit was "usually an office" against "usually a federal office". - The **glossary** (Em002-6 and Em002-7) disagreed on five entries, two of them rewritten outright, and split the term itself as "Product stand- ardisation" in one copy. - Of the **seven** reference keys appearing in both Em002 and Em002-7's Annex A, five differed in title, in link form, or in both. Annex A had lost `[DigiV]`'s URL entirely and the head noun from `[BBL-CL]`, which began mid-phrase, "for Art. 9 EMOTA Blanket Exception". The remaining two were identical in the Markdown and only diverged here, the conversion rendering one as `link:url[text]` and the other as `+url+`, which prints as inert text — drift this branch added, worth closing with the rest. **The parse gate this branch added did not reach conversion** — and the comment explaining why was wrong. `tools/check-asciidoc.sh` went in a day and ten commits earlier with `--out-file /dev/null`; asciidoctor special-cases that path and returns *before conversion*, so no conversion-stage diagnostic could reach it at any `--failure-level`. The comment I had written blamed the log level instead, which is the kind of wrong that stops the next person retrying. It now converts for real, and a companion check compares cited keys against defined ones per document per language, flattening the corpus with `asciidoctor-reducer` so it applies the same tag selection that could silently drop an entry. **Twenty footnotes were being truncated, and that one is this branch's too.** Asciidoctor ends a `footnote:[…]` at the first unescaped `]`; Markdown's `[^n]:` has no such rule, so footnotes that cite their source as `[St2024]`, `[Gu2024]`, `[BBL-WL]` or `[A029]` — four per language in Em002-1 and Em002-7 — were cut off at the citation and spilled the remainder into the surrounding paragraph. In one case that was an entire definition. The closing bracket is escaped now. The checker had been reading that backslash as part of the key and finding no entry for it, so it was passing over footnotes in silence; taught the escape, it checks the keys inside them like any other. That surfaced references that were already broken in the English source, and would have been carried into four more languages unchecked: - Em002-7 defined `[KKB-MB]` while citing `[KBB-MB]` six times without defining it — six bracketed labels pointing at nothing. One information sheet, one URL, one letter apart; KBB is Kompetenzzentrum Beschaffungswesen Bund and the sibling keys are already `[KBB-KV]` and `[KBB-Perimap]`. - `BIT-KOM2023`, `BITCOM2024`, `PE1999`, `DigiO`, `OSI2019` and `OSI` were each cited with no entry anywhere. `[OSI]` deliberately became `[Pe1999]`, not `[OSI2024]`: the sentence introduces the Open Source Definition's criteria, and `[OSI2024]` is an alphabetical licence index. **Em002-7's self-assessment grid is now fillable.** It asks the reader to place a technology on a five-by-five grid of sovereignty perspectives against maturity levels, and the source gave them a picture of one — a bitmap carrying the row and column names and nothing to mark. Section 3 made it a real table; every cell is now an interactive checkbox, 25 `/Btn` widgets per language, filled and read back through pdf.js. Its two reference tables became description lists. Every citation in the document set now resolves, and the gate proves it: exit 0 over the whole corpus with an empty allow-list. **open-govpress 0.0.13 to 0.0.15 followed.** 0.0.13 implements `include::[tags=…]`, which the partials depend on — 0.0.12 accepted the attribute and silently ignored it, the dangerous direction, since stock asciidoctor honours it and a gate would go green while the PDF shipped every entry in the file. 0.0.14 adds the three fixes in section 7, and 0.0.15 corrects a paint defect it introduced with them: on a turned page the app's own viewport backdrop reached the paper, because the print stylesheet's reset was a less specific selector than the rule it meant to override and `@media` adds no specificity. Here that was a grey band down the right third of all four turned pages of Em002-5, in every language; the exposure was exactly one release wide, since the landscape role had landed in the commit before. Both defects were specified from this repo, with measurements, and both were fixed upstream rather than worked around here. ## 7. Links that went nowhere, and a table that ran off the paper Two defects in every PDF this renders, invisible to any check in the repository, both fixed by the renderer rather than by editing the documents. **Every inter-document link was dead.** Up to 0.0.13 the renderer resolved a relative `link:em002-2.pdf[…]` against its own internal origin and baked the result into the annotation, so the target led nowhere in any PDF reader. 285 annotations per language, 1,425 across the set. 0.0.14 rewrites each annotation back to the authored string after printing, so a relative target passes through *verbatim* — meaning the 1,080 relative targets authored here (of 1,100 `.pdf` link macros; the other 20 are absolute URLs) were already correct input. They were deliberately never rewritten into absolute URLs, which would have had to be undone. Not one source line changed and all of them now resolve — `/URI (em002-1.pdf)`. **Em002-5's target-group matrix ran off the sheet.** Ten columns against a 453.5 pt measure: with `cols="3,1,1,1,1,1,1,1,1,1"` a narrow column gets 37.8 pt, and `Geschäftsleitung` — in the German this branch adds — renders at 81.1 pt, so the surplus was simply painted past the paper edge: nine words, including `X` and `(X)` data cells, not merely a clipped heading. A reader could not tell those columns were there. The Markdown had dodged the width by rotating all nine group headings 90°, which the conversion to a real table does not carry over. The renderer now lets cell content break, and says when it had to. Em002-5 takes the `[.landscape]` role instead, which turns the page that one table sits on without changing the document type: a matrix whose headings are broken mid-syllable is legible only in the sense that the glyphs are on the sheet. It costs two to three pages — 8 to 11 in English, 8 to 10 in the others; landscape buys width and spends height — and the attribute sits on the table, not the document, because `:govpress-style: base-form-landscape` would turn all eight pages of a prose factsheet sideways *and* declare it a Basisformular, which it is not. Both fixes were specified from this repo, with measurements, in `ai-prompt-wide-tables.md` upstream. ## 8. Headers this branch wrote, then pared back Two cleanups to the document header — and unlike sections 5 to 7, there is no inherited defect here at all. The header did not exist before this branch; both items are its own first draft, corrected once the tool's real behaviour was known. They are worth a section only because the reasoning generalises. **Seven of the nineteen header attributes never reach a reader.** The conversion gave every document the full open-govpress front-block set, on the assumption the CLI reads them all. It does not: `:govpress-style: report` makes open-govpress apply two attribute files of its own *before* the document's header — `styles/common.adoc` and `styles/report.adoc`, bundled in the app — and between them they already set `govpress-front-block`, `title-page`, `pdf-theme`, `title-logo`, `toc`, `sectnums`, `toclevels`, `sectnumlevels` and `experimental`. They are applied softly, so a document's own header still outranks them; ours restated values already in force, byte-identically, fifteen times over. Dropped. `:toc:`, `:toclevels:`, `:sectnums:` and `:sectnumlevels:` deliberately stay, with a comment saying why they look redundant and are not: GitHub and GitLab render every `.adoc` in the repository with plain Asciidoctor, which applies none of open-govpress's style files, so without them the web view of the source loses its contents list and its section numbering. The rule applied was *drop what no renderer reads*, not *drop what the PDF does not need*. `:classification:` stays too, empty and commented, so a document answers the question rather than leaving it unasked. **`:url-repo:` was added to all 15 documents and then referenced by none of them.** Meanwhile the address was written out literally — 14 occurrences in the English source, in four different forms (`/releases`, the bare root, `/tree/main`, `/tree/main/docs/en`), which this branch multiplied by five before adding fifteen unused attribute definitions on top, for 70 in all. All 55 body occurrences now derive from the attribute, and its value is the repository root rather than `/tree/main` — the only value all four forms can be built from, and the form open-govpress's own showcase uses. The repository being a fork makes the owner segment the part most likely to move, which is now written once per document instead of spelled out in every link. The four checklists, `index.adoc` and the README template *lose* the attribute rather than gaining a reference: none of them links to the repository at all, so defining it there would have kept the unused-attribute problem alive in six files. ## Pre-existing content bugs fixed along the way These were all in the English Markdown, ODT or bitmaps at the base of this branch, and they were found by converting the source and then reading it closely enough to translate it. - **`em002-1.md` had a large duplicated content block** — roughly the first third of the document repeated, in two differently truncated forms; four top-level headings appear twice. De-duplicated. - **Broken `.odt` checklist links** across several documents: a trailing space before `.odt` in three places, a doubled space and a missing word in `Em002-4.1 OSS Community.odt`, and a bad root path in the index. - **Footnotes embedded in heading text** in three places, unsupported per the AsciiDoc docs. Relocated to the first natural mention of the same term in the body. (The duplicate element IDs and the stray `[N]` in the table of contents are how that surfaces once rendered, so the symptom is this branch's; the malformed headings are not.) - **Orphaned footnotes** defined but never referenced — in seven of the eight documents, 43 in total — dropped rather than force-inserted. - **Footnotes that were nothing but "See: " and a bare URL** — thirteen in the English source, 65 once translated. The prefix carried no information and the address stood where a title belonged. The prefix is gone and each link now has the text it should have had, following the style Em002-7 already used for its Wikipedia references. - **Defects baked into the diagram bitmaps**, unfixable without an image editor: a box in Italian inside the English licence tree ("GPL o licenza permissiva"); "Verb sements must flow back?", a mangling of "Verbesserungen müssen zurückfliessen"; an Italian footnote column in the security-grounds diagram; a decision node with two branches both labelled "No", which cannot be followed; "Trnsparenz" and "Altrnativoptionen" in the sovereignty scale; and the morphological box screenshotted from PowerPoint with an object still selected, grab handles visible. - **ODT-conversion artefacts in the English text**, repaired per document as each was translated — `Fehler! Verweisquelle konnte nicht gefunden werden.`, an empty `in Section )` cross-reference, "aApplication owner", "the roject is Free", "must be uthorised", "Outcomes are feedback continuously", "thus subject to the legal requirements of a?", "(at noted in Poledna/…", a doubled "in principle", the misspelt `opdencode.de`, an `eoperation.ch` link contradicting `eoperations.ch` in the same document, and a fedlex link whose display text pointed at `/de` while the target was `/en`. - **`publiccode.yml`'s screenshot** pointed at a bitmap through a `/blob/` URL, which serves an HTML page rather than an image. **Left for FCh to decide, as content rather than conversion:** Em002-3 annex D.5 attributes the ASTRA.EMSG road-asset application to MeteoSwiss, though both its repository and its description point to the Federal Roads Office. Two more are translation judgements rather than conversion defects, and are flagged rather than fixed: `docs/em002-6.adoc` renders ISBO and DSBO as CSI and CPD in the French block, against the rule in `TRANSLATING.adoc` that role abbreviations stay as written; and the TDI/TDT split in section 2. ## Repository settings this needs (one-time, by an admin) Nothing here can be set from a pull request — these are repository settings, and the publish job stays red until they are in place. Merging without them is safe: the render job and the PDF artifact work regardless, only the Pages deploy fails. **All five are now in place on `swiss/opensource-guidelines`**, checked against the API rather than read off the UI. The list stays here as the record of what the pipeline depends on, and of what to redo if the repository is ever recreated. **1. Turn Pages on, sourced from Actions.** — *done* *Settings → Pages → Build and deployment → Source:* **GitHub Actions** (not "Deploy from a branch"). This is what creates the `github-pages` environment the deploy job targets. Currently `build_type: workflow`, serving . **2. Choose the branch that publishes — `PAGES_PUBLISH_BRANCH`.** — *done, set to `develop`* *Settings → Secrets and variables → Actions → Variables.* The workflow reads this to decide which branch owns the site root and the `commits/` archive. **Unset means `main`**, which is the behaviour this repository had before this branch; it is set to `develop` here, so `develop` publishes and `main` does not. `on:` is the one block GitHub Actions allows no expressions in, so the trigger list in `render-docs.yml` stays literal — `branches: [main, develop]`. The variable picks among the branches listed there rather than replacing the list, so pointing it at some third branch means adding that branch to the trigger as well. The decision is made once, in a `gate` step whose output every publishing step and the deploy job read back, and `tools/site-publish.sh` re-checks the same variable before it will touch the site root. Tags are exempt: a `v*` release archives itself under `tags//` whatever the variable says. > **`main` does not publish, and never did.** These are the first workflows the repository has ever had — neither `main` nor `develop` carries one today, and no Actions run has happened here — so `develop` becomes the only branch that renders and publishes. `main` is kept in the trigger list and in the environment's branch policy anyway, so that moving `PAGES_PUBLISH_BRANCH` back to it later needs no further setup. **3. Let `develop` and release tags deploy, not just the default branch.** — *done* *Settings → Environments → `github-pages` → Deployment branches and tags.* GitHub creates this environment restricted to the default branch, so runs from any other ref are rejected with a protection-rule error — the archive reaches the `site-history` branch but never the site. Both the publishing branch and the release tags need a rule, so the list reads: | Type | Pattern | |---|---| | Branch | `develop` | | Branch | `main` | | Tag | `v*` | `main` is deliberately kept: moving `PAGES_PUBLISH_BRANCH` back to it then needs no environment change. **4. Leave the default `GITHUB_TOKEN` permissions alone — no change needed.** — *done (nothing to do)* *Settings → Actions → General → Workflow permissions* works on either setting. Both workflows declare `permissions: contents: read` at the top and raise only what a specific job needs (`contents: write` on `collect` to push the `site-history` branch, `pages: write` + `id-token: write` on `deploy`). An explicit block in the workflow overrides the repository default, so there is nothing to loosen globally. **5. Check that no ruleset covers `site-history`.** — *done* The publish job force-pushes a single parentless commit to a `site-history` branch (created on first run — no need to make it by hand). An organisation ruleset matching `**` or requiring pull requests on all branches will block that push. No ruleset currently matches the branch. It is pure derived output, re-renderable from source at any time, so exempting it costs nothing. Nothing needs to be done for pull requests: PR runs never deploy and never push — they only upload the `site` artifact. ## Notes for reviewers - **The `open-govpress` binary is re-hosted, and should be repointed.** open-govpress itself lives at https://github.com/swiss/open-govpress. Since this repository is on GitHub and needs the binary available to Actions, the devenv and CI builds fetch the 0.0.19 Linux tarball re-hosted as a GitHub Release on the contributor's fork (`open-govpress-v0.0.19`), verified against a pinned SHA-256 — committing it is not an option (112 MiB, over GitHub's 100 MB limit) and Git LFS is blocked on forks by GitHub policy. The pin lives in two places that have to stay in sync: `govpressVersion`/`govpressUrl`/`govpressSha256` in `devenv.nix`, where the URL interpolates the version, and `GOVPRESS_VERSION`/`GOVPRESS_URL`/`GOVPRESS_SHA256` in `.github/workflows/render-docs.yml`, where it is literal. Once `swiss/open-govpress` publishes a release asset of its own, both should point there — a pipeline on this repository should not depend on a personal fork staying public. - The document revision is bumped to 2.0, tagged `v2.0`. - Suggested reading order: `TRANSLATING.adoc`, then one document (`docs/em002-5.adoc` is the smallest and was the proof of the mechanism), then `tools/`. `DEVENV-SETUP.adoc` if you want to build it yourself first. --- .editorconfig | 35 + .envrc | 8 + .github/workflows/lint.yml | 58 + .github/workflows/render-docs.yml | 232 + .gitignore | 20 + DEVENV-SETUP.adoc | 227 + README.adoc | 259 + README.md | 38 - TRANSLATING.adoc | 219 + devenv.lock | 106 + devenv.nix | 286 ++ devenv.yaml | 14 + docs/assets/em002-2/md/README_template.adoc | 371 ++ docs/assets/four-cs/four-cs-cases.de.svg | 61 + docs/assets/four-cs/four-cs-cases.en.svg | 61 + docs/assets/four-cs/four-cs-cases.fr.svg | 61 + docs/assets/four-cs/four-cs-cases.it.svg | 61 + docs/assets/four-cs/four-cs-cases.rm.svg | 61 + docs/assets/four-cs/four-cs.de.svg | 58 + docs/assets/four-cs/four-cs.en.svg | 58 + docs/assets/four-cs/four-cs.fr.svg | 58 + docs/assets/four-cs/four-cs.it.svg | 58 + docs/assets/four-cs/four-cs.rm.svg | 58 + docs/assets/screenshots/document-map.png | Bin 0 -> 154097 bytes docs/em002-1.adoc | 2665 ++++++++++ ...-checklist-oss-preliminary-assessment.adoc | 751 +++ ...hecklist-oss-analysis-and-preparation.adoc | 656 +++ ...checklist-oss-release-and-publication.adoc | 576 +++ docs/em002-2.adoc | 3620 ++++++++++++++ docs/em002-3.adoc | 4245 ++++++++++++++++ docs/em002-4-1-checklist-oss-community.adoc | 751 +++ docs/em002-4.adoc | 4400 +++++++++++++++++ docs/em002-5.adoc | 1676 +++++++ docs/em002-6.adoc | 2650 ++++++++++ docs/em002-7.adoc | 3566 +++++++++++++ docs/em002.adoc | 1335 +++++ ...1 Checklist OSS Preliminary Assessment.odt | Bin 52027 -> 0 bytes ...Checklist OSS Analysis and Preparation.odt | Bin 53701 -> 0 bytes ... Checklist OSS Release and Publication.odt | Bin 50777 -> 0 bytes docs/en/Em002-4.1 Checklist OSS Community.odt | Bin 52751 -> 0 bytes docs/en/assets/em002-1/media/image1.png | Bin 114646 -> 0 bytes docs/en/assets/em002-1/media/image2.png | Bin 9254 -> 0 bytes docs/en/assets/em002-2/md/README_template.md | 62 - docs/en/assets/em002-2/media/image1.png | Bin 7199 -> 0 bytes docs/en/assets/em002-2/media/image2.png | Bin 59651 -> 0 bytes docs/en/assets/em002-2/media/image3.png | Bin 77434 -> 0 bytes docs/en/assets/em002-2/media/image4.png | Bin 73696 -> 0 bytes docs/en/assets/em002-3/media/image1.png | Bin 22015 -> 0 bytes docs/en/assets/em002-3/media/image2.png | Bin 27266 -> 0 bytes docs/en/assets/em002-3/media/image3.png | Bin 60639 -> 0 bytes docs/en/assets/em002-3/media/image4.png | Bin 43567 -> 0 bytes docs/en/assets/em002-4/media/image1.png | Bin 99942 -> 0 bytes docs/en/assets/em002-4/media/image2.png | Bin 125751 -> 0 bytes docs/en/assets/em002-5/media/image1.png | Bin 101017 -> 0 bytes docs/en/assets/em002-5/media/image2.png | Bin 114646 -> 0 bytes docs/en/assets/em002-7/media/image1.png | Bin 203336 -> 0 bytes docs/en/assets/em002-7/media/image2.png | Bin 53332 -> 0 bytes docs/en/assets/em002-7/media/image3.png | Bin 84014 -> 0 bytes docs/en/assets/em002-7/media/image4.png | Bin 84437 -> 0 bytes docs/en/assets/em002-7/media/image5.png | Bin 75355 -> 0 bytes docs/en/assets/em002/media/image1.png | Bin 82251 -> 0 bytes docs/en/assets/em002/media/image2.png | Bin 203336 -> 0 bytes docs/en/em002-1.md | 1430 ------ docs/en/em002-2.md | 827 ---- docs/en/em002-3.md | 1134 ----- docs/en/em002-4.md | 1585 ------ docs/en/em002-5.md | 343 -- docs/en/em002-6.md | 511 -- docs/en/em002-7.md | 1213 ----- docs/en/em002.md | 797 --- docs/index.adoc | 285 ++ docs/index_en.md | 48 - docs/partials/abbreviations.de.adoc | 65 + docs/partials/abbreviations.en.adoc | 63 + docs/partials/abbreviations.fr.adoc | 87 + docs/partials/abbreviations.it.adoc | 83 + docs/partials/abbreviations.rm.adoc | 99 + docs/partials/document-map.de.adoc | 56 + docs/partials/document-map.en.adoc | 82 + docs/partials/document-map.fr.adoc | 56 + docs/partials/document-map.it.adoc | 56 + docs/partials/document-map.rm.adoc | 56 + docs/partials/glossary.de.adoc | 123 + docs/partials/glossary.en.adoc | 131 + docs/partials/glossary.fr.adoc | 127 + docs/partials/glossary.it.adoc | 130 + docs/partials/glossary.rm.adoc | 126 + docs/partials/references.de.adoc | 200 + docs/partials/references.en.adoc | 231 + docs/partials/references.fr.adoc | 200 + docs/partials/references.it.adoc | 200 + docs/partials/references.rm.adoc | 200 + publiccode.yml | 8 +- tools/check-asciidoc.sh | 276 ++ tools/make-four-cs-svg.sh | 105 + tools/open-govpress.sh | 65 + tools/render-docs.sh | 70 + tools/site-archive.sh | 159 + tools/site-index.sh | 160 + tools/site-publish.sh | 205 + tools/site-root.sh | 99 + 101 files changed, 33123 insertions(+), 7989 deletions(-) create mode 100644 .editorconfig create mode 100644 .envrc create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/render-docs.yml create mode 100644 .gitignore create mode 100644 DEVENV-SETUP.adoc create mode 100644 README.adoc delete mode 100644 README.md create mode 100644 TRANSLATING.adoc create mode 100644 devenv.lock create mode 100644 devenv.nix create mode 100644 devenv.yaml create mode 100644 docs/assets/em002-2/md/README_template.adoc create mode 100644 docs/assets/four-cs/four-cs-cases.de.svg create mode 100644 docs/assets/four-cs/four-cs-cases.en.svg create mode 100644 docs/assets/four-cs/four-cs-cases.fr.svg create mode 100644 docs/assets/four-cs/four-cs-cases.it.svg create mode 100644 docs/assets/four-cs/four-cs-cases.rm.svg create mode 100644 docs/assets/four-cs/four-cs.de.svg create mode 100644 docs/assets/four-cs/four-cs.en.svg create mode 100644 docs/assets/four-cs/four-cs.fr.svg create mode 100644 docs/assets/four-cs/four-cs.it.svg create mode 100644 docs/assets/four-cs/four-cs.rm.svg create mode 100644 docs/assets/screenshots/document-map.png create mode 100644 docs/em002-1.adoc create mode 100644 docs/em002-2-1-checklist-oss-preliminary-assessment.adoc create mode 100644 docs/em002-2-2-checklist-oss-analysis-and-preparation.adoc create mode 100644 docs/em002-2-3-checklist-oss-release-and-publication.adoc create mode 100644 docs/em002-2.adoc create mode 100644 docs/em002-3.adoc create mode 100644 docs/em002-4-1-checklist-oss-community.adoc create mode 100644 docs/em002-4.adoc create mode 100644 docs/em002-5.adoc create mode 100644 docs/em002-6.adoc create mode 100644 docs/em002-7.adoc create mode 100644 docs/em002.adoc delete mode 100644 docs/en/Em002-2.1 Checklist OSS Preliminary Assessment.odt delete mode 100644 docs/en/Em002-2.2 Checklist OSS Analysis and Preparation.odt delete mode 100644 docs/en/Em002-2.3 Checklist OSS Release and Publication.odt delete mode 100644 docs/en/Em002-4.1 Checklist OSS Community.odt delete mode 100644 docs/en/assets/em002-1/media/image1.png delete mode 100644 docs/en/assets/em002-1/media/image2.png delete mode 100644 docs/en/assets/em002-2/md/README_template.md delete mode 100644 docs/en/assets/em002-2/media/image1.png delete mode 100644 docs/en/assets/em002-2/media/image2.png delete mode 100644 docs/en/assets/em002-2/media/image3.png delete mode 100644 docs/en/assets/em002-2/media/image4.png delete mode 100644 docs/en/assets/em002-3/media/image1.png delete mode 100644 docs/en/assets/em002-3/media/image2.png delete mode 100644 docs/en/assets/em002-3/media/image3.png delete mode 100644 docs/en/assets/em002-3/media/image4.png delete mode 100644 docs/en/assets/em002-4/media/image1.png delete mode 100644 docs/en/assets/em002-4/media/image2.png delete mode 100644 docs/en/assets/em002-5/media/image1.png delete mode 100644 docs/en/assets/em002-5/media/image2.png delete mode 100644 docs/en/assets/em002-7/media/image1.png delete mode 100644 docs/en/assets/em002-7/media/image2.png delete mode 100644 docs/en/assets/em002-7/media/image3.png delete mode 100644 docs/en/assets/em002-7/media/image4.png delete mode 100644 docs/en/assets/em002-7/media/image5.png delete mode 100644 docs/en/assets/em002/media/image1.png delete mode 100644 docs/en/assets/em002/media/image2.png delete mode 100644 docs/en/em002-1.md delete mode 100644 docs/en/em002-2.md delete mode 100644 docs/en/em002-3.md delete mode 100644 docs/en/em002-4.md delete mode 100644 docs/en/em002-5.md delete mode 100644 docs/en/em002-6.md delete mode 100644 docs/en/em002-7.md delete mode 100644 docs/en/em002.md create mode 100644 docs/index.adoc delete mode 100644 docs/index_en.md create mode 100644 docs/partials/abbreviations.de.adoc create mode 100644 docs/partials/abbreviations.en.adoc create mode 100644 docs/partials/abbreviations.fr.adoc create mode 100644 docs/partials/abbreviations.it.adoc create mode 100644 docs/partials/abbreviations.rm.adoc create mode 100644 docs/partials/document-map.de.adoc create mode 100644 docs/partials/document-map.en.adoc create mode 100644 docs/partials/document-map.fr.adoc create mode 100644 docs/partials/document-map.it.adoc create mode 100644 docs/partials/document-map.rm.adoc create mode 100644 docs/partials/glossary.de.adoc create mode 100644 docs/partials/glossary.en.adoc create mode 100644 docs/partials/glossary.fr.adoc create mode 100644 docs/partials/glossary.it.adoc create mode 100644 docs/partials/glossary.rm.adoc create mode 100644 docs/partials/references.de.adoc create mode 100644 docs/partials/references.en.adoc create mode 100644 docs/partials/references.fr.adoc create mode 100644 docs/partials/references.it.adoc create mode 100644 docs/partials/references.rm.adoc create mode 100755 tools/check-asciidoc.sh create mode 100755 tools/make-four-cs-svg.sh create mode 100755 tools/open-govpress.sh create mode 100755 tools/render-docs.sh create mode 100755 tools/site-archive.sh create mode 100755 tools/site-index.sh create mode 100755 tools/site-publish.sh create mode 100755 tools/site-root.sh 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 ` names outputs + # `.pdf` with no language in the filename, so the directory is + # what keeps them apart. + render: + runs-on: ubuntu-latest + strategy: + # One broken language should report itself rather than cancel the other + # four and hide whether they were fine. + fail-fast: false + matrix: + lang: [en, de, fr, it, rm] + steps: + - uses: actions/checkout@v7 + + - name: Cache open-govpress download + uses: actions/cache@v6 + with: + path: /tmp/open-govpress.tar.gz + key: open-govpress-${{ env.GOVPRESS_SHA256 }} + + - name: Install Xvfb + run: sudo apt-get update && sudo apt-get install -y xvfb + + - name: Download and extract open-govpress + run: | + if [ ! -f /tmp/open-govpress.tar.gz ]; then + curl -fL --retry 3 -o /tmp/open-govpress.tar.gz "$GOVPRESS_URL" + fi + echo "$GOVPRESS_SHA256 /tmp/open-govpress.tar.gz" | sha256sum -c - + mkdir -p /tmp/open-govpress + tar xzf /tmp/open-govpress.tar.gz -C /tmp/open-govpress + bin=$(find /tmp/open-govpress -maxdepth 2 -name open-govpress -type f) + echo "OGP_BIN=$bin" >> "$GITHUB_ENV" + + - name: Render all documents in ${{ matrix.lang }} + env: + LANG_ID: ${{ matrix.lang }} + run: | + mkdir -p "out/$LANG_ID" + + # A document may opt out of a language with `:l10n-languages:` in its + # header. Absent means all five. Skipping it here is what makes an + # untranslated document *absent* from that language rather than + # rendered as a blank PDF -- no ifeval:: branch matches, so the body + # would be empty. + # + # `docs/partials/` is excluded: it holds fragments that are + # `include::`d into the documents, and a fragment is not a document. + docs=() + while IFS= read -r doc; do + langs=$(sed -n 's/^:l10n-languages:[[:space:]]*//p' "$doc" | head -1) + if [ -z "$langs" ] || grep -qw "$LANG_ID" <<<"$langs"; then + docs+=("$doc") + else + echo "skipping $doc (no $LANG_ID translation)" + fi + done < <(git ls-files '*.adoc' ':!docs/partials/*') + + xvfb-run -a "$OGP_BIN" render --no-sandbox \ + --lang "$LANG_ID" -o "out/$LANG_ID" "${docs[@]}" + + - name: Generate language index page + run: tools/site-index.sh "${{ matrix.lang }}" "out/${{ matrix.lang }}" + + - name: Upload build artifact + uses: actions/upload-artifact@v7 + with: + # `path: out/` so the archive's root is `/`, which is what lets + # the collect job merge all five into one tree. + name: pdfs-${{ matrix.lang }} + path: out/ + + collect: + needs: render + runs-on: ubuntu-latest + outputs: + # The one publish decision for the whole workflow -- the steps below read + # it back, and so does the deploy job. + publish: ${{ steps.gate.outputs.publish }} + permissions: + # `contents: write` is for pushing the accumulated site to the + # `site-history` branch. Job-level permissions replace the top-level block + # outright rather than adding to it, so the read scopes have to be + # restated here. + contents: write + actions: read + steps: + - uses: actions/checkout@v7 + + # Decided once, here, instead of as the same three-clause condition + # repeated on every publishing step and on the deploy job. Those copies + # had to agree with each other and with site-publish.sh's own guard to + # mean anything; a single output cannot drift out of step with itself. + # + # The ref reaches the shell through the environment rather than through + # `${{ }}`: branch names may contain characters that would otherwise be + # substituted into the script before bash ever sees it. + - name: Decide whether this run publishes + id: gate + env: + REF_NAME: ${{ github.ref_name }} + REF_TYPE: ${{ github.ref_type }} + EVENT_NAME: ${{ github.event_name }} + run: | + publish=false + if [ "$EVENT_NAME" = push ]; then + # The trigger admits only `v*` tags, so any tag push reaching here + # is a docs release and archives itself under tags/ either way. + if [ "$REF_TYPE" = tag ] || [ "$REF_NAME" = "$PUBLISH_BRANCH" ]; then + publish=true + fi + fi + echo "publish=$publish" >> "$GITHUB_OUTPUT" + echo "publish=$publish (event=$EVENT_NAME $REF_TYPE=$REF_NAME, published branch=$PUBLISH_BRANCH)" + + - name: Download every language + uses: actions/download-artifact@v8 + with: + pattern: pdfs-* + # Without this each archive lands under its own `pdfs-/` + # directory instead of merging into `site//`. + merge-multiple: true + path: site + + - name: Generate language chooser + run: tools/site-root.sh site + + - name: Upload site artifact + uses: actions/upload-artifact@v7 + with: + name: site + path: site/ + + # A Pages deployment always replaces the whole site, so publishing an + # older build alongside the current one means uploading both -- which + # means remembering the older one somewhere between runs. That somewhere + # is the `site-history` branch. + - name: Overlay this build onto the published site + if: steps.gate.outputs.publish == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + KEEP_COMMITS: "10" + run: tools/site-publish.sh site .site-history + + # upload-pages-artifact excludes `.git` from its tar since v4, but the + # site is re-published from a fresh clone each run and the object store + # has no business being in the artifact -- dropping it here keeps that + # guarantee ours rather than the action's. + - name: Strip the git metadata + if: steps.gate.outputs.publish == 'true' + run: rm -rf .site-history/.git + + - name: Upload Pages artifact + if: steps.gate.outputs.publish == 'true' + uses: actions/upload-pages-artifact@v5 + with: + path: .site-history/ + + deploy: + # Job-level `if:` cannot read the `env` context, which is why the decision + # travels as a job output rather than as PUBLISH_BRANCH compared in place. + if: needs.collect.outputs.publish == 'true' + needs: collect + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + env: + # actions/deploy-pages keys the deployment on GITHUB_SHA alone, and + # Pages treats a repeat of an already-published version as a no-op -- + # reporting success while continuing to serve the earlier build. A + # release tag normally points at the commit main has just published, + # so the tag's archive would never reach the site. Qualifying the + # version with the ref name makes each ref its own deployment. + # Undocumented but stable: the runner layers step `env` over the + # default variables, and pages_build_version is a free-form string. + GITHUB_SHA: ${{ github.sha }}-${{ github.ref_name }} + uses: actions/deploy-pages@v5 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..723c601 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# devenv / direnv +.devenv* +.direnv/ + +# Generated by devenv from the git-hooks.hooks block in devenv.nix, as a +# symlink into the nix store. Committing it would pin hook versions to one +# machine's store paths. +/.pre-commit-config.yaml + +# open-govpress: downloaded from a GitHub Release and extracted on demand, +# see devenv.nix +/open-govpress/.cache/ +/open-govpress/.extracted/ + +# rendered output (build artifacts, not source) +*.pdf + +# the per-language site built by `render-docs` locally and by CI +/build/ +/site/ diff --git a/DEVENV-SETUP.adoc b/DEVENV-SETUP.adoc new file mode 100644 index 0000000..f1f4958 --- /dev/null +++ b/DEVENV-SETUP.adoc @@ -0,0 +1,227 @@ +:lang: en +ifeval::["{lang}" == "en"] += Setting up the development environment +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +:govpress-style: report +// Black, not the colour mark the guidelines carry: contributor documentation, +// addressed to whoever works on this repository rather than to its readers. +:title-logo-base: black +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +// Contributor documentation, not a guideline: there is no translated body, so +// without this the English text below would be rendered once per language and +// take a row on each of the five index pages. render-docs.sh reads the +// attribute and builds the document only in the languages it names. +:l10n-languages: en +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 +// The repository, written as `{url-repo}` throughout the body. +:url-repo: https://github.com/swiss/opensource-guidelines + +Everything needed to lint and render the documents in this repository is declared in `devenv.nix` and pinned by `devenv.lock`. Nothing is installed globally and no version is left to the machine: the toolchain a contributor gets is the one CI uses, which is why a clean `lint` locally means a green lint job. + +This page covers getting into that environment. What to do once inside -- how a five-language document is structured, and how to render one while translating it -- is link:TRANSLATING.adoc[TRANSLATING.adoc]. + +== Prerequisites + +* *Linux on x86-64*, or Windows with WSL2. macOS is not supported: the renderer ships as a `linux-x64` binary and is run through a Nix FHS environment, which exists only on Linux, so the environment fails to evaluate elsewhere. See the comment at the top of `devenv.nix`. +* *git*, per the https://git-scm.com/book/en/v2/Getting-Started-Installing-Git[official instructions]. +* *Disk and bandwidth.* The first shell downloads a few GB into the Nix store -- most of it VS Code -- and the first render pulls a further 112 MiB for the renderer. +* An internet connection, for both of the above. + +== Installing Nix + +On NixOS there is nothing to do here. Everywhere else: + +[source,sh] +---- +sh <(curl -L https://nixos.org/nix/install) --daemon +---- + +Then open a new shell, so that the profile script the installer added is sourced and `nix` is on the path. + +NOTE: On Fedora and other SELinux distributions, the daemon may refuse to start. Open `/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh` and comment out the first two lines. + +== Configuring Nix + +Two settings, both in `/etc/nix/nix.conf` (on NixOS, in `nix.settings` in your system configuration instead): + +[source,ini] +---- +experimental-features = nix-command flakes +extra-substituters = https://devenv.cachix.org +extra-trusted-public-keys = devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw= +---- + +The first is required: devenv is a flake, and the stock installer leaves both features off. The second points Nix at devenv's binary cache, so the closure is downloaded prebuilt rather than compiled locally -- the difference between minutes and hours on the first shell. CI does the same thing with `cachix/cachix-action`. + +Restart the daemon so the new settings are read: + +[source,sh] +---- +sudo systemctl restart nix-daemon.service +---- + +== Installing devenv + +[source,sh] +---- +nix profile install --accept-flake-config nixpkgs#devenv +---- + +`--accept-flake-config` is what lets devenv's own substituters apply without a prompt. If you would rather not enable flakes at all, the channel equivalent works too: + +[source,sh] +---- +nix-env --install --attr devenv -f https://github.com/NixOS/nixpkgs/tarball/nixos-26.05 +---- + +== Installing direnv + +direnv is what makes the environment load on `cd` instead of on demand. It is optional -- `devenv shell` gives the same environment -- but everything below assumes it. + +. Install it per the https://direnv.net/docs/installation.html[official instructions]. +. https://direnv.net/docs/hook.html[Hook it into your shell]. This step is easy to skip and nothing works without it. + +== Entering the environment + +[source,sh] +---- +git clone {url-repo}.git +cd opensource-guidelines +direnv allow +---- + +`direnv allow` is required once per clone, and again whenever `.envrc` changes: direnv refuses to run a file it has not been told to trust. The first load takes a while and says little; subsequent ones are instant. + +Without direnv, the equivalent is `devenv shell` from the repository root, repeated in every terminal. + +== Verifying the setup + +Entering the shell prints the helper scripts it provides. `devenv-help` prints the same list again at any time: + +[options="header",cols="1,2"] +|=== +|Script |What it does + +|`devenv-help` |Print the list of scripts +|`lint` |Run every git hook over every file +|`render-docs` |Render every document in every language into `build/` +|`open-govpress` |Render named documents -- the renderer itself +|=== + +A working setup runs both of these clean: + +[source,sh] +---- +lint # every hook, every file +render-docs en # the English site into build/en/ +---- + +`render-docs` finishes by naming the file to open -- `build/index.html`, the language chooser, with `build/en/index.html` behind it. That is the same site CI publishes to GitHub Pages, built by the same scripts, which is the point of being able to build it locally at all. + +== The git hooks + +Entering the shell installs the hooks; there is no separate install step and no `pre-commit install` to remember. `.pre-commit-config.yaml` at the root is generated from `devenv.nix` and gitignored -- edit the `git-hooks.hooks` block in `devenv.nix`, never the generated file. + +The hooks run against staged files at commit time. `lint` runs them against everything, which is what CI does, and takes arguments through to https://github.com/j178/prek[prek]: + +[source,sh] +---- +lint # every hook, every file +lint check-asciidoc --all-files # one hook, every file +---- + +Several hooks fix the file rather than only complaining -- `end-of-file-fixer`, `dos2unix`, `trim-trailing-whitespace`, `nixfmt`. A commit they touch fails; stage the fix and commit again. + +`git commit --no-verify` skips them. CI runs the same hooks on push, so this defers the failure rather than avoiding it. + +== Rendering the documents + +`render-docs` builds the whole site; `open-govpress` renders named documents, which is the faster loop while editing one: + +[source,sh] +---- +render-docs # all five languages +render-docs de rm # just those two +open-govpress render --lang de -o build/de/ docs/em002-5.adoc +---- + +The trailing slash on `-o build/de/` is not decoration: with a single input file, that path is treated as a directory only if it ends in a separator or already exists. Without it, the first render into a fresh clone writes a PDF into a file named `build/de`. link:TRANSLATING.adoc[TRANSLATING.adoc] covers this alongside the rest of the per-document loop. + +The first invocation of either downloads the renderer -- a ~112 MiB release asset, checksum-verified -- into `open-govpress/.cache/` and unpacks it into `open-govpress/.extracted/`. Both are gitignored and both are reused afterwards, so only the first render pays for this. It happens on first use rather than on shell entry so that entering the shell stays fast for anyone who is not rendering. + +The renderer is Electron and has no headless mode, so it is always run under `xvfb-run`. This is handled by the `open-govpress` script and needs no display of your own. + +== The editor + +Interactive shells include VS Code with the extensions that match the hooks -- AsciiDoc, direnv, EditorConfig, Nix, ShellCheck, YAML and GitHub Actions -- so that what the hooks reject is visible while typing: + +[source,sh] +---- +code . +---- + +Two things the extensions cannot infer, both worth setting once: point `nix.formatterPath` at `nixfmt`, so the Nix extension formats the way the `nixfmt` hook expects; and note that the ShellCheck hook runs stricter than the extension does (`-x -o all`), so a clean editor does not guarantee a clean commit. + +== Matching what CI does + +CI never installs the editor. Interactive shells get it, CI does not, and the switch is an environment flag: + +[source,sh] +---- +devenv --option env.cicd:bool true shell -- prek run --all-files --show-diff-on-failure +---- + +That is the lint job from `.github/workflows/lint.yml`, verbatim. Reach for it when a hook passes locally and fails in CI, or to lint without pulling the VS Code closure at all. + +== Local overrides + +devenv reads two files that let a machine differ from the repository: `devenv.local.nix` for Nix-level overrides, and `.env` for environment variables, which this environment has enabled. + +[source,nix] +---- +# devenv.local.nix +{ ... }: +{ + env.SOME_TOKEN = "..."; +} +---- + +WARNING: Neither file is in `.gitignore` here. Keep them out of commits by hand, or add them before you write one. See the https://devenv.sh/files-and-variables/[devenv documentation] for what else they can set. + +Run `direnv reload` after changing either. + +== Troubleshooting + +`direnv: error .envrc is blocked`:: +Expected on a fresh clone and after any change to `.envrc`. Run `direnv allow`. + +`devenv: command not found` right after installing it:: +The profile script is sourced by login shells only. Open a new terminal. + +Nothing happens on `cd` into the repository:: +direnv is installed but not hooked into the shell. See https://direnv.net/docs/hook.html[the hook instructions]. + +The first shell is compiling rather than downloading:: +The binary cache is not in effect. Re-check `extra-substituters` and `extra-trusted-public-keys` in `/etc/nix/nix.conf`, and that the daemon was restarted afterwards. + +`open-govpress` exits with code 5:: +Electron could not find a display. Use the `open-govpress` script rather than the extracted binary -- the script supplies `xvfb-run`. + +A checksum mismatch after bumping the renderer:: +`govpressVersion`, `govpressUrl` and `govpressSha256` in `devenv.nix` and the three `GOVPRESS_` variables in `.github/workflows/render-docs.yml` are one version pinned in two places, and have to move together. + +Renders still use the old version after a bump:: +The extracted copy is keyed by version and should not go stale, but `rm -rf open-govpress/.extracted` forces a clean unpack. diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..2bbfc17 --- /dev/null +++ b/README.adoc @@ -0,0 +1,259 @@ +:lang: en +ifeval::["{lang}" == "en"] += Guidelines to open source software (according to Article 9 EMOTA) +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Hilfsmittel zu Open-Source-Software (gemäss Artikel 9 EMBAG) +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Outils relatifs aux logiciels open source (selon l'article 9 LMETA) +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Strumenti per il software open source (secondo l'articolo 9 LMeCA) +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Meds per software open source (tenor l'artitgel 9 EMBAG) +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// Black, not the colour mark the guidelines carry: this page describes the +// repository that holds them and is not itself one of them. +:title-logo-base: black +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +This repository contains *evolving drafts* of guidelines and tools to support the Federal Administration in publishing open source code. The *official and binding versions* are available in all official languages on the https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[Swiss Federal Chancellery website]. + +Every document in this repository carries all five languages -- English, German, French, Italian and Romansh -- in a single AsciiDoc file. The German, French, Italian and Romansh texts are *unreviewed translations*; see link:TRANSLATING.adoc[TRANSLATING.adoc] before editing them. + +For a complete list of documents, see: link:docs/index.adoc[Tools for Publishing Open Source Software] + +== Legal obligations and responsibility + +As outlined in https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[Article 9 EMOTA], the Federal Administration is *principally obligated to publish its software as open source.* Each federal authority holds independent responsibility for ensuring compliance, including making the source code publicly available. + +== Contributing + +Contributions from the open source community and other stakeholders to these guidelines are highly valued. Have a suggestion for improvement? You can: + +. Fork the repository +. Create your feature branch (`git checkout -b feature/AmazingFeature`) +. Commit your changes (`git commit -m 'Add some AmazingFeature'`) +. Push to the branch (`git push origin feature/AmazingFeature`) +. Open a pull request + +Alternatively, you can simply open an issue. + +To build and check the sources on your own machine, see link:DEVENV-SETUP.adoc[DEVENV-SETUP.adoc]. + +NOTE: You can also write in *German, French, or Italian* and refer to the https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[official language documents] where relevant. + +== Changes + +When *major changes* are proposed, they undergo the Federal Chancellery's standard review process and, upon approval, are translated and published on the https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[Swiss Federal Chancellery website]. The respective documents are then assigned a new version number. Major changes between versions can be followed using the {url-repo}/releases[release] notes. + +*Minor changes* are incorporated regularly into the official PDF publications on the https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[Swiss Federal Chancellery website]. + +== License + +These guidelines are licensed under the *CC0 1.0 Universal license*. For details, see the `LICENSE` file. + +== Contact + +mailto:opensource@bk.admin.ch[opensource@bk.admin.ch] +endif::[] + +ifeval::["{lang}" == "de"] +Dieses Repository enthält *laufend weiterentwickelte Entwürfe* von Hilfsmitteln, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Die *offiziellen und verbindlichen Fassungen* sind in allen Amtssprachen auf der https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[Website der Schweizerischen Bundeskanzlei] verfügbar. + +Jedes Dokument in diesem Repository enthält alle fünf Sprachen -- Englisch, Deutsch, Französisch, Italienisch und Rumantsch -- in einer einzigen AsciiDoc-Datei. Die deutschen, französischen, italienischen und rätoromanischen Texte sind *ungeprüfte Übersetzungen*; lesen Sie link:TRANSLATING.adoc[TRANSLATING.adoc], bevor Sie sie bearbeiten. + +Eine vollständige Liste der Dokumente finden Sie unter: link:docs/index.adoc[Hilfsmittel zur Veröffentlichung von Open-Source-Software] + +== Gesetzliche Pflichten und Verantwortung + +Gemäss https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[Artikel 9 EMBAG] ist die Bundesverwaltung *grundsätzlich verpflichtet, ihre Software als Open Source zu veröffentlichen.* Jede Bundesbehörde trägt eigenständig die Verantwortung für die Einhaltung dieser Pflicht, einschliesslich der öffentlichen Bereitstellung des Quellcodes. + +== Mitwirkung + +Beiträge aus der Open-Source-Community und von weiteren Interessierten zu diesen Hilfsmitteln sind sehr willkommen. Haben Sie einen Verbesserungsvorschlag? Sie können: + +. Das Repository forken +. Ihren Feature-Branch erstellen (`git checkout -b feature/AmazingFeature`) +. Ihre Änderungen committen (`git commit -m 'Add some AmazingFeature'`) +. Auf den Branch pushen (`git push origin feature/AmazingFeature`) +. Einen Pull Request eröffnen + +Alternativ können Sie auch einfach ein Issue eröffnen. + +Wie Sie die Quellen auf Ihrem eigenen Rechner bauen und prüfen, steht in link:DEVENV-SETUP.adoc[DEVENV-SETUP.adoc]. + +NOTE: Sie können auch auf *Deutsch, Französisch oder Italienisch* schreiben und dort, wo es sinnvoll ist, auf die https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[Dokumente in den Amtssprachen] verweisen. + +== Änderungen + +Werden *wesentliche Änderungen* vorgeschlagen, so durchlaufen sie das übliche Prüfverfahren der Bundeskanzlei und werden nach der Genehmigung übersetzt und auf der https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[Website der Schweizerischen Bundeskanzlei] veröffentlicht. Die betreffenden Dokumente erhalten anschliessend eine neue Versionsnummer. Wesentliche Änderungen zwischen den Versionen lassen sich anhand der {url-repo}/releases[Release]-Notizen nachvollziehen. + +*Geringfügige Änderungen* fliessen regelmässig in die offiziellen PDF-Publikationen auf der https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[Website der Schweizerischen Bundeskanzlei] ein. + +== Lizenz + +Diese Hilfsmittel stehen unter der *CC0 1.0 Universal-Lizenz*. Einzelheiten finden Sie in der Datei `LICENSE`. + +== Kontakt + +mailto:opensource@bk.admin.ch[opensource@bk.admin.ch] +endif::[] + +ifeval::["{lang}" == "fr"] +Ce dépôt contient des *projets en cours d'élaboration* d'outils destinés à soutenir l'administration fédérale dans la publication de code open source. Les *versions officielles et contraignantes* sont disponibles dans toutes les langues officielles sur le https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[site de la Chancellerie fédérale suisse]. + +Chaque document de ce dépôt contient les cinq langues -- anglais, allemand, français, italien et romanche -- dans un seul fichier AsciiDoc. Les textes allemand, français, italien et romanche sont des *traductions non vérifiées* ; veuillez lire link:TRANSLATING.adoc[TRANSLATING.adoc] avant de les modifier. + +Pour la liste complète des documents, voir : link:docs/index.adoc[Outils pour la publication de logiciels open source] + +== Obligations légales et responsabilité + +Conformément à l'https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[article 9 LMETA], l'administration fédérale est *en principe tenue de publier ses logiciels en open source.* Chaque autorité fédérale est responsable de manière autonome du respect de cette obligation, y compris de la mise à disposition publique du code source. + +== Contribuer + +Les contributions de la communauté open source et des autres parties prenantes à ces outils sont très appréciées. Vous avez une suggestion d'amélioration ? Vous pouvez : + +. Forker le dépôt +. Créer votre branche de fonctionnalité (`git checkout -b feature/AmazingFeature`) +. Valider vos modifications (`git commit -m 'Add some AmazingFeature'`) +. Pousser la branche (`git push origin feature/AmazingFeature`) +. Ouvrir une pull request + +Vous pouvez également ouvrir simplement une issue. + +Pour générer et vérifier les sources sur votre propre machine, voir link:DEVENV-SETUP.adoc[DEVENV-SETUP.adoc]. + +NOTE: Vous pouvez aussi écrire en *allemand, français ou italien* et renvoyer, le cas échéant, aux https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[documents dans les langues officielles]. + +== Modifications + +Lorsque des *modifications importantes* sont proposées, elles suivent la procédure d'examen habituelle de la Chancellerie fédérale et sont, après approbation, traduites et publiées sur le https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[site de la Chancellerie fédérale suisse]. Les documents concernés reçoivent ensuite un nouveau numéro de version. Les modifications importantes entre les versions peuvent être suivies au moyen des notes de {url-repo}/releases[publication]. + +Les *modifications mineures* sont régulièrement intégrées aux publications PDF officielles sur le https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[site de la Chancellerie fédérale suisse]. + +== Licence + +Ces outils sont placés sous la *licence CC0 1.0 Universal*. Pour les détails, voir le fichier `LICENSE`. + +== Contact + +mailto:opensource@bk.admin.ch[opensource@bk.admin.ch] +endif::[] + +ifeval::["{lang}" == "it"] +Questo repository contiene *bozze in continua evoluzione* di strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Le *versioni ufficiali e vincolanti* sono disponibili in tutte le lingue ufficiali sul https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[sito della Cancelleria federale svizzera]. + +Ogni documento di questo repository contiene tutte e cinque le lingue -- inglese, tedesco, francese, italiano e romancio -- in un unico file AsciiDoc. I testi tedesco, francese, italiano e romancio sono *traduzioni non verificate*; consultate link:TRANSLATING.adoc[TRANSLATING.adoc] prima di modificarli. + +Per l'elenco completo dei documenti si veda: link:docs/index.adoc[Strumenti per la pubblicazione di software open source] + +== Obblighi legali e responsabilità + +Conformemente all'https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[articolo 9 LMeCA], l'Amministrazione federale è *tenuta in linea di principio a pubblicare il proprio software come open source.* Ogni autorità federale è responsabile in modo autonomo del rispetto di tale obbligo, compresa la messa a disposizione pubblica del codice sorgente. + +== Contribuire + +I contributi della community open source e delle altre parti interessate a questi strumenti sono molto apprezzati. Avete un suggerimento di miglioramento? Potete: + +. Forkare il repository +. Creare il vostro feature branch (`git checkout -b feature/AmazingFeature`) +. Eseguire il commit delle modifiche (`git commit -m 'Add some AmazingFeature'`) +. Effettuare il push sul branch (`git push origin feature/AmazingFeature`) +. Aprire una pull request + +In alternativa potete semplicemente aprire una issue. + +Per compilare e verificare i sorgenti sul vostro computer, si veda link:DEVENV-SETUP.adoc[DEVENV-SETUP.adoc]. + +NOTE: Potete scrivere anche in *tedesco, francese o italiano* e rinviare, ove opportuno, ai https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[documenti nelle lingue ufficiali]. + +== Modifiche + +Quando vengono proposte *modifiche sostanziali*, esse seguono la consueta procedura di esame della Cancelleria federale e, una volta approvate, vengono tradotte e pubblicate sul https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[sito della Cancelleria federale svizzera]. I documenti interessati ricevono poi un nuovo numero di versione. Le modifiche sostanziali tra le versioni possono essere seguite mediante le note di {url-repo}/releases[release]. + +Le *modifiche minori* confluiscono regolarmente nelle pubblicazioni PDF ufficiali sul https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[sito della Cancelleria federale svizzera]. + +== Licenza + +Questi strumenti sono pubblicati sotto la *licenza CC0 1.0 Universal*. Per i dettagli si veda il file `LICENSE`. + +== Contatto + +mailto:opensource@bk.admin.ch[opensource@bk.admin.ch] +endif::[] + +ifeval::["{lang}" == "rm"] +Quest repositori cuntegna *sbozzas ch'èn vegnidas sviluppadas vinavant* da meds che sustegnan l'administraziun federala en la publicaziun da code open source. Las *versiuns ufficialas e liantas* èn disponiblas en tuttas linguas ufficialas sin la https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[pagina d'internet da la Chanzlia federala svizra]. + +Mintga document da quest repositori cuntegna tuttas tschintg linguas -- englais, tudestg, franzos, talian e rumantsch -- en ina suletta datoteca AsciiDoc. Ils texts tudestg, franzos, talian e rumantsch èn *translaziuns betg verifitgadas*; legiai link:TRANSLATING.adoc[TRANSLATING.adoc] avant che elavurar els. + +Ina glista cumpletta dals documents chattais Vus sut: link:docs/index.adoc[Meds per publitgar software open source] + +== Obligaziuns legalas e responsabladad + +Tenor l'https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[artitgel 9 EMBAG] è l'administraziun federala *fundamentalmain obligada da publitgar ses software sco open source.* Mintga autoritad federala porta independentamain la responsabladad per l'observaziun da questa obligaziun, inclusiv la messa a disposiziun publica dal code da funtauna. + +== Cooperaziun + +Contribuziuns da la communitad open source e d'ulteriurs interessads a quests meds èn fitg bainvegnidas. Avais Vus ina proposta da meglierament? Vus pudais: + +. Forkar il repositori +. Crear Voss feature-branch (`git checkout -b feature/AmazingFeature`) +. Committar Vossas midadas (`git commit -m 'Add some AmazingFeature'`) +. Pushar sin il branch (`git push origin feature/AmazingFeature`) +. Avrir ina pull request + +Alternativamain pudais Vus era simplamain avrir in issue. + +Co ch'i vegn bajegià e controllà las funtaunas sin Voss agen computer, chattais Vus en link:DEVENV-SETUP.adoc[DEVENV-SETUP.adoc]. + +NOTE: Vus pudais era scriver per *tudestg, franzos u talian* e renviar, nua ch'igl è sensa, als https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[documents en las linguas ufficialas]. + +== Midadas + +Sche *midadas essenzialas* vegnan proponidas, passan ellas il process da controlla usità da la Chanzlia federala e vegnan, suenter l'approvaziun, translatadas e publitgadas sin la https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[pagina d'internet da la Chanzlia federala svizra]. Ils documents pertutgads survegnan lura in nov numer da versiun. Midadas essenzialas tranter las versiuns pon vegnir suandadas cun agid da las notizias da {url-repo}/releases[release]. + +*Midadas pitschnas* fluescha regularmain en las publicaziuns PDF ufficialas sin la https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[pagina d'internet da la Chanzlia federala svizra]. + +== Licenza + +Quests meds èn suttamess a la *licenza CC0 1.0 Universal*. Detagls chattais Vus en la datoteca `LICENSE`. + +== Contact + +mailto:opensource@bk.admin.ch[opensource@bk.admin.ch] +endif::[] diff --git a/README.md b/README.md deleted file mode 100644 index 7bfa73d..0000000 --- a/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Guidelines to open source software (according to Article 9 EMOTA) - -This repository contains **evolving drafts** of guidelines and tools to support the Federal Administration in publishing open source code. The **official and binding versions** are available in all official languages on the [Swiss Federal Chancellery website](https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html). - -For a complete list of documents, see: -[Tools for Publishing Open Source Software](docs/index_en.md) - -## Legal obligations and responsibility - -As outlined in [Article 9 EMOTA](https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9), the Federal Administration is **principally obligated to publish its software as open source.** Each federal authority holds independent responsibility for ensuring compliance, including making the source code publicly available. - -## Contributing - -Contributions from the open source community and other stakeholders to these guidelines are highly valued. Have a suggestion for improvement? You can: - -1. Fork the repository -2. Create your feature branch (`git checkout -b feature/AmazingFeature`) -3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) -4. Push to the branch (`git push origin feature/AmazingFeature`) -5. Open a pull request - -Alternatively, you can simply open an issue. - -**Note:** You can also write in **German, French, or Italian** and refer to the [official language documents](https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html) where relevant. - -## Changes - -When **major changes** are proposed, they undergo the Federal Chancellery’s standard review process and, upon approval, are translated and published on the [Swiss Federal Chancellery website](https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html). The respective documents are then assigned a new version number. Mayor changes between versions can be followed using the [release](https://github.com/swiss/opensource-guidelines/releases) notes. - -**Minor changes** are incorporated regularly into the official PDF publications on the [Swiss Federal Chancellery website](https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html). - -## License - -These guidelines are licensed under the **CC0 1.0 Universal license**. For details, see the `LICENSE` file. - -## Contact - -[opensource@bk.admin.ch](mailto:opensource@bk.admin.ch) diff --git a/TRANSLATING.adoc b/TRANSLATING.adoc new file mode 100644 index 0000000..fe37ec5 --- /dev/null +++ b/TRANSLATING.adoc @@ -0,0 +1,219 @@ +:lang: en +ifeval::["{lang}" == "en"] += Translating these guidelines +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +:govpress-style: report +// Black, not the colour mark the guidelines carry: contributor documentation, +// addressed to whoever works on this repository rather than to its readers. +:title-logo-base: black +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +// Contributor documentation, not a guideline: there is no translated body, so +// without this the English text below would be rendered once per language and +// take a row on each of the five index pages. render-docs.sh reads the +// attribute and builds the document only in the languages it names. Set by this +// file and by DEVENV-SETUP.adoc, the two contributor documents; every guideline +// in docs/ omits it and is built in all five. +:l10n-languages: en +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +Every document in `docs/` carries *all five languages in one `.adoc` file*. There is no per-language copy of a file and no per-language directory -- those were removed on purpose, because five copies of a document drift apart the first time someone fixes a typo in only one of them. + +Two kinds of file are outside that rule. `docs/partials/` holds fragments, which are one file per language; they have a section of their own below. The contributor documentation at the repository root -- this page and link:DEVENV-SETUP.adoc[DEVENV-SETUP.adoc] -- is English-only, and says so with `:l10n-languages: en`. + +One five-language document is easy to overlook because it does not sit in `docs/` with the others: `docs/assets/em002-2/md/README_template.adoc`, the README template Em002-2 hands out. `render-docs` publishes it like any other document, and it needs translating like any other document. + +== How a document is structured + +// The preprocessor runs inside listing blocks too, so every `ifeval::`, +// `endif::[]` and `include::` below is escaped with a backslash that +// asciidoctor eats again on the way out. The two lines carrying a callout are +// the exception: the trailing `` already stops them matching the directive +// pattern, and a backslash there would be printed. +[source,asciidoc] +---- +:lang: en <1> +\ifeval::["{lang}" == "en"] += Em002-5 EMOTA and OSS Factsheet <2> +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +\endif::[] +\ifeval::["{lang}" == "de"] += Em002-5 Merkblatt EMBAG und OSS +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +\endif::[] +…fr, it, rm… +:govpress-style: report <3> +:title-logo-base: color +:toc: +… + +ifeval::["{lang}" == "en"] <4> +…the whole English body… +\endif::[] + +\ifeval::["{lang}" == "de"] +…the whole German body… +\endif::[] + +…fr, it, rm… +---- +<1> *Must stay the first line.* It is the default language when nobody pins one, which is what GitHub's `.adoc` preview and the open-govpress desktop app use. Without it the `ifeval::` guards have no `+{lang}+` to compare against and the document renders empty. +<2> The *title* and the two *Kennzeichnung* lines are per-language. +<3> Every other attribute is shared, written once, after the title chain. +<4> The body is five blocks, always in the order `en, de, fr, it, rm`. + +Language codes are the bare subtags `en de fr it rm` -- never `de-CH`. Nothing anywhere reduces a region subtag to its base: `open-govpress render --lang de-CH` exits with `unknown --lang "de-CH"`, and a document whose own `:lang:` is `de-CH` fails on its caption include, which is resolved by exact filename. No `ifeval::` would match it either. + +Two further attributes are shared and must survive translation unchanged: `:revnumber:` and `:revdate:`, which date the document, and `:url-repo:`, the repository URL written once in the header and referenced as `+{url-repo}+` in the body of eight documents. Translate neither the attribute name nor the reference -- `+{url-repo}+` is an attribute reference, not text, and expanding it by hand puts the URL back in 64 places. + +=== The Kennzeichnung + +Captions, the TOC heading and admonition labels are localised by open-govpress from the active language. Leave them alone. + +The *Kennzeichnung* on the title page is stated by the document itself. Lines 1 and 2 sit in the per-language blocks and must read exactly: + +[options="header",cols="1,2,3"] +|=== +|lang |line1 |line2 + +|en |Federal Chancellery FCh |Digital Transformation and ICT Steering DTI +|de |Bundeskanzlei BK |Digitale Transformation und IKT-Lenkung DTI +|fr |Chancellerie fédérale ChF |Transformation numérique et gouvernance de l'informatique TNI +|it |Cancelleria federale CaF |Trasformazione digitale e governance delle TIC TDT +|rm |Chanzlia federala ChF |Transfurmaziun digitala e direcziun da las TIC TDT +|=== + +Sector names are from the Federal Chancellery's own pages -- https://www.bk.admin.ch/de/bereich-dti[de], https://www.bk.admin.ch/fr/transformation-numerique-et-gouvernance-de-linformatique[fr], https://www.bk.admin.ch/it/trasformazione-digitale-e-governance-delle-tic[it], https://www.bk.admin.ch/en/dti-sector[en], https://www.bk.admin.ch/bk/rm/home/digitale-transformation-ikt-lenkung.html[rm]. Note the sector abbreviation differs per language: *DTI* in German and English, *TNI* in French, *TDT* in Italian _and Romansh_. + +The logo above those lines is picked by `:title-logo-base:`, which is shared rather than per-language: the asset is the same in all five. The Em002 documents and the README template Em002-2 hands out carry `color`. This page, link:DEVENV-SETUP.adoc[DEVENV-SETUP.adoc], the repository README and the `docs/index.adoc` language index carry `black`, being documentation *about* the guidelines rather than part of them. open-govpress takes `colour` as a synonym and falls back to `black` for anything else, the attribute being absent included -- so a new document that says nothing gets the black mark by default rather than by decision. + +== Building + +[source,sh] +---- +render-docs # all five languages into build/ +render-docs de rm # just those two +---- + +Check a single document while translating it: + +[source,sh] +---- +for l in en de fr it rm; do + open-govpress render --lang "$l" -o "build/$l/" docs/em002-5.adoc +done +---- + +The trailing slash matters. With one input file, `-o` is a directory only when the path ends in a separator or already exists, so `-o build/de` on a clone that has never rendered writes a PDF into a *file* called `build/de`. + +A near-empty PDF means that language's body block is missing. A malformed `endif::[]` does not get that far: asciidoctor reports it as an error and `tools/check-asciidoc.sh` fails the commit before anything is rendered. The third cause is asking for a language the document opted out of. + +A document that is not translated -- contributor documentation, or a guideline whose other four blocks are not written yet -- names the languages it has: + +[source,asciidoc] +---- +:l10n-languages: en +---- + +`render-docs` then builds it only in those languages, instead of rendering the English text five times and giving it a row on each of the five index pages. It still has to *parse* in all five, because `tools/check-asciidoc.sh` checks every language regardless; the guards simply yield an empty body. + +== Terminology + +[options="header",cols="1,1,1,1,1"] +|=== +|en |de |fr |it |rm + +|EMOTA |EMBAG |LMETA |LMeCA |EMBAG +|Federal Chancellery FCh |Bundeskanzlei BK |Chancellerie fédérale ChF |Cancelleria federale CaF |Chanzlia federala ChF +|FOBL |BBL |OFCL |UFCL |UFCL +|CCPP |KBB |CCMP |CCAP |CCA +|FITSU |ISB |USIC |ODIC |ISB +|DTI sector |Sektor DTI |secteur TNI |settore TDT |sectur TDT +|open source software (OSS) |Open-Source-Software (OSS) |logiciel open source (OSS) |software open source (OSS) |software open source (OSS) +|checklist |Checkliste |liste de contrôle |lista di controllo |glista da controlla +|SR 172.019 |SR 172.019 |RS 172.019 |RS 172.019 |CS 172.019 +|Strategic Guidelines (Em002) |Strategische Leitlinien |Lignes directrices stratégiques |Linee guida strategiche |Directivas strategicas +|guidelines (Em002-3/-4/-7) |Leitfaden |guide |guida |guida +|practical guidelines (Em002-1) |Praxisleitfaden |guide pratique |guida pratica |guida pratica +|instructions (Em002-2) |Anleitung |instructions |istruzioni |instrucziuns +|information sheet / factsheet |Merkblatt |aide-mémoire |promemoria |fegl d'infurmaziun +|administrative unit (OU) |Organisationseinheit (OE) |unité d'organisation (UO) |unità organizzativa (UO) |unitad d'organisaziun (UO) +|=== + +The law-collection designator is translated along with everything else -- `SR` in German and English, `RS` in French and Italian, `CS` in Romansh -- so `+footnote:[SR 172.019]+` is correct in two languages out of five and wrong in the other three. + +*Romansh (Rumantsch Grischun) is the weakest link.* `EMBAG` is used as the short title because it is the abbreviation Romansh federal texts cite; if Fedlex publishes a Romansh abbreviation for CS 172.019, use that instead. The Romansh text in this repository has not been reviewed by a Romansh speaker. + +== Rules + +* *Preserve every AsciiDoc construct exactly.* `+footnote:[]+`, `image::` macros, `|===` table delimiters and cell counts, `a|` cell prefixes, inline roles such as `+[.underline]#…#+`, `'''` rules, `+` line breaks, and the bare block attribute lines that sit above a block and are the easiest thing in the file to lose: `[%interactive]` above a `* [ ]` list is what turns those items into real form fields in the PDF, and `[.landscape]` above a wide table is what gives it a turned page. +* *Use unconstrained bold where a footnote abuts it.* `+*Digital Switzerland Strategy*footnote:[…]+` never closes its bold, and the asterisks reach the page as literal text; write `+**Digital Switzerland Strategy**footnote:[…]+` instead. The same goes for italic. Nothing warns you -- the document renders, with asterisks in it. +* *Translate image alt text.* Image _paths_ are per-language where the picture contains words: `assets/four-cs/four-cs.de.svg` belongs in the German block and nowhere else. There are two such sets, `four-cs..svg` and `four-cs-cases..svg`. Both are generated -- edit `tools/make-four-cs-svg.sh` and re-run it, never the `.svg` files. +* *Translate `+link:…[display text]+`, never the target.* Targets are relative `.pdf` paths because the links are followed inside the rendered PDFs, where the documents of one language sit side by side in one directory. They resolve correctly as of open-govpress 0.0.14, which rewrites each annotation back to the authored string after printing; before that the CLI baked in its own loopback origin and every one of the 1,100 targets led nowhere. Nothing was rewritten to work around it, which is why nothing had to be undone. +* *Switch the language segment of admin.ch and fedlex.admin.ch URLs* to match (`…/2023/682/en#art_9` → `…/2023/682/de#art_9`). Leave a URL alone when only one language of it exists, which is the majority: `intranet.bbl.admin.ch`, `www.bkb.admin.ch`, `intranet.dti.bk.admin.ch` and `beschaffung.admin.ch` are German-only and are cited as such in the English source too. *The Romansh block keeps the German segment* almost throughout -- admin.ch publishes very little in Romansh, and 42 of the 51 admin.ch URLs in that block point at `/de` on purpose. +* *Keep abbreviations that the English source keeps*, such as `ISBO / DSBO` and `Application Manager`. +* Section numbering is generated (`:sectnums:`), so cross-references that name a section number stay valid in every language as long as the section structure is identical. Keep the same headings in the same order in all five blocks. + +== Diagrams + +Diagrams are Mermaid blocks, opened with `+[mermaid,align="center",alt="…"]+` and delimited by `....`, never `----`. Their labels are text you translate like any other. Five rules, each of which has bitten: + +* *Never add `theme:`, `themeVariables`, a `---` frontmatter block or an `+%%{init: …}%%+` directive.* open-govpress generates the whole Mermaid palette from the document's own design tokens -- a couple of hundred theme variables from sixty-odd tokens; any inline theme override throws all of it away and the diagram renders off-brand. +* *Never set `layout: elk`.* The ELK package is not bundled, and the block would fail to load its layout. +// The counter-example is the bare label rather than `Fin([Ende])`, because a +// bracketed token after `(` is exactly how the prose cites a reference key: +// check-asciidoc.sh would report `Ende` as a citation with no entry behind it. +* *`end` is a reserved word* and silently breaks a flowchart. Quote any node label that is just that word: `+Fin(["Ende"])+`, never a bare `+[Ende]+`. +* *Every block needs `alt=`*, translated. Without it the diagram reaches the PDF as an unlabelled figure and a screen reader reads its node labels in layout order, which is word salad. +* *`block-beta` does not take flowchart edge labels.* In a `block-beta` diagram an edge is written `+A-- "label" -->B+`; the flowchart spelling `+A -->|"label"| B+` does not fail, which is the dangerous part -- Mermaid draws an extra block containing the literal text `+|"label"|+` and runs the arrow into it, leaving the intended target unconnected. + +A block that fails to parse degrades to a listing of its own source rather than disappearing, so check the rendered PDF: Mermaid keywords in the text layer mean a diagram did not draw. Not every breakage announces itself that way, though -- the `block-beta` case above parses cleanly and draws the wrong picture -- so look at the figure, not just the log. + +Colour is used only where it carries meaning that the structure does not -- the licence-compatibility graph in Em002-3, the document map, and the highlighted node in Em002-4's digital-sovereignty diagram. Those three carry a `classDef` with an explicit `fill:`; copy it across untouched. Elsewhere the near-monochrome house palette is correct, not a bug. + +== Shared fragments + +`docs/partials/` holds fragments that several documents `include::`, one file per language -- the map of Art. 9 documents, which four documents show and `Em002` shows twice, and the shared `abbreviations..adoc`, `glossary..adoc` and `references..adoc` lists. *Translate the partial, not the inclusion*, and keep the language of the file matching the `ifeval::` block that includes it. They are per-language in exactly the way `document-map..adoc` is: five files, one per language, never one file with five blocks inside it. + +A fragment is not a document: `render-docs` and `tools/site-index.sh` exclude `docs/partials/` so it never becomes a PDF of its own. A missing `include::` still writes a PDF -- only a fatal conversion writes nothing -- but it is not silent: the renderer exits 3 for an unresolved include, so the exit status is the signal to watch. + +=== Tagged partials + +Several documents share one abbreviation list, one glossary and one set of reference entries, but no document wants all of any of them, so each takes the slice it needs by tag: + +[source,asciidoc] +---- +\include::partials/glossary.en.adoc[tags=gloss-em002-7] +---- + +and the partial marks its slices out: + +[source,asciidoc] +---- +// tag::gloss-em002-7[] +[St2024]:: +Report on digital sovereignty … +// end::gloss-em002-7[] +---- + +* *`+// tag::name[]+` and `+// end::name[]+` are structure, not comments.* They render as nothing at all, which is exactly why they get tidied away. Copy them across verbatim, never translate a tag name, and close nested regions innermost first -- a region opened inside another has to end before it. Crossing them or leaving one open is a `WARNING`, so `tools/check-asciidoc.sh` stops the commit. +* *One tag per include.* Every include in this repository selects exactly one region, and that is the policy, because the separator is a trap: `tags=a,b` is neither an error nor a warning. The unquoted comma ends the attribute, so it means `tags=a` and everything under `b` disappears in silence -- taking the two `references` regions as a test, `tags=a;b` selects 46 entries and `tags=a,b` selects 19, with nothing said either way by asciidoctor or open-govpress at any log level. `;` is the separator, `tags="a,b"` works because the quotes keep the comma inside the value, and one tag avoids the question. +* *An entry keeps its `+[Key]::+` shape.* The prose cites it as `[St2024]`, and AsciiDoc knows of no connection between the two, so a citation whose entry a tag did not select renders as an ordinary bracketed label with nothing behind it. Translate the description, never the key and never its brackets. `tools/check-asciidoc.sh` is the only thing that will notice -- but it compares the citations of the whole corpus against the entries of the whole corpus, once per language, so it catches a key that no list defines and misses one that went missing from a single language's list while another still defines it. That case is on you. + +== Status + +The German, French, Italian and Romansh texts are *unreviewed machine translation*. The binding versions of these documents are the ones published in the official languages on the Federal Chancellery website. An FCh translation review is required before the non-English versions here are treated as anything more than drafts. diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..753486b --- /dev/null +++ b/devenv.lock @@ -0,0 +1,106 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1789340509, + "narHash": "sha256-It2AD16uFwiAe9GvuLbk+j+qTDrQxT3XPclL71ZnJ3I=", + "owner": "cachix", + "repo": "devenv", + "rev": "6e830506b517d6a373f2dec6ee8c7f4683908856", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1789514889, + "narHash": "sha256-PFD1nxptCXJyJoiYO1gf/5Vv43yqGpHtMC6LUhl9/pQ=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "59f4ca0d063a1a3ec722c88b51a33004862e5379", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "nixpkgs": { + "inputs": { + "nixpkgs-src": "nixpkgs-src" + }, + "locked": { + "lastModified": 1787753358, + "narHash": "sha256-Tl77VbWyAKrOfRNQhL6JbQtb/MLzbYa/1RG1gWWfICk=", + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "256551e45f6303e142ab4a98be1bf243feb77dc0", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs-src": { + "flake": false, + "locked": { + "lastModified": 1787394516, + "narHash": "sha256-pRGOQSClnXNI2iLUG6DYpsGvYcuw0drOutVZFTJNw90=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c8f90650c15282fa8656a041bfbbd2403997a9a7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": [ + "git-hooks" + ] + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..0d48e35 --- /dev/null +++ b/devenv.nix @@ -0,0 +1,286 @@ +{ + pkgs, + lib, + config, + ... +}: + +let + # open-govpress (https://github.com/swiss/open-govpress) is the CLI used to + # render these .adoc documents to PDF. It ships as a generic + # dynamically-linked Linux binary (electron-builder's tar.gz target), which + # cannot execute directly on NixOS -- there is no + # /lib64/ld-linux-x86-64.so.2 and no FHS layout for it to find its shared + # libraries in. Wrapping it in an FHS environment (the same trick nixpkgs + # itself uses for Chrome/Electron/AppImage binaries) lets the unmodified + # upstream tarball run as-is, with no patchelf/rebuild step. + # + # The build is 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. + govpressVersion = "0.0.19"; + govpressUrl = "https://github.com/736-c41-2c1-e464fc974/opensource-guidelines/releases/download/open-govpress-v${govpressVersion}/open-govpress-${govpressVersion}-linux-x64.tar.gz"; + govpressSha256 = "946c7f187ec1eb109681e89cbd9aebcba869e560df8f7493ddbecd3540a9b679"; + + govpressFHS = pkgs.buildFHSEnv { + name = "open-govpress-fhs"; + targetPkgs = + pkgs: with pkgs; [ + glib + nss + nspr + atk + at-spi2-atk + at-spi2-core + cups + dbus + libdrm + gtk3 + pango + cairo + xorg.libX11 + xorg.libXcomposite + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXrandr + xorg.libxcb + xorg.libxshmfence + libxkbcommon + mesa + libGL + alsa-lib + expat + libgbm + systemd + ]; + }; + + # A deliberately small bundle: the editor counterpart of the git hooks, so + # that the things the hooks reject are visible while typing rather than at + # commit time. Every entry below pairs with a hook in git-hooks.hooks, except + # direnv (which is how the shell gets loaded at all) and AsciiDoc (which is + # what this repository is written in). + # + # nixpkgs carries all of these, so none of them need the + # extensionsFromVscodeMarketplace escape hatch and its pinned sha256. + vscodeWithExtensions = pkgs.vscode-with-extensions.override { + vscodeExtensions = with pkgs.vscode-extensions; [ + # Syntax highlighting and live preview for the 15 documents in docs/. + asciidoctor.asciidoctor-vscode + + # Loads this devenv automatically, instead of requiring `devenv shell`. + mkhl.direnv + + # Honours .editorconfig while typing -> editorconfig-checker hook. + editorconfig.editorconfig + + # devenv.nix itself. Set nix.formatterPath to nixfmt to match the hook. + jnoortheen.nix-ide + + # Inline shellcheck for tools/*.sh. Note the hook runs it as + # `-x -o all`, which is stricter than this extension's default, so a + # clean editor does not guarantee a clean commit. + timonwong.shellcheck + + # The workflows and publiccode.yml -> yamllint hook. + redhat.vscode-yaml + + # Schema validation and expression completion for the workflows in + # .github/workflows/. CI is the publishing pipeline here, so those two + # files carry more weight than their size suggests. + github.vscode-github-actions + ]; + }; +in +{ + env = { + DO_NOT_TRACK = 1; + + # Interactive devenvs get the editor; CI does not. The lint workflow runs + # `devenv shell`, and without this it would pull the whole VS Code closure + # on every push just to run the hooks. + cicd = lib.mkDefault false; + }; + + dotenv = { + enable = true; + disableHint = true; + }; + + # https://devenv.sh/packages/ + packages = + with pkgs; + [ + git + gh + curl + + # document creation / verification + # + # Used ad hoc throughout this repo's Markdown -> AsciiDoc migration to + # render and sanity-check every converted .adoc file; kept here so that + # workflow doesn't depend on remembering `nix-shell -p asciidoctor`. + asciidoctor-with-extensions # asciidoctor-pdf, asciidoctor-reducer, asciidoctor-diagram + pandoc + + # headless rendering + xvfb-run + ] + # + # Interactive devenvs only: these are never needed to render or to lint, + # and CI should not pay for them. Enter CI/CD mode with + # `devenv --option env.cicd:bool true ...`. + # + ++ lib.optionals (!config.env.cicd) [ + vscodeWithExtensions + ]; + + # https://devenv.sh/git-hooks/ + # + # Recommended by git-hooks.nix, and much faster than the Python pre-commit on + # a repository this small, where process startup dominates. + git-hooks.package = pkgs.prek; + + git-hooks.hooks = { + # Line endings and whitespace. The .adoc sources came through a + # Word -> Markdown -> AsciiDoc migration, which is exactly the kind of + # pipeline that reintroduces CRLF one file at a time. + dos2unix = { + enable = true; + entry = "${lib.getExe pkgs.dos2unix}"; + args = [ "--info=c" ]; + }; + + trim-trailing-whitespace.enable = true; + end-of-file-fixer.enable = true; + + # The workflow invokes tools/*.sh directly (`run: tools/site-index.sh`), so + # a dropped exec bit breaks the Pages deploy rather than anything local. + check-executables-have-shebangs.enable = true; + check-shebang-scripts-are-executable = { + enable = true; + # .envrc is sourced by direnv, never executed. Its shebang is there to + # get shell highlighting and the shellcheck directive on line 2, so + # marking it executable would be wrong in the way this hook warns about. + excludes = [ "^\\.envrc$" ]; + }; + + check-symlinks.enable = true; + + editorconfig-checker.enable = true; + + nixfmt.enable = true; + + # devenv.lock is JSON, but identify classifies files by extension and does + # not know `.lock`, so it has to be named explicitly to be checked at all. + check-json = { + enable = true; + files = "(\\.json|devenv\\.lock)$"; + types = [ "file" ]; + }; + + # truthy check-keys is off because GitHub Actions' `on:` trigger key is + # read as the YAML 1.1 boolean `true`; every workflow file would fail. + yamllint = { + enable = true; + settings = { + strict = true; + configData = "{ extends: default, rules: { document-start: disable, line-length: {max: 165}, truthy: {check-keys: false} } }"; + }; + }; + + ripsecrets.enable = true; + + shellcheck = { + enable = true; + args = [ + "-x" + "-o" + "all" + ]; + }; + + # git-hooks.nix has no AsciiDoc linter of any kind -- the closest it ships + # are the prose linters (vale, proselint), which check style rather than + # syntax and would drown in false positives on four non-English languages. + # See the script for what this does and does not catch. + check-asciidoc = { + enable = true; + entry = "${config.devenv.root}/tools/check-asciidoc.sh"; + files = "\\.adoc$"; + types = [ "file" ]; + }; + }; + + # Print the output of the git hooks that `devenv test` runs, otherwise a + # failing hook only reports that it failed. + tasks."devenv:git-hooks:run".showOutput = true; + + enterShell = '' + ( + set -euo pipefail + cd '${config.devenv.root}' + + if tty -s; then + devenv-help + fi + ) + ''; + + scripts.devenv-help = { + description = "Print this help"; + exec = '' + set -euo pipefail + cd '${config.devenv.root}' + + echo + echo "Helper scripts provided by the devenv:" + echo + sed -e 's| |XXXXXX|g' -e 's|=| |' <... -o out.pdf`. + # + # The wrapper only passes down what has to come from Nix -- store paths and + # the pinned release -- because shell inside a Nix string is invisible to + # shellcheck and editorconfig-checker. The logic lives in the script, where + # the hooks can see it. + scripts.open-govpress = { + description = "Render .adoc documents (open-govpress render ... -o out.pdf)"; + exec = '' + GOVPRESS_VERSION='${govpressVersion}' \ + GOVPRESS_URL='${govpressUrl}' \ + GOVPRESS_SHA256='${govpressSha256}' \ + GOVPRESS_FHS='${lib.getExe govpressFHS}' \ + GOVPRESS_XVFB_RUN='${lib.getExe pkgs.xvfb-run}' \ + GOVPRESS_CURL='${lib.getExe pkgs.curl}' \ + GOVPRESS_SHA256SUM='${pkgs.coreutils}/bin/sha256sum' \ + exec '${config.devenv.root}/tools/open-govpress.sh' "''${@}" + ''; + }; + + scripts.render-docs = { + description = "Render every .adoc document in every language into build/ (render-docs [lang...])"; + exec = '' + exec '${config.devenv.root}/tools/render-docs.sh' "''${@}" + ''; + }; +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 0000000..03edacc --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,14 @@ +inputs: + # Required by the git-hooks.hooks block in devenv.nix. devenv does not pull + # this in on its own -- without the input, evaluating the module fails with + # "To use 'git-hooks', run: devenv inputs add git-hooks ...". + git-hooks: + url: github:cachix/git-hooks.nix + inputs: + nixpkgs: + follows: nixpkgs + nixpkgs: + url: github:cachix/devenv-nixpkgs/rolling + pre-commit-hooks: + follows: git-hooks +allowUnfree: true diff --git a/docs/assets/em002-2/md/README_template.adoc b/docs/assets/em002-2/md/README_template.adoc new file mode 100644 index 0000000..f6f531a --- /dev/null +++ b/docs/assets/em002-2/md/README_template.adoc @@ -0,0 +1,371 @@ +:lang: en +ifeval::["{lang}" == "en"] += README Template +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += README-Vorlage +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Modèle de README +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Modello di README +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Model da README +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +== Project Title + +A brief description of what this project does and who it's for + +=== Features + +* Light/dark mode toggle +* Live previews +* Fullscreen mode +* Cross platform + +=== Documentation + +https://linktodocumentation[Documentation] + +=== Installation + +Install my-project with npm + +[source,bash] +---- + npm install my-project + cd my-project +---- + +=== Usage/Examples + +[source,javascript] +---- +import Component from 'my-project' + +function App() { + return +} +---- + +=== Screenshots or Demo + +Insert gif or link to demo + +image::https://dummyimage.com/468x300?text=App+Screenshot+Here[App Screenshot] + +=== Support + +For support, email fake@fake.com or join our Slack channel. + +=== Contributing + +Contributions are always welcome! + +See `contributing.md` for ways to get started. + +Please adhere to this project's `code of conduct`. + +=== License + +https://choosealicense.com/licenses/mit/[MIT] + +=== Roadmap + +* Additional browser support +* Add more integrations +endif::[] + +ifeval::["{lang}" == "de"] +== Projekttitel + +Eine kurze Beschreibung, was dieses Projekt tut und für wen es gedacht ist + +=== Funktionen + +* Umschalten zwischen hellem und dunklem Modus +* Live-Vorschauen +* Vollbildmodus +* Plattformübergreifend + +=== Dokumentation + +https://linktodocumentation[Dokumentation] + +=== Installation + +my-project mit npm installieren + +[source,bash] +---- + npm install my-project + cd my-project +---- + +=== Verwendung/Beispiele + +[source,javascript] +---- +import Component from 'my-project' + +function App() { + return +} +---- + +=== Screenshots oder Demo + +GIF einfügen oder Link zur Demo + +image::https://dummyimage.com/468x300?text=App+Screenshot+Here[App-Screenshot] + +=== Support + +Für Support schreiben Sie an fake@fake.com oder treten Sie unserem Slack-Kanal bei. + +=== Mitwirkung + +Beiträge sind jederzeit willkommen! + +Unter `contributing.md` finden Sie Hinweise für den Einstieg. + +Bitte halten Sie sich an den `code of conduct` dieses Projekts. + +=== Lizenz + +https://choosealicense.com/licenses/mit/[MIT] + +=== Roadmap + +* Unterstützung weiterer Browser +* Weitere Integrationen ergänzen +endif::[] + +ifeval::["{lang}" == "fr"] +== Titre du projet + +Une brève description de ce que fait ce projet et de son public cible + +=== Fonctionnalités + +* Bascule entre mode clair et mode sombre +* Aperçus en direct +* Mode plein écran +* Multiplateforme + +=== Documentation + +https://linktodocumentation[Documentation] + +=== Installation + +Installer my-project avec npm + +[source,bash] +---- + npm install my-project + cd my-project +---- + +=== Utilisation / exemples + +[source,javascript] +---- +import Component from 'my-project' + +function App() { + return +} +---- + +=== Captures d'écran ou démo + +Insérer un gif ou un lien vers la démo + +image::https://dummyimage.com/468x300?text=App+Screenshot+Here[Capture d'écran de l'application] + +=== Support + +Pour obtenir de l'aide, écrivez à fake@fake.com ou rejoignez notre canal Slack. + +=== Contribuer + +Les contributions sont toujours les bienvenues ! + +Voir `contributing.md` pour savoir comment commencer. + +Veuillez respecter le `code of conduct` de ce projet. + +=== Licence + +https://choosealicense.com/licenses/mit/[MIT] + +=== Feuille de route + +* Prise en charge de navigateurs supplémentaires +* Ajouter d'autres intégrations +endif::[] + +ifeval::["{lang}" == "it"] +== Titolo del progetto + +Una breve descrizione di ciò che fa questo progetto e a chi è destinato + +=== Funzionalità + +* Commutazione tra modalità chiara e scura +* Anteprime in tempo reale +* Modalità a schermo intero +* Multipiattaforma + +=== Documentazione + +https://linktodocumentation[Documentazione] + +=== Installazione + +Installare my-project con npm + +[source,bash] +---- + npm install my-project + cd my-project +---- + +=== Utilizzo / esempi + +[source,javascript] +---- +import Component from 'my-project' + +function App() { + return +} +---- + +=== Screenshot o demo + +Inserire una gif o un collegamento alla demo + +image::https://dummyimage.com/468x300?text=App+Screenshot+Here[Screenshot dell'applicazione] + +=== Supporto + +Per assistenza scrivete a fake@fake.com o entrate nel nostro canale Slack. + +=== Contribuire + +I contributi sono sempre benvenuti! + +Consultate `contributing.md` per sapere come iniziare. + +Vi preghiamo di attenervi al `code of conduct` di questo progetto. + +=== Licenza + +https://choosealicense.com/licenses/mit/[MIT] + +=== Roadmap + +* Supporto di ulteriori browser +* Aggiungere altre integrazioni +endif::[] + +ifeval::["{lang}" == "rm"] +== Titel dal project + +Ina curta descripziun da quai che quest project fa e per tgi ch'el è previs + +=== Funcziuns + +* Midar tranter il modus cler e stgir +* Previstas live +* Modus da maletg entir +* Sur pliras plattafurmas + +=== Documentaziun + +https://linktodocumentation[Documentaziun] + +=== Installaziun + +Installar my-project cun npm + +[source,bash] +---- + npm install my-project + cd my-project +---- + +=== Utilisaziun/exempels + +[source,javascript] +---- +import Component from 'my-project' + +function App() { + return +} +---- + +=== Screenshots u demo + +Inserir ina gif u in link a la demo + +image::https://dummyimage.com/468x300?text=App+Screenshot+Here[Screenshot da l'applicaziun] + +=== Support + +Per support scrivai a fake@fake.com u vegni en noss chanal Slack. + +=== Cooperaziun + +Contribuziuns èn adina bainvegnidas! + +Sut `contributing.md` chattais Vus indicaziuns per cumenzar. + +Tegnai p.pl. il `code of conduct` da quest project. + +=== Licenza + +https://choosealicense.com/licenses/mit/[MIT] + +=== Roadmap + +* Sustegn d'ulteriurs browsers +* Agiuntar ulteriuras integraziuns +endif::[] diff --git a/docs/assets/four-cs/four-cs-cases.de.svg b/docs/assets/four-cs/four-cs-cases.de.svg new file mode 100644 index 0000000..83c0f90 --- /dev/null +++ b/docs/assets/four-cs/four-cs-cases.de.svg @@ -0,0 +1,61 @@ + + Die 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (Nutzung) + Contribution + Creation + Collaboration + + Fall a) + Fall b) + diff --git a/docs/assets/four-cs/four-cs-cases.en.svg b/docs/assets/four-cs/four-cs-cases.en.svg new file mode 100644 index 0000000..8963e91 --- /dev/null +++ b/docs/assets/four-cs/four-cs-cases.en.svg @@ -0,0 +1,61 @@ + + The four Cs: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (Use) + Contribution + Creation + Collaboration + + case a) + case b) + diff --git a/docs/assets/four-cs/four-cs-cases.fr.svg b/docs/assets/four-cs/four-cs-cases.fr.svg new file mode 100644 index 0000000..1ea6a5d --- /dev/null +++ b/docs/assets/four-cs/four-cs-cases.fr.svg @@ -0,0 +1,61 @@ + + Les 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (utilisation) + Contribution + Creation + Collaboration + + cas a) + cas b) + diff --git a/docs/assets/four-cs/four-cs-cases.it.svg b/docs/assets/four-cs/four-cs-cases.it.svg new file mode 100644 index 0000000..7c98159 --- /dev/null +++ b/docs/assets/four-cs/four-cs-cases.it.svg @@ -0,0 +1,61 @@ + + Le 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (uso) + Contribution + Creation + Collaboration + + caso a) + caso b) + diff --git a/docs/assets/four-cs/four-cs-cases.rm.svg b/docs/assets/four-cs/four-cs-cases.rm.svg new file mode 100644 index 0000000..cd1f4db --- /dev/null +++ b/docs/assets/four-cs/four-cs-cases.rm.svg @@ -0,0 +1,61 @@ + + Ils 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (utilisaziun) + Contribution + Creation + Collaboration + + cas a) + cas b) + diff --git a/docs/assets/four-cs/four-cs.de.svg b/docs/assets/four-cs/four-cs.de.svg new file mode 100644 index 0000000..f385149 --- /dev/null +++ b/docs/assets/four-cs/four-cs.de.svg @@ -0,0 +1,58 @@ + + Die 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (Nutzung) + Contribution + Creation + Collaboration + diff --git a/docs/assets/four-cs/four-cs.en.svg b/docs/assets/four-cs/four-cs.en.svg new file mode 100644 index 0000000..517a04e --- /dev/null +++ b/docs/assets/four-cs/four-cs.en.svg @@ -0,0 +1,58 @@ + + The four Cs: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (Use) + Contribution + Creation + Collaboration + diff --git a/docs/assets/four-cs/four-cs.fr.svg b/docs/assets/four-cs/four-cs.fr.svg new file mode 100644 index 0000000..499d2d7 --- /dev/null +++ b/docs/assets/four-cs/four-cs.fr.svg @@ -0,0 +1,58 @@ + + Les 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (utilisation) + Contribution + Creation + Collaboration + diff --git a/docs/assets/four-cs/four-cs.it.svg b/docs/assets/four-cs/four-cs.it.svg new file mode 100644 index 0000000..51b4980 --- /dev/null +++ b/docs/assets/four-cs/four-cs.it.svg @@ -0,0 +1,58 @@ + + Le 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (uso) + Contribution + Creation + Collaboration + diff --git a/docs/assets/four-cs/four-cs.rm.svg b/docs/assets/four-cs/four-cs.rm.svg new file mode 100644 index 0000000..7f7e321 --- /dev/null +++ b/docs/assets/four-cs/four-cs.rm.svg @@ -0,0 +1,58 @@ + + Ils 4 C: Consumption, Contribution, Collaboration, Creation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Consumption + (utilisaziun) + Contribution + Creation + Collaboration + diff --git a/docs/assets/screenshots/document-map.png b/docs/assets/screenshots/document-map.png new file mode 100644 index 0000000000000000000000000000000000000000..dee8efa2ed22722137cdcef0fcce265c513f6e35 GIT binary patch literal 154097 zcmcG$2{@K}+cmCfR~jg!B%)nrilPuDQOG=HY&Mf2lHqO_GK7R=4k7bAWhyE&nddR{ zJkP^_-Fxrne;oV!p6_|z<2%0B@xG7To9p^rzhRy0T<1D37g=fX1Ee&hBqSsUZr%`; zCn4F{LPGLe+n(+C_i2uK>{LGv%3CT&4o1#}0pSF#6>S$0l z7nRJU<+4A#8hL~2sx14Ry{x?9FQ^0-yF^4@|Im#ubLZ2dP%ylC{zuD&+VjU-{ZopdG+lVndg@qhpI;ZC_ff4WNf=eHNk#Ba|}5}%NS4)1^98UNjE z|8t_Sj?1TLg>09HYa8~Ge7_R9zCr%6vEqM~w zBa)M4yV-boGZmtxLqbA0)H5}5Efae8)(4stw0^wl{cK@$VX9l0fg!Aj#n0E*s3kef zpg9pkOw!D?Y|k{JW>=M!mk*x`^!Hz}i2lVNJQ-7Aw7I?#YQH){;r`a!o5!Rp&vK&8 z+SU!M?Awx{EHBxPYS&yygB zuP0+o!Te7~xeC{3)uYUR{ctbyX5uqyYbY*`(5sKa&jL1!73(eXlwc(D@ z(K`5C+=JG-@0-hzeobc~VXNos%fRz`eIp~SdDe3=3eizfQJbTxBO@cY{(*h_+SB#w zO}h8lM?`;eciJatIo^W72rhJRX=KaxhH)`6_PIpy=>GiB($dl$Cnfg!Xo}TTSII&! zuaTOp?9Y|Cp<7bDec#=7>^>MT_3&wU#O;Sp*7L&{eyw+6YOkt{DHdY=^n1CT%v0m7 zY4}?^4A%W~bE0PMEJay$wQ+M|aADzAtWq4EknP1MqYapu1IKyyFnG{iZc9+lVo`{y z^ye9xAE~D}BlUB{;_ltM-@ktk7O>)EXAk1hk#3At65g1v@9F9J_D$5v$|}M|Cg|c! zTvEYmbKz!V>O;v$d5ou)ura31Bonf}xi;lU{)&t~Z{`@&AI+_c|0ow{=TU=Tq&{?+M3gkU-jJrRhSxY@#SI(DJ zDN!Sb+iJ4I+1VM7>MnNw-nUcY9uFQq)XaYT_51gMtf^gu$42XR)XTLI;%iG&p=a-k zU<2*XwXv}g4lNn=@$vcYM%^5%G*-b?sPWliWa{ETIc*gyk5qSo9g}p>Q5u?6QFA`p zv74T8Bsj&JZ5^GR#5v1e_IdZN3A=~5uO~Zmw{6>2P*AY4vVv7UefsnXev8Kz7L+3K zx6`7sv!BilR=s=oPQ;m2Db`}5?aAVJD;9NSx|r;mh{#}7Ad|zM{rjbE-t@=Xsj9Z5 z+%GvyK_L?&*!oHC6oY6WuhIDUcz8raaZ%BJ>MPOp3AfV*gRQ#!d5r?b4<9``+}k@d zk<~poIQZzn1H;zT(|mkh%SR&YeFU%y@zaKQj4+jr7uc3$8xoToEMRP&Fl;b!# z`D1MC3O_EJr%!k8+BGtltQ>dwanBb#R;)@A9WAZl{rmTqE52jVeI*`Zy!m-~ucJcW zym>s)b|FLU1U-HChpRhsQlq7V`E3^C9UZS@_609rUXYXrqBJx#%nj9$o#1bH%y{hB zv1?BI^_mkqJx&NzR&Lt$knYiJ9qEaCTa>`v07&^hu9w(`i-kICGcQyp}UkI&@ihd&CGJ94d(9#*`gN;J87vrI;K!zUnM z^w%$nqeoR&+?kiMfdgCx%Odtht*H<3I9fIn8E({Eyar9r0k-n{AJ z;$p`2_{o#1vNFBS&l&7r($mu={WwR))E_+>%rPJ8fBWFkBRavS(>P3BU0v8%sYRu$ zdgg5Epn$&e=8~J z&aHygKmR4GomF-Ae> z$LnJz1uKIX>;Zx)Gc&WZi;MO0bXdIMGqZvV`VG#muB^<=!yP$k-rfrO`uZ9gK?w;) zew>;Q4m8tO%?Hj_2MYj7GBYwJ8e+VIym}AG#5L0KTQCFI^c!OlhrHt`=;;ZF695xF zzN{l0YCcKRfL5Fz78Vw4VLXGfvhqL)H-BOmc4Dd5DI5}anhSL*;}VnKNuCe69b}Hi zB2Tnu5j487%YZY5v*m06F(Uw~L}c6NCk9upTmkms>%@r@1Hop*g}wOrgMIwlw}&Mq zD+Vh35La7UT5M;&Q?F|6CZnSi0W#f;uJ`rzJ?3%m?%foNk-FK6J0>Q=m?~20DFAyc za0YW&;&EbWqMd1KSMUV`WuT*${mR2&>7^!h6TR~RUErxB^(A$6W=-+85tnf&-H-Df z5lJ`c-b||zsvohyK21+f9&So#|MJHUBSXWY;^Kk%wA54@Uc=%3{ssh29Mx)n9`VBI z%g^SAy9*0x$Gv5QQt&rGk2`lhWMnJ=3*Fz%A^M3plQvhsk%&~w(D&UmxO3-@s_J{` zXz#HnlO30WrL8c@K*RIK9Z&JM_V)HKcatT`ML5xJF3Ybtu}*p+TU{L;KGQzYU}+}$-vck1MQevvbN6EvW4OT-5ZTq#)DqRRq%Eh~v!*axxLG$)si)_Tqeu#Z zCTU#0d<^2rBgeq9ZxT<&TTGXydsi8{t%ri!G7MC*3-t8#4$z#Ro}UM0h>nQ354Pau z>MCU@dJ56m=;w#42*(s0y;z}s7W-ERPee%v$9C@dW6QUAnYu_ijHQpW(6SUVD|Yj89TV4Qz$&{1-1uy+8Z4rY6ax z8=<0rmzNh15ykdAER?W$drt~JC9U{5ul1o;7qfaX-Pxd%9WIvtYGEif@GdC+bI@;U29!Gj(eH}sNzJWn| z*tOjoePt1?SThImebk(WEy=y096`as2yAR|{`T*2nwAlymzVd`UQ7m=XliPjef4~C zqJ19&4WBVPS+f|`CZ>CGauQpTi0{DH+}t%RRJrHFry9Y0CLuXF);DgH;lR~?8;ZS-`h>tvSScMP*RRp zHJ$0Z9#PP=@_`_j>6_lhFxI&(5}Gn?{W18h7$Lihy5TChpB0-b^KB zWo0z(j|R$p&5}XuV-#b7M`gDS&Ik1OKM0og^Y%U^(>HJ|WYYmCS5{PXuh{9p>VT=a zdA)vy*dMn;e<$202V^SXcs(G=wwek7cI^)bY2V!3M8Nl(*+f8~qob>jx@Dt5?yJ7| z%Tu^XoXb&!;bjL>hS8>kK-_|<9RLEhGiLD_0eT;U2fZ+-IQG*B7E|N!HPA@}l-W5y zZTlGcnE9DIWp7VQM9Lreke_ddb2@*a>L*a?vY;R(F{U{F8yn}xiTb&T<|J((xaDLA zi_LX$@!Xu85yHsP%g@q7LqkVSel}|7<>5*5@u56s1;!jRb-`*;irXk`iWVc#c%48m+VYqP?+&eift$u3{w@H`a z$_{O1<#*(m%<0$KM(K(uHAZlfWv1k|S25%I zjYLpIH+~NlPW1ccEuH1(pOoWHV61ujs+*g$?iM@E3Na%RQd0wCC>cbxv_kS~BxE9L z`v(Tf-W@++QB|%LoLd<>EjnAMd-l#n@rg4;*<>~(X(%AR}VS|eI zJHylfK-MR(_-A$XBxV|$kXocv-TVo^=E@Nkrl^5$Ixyq8TL-92$7rDH=46L;# z1iQOefufbyDDvJAcu-2df_Rhzrq4`J2_r|qyViZ0k@4OF;k|C)$MyUd0F3eWtfaiV zjkUGJEHAYg+yq4RhbKLk4hL7od;1=VxJK#sXRq2DBiWP^6>+AwU%m_cpA{2z6gh_o zO~E9M{7qF=m6_5Nk25ehNXo!(HJJwl-bhHJYAdj_LFn8R%f%jg=j&Uxs7Fb99js-Z zFN3DMyd0tZkt4Q7*L;G48eMa(zz&?Fim?gd_33M}vTy98xbo-au{ourUatcJ z?pvQq*BHySntB)N28=|4TU1npMHLYdK_=0bX_SkkOIwqL;&l@?Yr@Ol4!q5E3Je6J zZWi;Py}jaol$O?ZeR<~j^XJ#yjvywMBPRueL*ipQdK!4sT1Y6&J49rS3Q)D%+YcY}aae3xL(l}}7 z?*AxFLL|~_OOGjVoGu^#6Y*=D!|wsKaxEuVLx+DiFfiCCzJWY!HcWOyrPbNP(a}-v zz6%&4o^1A8L$cpGJN;>2q0QxAAk)Sj*`}CNPxT@YNkpKm?CfP=pNp&O>TCtqDMm(w zHXR)u75h8Z&zKUl@}Ggd`*CS2v-)zU_?RpVVFw`5baG+l;ZX?bM6#Tv-zd?oxiuad z25uq1&p#@Y3=+LR^tAW*#DpU`f;?!nuOJ+i~8_Z>GYr(G2HTLij&3f#6g8mp>s z!CObZV>0%u=hux`;NW_N9+0f5tQubKlazN zJ$zwrw{PFRsm|PJ!ckSub#G%)0$~dxhlG}ZtDBoT6bEc>!sq5D3_<&SSeHl?ez8q&{*4fum_YtQbLlI>rQYkKKvH zey#nGm-}*(jy-x*m_j8{tgw?o^!DxBW@f3cUcE|7OM{AYm&@89akH%lgd4kUajHAX z#JOmvx%u3eKfkb|7mV60AS?omS%u%LCA_1*cmKXNxES&pTm^Z4h%limnToO4`?`RD zKm_&K((wdE)&nx8nEnb+V?Di{@c=ia;kOtDr@VLX-e67W7S1I?O2fD7wIE(J zRBCc^UiLdigpcageJsNa)YaE791s}U*AIG(J!#)@#EYU~!~zMM+Yt`#aV6kDG@B~| zugB4I_b|URVtz#l^+oI@ls>kUf;` z_by@sD@r|o%j)dB;@*^s9`?a-RWGaZ|JZdO`e*_^!IZ8MdB!Jx@@snZG)l{~92cI|i2 zC#m>aS1LAkc6JCRVE4)!4ZOgPJ72fEi$y51vI(9MJcX`Ar~aWK$Z*YZDl&V{J?^<;tuR@Cf}ezhaH%7}P3QF4vtZ>fKX2uA zPXU9ssM1q6~ zoB2y!Jp9xk?01o#5W`w=ebX#cDw6Hhed1~f%0f;$rAV1PbLgf&6%*cQh*heXKEQ|k$lAif;xykq=nx2vuO}~L zq^6oZe!Sdx+LpF;&m3fYC{Y6oHORnlmJtEUDi#o5E32zFdtQ<~Ak9aJ{?*mJW~1~y zda<4Dxl8_+;^I^IVqz-M-EAAb^5gsW1*o-v^4aLq^(Gx0tgH}Bg7b7#r$E(_RB@s0 z%4`xHcF0b-_3x$4u18lIb>8jIM+k*X4tQf_WtD(pd0tN*!E3;c^Ne)R^2SoPxR_XZ z=6R&fXOS8sZenGYTV!xvr^GQr zC85ViES?~~V{o(0WDwEn>+1R!e&D=ewf8Xe`@83b%_CqUZ^R*9TwDaf@)aSOlT;p{1pTxDWLMsQI&Mx+_ZsGy%{OQA$7>z$GKrZNFwDE?xo_;IBo(#g(*c-;sFLl)gq4 z?OViMT}CY9yrQ?iXg%AHI!K0Iy_j%6q8@`uNhhK!^5OotJ&=zfD^qi6X(%g4HR|IZ zh|Arr%UkzjVY5Nbbu{Jr&PCDw_K z&rLA8PK~c-=8~l=um5Gt6IV$RtkBc0AX_-h{~!x z?qu@^IU~wGSQf4b9WamKF?+$Mctal)I;v(RHPM5AuS;f0XQ7@a? z+w3} z(Y?mn!4FIaB6#nP3knK4bV^M1_U*Frx$KnR4$=+}4=*pan^Y{i3vI2>sb?8)Y?~rS zGQ^hN>_Dnsm5`iSYW3N6b7crR!|ES6f?beuila=4TSIsXIu3%|?Cwp(k&jVPqr2B| z^5YW{d?A`8(D4}u8G4%b7C8>+@IRgInU#Ese`9Zt)+}Omo-Iv+1?bt;`PYo#tr96Md&$ZrJ!a&UK=w~941H# zv1%Ey5|N}36qf2~GI(O@N3eQB0|SwuJ?$3;)-=m=vC#nP3uGU`CKg5;$3RV1x8dMS zjE`4VRY5d-R1?w(SpKSUCu}W+?V#MJw$u#MnCn~|Z=W)=9Ct{`X zyx|3v=z0_>D-j$JoAoo=YHFr%uvX8=ESOx5k$v#s!Idk|3ydKr(G;YLa884_c64-r z5&KFs={hL=%L_2zu$N+ccVi6D-7w6|Y3hZ*nyC7RY%o=98r^@YwgbZZF zq$OJs(&P|IH*twBzMpZ%kwp1OMB3{8ETJcikBr>zT|GiYl|Nr630V@OLMaC5$d`Y} z9kkN(IG^-ZX$n{dG~ogk6$(k+7X8Fpt&=8!&4raQA3l63DhkJ0U)3vLd__x3i@14^ z_TpKCCU##5sv}1p{YzDFZ)$t|hr4UTV?SFBNC|N{p6&Y{WI&F6vo-=`!e2hf?ek4~ zx_9qh$QwU(&tn@O$3er13l0jxe@2R-Qqb4|z6WJ>Rx%qf$RLU=(bRMXi%dm|1jZ3e zZ+|#7rv|gI_R997#lKY!jACI8vRM`?BIpMZ$Dm)U#3%xX^)pr-skMFblJY5_y21S|3eNl67(U*ve)lcQ9Wl$1w~ zD7QTJB4@;Z36mWT<*lr!NXyJTBBGnohNCYoE^b#L1-1{80#Ff?VJzDpr5u+9r3}@f z*;_j$fkimyVr136(T)0uI2QcDX=&yw;vwm3MqtgLKO-+b+bktQ5W4Gj;u#seP-S_! znWZHsL21zicaQq`v8A>37?mN?a5c36@M|15xnEz-WNOOGzXd&U+-InU5curb=a(;E z3R&EQ=CEhao*Pn9@rcRz6)2yz=GCdZ;PkoK*@|YDDk`e0?NQuvTxj|x5g8Q~;P1bo zf9s838v-=g$6ZAV)|^8R!6caJ%yu4T`4b^<34qqDHG@>{zDcJ1ri`0K|; zer#Vo$Mlr^Ho7cos4kJw(NL6*U9eDGS%K!znQznF)TFFzn4rw2UAW$G+8d7<7^t51 z=vGAWFCLf(z=tjqIsS%pfkJH2&<{w@@(K!?nwkslEisC$mp;0rptcVMYAbnRJBi?_ zopL>8qTBnV_W9F6D)pPUhB}6a%KvLAMxGT2^)mV1Xl^S4)Fm z``gdq(6hin{Hy=XcR~E@-&$Y(tqJEpSYQ6_MgHk6`KR^ezqW<^Kk?6esppQ^LqftV z6DBLWhh*C7L;VQzPU5|T0^mbBxjw$E)7zv$oQ5y-u53i-QBCf*Z{L8R!-cHAZCjc>49D{kV_9*1gRR)_x`@^e~xv1;f1b-MhDpD!qxek(H|Q1 zdAPYlzNhMCw86(R4)wL@d4R9)_rV>qbXkM&I<4<&Kt+3A7{QCf;psx73X*#kha1w; zs3ymg_o1A#JQ!#Ke$*U(-L0iX)&GtFBmsyK8@n1&n*wEvMs^OaoNqqlL4FV64fOH^ zuc0a`YM?=5Nrhd=4KJAw?qPstxjExWaBy(2nCj9Lt3qj;L%YBh_eZ538R20OhgYw_ z7S2FX+mmwV>k9xNsCcBL9}VX^m;u-z;#E7M9l#~|!nViPVaV#?8i78EBuB*g#fujX z4m%mXIqsuIG{$cpIewhzJ%Oy7zu0DAQn+CWHuEr%mYslkUuK{-h)*vsn>6_sy50C5m_=F?0};@7W#|Mm?? z)0C)bQ{=E0N{g`hU?nmXq$SlMm)9V=1Hp(De3?+8)$0ey$b_vXQTymb=!bLVXZ&p* zUiv?`=$AQT3=S3quh7evFaPT6W2I$3e_nA<@6ZtOoHKkwnv`oX!ssyEoYW1S$&nnv z*W>kTl+Gq0e@=E6a+Qp>q(p$-LAC?(&(0nefn!7H>GVln-lq0;o0ZuCkv%A8Vvze7 zpx}kq>Yk@@M_KmKqbU0(P|G0hhvjvVlAzn*BRJ~?DwuJtXCskFRren~`=z?tBVq4z zb#oZyHn*eJXgVSMS{|x$BY~HXk6MJ8k~COa1=*pR8Y?|>qp)%tR_-{T@%(5b8zibN z55^7E*_ZaDpzG4o(uflHG9Rj5n3<_1i>DV89-}9$oA#G_LD4(L{lFQBd^d@>X0!ce zz~$+sC1Km;v+5KiDnzH==3D4!{kzJv?N=g;w)sdrL>^TgD%_2|d~C~tzY}`b{d@P$ z(^O&eNk~fGswwL3){c}fi;KsI(zCL-gkOtkF@GFPVV|bEu`Gy7N{pIS*`&>-_n71X?7bTx@I# z%#@h1y$26kT3FCte0)b#^cw{6Tb1|P()D0K62#o0?z_IRA^!TPoc&QNtEKt*`JX?3 z;-vH8Iw;gaB!y@;s&0~h!F*7P!9gs-#lu6Z&_4g=%VHFWc@0~>WbT;WGX4ax*xKA3 z)1&?S=5|t2QcQ&7)N}(ICns1oF;V9PB}9o(KSM395jrdEK+ia#I^v%ZwSvaap)oQz zz)^unYiyioOA7I;p>n*iS#Wl44s4GtFN*YWIup?oDSeCNdBo)q4jMN6@V`1E{{tvb z^F0(h)T6R7YLmFFr{+6b57A@!!dsAJ`PcOQV}FSq`-oRuzGixza#<3UzGfE+CI@nG zw63nMjkTq$JC<-pMR*I~?Qw3{@ z_nkaI>ZALVu($Og>*#J-H*kfD2?P(7-A7@H`r5!tD|h{>g@nw9Z=fy z0iME}*&wNq9Z>|hDJ{LYu%Maubfz^;$7-T&0j9Ej3|)k+4b*)N48~y4;?b#gaB^B4 zuDy?0fH0G!oY3}S*FKP2V3r>!2F@e23H#}|+<)n^EWYJPWiw5> ziKTqRC7Akhp3d~aRfJ+U4IQ2RV5R@`^fVxW1ZIzPM;iuIKv7UlV7V=eVM+ZtD)nKf+pqM6-g87*R zP&P|TODs~s<6aSBHFyaK2jSHE=~G2jQN(H%4h~-yMZ|_*FnHl{IEm36k%OIur4>R1 zFlHg!3;-u+w`u`yDi#segcCq6`bS{|L}ioK)X4Po^Bf#T5H2$_Gf5r8vGs9(5oerD zllIJ8dulOFxc?DKN`T!-Zf^NKDY~_c45G-`Yj;wSUPl@RtaBs>3x|lRR$!Y$-Unwb z6htS!47CXef5<}y22MM`=41zQZD<&um6b)?Qdc(%dLiNr;zEp6V!!(Pef<6P?p^Qu z^~+{{n4w-1=A?skf~uI*2+q}$ZKxahX+6^`eZ#QhxBbKls!Ts3B><&~05(ljaQk&+ zWNM(`pq|;NTY%IHRtO3aq<>6j&VX~H!a#J^CMPEs4JgJaBBjMin(c*${m=Ob#zsa# zFjg@ZHko08ww9JX49H28<1X;5Egdv|^hjAlLjy)zMdfwX>`H&Jh~`gn*A8w$j4ItN zTUAx{P|KITUk5=_UcL{zq_2e^#4{O;Yqzd`0(a%TkcU)!yXrPU-rJSajHtZd2&0R zZN;2^CCazNs)~jp7ywZJFLV*TfBlO#EKI&gbncQiB5q+%zpWYtgf#w@yyIsa)%WE0 zpcfI#(kUrk)T|k5M&L%Z!-zzdrlxxj95`_BASVk;ZAlU7%Gz3-Vk}}AzB)QIY;4v@ zsmnfHI&DXdI?%5Y&k7Itq2`vBxVo>~SJ%{RP3BI4wjJTrxOlh7VR%?~qXFy)sUBUH z19mkOICz5JR;FV%KzHaanSGQSp`xZHCLB#oi>CEAB_+MBk7IcXcd3Z}v2{!G9s4n1 z`#j7j@*0(R=zgkzKh&1t7gUg!2XPyO1%3Tyt>+9>UUAs0g@zqHa#apQVAUV|5Ppp6;pz5F8 zXs<`qBFBQ*()IOgFA(}Tui;ObLR?=ZQRCc<(0igy8uy5Yr!zO#29y~7B&Zi$HUNwZ zhApy>W-)WHg~3Xr^WZ^4lD76ia$4GTfB-&huB#&=Xagq_wC-UQWB(nZr;QW7nWI=% zF@04cf|Ea(Q$V2o+paGtO)196f1e+a%?G}~R~gPgZ>@ml_2q7GNLJs`oBPb6Ibt?L1+BRkMor9K_x;>W zvQDw>D&=_Sm!#-PY(r5oF_7ntNs2-gkKufyp`e({W=kX{B+E?OUof`_&sd>obs|`L zXk=t1R|ZV90;^lY*!Kcm6g{GTCrOhD+k1|F4(zx^tT^oJ}?#Q%?Pr zmAe#lkx&rkS<~`U2nhV~qs7MJ#89Hff?3i``SVR)8h88o^w+PI)H6p5n=DL^QMA1} zfGG@-0gZXCb6C{ReoYf?0`r7P&gv-fW4v=53Cit-=Fwy-iLRGs)5!bkllaCjTj<`% zGG?j?C0LD6i#Q((wKW?p`krEUO<}T|FtL&26k)*55xBBiUij+LrNZCOq*8&Qn7bik zot9F4AGmbzAou7+-O=>Ls=%oh>Z!s0i?LQy*T)K3nOQZ?t!YZ`a|EbY*ODH+?1?@_mM)AcmJw|!Ql3e=)FLnECN>+YV{ z7oaVB(Q2SPSW;Mrf+$fOK`PMW&&5Q#{10#%@}nT#!n488_D4b2p;)eOx11YTBCBq~iBBIG|Zr zKkKY5QdKW`Cl%6lMZ9{Mz!8WIDVUYbNJ>&8DtEIiWXJ9W?att!6NW}gtiHCJ_3fSc z*W5@LL{E@;e!BLGl+=yAveE3uz6|TTa(7K{x=5^acav5%j=l(IT(K_uVd4=al%`j^ zJy@Fh5H*v-^y4Q+lS53X?$>l@n>UXn1hNqR~^T$?g+BLw0fdH{5 zOmz@ z@pSatT%H44^^_&f+;aN=AkubEz4IZR;|E5`q!;DPIWzXsBxrLe=_WK418g z*^!hXWQ!6_T>m!;k>Kv8>td6a9#6Z7jcg72>}yU^DG7h47OZ`T5>co$VP^B6*u% zU){2^ga7!Aci__Iw`O%-W5ohD+NA-jt%arvuEv>Za*@1+5gj|^K98Cw`Na0uu$6kg zZue7vLzrE6RJ+ijTy5VBzsAM@+rbb)rS6Kjs5nU;?e2pd>axpFOme;_KH__6<4=i?&RO$JX*(O|GBaIn(8zj$=*2mDZxYJN}gX z)=x}aep;F(ZKP5%8Vt{E-m?YcXP?KrvhMGWls`7SRg}M*%xrEBcXT+~nA;pR%$%T{ zi%qIqa&QnpJCF@w*S?V)lIwpY~yQE^OWYyK(m0QZiX7ew-`5S zM{<^>$-ubAOr==Gmg}Tr%_gl&fpkL88a^d@x>z?R-kzHus1R`mYKqqcMNV%6YI^)| zCF${3&41Efs+B+Q-qB=cJ~uP{TF6#(kLhTUqnF9nDXhd2Qvv7NyD7#e`i*9NyXgxq zJ@Xl{Uf6qZQ-5u-n(LLorIy|24L^~SmeT{9YAE@GJ>}{e{+-We6jycwjn)9Tj`*t|(7f78Mi{<4#6XhQmN|>k)784R;^^I+IXx=)s zDKU2D)@G@1>i>Rzh>+_URX-A|svbDW=-~W%ZDh`*Fj&ycVT72j=vRmp^00lfo_kwY zC!dh{FhY!yn}p)T7poskORN7G7}fCn(11H(MlC zK0u=r1*c|eYO?OIf_T_+gh|zaD>KP+3Qcm+ubX=X3$M--4r5uqxNwH-!D%KEg?|M1 zzXj(n+GI&4+nz_y*QfmQGwz}le(-oj3pFcJN0CT*-zg<|`Om!Evvuyrw;ecsaICg7 zxf#Hd`TfT+%aP`oi0HufXl;|DKO@a|n3%Ml8|d1&(4OhIFg7&U&rE%4b=qsa=*6m* zR`D~7tT?p=Wr=d969NaKBT~|X_#dT@Jp2uMMln&J45_P>5z@pmH@0V0EUosB9jJZf zsd%xe-+JzFlGcf?w35V)-A7DXmbYFGFW8k3^yHI5Hfu8V8#~t5Yj_RU=f@7Ler-ZG zK&z8`%o5V~M}(AddN;qF=jX?oV-#ldZ8%;X1hAx~)RorW_oS<;;?k8*(z+JPU--Ea zGebC<=)C<){Y4AbuZ=0smMkZfP2At}JxnFPr}^N4vDRi53dOX%76XGE)dvqY(ZnHk zA9p{xQeRM!YuTcEKD6?E)46fqo2SH&E6j zcAcN65YfnaVqn+5XnsgNt__LN3-z4{s%eF)nTs1s{h|e(Y0>^BJ2rM!aPa^rLthYS z!+B-nF7D4VptjH>i+EzSyb>iFLx`51 zDIvtHa|0v5-FlLG?UkFpDlpmX%E0PnxNq(A65jaTK^B?p6E>aQyCdrw!Y;&XcPA4H za!s2PZ_-z#$;LfwXpqby5NiH-xhibeea`L~fhyEbtN6E4Z8K`uMt z(}1&XKR$jt;x~7#PiT^y*BdCAotamR@rmZtkjj3l_kG-oI$jf0VP?AJ$Z>;R>NzzW=?uNiBPi4X~UqsgCPeBqb3jEYI;qS=w5obYGC|Mw@FDn_iMr>x7Et&s9YnC+1XJFCyM0`ntfLt)bCY{J$dwfAYwu8l+Srpf`p0 z@m*C-75^tYh`S`c_@7Qk{!SXc@Ps1(`E0k3{MQ3f7NyNG(VY&dJ?DCjp5$@3n@$Px zmMiiAy)X1Ge=70+gIUslKbQFr3DLjGe}5%$e{-$Bul#pb^?xE@%d3YZvDN;3F8~qc z|Lbzy-`)7rOenZbGs!bkQWlxtKz8SMB|kh|o+oC%Aqy|X1?c$eHLQY9UWhzRROL02 z*4(}@+KQ$%2FL03{`utpb*B2yC*PDt4!9ny z`PtN5!NTI%qo_dd`kpt5PXq;D|27O>xuhN1qn>N|FiKfb!|<-Lak!syoKYR&&b@wK ziA@v6O+N}7GCEdfc0<{A8_^m%rT7HltwD8Pi3|3nJxl=}a+d`ySbO6p+WiXGYD$!t zD3lJpQBKrA9XV!ew5Nxh*wgI;v)Oo8emm5PNI$LAjEsb2Nx0-tT|uXVm?z!D$cWy> zRd`&ggD#yChWK2FDv6=vkomPO^vc2=hb|hT?_VVBY25+$Eq^=ZJ%{M&3-6a4R8eV$ zUIsTy3f1&lpDXibK{%B7&9N&gmr&O)J*Kmnd|#hd&$~5XJy5D*De|Un7>%{Rv?e0YZ~3a z`%lsvOfqFvH98bu=5HFo3Uhoz9J2H+G6Jdu(9hx^$-}L30%cQ2O=#8yC^Dkw2fatc z4z7j|b)*cuCS8Wc#>8GVd<_hIKl4?Me13S;1T+|{T8Ti!PCCsa}M|}Uyd8!4xuA-!Ke6k~zMC#yR$8iRZ+$GAi#{3;Bj8YTN?0%JHmvVDuCtk{ z-#qE9l34yARV$G*Vs+s}#vO)S-Hq3w&)h>F|NdYju(C2#IjM?+Syn+w^P=%G$!>YtOd zBTAaEIQWD>=4rZZhs!643C8dQx!N`9AlZ99Q3vTq+Y*BX+XnY{ggTC=<(ww9oe-%enjDy_Z?v`MUMyk zs)BP6CyDQW(5>ArUcgH|k2|1k|1KO%Iy%IHI0`FU^)H-~27@4iY9`;gO1v)ogT4}` z>)ZZd{vz&5!Oi{c@VVoTsX^_TER;uttru2}lowOn{0=6m8+?fHULBS*)w?;HzcyBM zs(PyB$1k(X1lrDzS9dtwJkVS0&O@;F_3~OBuARAc z{M+H1zd{PSq=N_CzTKN~_fce|xj?w9y=1&YFt_A;3EAd~-gwjKBgXgWc~B$FBNI8%>62E zW*wGS5MNx>o;J|^mKwQTh}?AFp7_t!={JYxsnvB+IPFVvQ3M>eEA^p7$RmeN+Bpc1-yTczlM==`*qoN z(l#_Ua&gs^mO4A{-2Mmby;@pb!W_EG`qizdZ9)}|*UDF8^r}RS4fkQ*e&rs*Phv35fl0F zp=f_w!3phKzDZH~AL0TPWbfS5b-uT1HqcM48ylyRTbgifcjkwMCl+R;q?87J0j{p< zuMWntvJO6Z?R{|keilEa)uh_&#IHc!WKTn-rkICr*VQu%s;VcOQm#e68#aCs@Y!s@ zb#YC|9Ckh^!i;85o;>7|ce!!vR#jUYTK@fOP?$C&z*+wbV+!U9RoQ5E9{h z8@@GuCZ<<4L$DyB{Ehy)FSWHq!x>6h?w+3FhZ-_pB!2qT^Z4TI0n`g%Dl(A&Ijt0u zwrkfeZvS!oBJ}NJz*RFdZdVd==k2yT-$k7<>B?tgKCG{|PIr2c>d2$Pfs~YozKOqk zsm4b#oNa1m3Wsl&O`(2!n5_TO+DP%)*HUM^lWZ4%xU;Y+Cxq}es>)2YL{|7xr##^H z7iAqN*h(ETyEy)fP%fyIajeL%w5@Wyxm5V_7yl6dhaaQkRDZf=ur2mo_mFSgy{rJk zabWO<;D(W%c^a#m*z($?bY1)TqVFNUe(YXZ^*C{nq=a6d@#00*nR7hIAu`R%wUev7 z!ou!aT4p9Ba2&#CXd7UOB9~KCY(V7z5ny3q!DSdm4AhHf6lIVdJ6;A*p11WKiig9~&28VIOBXLvqUc9OrKhX= zfwJdR(Sz&L?sc^d<0IpOdMl(}H>5-vy`Ij_`tG=#YoOTd_RvHpP+PUX{(D)pn|G|M ztDt4V>$^8teGkcrj0R771P7^Q$tx(?E%!O9GJ0{neMRp+)-3bc#?zUu&^9I^ER2Qx zgJ=P_2Zy@z_qR&9_ET(6eZ6{lXV?1ImJH-`16tdDM1MT&rOG~eLNMoJ`fKM$Tg%0t zL!)+Y&MR17zwS$0@a8U0b_y^)TVFosS8<(EO#riicQCwl=G4eW z=X}kt8GY=jh2S(%6vr$!*R2^*>!2e3Dk=SmXQI9B8TLP96qFMUJJS4IylUIy**&EX zy8ZBsv#c^cA@CzeU`mkPIVqO)u-j6CYE-s|iDPI zwl?Gd&|b)x|H$SNf^*R&omz1$7FIt!; z23<4NiA}r2c8u<42iR!pp~o zsE#OyR7Sm%HL4wzG(4hzO*2;cwzajM^-A}V^m`NcLTQy1loHCKokja>?|S9YNJiGZ zO-)t1aJ!Z%K_&E)`zmEC_kQot(5(Uc6MGy*ghG=P^@g+WmA`6lfAM0wreipKLfal`jK%4DyS5CTqc6jD^ zh4Sy8R&ODlA~JLo3adY#?U z!O#4>6`Fr0C)s4J4i3_vZXeHEpKfWvYR)J%eiq=jFm8-h-e^9tefxbrhhcrau@ zo?3Y=gjq#!`9Bg9lc2k*x6905WwRV_sI8-!YCg#~63SkunVP81zE*xBKd?jJ$t0*d+f;T~{d z#+yp;<|CM$0s;a+bjMm!P92(PO&dZhuy2}~xw!$1ZfQC-ASHb8^8ayVI%#PRRz8?x zHc-fBWpWh_hhH8YeXJ}j=un6PKi1&%b4DWx>gw-DLxb$6D;cnoGDe6P31}T55$Tx^@??zVGY%)mgYzdqu_Sd9=>UXM=W3 zw=O;FEn-@Y4~NCMu1+}I?d{t)&iPe_MgxSXA7b=lY047^1)eO>96F(zLMu1ymx#6s zEYB@g7**~jSrDz~TetF1s!zZhkc5OnoY5yq?DR! zc!>o%0#95rdw?D=QA)h=>E3rzymtrPAgKbLbz9R`@8A@7a{7UHqQDjmM;%^ZbW;>n zb*v&mUG;)+9_>LU28M0B*F%2`UtL|DHE$v^CzzSh&UO(Uoi3uYSwp3T=4b^%3P^M8 z80!0D!^2OXJqx*H?&KUIWY>m_5MCi-G6<%IZhFK_f|8?<@;;K2uju5KC2mC4rMSHl zWmj)Yysf}!X4qO+T{rv6dXDZJT_+8drm|MZ<00v1j|Q)BCEd+`<|^7}9mv;RKnT6- zbB651cuVSl2^k%&hX5Bl$4!Y`gS+y47K`jF2_;sSF11>(6hB)~l$Y0kV00pvLDawG zbof}|M&{EB-WWywyYg1G%ckH@c4ux~$}>K2=tQB#N^2lr#M)9|@`IR!$cHVp5zR%# znPS(c1WZL-v{>NMxH^f$g3k&E~R1D=Q3{vQ2M<)>~*h7j-BTFlebfyo|gzh1HISinW8eS?Nest{xLEdypDdSh>!^Tw3&TvhvLV7pppp^z(i)q?z0oZb?b1 zAN_ot{Ybm2D*I6Zr;6UiK>o%Ur8otZq?ozJCh5?{`Gv8cr7yv6M{P4c)$5e(+JByh zHz5D+{n29a{l%{*yK5r6i+4-!{N(84>r3oSsR!`DCpSJkd_xo+MC1Dy0|cy$@lrJ; zrmb0;pDpz84wkLW4fO5Fh{A{h9EuYxMtd8Krmq|wZ@oWz7mgg?IbseDG5~ph=k~A2 zsNvCtMXU`5O-K;L*n~|CV<@f=j1EvICo!N&+;|uEouZNw9C6hJc#mG-t5+omfID{V zz`O16N~=T|{ydzKw8PYKQ&c5M3wF}GHWuJz{Sy-$z7nk=^0F`u`3DDIMyvbj(~)>< zjF`AM=rOYY4fr#FItLFNI04g0aIhwN(1`7eF!K&p9`l!K!tujd!b>qWk@&&Aq78o* z?v9Q>m(t?m`)FAeO^4YH<|lZ8;JLa0^EA;7y*iJUahz(jvi`udpbzIA`|a?kC@1;l z=eQD_f{N0ua3lfFjN$mh%`z3{cMLh(#=+kW?3VofEvOHyZZZlAJb0y7YwHTEC`kTs zbO)z)JKl_}gEty&aKLOQXEcpKuKD3{A`rM06oel3`<5h*cpSLFc5c6#p)`CdlZ3=f zx1^VChWpet_CslM%oRCCfg*Qjyj5^~ZL+rdW3+XuTs1Pxx}vI*aQY{@L%l-@7S~FX z(sVY?TG_)W!OqfY+wSOtn{y@I-0J0J z-H~n*oS*Lk=BBy%WO2o5Heum{D37NS*LDrprDUYA zu@(irQ|0p-!8%-X_|u|(cL%ARJtu8KIJqwekC@h4fL~b0RL+IP^XExr!nTXjN4$$R zFfvHGF`hp)HD%e7vCYn*vSY=_;M%oMsbMc=$i=c*9wx?Q3mtuZV{jp&+pRi-VOL9k6=UA@8@i^yHr5`2wc1Sz z2Y8becvBM-cUW;igU|U=n+z=Aw&LQ8`B~7+fDH_ebxeiGi4!&8m$kQRUAjb+hxyZi zmcA3(d5}@z8wR=}VFoE0rXtRRs!-A3F&$90nD`A9!8ru?*Z+0w=r*d^!RiNXPhl{D zj2!f_1<=@?#0r3q5g=5~fc6w_0wBr8LCe&3=*61$aXvm{Q0PD_gWV&n_dqa!+Z~^A zGTAW}brV4fmMuvMR*QJ%%F;{CX@~XUt^KvLHhut~Q`1;F3LZbAt+M z9G}4@bHHYVkO5kA=<(9PdtF&^3cLb4J84!1aTg~%1W}twNd^{{>>ukM1Xe&XGFVT@ zGBN=S6o_6_1!)Z4h??MZ<0@cSH~yRepAg3!#J_+g{YAKl35GwSuXnO9!GnhvBx0ol zjErE4ZNs5MMK#%9u^$SXduL=#_AYrqzOq?vp?L!>P;vIUbooz?BV31Ak%Tz$D`|4a zzwF?ba$dl+IeY%vX}+n>>K$~7FZ^8{C!To(ZJ-9ncK-ZPc7jV#CUkq@G53aeP&|tR z_U${HGSIj@d)0Ae;n&Z@2sG+-KM-nvHZ2-jSfn`?9lNqSfQMmtn2v^~O~^`CN$z;! zt=Cr9nSF{ynZur`%ThAfPc)4*Oh()GZn5ytho9r(`7cH4>Fv3ehef&kq^(RkyjSUV zT3K6?lOw9hPRA}CqMn9ib46fBUR>N2CU2MT*^07nJ`bcM;%46%{U}K|%eKnCjYckw zKT@iiBLRtdNJKz@owUaCxLK_>;_Y_lA7kxd* zJitS!Ew9rlzQ1T76IyaR*>ZCGTVK+M6HP_Io`kPmcO0@#rOd9^=Q(;YTOB`Mni0$8 zm{FAfRujcc=2KK}XgPU##jjn$UOb-B^*RJf3J}|2H~>=PzW({MG~h}zFfjOA{-~{8 zi7o$%nCW91FR~|pUPI48DE*FdaH!@x+2b!99E5@ghlVZ@KsEzOl3)c>F4%XlPR-3F zIC%B-8?I&5Js3xtvJLAvAKgGCwWfc7N2|7>p#xlR zJG)G8?@Da&etv$M8X9&YT380LGv?UIpK`B4w?e@zcHsQP4TO1f<9M)9=y>3j#wQ>E zo+Y@Bj??|SsQP+)IYQa``ue6azzh|HjaO>wZJ8u2s-&S&k4HG*%G9^8mX(*sT6CxE zqot$UPfw3Cp|GW888RNo&yhdElys$qbB0-+gyi&-tow-%Bce-#ZO6&I9;z`ExWBV^ za|^V$f62~Hc>ld8$y0Nw4U+ht`;4x{* zPBpnq7?~%0Z~kar(|I;`{v55nM#5l~jH#kG=T<`}))-39Q~su1<+o3GDjMF@FKKV+ zNV{`Sk+bKHi}vto!&G(mxzG?sv$i}s>;9d=9P4zAZLyS|S*;y{3xgqBrpoJiIS#CP z?5mGe7v$pQ73S5}zL@jYU#ao=c|vWttv0KC+-VilwitQ7x_X{X+GAVX)ZMm)6TJOVvc_I-@V7gbV;1M>Df){NeCBL zy5;-IL(GZwO#Bz`#|l@#*o9(8g*d=hz7zATJKi2}O$~$m5iDNqlTbawZS%N0WLwa1 zUkT##bY4b90g~{N$fNknfY{hrh;8Z!|xIZH9Xrh38wBk|P6luSkTa>VI!G%d% zyQ3`UvyBTi`2HZ?8WITb{(>|fwA7pQ-%3jK!Nx~80^P20M}A&dm^Kc0*-c`fKvFI( z_4FXd?2vS0c+2R3?@il@unOV-!+erxhr!174is8tv5umfNzf#{eak|HM6L=XYlIfL z^Cp^opEFJbUO7np)+f6kSQppsirMMu@{*G4RZ2VQgUv{g! zU2oh>vNCDnc8)}wlu^1Ow6fCgW#V<-59e7Yd;7RZ9c&t8RSt)%+m0u71lWd&q(!SF z28M87yhMb*Watjxxa65o@9wZiMl)|1mUd3hNq7QcKM%BAQxmhFjY*Ar;z9kZH7O%S zNlrO|(i32Y2gi{yQ~xW!fv)6^UwID>2fXwbH2CpJQoAbhu>uZc!p-C3t91oe*mDA3 z3W)vrCi-c`*z$Z4^`$gN9TVN4r3or3QKvPL!{X~bOjoYOtJs?fZM|T@PWPHBCcKL4#v-tk%B0zk*O(ThA_b$c+fk zop$&vp}ym>#M_UTgX_gKU&mEkS&WH64lQRsUrNK8J-v_=AF2S(_zj%7>?Zov(*Z=TjtZ4c2zB(m>Zh(4*dsAefZB2tWa9R zBfKFq`~|u`kpXWtMC}-kum;QOBC9V<2kk)3_OJ4V3IS_MG5>9R{1`G0qTyQ01!zoG zKSk;r8NuNU)dS6g)JYkC0;FiqFw@?(>nSdo!e-DE-h1cN=6lfB{3tfuMAG|%ja=Jj z_M}TtvV~4hXx^14Pug{L?5!-WlOCs*b5pG~E31ub)o|~hvr&FYL%NmX)d_Afets^& zs`g5oyL$7xZ;v!5v;~d`j;=1N1_t%h?Tv|zHVG8IsB(E^015d03#zsJm#V(E=Gjpd z9?NTM723rh-_fd}pqVH2vG+gYiLoE9?n}Aji=DYAAo1I-1G0;k^JGvs@$DEH8Cydm(ncX2LgFX1R-UndfR#a3V zYDb@cn~I7*BPBT9;c4$`(css!_qIe{mC1FSugLjMwdR7;Whn5P{-yjs0UpP5t_Hop z03z9IY=E?N^Sw7H%_)Wd1R4m8>)g5XY`Fn{a{&s0s6)koDal!R(LXHA6{t#?Gtn|F zNWg?aSO;$x5*h592=ySFf|Dq8Rt4SptMGmVRBv4K{t_`q{VEPQ3;ZD%PwMV$xm9)S zJ2JDTvyUJI#2JZDRz8{!+ZZ3;3lGQ>=nou-13LBgEkZ(gwSQB+RXI=qErAo9>QEbi z(hRd2n>?zBz8=US`$tB~ndDzWE{(+lneLm|SYga*REwcl($UqWpg;B}LRTm=+uAgx zrKOM3B2~tcaC3KebZ}sxr%y$MYT*aPXAKldkeTb;zKy?pOJ-;a`v%BcI&+yRl@hf? z;R9w<#=3YKobdNCG1(A~DJUo`K7t)I7Q_6+#C1pEbsN?QCXaRc#l8&G_z_XyPNvCt>+~+ zX-jL>MaUbNo_!mdPFr~FW>VwVrrEZL9a&qqHZw3x30(t;dM!&ZT9!jmWtq)S#=4y78=*Ny~Uc^ME8nUJ7W81^`h*3rJKXHrb|DHkW_LF!V{ep#Kc z3kpsS+~VS4<$cOSb4Pi2P#*hHUA>rj@tnH)vSpfGSn3JM2>H2d8jDVm^3g9s`ctP2 zS$(52GheN0DkrIa$H7TT)s!uViK?bn#sg;upmPSTnaAA=CufPq^$fy3=6&+Z?+eD4 zvZRKmLsI~PP{5u*QnIrkEbC3#RvB~iB;BV2p3fu?V(MVXl^9lF3J$m&2zr?cub0x` zy9|=FNcK*-7gbwD!za?Z?ws02uEL3P{`|EpsZ*0a5~r~97a5;EaMj<)VUZ@LF6O}f zWUCJGk8*BKYj1ZyB;8r4?-az$8@;+Fu1#M@>#)nHlC(bhQdhmK{}TKa-X~5MyS<6a z7WxoW4!0*!;phWY7Z7J&w5NDTBpEwdH1^P$PqH-K0PFoSe_vt+8x=CwvC#;&UT1@A6HvhV{uo{7BLs3I5#eOD_6QF z#t0ddbnYHM>BI(y_rTY$kGdMc2OZpqf;K63KTiT{5%abyQc^In1oYFgX5OQ$rL}mN zt4kb%gjCwg$LDZ3&}`(^7qOF>^Lr9%aLQwDlz9Tr!zXIw7Mgm2tKmE*-L{R>baU8! z$%AU}pw7s!MWkzJw>cTxsAcD;O-w#?^z`~SZm`JEk-MSzm6)shU)4VbQ5*oC0DKSZ zfyw##jP!K&aEKOF7JoqEimEH>83=yNMjMkhuN>rGu^gmwGvlOmw&;TSKO*dm6q=VW zQb)umW^-)QoWfSw|JZR^O4cUrXQ~p|jOWE2CMC?PW7=*+CTPXl#BRSF&~87Y|0Y0h zwCJ)?;g?v&YMi;jP0eNNsr>wIhYlHi`JysT;g^_xl3iC?bpZuRRsgF#Ptr!z1lKAX z>Sm>Nbz9c9XzAQ0t6doF*E4ISeEC8kCC#Mu&05E=lTO0-^l|R^&BwKObS`{ERi+XM z;BipbSb2HJwMQ=?OL!>3;??u+S?O&!sA4&cG^fSFm;+WNP)w>GRo3t;>^gYxpyDO? zPx(qkcyZCevEaoE#hmR<Zo!P&x}FfN{$*do|3|6bfSB$gBGX zhkvPMp27ZCRz|4RtGV4^Gv@ue;7?yEfvOgk$;-05moJQ}i0or&vGgG^07_!&JW_%)RdiPBqvV|2Tg~K^J znU9Mddoxvo^@qToGZL&JL<+5vm-fDVLAKz;Dr6;)VBItBG1xUdAiTTyJ(E|>9x{(8 zy(>g?l>dM!?rMKbwPJi0sAXOV+ zUr2QEgWte{{WWah;Kzuyk&-eEdICTcK0ZF!=YKU7!)k$V*#7;&&z@0IxLX2f2Sn#Z zV8w3$qs2x?D_v@WRV^?%;9$8r<+N>T;wK{Jgzt3T1<;mdd3d=V>=5ApU@#y|`twg< zBwI#zc@Rs4^vA;yabs128G={}^=QxnP~QYZhdRMyc&-TohKI`e)TvV+vo0N^w($c^ z5XTmvZ}4+q1rAlevbi5%6r}_vWU3q?K`jt_W8T6p!8bSEu;(cVq-VBr2kD0w1PWQXZ2v$>NO6N4&8lSS51o1V|GKwZ=6l@D)PBK0c{zHue z_+uxN=u)<=u-%fC{rRm_c@<^tw%xs5)<(R_7-YgkCW$e^Zy#SCq5h%a2zQhKB&H+5ld9mAl6#lFLaZ7k7gn;vqI4shn1WM z_zIopcn-1KuS}p=Db6?EmZ6#Q;THwP&ceoPYRxT8=2@+eJul^JYI>GP%2fSEPU&d; zoL=Wp%JHfMFz)DA367LJN-;AfFQ+UP_Uw98Y|i1i#>&Fu*hzsSdqzb+eVUY?ADW(i zMmk=-n1XN{2uDbm_E;I=tBn?aa(Y==#X0*rwQKhF0cM9V1?oXf`q8>Jk!4BvN|}{z zrU$I&{mk1B)|qCBT_^S2iobbl=PJ4t$DUy25#<^|2KSGE9fSkgyK?SB{mX?+X3-<4C0jp>+ z9nL5iNC?1VJv}dli8*^jp=S;!FugEGQ31>}%pI7|N_Y zY)6oS5E4J2hc4Zd#<28_j$R=k;;gB!XAdV@*Z(dJ!hsjzVD$KSwldPZ?*r4;Xm~X{ zi<{XiC>O^hOKcVa7Q~<7sFwh~EiEkBv}K#qf&tN91g;v!KwRNQ2amR>69;p0b60L3 zf(_tQIN~U{gP}9ZhFe77n6QiTA*=L&R0P@AweK7pfr!)5MB4;XY=<_(K zH@65bThASRL@#|$sAZJe_iiG)*<_P9J8QRj7OSu7L2C0Cr|NVM`ARm@m1*$!6zj0b zbMLwbT$5_6o&B}IAX+jv5hfqar#I+zn0%aB{7Uzzu(R^G7k)do^SF{w*&F31>r)p3 z%Pseb-S+@i)~+)!V{Lnw)n;(iy<(+nIYrPkSJGA3b@bK3ix-?U3{5Rf39nCFGmqUi zJ8XVRD&trC<$T-qhNhI4W*uhF(g9OcZ%=!jbUvR=J1NC6SZGHX0 z(b2e9_gNP*8Tj;{J%4`U`X>@rB>igeVZ!c!QmVRr2=>os7173>L5CzccRuks` z&K0IzSJTiy^mPK;6kq~YDi|sX_R(klR879^*{uu_KUOwQFfUI}khV0ftoW$lB=Hv< zYG9BQ+cz+vr=z13N^*(k`0+^usPJ{X*@11&`1Ad(uae2usE7fQTXCPEk-okGS+AVF zPQ|D(&3G#dYm(~grHN|WUBiNDX`V8dSi*~WwY{}I$|8P|IC!&|k3FI-J~=Bd#Kh%> zFObnNo~xids4*}bdK+b)C_GkI$+9WT_X>N9%ix{wOV;p=%guGvTWJ?HJJF#OxOP$N z4p3T->1_?z?=bYZ~q6BMQDYB_0XqSGDn?Qh@uK}s?fEWyHtHE^Gj5G(5!kWf#Z zA`)im=CaUB2ew)0q|gKhjD+zJuSdY?M{>q*H_-B4hjO5YwjGIlQ zVzH07T3VXypE9L5udOWg>vFtN>z+v)vEDf|7I(C-f%JisQ~CwQnglDsw^<==sdYvN z<%i-O=f6^yelfq*_xQ<-m2%*L!hHwpnNy@fu+nmJKBg0(4^#Z*K)L7KJ;4Yn!no2Ygez?7^mYI<;1dMJ+ zJG)oG!SFFY0aMrGZclH(!5P#xqf;ilPIukhiir5%!dY1Q!k7Y4B&vEl3tYr~hBPDR@G||B-l4;18{{$#?|=LUPJon$ z57noyXAp5Gg;eY$@`u7K^J$F2ma1QYiAXUO4ZEj#-5?VX#_isQfGzfCrijTqey-9Ct(aqz+ z`ULjRF{G*&f-^1L`@*X1#;7U=hTYpRD^<#Uyz~?Z`6Cks?%KJ zn_@MC!om_`V#?Oum$@GHl>}u%%z>r8IcQ>t#|rWYfFpl|Bigyg;k0^>LyElUVbI+( zGdu3<{YA$7@1Q9Ea5^{tZqiEf576>Ip?&`6Z(1PG2VQyfj>J{r@+%o78Tv<`yW-vQ zzv^zX9#T*Ei^7VRQFKmcAsKf*!(IDO#`f(F=5IwTB!7t9&Hm%A7kSjqOxEJlJ0{j2 zzRmg#{`{Za(?5^)4~F!gp8g+3>;Kj_f#2}^KL0QOrhkUZ>4L@qn5Zlr+xg&u?EaG5 zCl0{1Wn&6-cqOZQo+1kiFnp|h3hpi>vfMi>Hah+OKdj$>-qAnT`!C?SzY)Fv{Eq&) z%s->?&t?AR7f*0^byJd%IDMMD9N_n>-M=7>kAM5b)KW`4@NLPX%Kejj==f)TnUCv# z7jJt?#Qu=BdZG*uh)&FIO+#JbXK`sXScS$*5JJs|oLb~LTwGfcRiJ14INRD&zbAk7 z^x`7n{fF?I9X~45G;_+<83PKF`1r^Ay5km(5C@e=q2ELzM(?4O|2i*}T%~>-NOpt(?X0qN;Flir#J2pr>z4YL zt_3E>mV*fPjay3|GDxlBOz3mO6L%cp;H;sH;@v@!E^xBXJgeXWlgOQ^_c6(3{Y@t; zo;;=bSws8ClzRwfrY-f# zPYYVWmQ_=xJvJ8E=Xc-7l&mW@CV^sy%9VXhE!q#Nd{omFncS$W{nbnJ6B4E}P+r5o ziNRe~mhql43&XaUKHH};qwAPIBMkJ)mw-=j^KjQSRG(cW%84T%G0BnKEjVuWv!DM) z*QilJLc(;h_qF5pHA$BPP9&$Cw6v^&u}rAQ@#B0kDj5`1A?;IKR7H{RlSga~n{HOW zj5mWN%rx|sjS4uqYN{d*lgXK>FFbS;c3+ar1FuREq2$MRNwXE-BPsT0 zo3ytU4pbiL*EPB!$Fax8;Ab=V4rzf$w3U>OyLq7KaN_BYlJ>O}0b{2{fd|ex#>?JG zk7=jt6qg+{eKb=uiOh$xvU2yz*J-OiZrCvH%Fj-JbfJ&qg@>Y&Vk$o$r5kam*J+45 z!CGMduCa%Q4vF3RW}fw$Mbt5_Bc-_Q^NnvMR4DoK*H-t%MkD=m^i(|II-RJt`Ch)a z_rF!Ms2&#t=S|yXq1|3pHZR*+`+X#$!uVGbggF}$W>!1;x1`Y!=ftmuYlAAG@L(4aE!B(VDuN+wPlOX=Aw6 zR$YU+&ZkK&b)RvInHFF|SbX?$_c=8_$JAZHS|42ywIZXcD zNik6bx|}u*tr!U6V7Y2sSt-|k+~nM=AMCP)T7LY6iel}fHg6GYhyEqXJ+O1xs2nYP z!I2j5=Fd%G>%g;38Cx*Oy#QD060*41*?R}}0r{H?raXG|$l|D@mYSB9qQ(hUR;?#g$? zC+ibT8d8UT>uT#8+VV0}t!|sGgXl$C5k!;X68|WB>3MvMP==|$wrZ-2%tHcaT2fSo zVc8y@fSh*y#Qd)0B7aLRws6(0&0^J52p+qQRQtEXbJeSI8Q1cZ>& zIR@)43T$jxl^gHCNo$a5E6IZ3lbIPcLDN?Il8>Ml*s8e}ME%VLU=kHbyk#7hs4cHX z+!^bBe)wj(v-)Sf7Jc@tyI7vd(WBtJr(bVX-6bY|v#EymDFc&;^COQ+tpXP6$2ei6 z2~@6u-88pl2Oo}oB0fqxrMT2IbLU4U4sBteW3D^ z{RCwZ>_|z%=r$JMu17Z@0;Zv3b{!s0d(&izl{Hvh)~ZTx=$X!JC+-@04~YkaYgL3vi_T{nGs45&^JDx*h2O}1J&IRX zw=w&a@AWLIGp&n0|9GLc_Q~kzuaE=JYkq~wWHvz)7nhrR^})6geM97Oe5uLLsi=HU z1eEufH+d*tK6gDX(JU^JxwEhC9n2I>fpya_mB+CQ2sme3|E#NdUV5AGweJp+IS&t( z3qXuK2pSXv^ETSsx#3;*d!cL&$#$r7oS~mwmh~&|Gn`nodHGUCE02?#i!J=2u%L%FudvHlOvHDheRai%aN$}Z|F6{zlJXF>nGj=}}X{`PB;eFf{ zRr&6dx(5Qv_tm5ngWA%{c%Zk%W~A|Wf2;k#jk8WlO1`SOW<@6!S$C7Vw}1A7BL4%5 z2E7Bz<=L|r1>+KvGd^6nfI>0FgKfbK`wh1LAs@Z-5HUCoqbj86-n=0DZ?@a@-OLBE zd6JW-{;^qyNhXxTSJLb9W&W+3i~KK_mHpwgrrpQxS86e}0|bBiM~JgDOzRxo{>oq( z7?f(xvnG8^C0tbS^N4ACrlg@36BGB{Ui`wmf&xT?>p!iW!Uf2snLGD0lhiRGa;}uQ z+e}YX@{w%pzJ&#M|98^BGh?5TfRQZNRu&y@b)7R-EXenQGX6M_u(g|!k_X#e7A96B zWz+>tMLwlC_MJEIVZIplH1>7($gq5(XFHEyTq5J=(c8Aw~>LRyx2DAnDW&N;jOXj~cwl ztHr^imL@z}TW3^f%70_1M%agG*UZ$DJUasu)rGJv)rSXYOi=*#UpFu^B)=?G|IjV5 zosnJJ1WKQvj}sZ-Eb}=Qe%oi%kY>6Pk{CMz|Aq8b(%iBV%BabvimLWZmZL{Zbd6dv z&#o4<>ERCUuJ50L%5i1Cis_+-<3GlK4QBEW|ETHQPDt&UxB(-=uaiBuNM|sm^np)S zs*JS8DEaS#qIdnzIgh(l+WgkZ&i2vSG(f-kVdBxtCovPR;!?;#9^lkUXn{lH3y^~9@ z?FOv)4vNYLkum`)ij9oXg@maS;bz=^v{-JvCz>@XA=%sJzF*bMS&xjKWAgV%;fA>%3=oQu>#7 z5?=_!pPl8;`~z$km7ixQ=z;k_Q89)GzDW36=r1M3Y^dhGJjWnrscdIFx=?gk$xcL| z_QmC@G9j0tqbLyTZ!(qLNtnIo~%n}5CaGZ?el$*BRc zI|`2(dm)!nP>FA6*vr^EaG3z{TfcEDpU&X3pmECw4zsdv@NL9b_$FQ0dCY-vi?cxZ zty`66#l+O#Q5YDlOvdS23g;NaHb}m&QJ??idFZ)Y&$lwVeM3V_-eLM$kykHWyVe`C zSLuYfeV?J9mdjMey>_h!PA<$IBMo)dQ(pd#FL``m$IK^O6b zQIZ_HE!!kwqfRS8c&&utG@6^^0M9x-^^(fmvmQkOQWo;+@5OHq+(iTn#65~ zzI|;}f5PDSm~fOz*yb#i+{f!aQF3w)*Qjg)@^}SonUg8s3EuZ87%!&Faku>N8WOew zJza2|{WTVW)+E}WUgn{e{cki1*7t9B@bS#kMhc zo*twY+LZWh@#Mt#r6I(mBsU+iKcq?0iVPV1qqC#u-;C}XV`2*;J3BjHS2XQ}jrHu| zG_Vk$aL>Ccou-DKvxgs||G;;M;vQRXWkwHED9!{;(6PG}JhheedWuhuPcIY6d{V3) z5RlchwdGBOpI)1a`G0S9u_!C{o5YS-mP3Dw>7 z#Ka(agMtZd9R&MvI9vUI&J}Il!3l(>WZzJgsQ1ileu@OZM1DZiVjkg*V)oSdMg!D~ldm1fT#H0k7m zV_0IrS~kk*NcO<(SV9dEbsn_9L0iaVG!!Sc*dQeZAH#dU;I9U4*S3#0&Y@cXC9Amj zI@lLM2B592fm|ZtfdV?zG~kkeIt{9n5m==}qLiSihJ%9xzPhWFoCW>cu0tV!N)Pm1 z!$*hl)F7--F)=~3kPsc0G9lpsYP9t0QxG~T@&t_Vg<+6EQb&ms6a-kDd9SRjJbd^N zCTRL=a1PiSA-{+Tg$g#EmM{ykzMZO>U& zU&wCgj$-~1TYm5hie7-xKBgD=r>G~_5Q;rK$XFi2_6Iy{^uVEH6%tZA$*89{5EaG2 zLXea!L9x&3gN9vlqAD66IHQIP!U>%EC(tTMDk9lqT2fS$l$5kWGbAX2GYWJ9bP1uA zAQqkZ`ITr=pe21sxtmFZ;}nC2-56fs;$$)N{1D*$(j!7b*~HuLz)XpZh=2oq+d(Q!u)bw-;a&l1Cp1yn6135ZINedmdG12i#h<5+z zC@(Iq&FTvhT^fuQuth;CL30XRs}mNzl4!<&sXB^&VOUr2)&grL=wd%@=xA(@Ij9pL zv}nJTaKpYqw3sP>$?X=qm6UXOVSx{PC$Ou45*G{I1bWb;z6kmib^-Lw z1sg9$B{3mh+inbZ{2V>5&>10G5&fcnpkci=_K=BI>-vWFb{FV&FmUKfq|C7g{vV^7 zXQGw9@*`^_Vg8ln+spWx5j-BW+#A`0?!Q?YS|4Fa62PT$Ra;wI{kgC24PD(2me-8Y z&<{pb>7Hno`kCDA@UoXRv_B{L`Ta|8qq~ueOyWdej)X^Ut_YeRfMTVv)?4a_4GBZ# zFQt@a(f9Q$0W_cp`9MFvTj<g`_bw_&l_=^6)p)5l5p6q;( z4jFXFbFd|UaFclLU4MrxQ?|2p@WFxc4E*$cowwzL(kd9eU0btb{Bd8q5R~Y z&?%FGMpe)EkiW^C6i3fslC70b#cC&cD&BAuz8z&bQ+l01w8e3y@H%mT{LSr&zds{& zJNGiH?~gjO_cO1PPq32b?v>BR=icT|F59%zls$9 zWjyy^gdh_vzBR<4NT;wrjjKl9FU>4I&Scw8#_3`9>Vc|<%&kT`COzW%@3Y)=d=DM= z{v~eN{V_V)KJ4xd|5%~HD=flXmdoFi+MJhFQkOlXNjmwD!?~YC_JZ-Xj4#c*J!3Y42@ndwlft0otXW@Y8LMi^BC$dw--nkdHok$}KjD z&V7D7-K0mRiYDyGI*ArD8&U}p9rw#46m=nM&&AJWnAuHAxSSR`(Y4lgN!!_SbRyr# z{J4pb6~lZ{gK$Rt?gPtVGHRL5HD64|E8_)w68G>#%O=&#U#?fSjcJQAC_mp(C3(q3 z>rSsiymDf5u5Im`&>4}9VC)kq=Un&V*GN}=EtQ1s>*K0y$0yAdzm}%8?0zlgGBMrd zJpZV;Q8B79+q~{G+hH-u%m&vIeQ6zcLw=^#0`<)Iw;IIH>3(#vrlbh@64AKq_narFmXdHo|YmS3&8F5{KESO~!sAy1{R3|ekP{&#mbdsG$F zX7Q@P>qe^!yo_i`DzuxyI zO?oTK*XaQnGmXbI5~)@rxZRCA{6In?8xuc^T&-G5XAV{&EQDg&ocSsG7I~3U*DwA&~`4V_V^&1ni|V8wG)nHvi%#gaN_LA zb*y{#Xk72>mx)3Gki z4?cqd*98UHXvGJsLfcuy47vpLs;d(BYD`<4tob?QM3U%31wO#t6A{Xc19PET5@c08 zqH2QauCMO!F17B<5;4Lo7C)-V>tEVm85A@vVS3Y0z zlWp_YTH^-qr-c_>Z;Y$nn!B$Q7&v5W*2baHHPmx4qdU=<3|>IX_xQQ`MV(hX61Giz zphty)ghN3f;hKZKc9eX?6_?OcJuQd&Xd>@%;W@z|MIG^wS$}GH=#I@nUrE!$`6>6lKAGXW zMWYaS<%4`QY&ozceE9LDMoNK&S5SrQ?ev!STe&#)c+pK6SExtGAMvLhZ@eHaY%p|M zhdWU8kByX(l2EQl={$}eWy$VgX2{b1qY?A}`@v%7E+5^RVYD2V_^o2eP@|+ijn~q` zD-O3JqB%0SXKu8SRg^pJPG4QQOJh>s04v(Q5M7-+AD}g{`|JpVi@q5)I3b&{eRMSZ zZvt}UuYL7-F+4KDEMh4gd5r%Mv8B=-9eW$)${qH;ICnbyHjc6J#14s!=qaVk%Io3w zEj970lZDHBpbc1Dyyd=-&^{GR+5Oe`qxik<=At1pd#0$FF7<+tF!S)g=UN42i!QHv_ytkNqKqR9!C4|%8CRrmva}TIa_<@ zb29p?LSF_3ni?94aof2lxepsN{@#^OaIg=@=>;%ty)0xk%Kos#dGUlmf9{8aM~0f- zkru?(4VTkZZD*-p%l!1~UD=L;(EWSOElPKvbfd)Fmb`pPYrg#6Kvn46NV|>M!g=X) zCVpSP7VCL4YZdg!n*J)6Q9reHCsQ6yN+Ic&RlDbgXgZrBirp+DZ`}&V$ZQObj)Iz6 zjAwLU|Lo`xjhTiIjf9hclST_g$a+Glf8*oAZ&zp~QuXU9F)_%f?3YycIu?)ZSJ}?8 zv)uo20j+wbzq;^lwp+I_?{T6T7#wj6=Cd@(x!IL*sfxPAYOuC7Vps6CPh59E!yx(O z80YX*ZBm8TNXsWgl<=5Q}ue#|S^xLPeB?)T;WjfOuv+JGr_Xa1QIJtRCwux%qL+LFW`?ajV?69C+ z$FDKEca`KUN8{t3K6&C=V5`pQ&p^+>3F@1Lr5mNnt#@EY*haaWT#KRX#sJmGD?FsM z4%t66G~#GAH#s;uEx`lY0Zuh?%U@d`GkD= zuxWyvI!#TQ7prW=-t^!R&lEOKf`zc$qD|zH0PtG+)vg8bs=o3Mym8a;L)KdQpJ{5` z0eZn}9TgD_O-&Ok_N7csTYH^5LG3@S>W&A0sy(72u4+dx z6!7yGqWJ&qtNz~xl>R-m^;g6yODhSKFb`iiF_7i^{$Qo|LF(X6whBwIJh2{$yOvTLv1NJZ#?gHy`i&wd1dk5AB~;OhOZA6;K_L#y zBB6c1zi6G`eySHYc0a6gfdYN4ll%bVPB#?U2du_u~N-7n*>=r+Uwb259gXRdB_PpuKaI zHJ}_SKWJN4yF=yN$oGO=&3NDdf-^I^jksVu5SSQ*3bB7o-2inL{lkau{N5sVtHF^F z=`Yfz%h$D_!$M2knbUs-qZQ~U4C;E(>J!$dcnR!>4pk43vjZ@do>tCT zeT}Y}S-tM(+$iCeH8eCdBYrpIG7*3!d0}CZ<%FaZs*FS85YZbgF@I9u80Iqu8ITYG zee(Zq=8hbh_8a@}z--|oY@=CLGWV})q~puzUUJk)q-M_5UJc^WUr=XXew zmw@{9Lpzltiez$cCAOw-{_EY}Mp`*Om#sm9X`_YHzgkZt#a()c z9P;w->qKB2;Z?J4st|QSLSl39mQU&jBZyt?q*$^v+9C7B1o^p_q>SkTam`6FM#vBK z^qe%RkE=O$p!v<&E$L(%UwmdCpp`Q$UsDZ!N)>*ojaBjC-u!#xdkL7}@S#I+)tBY$ z=ni?C1z9H~&4OWOJ!z0N+CJy1q1$h-7(?_V@kdI-@^pv)m6{AI(gk z8vXV8i8(a31u_I-866!R3ml~8fHzA2v325Jk13I1bJO?5i&WrZ=uiznY%XU!e|l!7 z_kt|3HHw`X&I+MTch%xucwZ_+E23}ZZD=36y1HQ4BV_yQKu;KPMt$1Oad*DTagtdc zvmJU_;DXk+wrGIf4_WiR&0BwucZ)4Ndx2afYGgs8WCOGkQ&xnGjyS_7SkO(?-ohf8 z@=HkxQ3wU+iu20B=qZ|(HVYp$YpF*&_sIk10$h_V1cn&Ke!|`$BtZi zeaakmlGu*`uz>9arxzeTfbxeRHGy+CY!82%C#3>8fdL8txzj>I(cH< z%Uye+34$BOaX3QGRm}(VQ)L27O9X&+=FDBZI7oj0=)h0$GWo_BoJlomsDzys1PQ?R zo0D}OQ{DugjJZTd1m5jn*&1YsSp+XHOKWRQAab8oAxDXb9s-it-w)%XSAKqM4_^tI zX+e_)#R0tZELaHFuU|*ISo{+(I20!Q(rA(kc}nBEi@Pgc4MQ@OkM|700?aMZk6A-F z0EU@>o{8Wb4E?gQvd~X>a%Kj2eh z!#NeMfY@Ke9cCmI&}*Lm#*t&kexOq+Y=EGZM|V{_7#U&2U_S0b1fB;Qx05GNrqPI4^m?F{;wzK3IGR$0 zdd*ajXu9=?G7XI%&cC&(a$c(K<88}@edz9z~g&68CgkXrI^DE$07~M+M!?Q z^m)PvOXJ(OZ>KkYP!pN%P(raO7|p7alFTt4z-g`59H7a;0w-gkJ*xWVNFWTtA(H%A zQv+iYIE2An%qr+LdT1cdkRU^EdNjz;|0d_`<;ef+x$k%N^g>4ji?Tn-(;+nm4 z=Obk|v{xv)h_BB0QFddq2Y?%?2dq3=(-#FIhW-1EmgcbA5an5zfj!@z^6v%K%tTH7 zW$jwf`Hj}?S1g}?ijsS0x5mA31Sc9n3lH}RqK_=P)4IZIt+}CjU<7uA_xrlnLl3@> zobM>t!>kc9@BWH0z@`dGSK>s~Flyv*D;3oVkRtYqBYW%l7=rI{7tg~`koukEzZ@>h zK^~yrj=O@VI?)Xf9)Q?C#BG1Q1|V(2>N=nK2AdXI<*f7PB%t#z0w>4$Uyzu_xVfFz z*N>8lSi*GY*G$3;!8iRpnW##|@(_nsx&*LXEph61U*X|^rn-hqZv5EUa2iZcu#j+w z5i7$w$maqhB6L3QfhscS`E#`3^Y*T%{r2^%{^nlHX4nQP-65y;{MyuXnv)Z`6E$@* zeuo=^=T@3oM|)%A0_rAG5%L>_kr6(0YY(UF#wx{@+TY)ws48hPje>-B=AE--Z(+{Y z-TgWwWJiF05XNfYi`x!(6JmLwjYjqy!z~s9#L^J>?WpQQhjdi4#^9f*l`;a$T%Le( zRMWtPR*jG+wv)jAQ(PPg`CL%(%J9sUuDw(eg!AVONF~y!X=o5pH;P~0lBJR0JoW7H z<8tgEL^rX;-Dn%_D$hZ(hZ(_1=N9Na?*b=>&2B5yhR_;u`lDCz^t9tt@1Z|ei^Q~c@m(k<-sCK>vS`G4QyP%j7<}_7mWb*>m3T)u;YFx#ZkBtfdZrK=0JL!^QlRYwas@>8wupr8(-5Vo9jieUQg`K}b1}bA z+CqzFOPsd|T5$?XhlzzWZYMc3WX9{e`L4WG)bl$Z9gHk2EC9AxC1}H`&~>u={O9tE z*6$-C40v79Qx>y7CeM*wf-cgaJ{O7D z4tbH|Dwo;mPW__dVvqzB$&&E85j$N|SKq;cdskez)->uxjKmh|NhfYFlJ;8I8yk

LdqY{l+5+dYgmx=-hzSJS{Rv=lY_b&_MJ5GvBFIQ@hICPQf= z<~FCBlqZyIl&U7;cfUFM)7xp=)~(xFQoB-0NZTzw*^iJDt3GAOHO{Yi10dmu=t}9- z$&f%R2DvL;G_L=Px3><9vi;VEQ63dVLPb%j2c;xcQc^)gK)R$w>FypdKm-J&8$@Cx zhLLVYrIhY2>71b(=3VHszy1C8vA^H9-#^}W4*$^c;O4&W`--*B^IYd@fXEuO1j53V zI%W3YLz5vvP|0x+Li%$1mtvi_7@<+(7E&G33RtnK3wYDrC zM91-MiRkFZ?KvM8-@`4sOY)wc2W;PGh3=73Y`@=mT#ZY9P#tz0;=X3l%igBd@s<&b z5Z-r>?6(O#pA1_jgm-YzmH^9jIJV0!`(VTQQpL|R&u(j(gPe^$p#MTf|J%R8aB=*OsLggvR z(UmgT|0nhnp`G>dSDsIK`i7zUw`iOs8F=~_SdpO$R44zS@}n_ZaYGQlnA+@6gKr$a z=gHrh<~Zt>XA3Gjdl5FsvY9J?@SYawDs@7}-f7B+uOl;YNU>^IJ)k=x8$@}~iwD>0aSgK0Qw{d3C8 zmjtxDfBm_3N$U8QS+I&L6vGWb1o@xezcEnwb8!mv4L=cH%ok;p7Vm%l_s5klCU96o z-8JYiYPfQKH&X@H<}GTmvr`3FH+IySO}e!Ori!iQ_Z9AC&MoB#k6kb*zabl(cuve| zt2EPJ6Ek{3O*B{ei<`MtV-!t%60?X+=VvoAv|ikv5kXDT4!=D0*^29wDqjre=6*6U zWuQ&hR=(jXyaqn2vU<9ceO4-v4`nQ|(HWx2m(EmmcV6zuF|tU!MNLX9LTA_c{d=R$ z*A*G>!-SJBX?0n>^_UJ;A&uyv9`LPHj-C9W+DPdZE+bK7j%OS--q)R$S@ythe~`cz0e+9PzVcVeBc68QzHSE zCmtSBl9H$X`U^;Wc@%U;F1CUo8_usZ#RCU&k#ezn^O}i!Bt>{bb;z2XEtA}^p{y3a>aXN=eISdvw}~E z2!b@B;4%S4Ex=13U5m`;)l&!c*G$?I@R=GzyNWwryTrR1;l?>y_{r3Ukou5>xsH^{ z;tw1c>%kY=--?YlwX7;ipCsN!+4@`g2CQRrbyDM0!r#ixawNuw#p!hP%5zT-4@alI z4c^2KN)UCV#^a_jq$jE*V46W73;D%igZX)nPchw@eeJ0Q3g5!om#OqBKj;SsKPmNg z>C_mb7OKQ)={y0*yB@K+nJ0lME5x?vSt!ug)_pE8@Nj;r8Qphlete$SZPU0~W?s`-3k^7FfJixN5k#KHJ%%|4bSBo9bgr^&20Qu3a*cJj}i#eJ3z3Em0@*xD@soPhA7+|U2!{t;#} zA5qzi*qt@xdg#T?KZmRnv(Q6kq=O{H$#jwvn!`6G3R`)?`yCnbs9x_;kdet!M`?k% z^*5cyFU&Hd%kh1MXf_Qe7*{O$_jIQ-u}_R~bEquYnO)4+tvaB~U>4Oyxi(Sm#JXRe6 zN53iKh|hOw8s>H4*nDn(fS@0I`u4?9SEkQ5P0wb-B2#6B=Wlk+jBWstqoO=I_=sqA z=#@yk_duyzi*w7+KAD&I!4w%c_d2Q7Z~-iyM`RnD*e;~Wm`gPlDWABuvC-Vr)Kv)v z^~U{|a5A&j)rX=~DJm@C*A8~2d2Y8y0Ju`5Wu=nx+*~FsgMo3^%{L&DogL*U<3sLZ zt(Pq9{xw0;Vu9b1)#pP~f%P$YteU&<6vm>;dg%NMIJOa_MYb`=a9l;P5!>(GQzkX4 zMJG5>aB#J&)ub)aId|wjQ}|`hGSBJG@)nC?)L~D5|I@BUjLS>sbIEvtCzIa><-> z^i;aCvLrVB^%1FVBGxgqwQPI9)oHu58gc5>U&>qx6^V?VVG6pP`Wv$F6~7C}Vc-;m*$dBo-lL5qGfC@|}q!-du02++lqxc9M)vo<~PTx=q`c3{v2M!5yD}9UtX;UK|eU&QYI;zQ6a5jMjK})H zgqNQzPj}>htJX_@y>BHhek`pyJUnayhp<`lhXWt~QhND!k zKlL$P>KOR_@4JQnK7Ik#(>PY0yySPnil@n>J35%H3r0Gu+mn!-A9K7C2WF-VUDj6e zwC{GJi4PXBG>gSKv6nU^CQr-td$Py^m*ebbS?;|Z6nm z2?~-M^l-H5$Vwy!J3lVVZLYov&U5q$RJ`k3%V@|(@Awb#=N@`(8zZf&2g87W{PHD# zi}>mmE?OmB*~wZL|9Fao?-~KgF-&W-cxt@kP$5|)QScWVe>7i%yf1oe&7rj^A&%Gllw2b3i>*Scl3ed= z8_t#f4wa$6fanTr=EA zCr)J|(HAiJnPxW0j~a}Mj~4R&IlQCY$9VDQ_)CN2VkfeJP1&Ry{4;BHLYT4n(E%ab zmCqjAI4{h~P;<_C6_o-sp1Y|!>y0rzzm>lCVr$U7bxf@2w1uy7*%GoY%Tq0~Q4J}V zWMFL0_hL(fH>>BssV(@+2MJ5XO8pscAr$_j(oNCiEVrR7RE3``iWYJD>a}>#plr^I zsVXS6Wja?mVW=anT_vLDe3YoWw;rtJl;BIg9%b{`J!xlQ9$#*iSXO2(F$MpO%N z>rc0iOl|bHn@m7>r>`69VeB;(6u4}cB4%=}V4?k2Qg`nVi`p$f8bPDrxHtvkB)r{a zzppQ`79}_?9d0)6o34Yi$MmO%yKYcWlBh>sdL%Cu<#Fh_Qi2_>LZP{Is~ksQ+E8*P z&(3ttG=1a>#@>TKy9_bgE3|DLa`obprB8|`G zX>hTrHMR)x0Z#DNdeme5asT(}^($?<)uwd^k;Hu<)6@&7V)1#30mpRp`rc$021aJ5 zZPa3wUJWS_ zQ6(4Kp1UgSzI*U2S@cAbuDgzaiy$A{Y&#e^Ob zaJm{couoU-38KyeHX5;I1|QojCANFKnnWEF;Zgcel1p*pqq#|Xt((`)v!#7%Gviba z1zVNPF5u6&ABh_>Z?}rS<4n>EoaN-o7w-!m@gcu#$=Z!x^yC$lC+Zk1LV@5YJzWi! z(Z)t$RB|c1ZkcJ<)@J0AD7FKo@yma>+GFu%MF`J{qHw8b;ybgv#JvNlftmid;xFP7 zH@YcQxYu7Z8qdt!y@eLmzh4f2{rX6WkbqX6Hr zVtm@*kqAASJ9>y8J)o9#V0YOg_DQi(Utakpm1L5r@iWs>#AMbBKQC@}4bCI29P;m| zM8D8Hn3Ya$;O15sVVrBF!G7SpxEC2In$=kq?fvcSLU-jwkGv`=4f=;ANryZ)OMa(U z2ZXWB_b<(Mn-`HkAE=C!ICEOBjJB^VS_-y=Qx?~$;wh|?lF=8%St#7x-S^NjfxzfT zHXbFUs%EIN_>!N_7i-f5E<+22#qry&4o`#S{2QrLIU|MTD-YKw0={3`tvE#}Bj&fj z3tBUdr}n_kJ0~3L$I!+tV-7rnT+jNy-D7Ogz?T?Q32sj2>Rl0MiEM;z(V{0u#T6^G zy<}U6=3`n}_jQP(7Iyz=dkSeTf0hh~@r=FcQ|dXb3_mqs=!zz}de``<1RtKT@nqe3 zKcnZIWRmQnf&z_@K$;C@`dS;_JXFSrDI){)PqdsxMUh6zvHt#0MZeonrkbs^e^fQZ zHDym<`}!XK64fQOzOvAy>S`$yx{y{;_+GZ@hV}e#(Ti{dFEVrzlThJ!2=S5r9fXJ9 z!m7p#UvgMDO^+2`6r7|Z0w|lHlK0W0dgKlHqjD3!$n>5XFUXR=d4=%?$GP$xIJZn&Q!XLB;9fr*KMmp{0g`4cS zl|`21@!sXTwk@fswr@W9cE7IvVLFo-S_KnYVuSzQ6!l-U8EXMWSB32-Ab6Lj9??%V zPGnW1(PyS2WFcfgJ4l}Zg8{JbbepB>;(PU z0~08XGmPs-$hJ0F^Tw(}8eUB#g+9DdmiXB-@RDkF4`h0f=bwJ-y&D1McSvMLOq}-B zgU$LT(0*k;F75o2|_ z<+sgL?@OVR_|f`i?WF@gnFXW05obRg$9g-x%8`cCIkX zlAn^{KAwUEUn>l)4F(F`*!E8Bd|c`N|E-2wkvUdvuar;O?=FzA@uFK=nzf58bt{Y$ zZ&;Ah><@IG?K1EEoURg<6k7bEZ|l?;XGbQ+xyu}ZnE!YrQOL;Vt!HguFh3?VE=PHn zL&Rw|>BHD1Y;0^CVz4!}j+rxVt-CNH(L?+qEfX{>_a5v86?XPI!AtUw=YsCaV5 zK1=cIi-;TrUNLIiEnt?X5n^d;&3dkns<6QaIMZF$w3_-#8;)#o&eB!TzU#5)0}@#X z80Nd*i+VFT?(gBEbJ&Le0&%l`3Bk)g(obAdi+pIi+`jfQJqd`PzOG6D?8B9B?Cu^X zp2DKjnIj$OHpb3s-^iu+gE;E_)w|`%Hh6yB@36iEx7QxGJ>FiJ(#2T6nIH2kvfUM? z_km4V1T! z&==r0?;R=eh91i{CedQFOcc5fhw_P!V|It0>{%MiATou(U&rKEe6HA zrWQ6!-~2k0AsTcdib^vh=mbnOLzYVF+|^gF30RwhR<0HqLg_6wxzD)x8i^1! zoO%et?m!HFud~j9G?+KPAfKmefF|E;QDX#KElSy05%2bC$y3D=j!`@mYxF5a0OBW8rM)nVL6H&U=f_UX&MmcHa zwROJ`T2npz>P|=b<@ir8K2^tvu6BQWEN5V>K9g8c;;m4+J@jhij596p4uRe}A0iVO zeM+e*3#_ajgO^}@E9VJ>m5S@thes5!Exe<5Y58?{|Qu153m-=C%UHWKqIfe^0D7NPZ zZ02HKRf~FYw&=$5nX8ZFosPe3^k_JpSWdgtO!;#?JW3ue>w5j4ZuFGmQ`OD>nComl zrI)?cINO4S9oW~JSFJo0j5Cl-&N$6+QMoMl1E_`VG(PY)KGF@(j^-*a#zLnelohLI=dc_oH)l$Vf|f@U zwSCB=qI#7sFjMh6beO4C=+&@p1&hDC&bye#z+9&v*k#uFt;=FFzf8TC4+SkH@jAW|jh1kG_Q zO(Rb9B$)eJ?rN@=tCZ-$tyfael-cxgom!mp@rq1vky@zCh_Xf~gB6<4xRZkv0T>1(@cnNQ!1^(~Y9=0EJc;<41zpG#B0v1gr$ zxa?=apIdcwvR}il6oD(Ak$&8uuqetp&yA;dplp$rk?*Voe{Pke8)&trUglP6D)N4X zOjYy7bmiDge=~C}nW5I)!N$9>&Hep86ajZreJzBFw5qU3NpYe}m%0E-1k^rUX499v zzCL5#?3VaDsFK02?b_$qv4O%>JVj9_DCmlKH)@RKrpQQYL5P$|vi^p|*)lvX?H+a&~N7OjggXI1y|`>&^!| znJ;q3O8J~7coLbe%v@2)P{=RNSD(&ixY$vs)D_b|*O#EnSP@e0vN}In;sAf6UZ!z6 z8U%o`Ip=-SVHInCe?~fTK*O%T&^%t1)oOAO>sWhh8*8E%NTXzDa-Y5V)C}qq{Q{1qMg05Ga<6o&IvFSj^6c!i+FPm*}sm zos|;ctx0=}cL~Z3e&2i^fk3ES>f%rAt83~YS>y-b9I;%@D0C|wm4F`dwH8Xg?J+kW zUq`GHXm}u-h|MgU$?e8-Nixu~c9tdlrS#hL*4a;V?5|ml z#kAF%XFu6=p@jG$I{&<^I`rd5X*VasZzzxP-N_vxom4UcSA4g9mK-z4c8?}9|4TvI zxc5K>u9PLX0Y6z_`*%Z1A)#!Eo{{hvPdfB8%D%l4HZrYKV$e~~-RK}xSlWV>re zpZf>!)>-rLQAkQYP`W@)8e#v{ZhwC=Y=7;9#G341C-mF=yoXz{tu)+=!&NR@TgPDH zKf>dGgv!6A?SF_m02BX|@%#fV9*+q=|9ttojN$(&_^C7wV{a-v`SO#fs`PnveCDR9 zPoM8(u|P24sl$f{(d=0K88_LJdS{Ivp7=QBP3n;en#XhWQJlK0llng!8y7$(3(67D z_TtT{NW~7;@nI}P)He4+>#ord)ERu9*jQ(ajEfVr?Ej+gwL1+$4zRi9`QZ)PkWS#L zj|B*{B5}Pe*Cq)FNd?4Tihl){vr5feeGC?mp7C*V8XCEChd3zZB&Vc=qSI=SYu1Cx z_U}K#$4eo*T0m3?b=x3pAUStVnT4Y8C)=;_aa&Mi0Z9pcLO`N?{V(trtV=&d5KyC7 z=cI_&1XTuA z(eXSHk%05k)mw$*(1jdYIX5&kXk@A0Vr30DeS%;dZTslVeY>k!0*41S^N!^pSvh^? z%yE5xS6BGyTht(%n(sr8fuaVwaox9|sIYr^;tVzY@hfue!*7>TZ}WnUw|QsU+35L; z55J`lji;CLP!h;wKqmpvLk$fL#W&gM69cCN$}J$q_xASe`GJyz_pZ2RHISbUVh9+) z-b5gmX;7bJiX!yOZ5|qeuLeO6gnU3iaC@Tju`ZUn;UM{UfC4X4bmx+ zQE%QzfUi1SG=>t8Z@^|1# zg0H$50t&yB0BwqyV+I78y`=I6gm!nULW??3+1T!VBnl=xFECDY;@pYj-}t^IQAmTx zZmyj^?vtxhrYcBqKxF_bpA=pK0-L{E=RnUaaT%Gc&jhU*VBUaYjx{o%mn9gcp&mRy zXeI1rfqWeF=bG@qzg8SIfi6QxP!JSe(D$SLdR-qB@`I?&cD|Dldsi*(H47@}U^VJk z{IPOkgQN$hEhqy(b<;)R$T<0DEqW4g*n+YSgm1>zQHHmlSUbGpg#S9$i;#VkjFv}& zsJatWMBp+nV-a!w_>GZ~jpZ8=%Y760U7s*c2>mI5JBQAkaGOCHEO$UekIKmb*-7Ux^sgm3^00bxuHSVMXra`@AFQc!oPO(gZ<01bV+Rm;cu=AA<+~{rd#l zO&po$w_B$bO{kB59x6@l=h!}xHzJN5Uo#^-U z_(L}(Dlz(pFx(gy|Ix-BXb-2BAg+kZHGFCV`h}-mToyukm765vvmB& zkDnzbhAUP=VfOVCzZDb|mtm6di2J+1J^b_4|JM%sZ?@rMaP9a5kLvgXza2jR?Kb?+ zMgG~F|JlnAxTK?uv`*YtqRUF-cmI;5Td@VwX@|>q-J=;mxw^5k@hnQQ{HERj z9^6I$Yf1zx3!)(6)L{gB`E*U0Fi_wD<~Yrs_vMQ#u4>!#8rbX9{ggc32;2)y#2p0_ zL1zv6sXL#9J+_{tE89JbU;yD}lbcrx>;%VaOY`a(f{$s>A5jnl2>Oa&prA0+S?WX6 z-71{ACSd!~PPzO0_vf&p3(pdK{A+UR#>QsifM+r zZFIym4owsi%EOE8>cW$JHL_*O%{jtONjLf*EYD2>rp@Qg$o<@jdD;G8`w&Z#UvUkmzm*1>5cGE zLMdMJJ^3bQ4(8w_iVL)%4$IB{1?s1B1xxq;)>Tn_z{BA*QqRk4;d&LX#-c%w*L@UB zm)q9sVmWq;#dX!c3sYHW*sIYcQIorg9p&fabe`BySW~~zv{tAYuAZwa4-9C)spHf1 z*}W*P#mU9+f~nphXfqR%k&))3N4mK@{B3xc-4I9bQFN%mc7=h7LDYSP#kK1keeF91 z(cz;*(vk)1GMVc<*0(oOQ)nt2$;BNPW?Ys#ixMIiH}^CHO?bDg8GJy2@L;E9$eMTf zy~U8@id!G%aBmzp7ybH$we{#|1K8)T+>yABnRMDfN=#EXZO?TIxh~&DsaM!;Jr7jA z0sxB+U8OY99p~B|xgma4hwP;6G|2+>pzAzl9XXMajg94nn=gMM)KY+3YK?F8!HJRy_647eY&*Wj9k>Z?@Yj${SUNV`DRskyAC7VNtPvl*&y;H7b ze@9)JeRs`|N=ET_!OKFLnK?e>`{G-LRwJT)+>b;{y*Fkh=+0l0o+Km)ApZS!>O_L} zH|NeyK9@kh6@RzDn=K@eUCRi;XfB5`#v>+Ereq+Y2xzu2ixg}xlX=^Aai{Z7{*amMA zV;y#l;!0FdqJL)Quc0LQ$b@*ltt;ZCf*MD=Q+AL#TOUc`qweze8Jn(0UCrLx+E>Hq zSC^Xq)Y6QS2&N?$SItq(Q*RkmF@6$rxa$cGxvtaw-oL?Dr2@G>H4tupIW9K-8tr58 zyWHHD#2<%!Fw$IphL&!>s?I1Zs~YX}L;Hr$V>xM>d(Twwx4q0oloQb#YLa3uSohZ# z)eA}Skniv%tS?0XE4Ki+Y-`IIF?g+n;auDR%9rUHbxU*W?bG0xNZ?S&`>WF;Uus&c>&kkvKB=|&-6Z_-$RjWtkv7|LPu?_;nLKdw+*+rl`hEU@iy}5gD0>&~a?=3>e>wS^o5jc>YbZ(a30iQQOJVSjRD2 z$El@rb9ZCseWt@c>AZo7g-vFmPPMDr=tcV4HC|b(9IL^dlG{s8hHY*2#CB{Is+mj5 z(`|#zYxvBou(=TZ=V|%H%c5t}KR*l+?ppc`THm@2jxhx$<>r+Qj zaZ@L1y0EY?0Ye&Bl6KW@i$$N@@4+uPt6qNprt5IxBg<)=PAs?0Ss9&>>@}_v|8a8v zyR7P;lbhnN1_p{MkgM4lcvP95YZ}-KI zr1mcs;_n2DMzNil75+c*3CnWw@`GhA`&B=P7Vq{hdwMSRWa|I$mR~7p%0XG}ZOtWz z#ws;dQXCQ!xCX^Q(Z;e zVU9ET?05nX)`#B0_M$D2wDb+6t=c?7CRS}1lbq&8`5uI~|15E6xn3lixVIWbLq)vH zwfF4D577}2B)tv39uXHOLrF-Wck}nA#Jgesw9MRy{$YzC@0ru*_omiY3z*w-b&48C zmpxpl2fPj&H^=MPoHPYB`1|Zs#MEOB@36PU-gRmBd()}h1tu+VabXwT?{$|roN;g{ z_)z7y)U&0JdipHuHqC(dR2C|GMm}*-6TOv3*zo+tbFrkm#nS6cW|?N|qRIH3UoYru z&(M+Cbmw%C#e0Jr*$8Iwe)x=>xqCT=Y9*I^;w$#etv3A)+TnOn_smnT9L{Xf3fuQf zy_K{<&v1BFmG5pVvT|Iyc*)%bXY%~Hatms&zDFB`^}ghkoQGGaOEVtv0_ZwknZDXK zVc%QqI`G~4gh)fkQS+A_NJ{%^a?jEy)z>%gx@Ry+rxq&8Ul%J1$R64#QxP$Dr4{wM z&CB7mw$rA8(!X#h;J)NHIaq9++?FLbgefUe*)LvZ@wqB${1`5OCS<9txv|u7db?s9 zx3_=#ythqlF0_Ql zPCT50gZ;eLb52{|ubnB97#Vb`*x1xAv6I_L)V5LkJU2Ja;xji;)Yh&0KuXeBU02?@zl#kA}s~LQ`7W&5H`I zv{8r?(HAZEKQc-$_nIzeZ<fvojJTLXa6ZO%ds^KibMe4mkuiwb?usWVD`SZxz4OoZ)|AHu3wnt z-gEut+hFsN;n|hd4~*Ylx!}eQpHIA(uRc+a2oK{`S66pSo<6{tXmDt<`Iz>mxlO%E z(XuKh{{#`0IFW{l20e5Z@9Y^+OO?KD2{X2`vPz33GD;>ry(&@gmUOs<6$k{nisoH# zBTAZCot<66A`9*Fe;@(!a1#al+$Bq3Zc++wU(w29_azrhl+P?w6oPogT*|2{N^Tu% zZES7q`uABdOl5!_6`Xd%?PauPu*4%3UNo=7^1DXYRkNW zv#O$9X!rAy&b09kiNp#w5eCsTR#NcGu7If}p4W^M(0PMRjR)(!ocnr2N>%1T3u+ec zF5Fn^4bpp4u~)UoB^_qqVZz+EXpnN5P4#Z?mGuqjvi#}I0e9bdI$T}GImsw_W}n;m z)Ktbv!WVwC1&xo(nI9%&4_&YW#x`hdhc8$a=xg{{2h#QGFq2B>dGivl5m*tAMuRBw6WCtuY|m}1|4I(= zJDBRLx>OY&@&Mt-PLx1}XCM7i>bC#3Ij1=zs0!X`7lgEs3a03!+%8bogdjRy&$gWiV?4<53h9 z#VV%^Rb3t7b0%lo*2bQOF;wMHiaT!Nyf$W`go$opp)ZIQHWMb;Ova1y@``9T2Y#G5 zB4ks|T4C7xxnyHp6=seQa)}W!bMCory?MPS``5fEe*IMO7GHf)dQ*f~#RD1?Url{) z9On@%wz0eTib)>&(fU&8ukNU%mc+!OtC#{Q?Zw<4z%GbX|E(hh$MLUf3)^` zb$_`da@yG|`#{@WGa1ANh0okt2L<y&o4c{-8(y_cyr8MkHKbX z&emKdvKzCAvK4*IpfhTWM)(uHW##snqErV)N=C6DYfHbtqb#ur7tWu?fF-$*6 z;g_)S!kE8NHd7+MRroNB;b(6>HoeN&2HC2e!ekl6|=1x+5 zU3U(4wUO*J%oGCez~j4l(=XINB-GzUN-q9+xyRgtcNt3cIZ7=!{|CUzSBur#3%}NU zn^aV~0@ebXn}4Js_5AmhwogWTipVS4+G>@|&@ICtbc5S18jAGIV_X!DKVLBD*p zz2gn`;c#mOco!V&rJ4{J`x*s5FVWKdXG&h7si%WECzQ&b3LvnC$@C)KTMM~IBM_b* zJzM&aDn{ou9|alK0MY}Kz^H}dW1Oy&<(HS~1U>ci2;iO*!DGjvSZGw7^Tdunu;v-w zdq!<1M9woF#~uuO(qI6vPe)?an>FD7f|(Cdp&6fqRUfgMX!gG%6NnJnq8X;S;bS_G zYcxiWIC75u;h`k8O(!QOeYT2vVW{j)S()aKQHd?{eY86JZ7!pv>|$;H?;&);QSb{V z7lKL>SX+;bdm*kV_58KAv)#b)wEAm(>s!73KBl&qFOI(gTo(ARh*zp$>_%WO?u6MH zU+isTgWR$jQX;zJ+5F+Fo9wplQXc1vkvs$vQV#DDH(lSg%hWwaB#}B5UW_cRc2V*g zbv;&{rMIqJk&)Pih~ujBHHb*oGdM`;#M0VYkIc6w0xq*ok4z&kHT2o+@#)6vL6EfJ z&;33UY$noM}dp(jHHxZna}6ucy6KYx&p8Dac)F-civQF?lYl`f`etlf)h%gXg& zrNft-(w$@>T{-iLH`U{Fhg=gAlTegx{W#@xq;6KX{WgWTusbyk6{Q7BrTbw3r}p;F z&s1dI9WG@(&pReEw&QV<4zI1>j**L-7R{%M?vAhfbMxhng2ki;ij1$G1&>r%-t~Me=lD&9VZ_+<}!$gvS5MFK{l~_I)bnjjjfS4h1&~uz|C@3-LU!w=@c=Au>Qb7T&ml>tAluYl1u%h1^`!>ahVoqaTmv_A%U$+I zQj*?$FJ41BKSLPrEqbs%F%XE7iPp;(H8oh#pls69Lt|qmpAQW5P4=UMdcq2KEdPdoN&mPjvMB>V!mS74 zA3jTeDJVi~r4Qz#A*~%eUD#X{tCwu$3H8;Pw|RMm`R?4gAZ|GC2ocJgK_#MJADt~n z3)M!M@2bUI=Zj*Hj+&0f<~tg!>;}$y3EEj6P278+&tdZvMOVh?!J0M%*1zj3Tw;ME^9fCqUdS|Off$$SuZ;GuN+8XR15OyaQ@gDF5 z45L9Jm~4gaS&Hg{W4TT5X)PAnX^gCBbf5da>ulEYv|EvLi$T@fHhs~tfgbHMsV*=>r>ZcnMwzmFrG zZqi_Rq4o$J4Q0~}L3@S!FJHo@BjSFs%GP;&Ow?>tH$tZAl8M(ynM(yKXt_p;tU4C+ zKKBFxgG|C4S`DYthKp&iOF|KMr!qPugI9$H$aFrQVo zu`(i05!q$NT?mPEy z*hpuL`>O?Z=E)byRU;pR_4&o5!|X-oM``x+od&FgiZjPbkHmC*y{-NLdXt}m60I;P zi1o4Q&RtnCn!TU(t;O5pdXSt|7EaaXU4k7Nm7l-Rf!WuVx0yygM0TOHtE(N*1P%7V z_nJ1{50g+HtQy%mB?h|gX9yH|{txgss|xDBF#Y+~fvBp)yufVL>;(LlhBrpgWl%Vo z)Ji5g@A`mux2$Y1tw8x*+ejF(27mMe-7|}h<&~Q`d&Zk_AA9T+Che~*wgR`f{-2pRb5N&0?=YRQi(3=gP;`GF(zo z0WRk)M~iH%i76ajk8&@*poqQeY@WDRq+Mjg*tFI`*Z_4utWn!Ji?@8iab8`Ltf3V0C6|licXoEVD9*EGZE0*gv$S9+d}>@#JuyeR*Su(E#@Kr! zvn&<}qmtT{o$s;4#2Mb3Era*z9|F@-Rk7_$K8lJ*J*60~^4`v$Zt7h7y+e&N4vUO1 zwM`=R2*G$6f zmGXy!P_xE)wu++Mt|g;L2vel0d6cKI&IC{Wf;a;sQ_IettVBwu@@|w0w1kLFiprI4 zSN*K|YUU5iG%>XrP7}X(jgrv)^wfIAt#iK57ZPqsl#>+|m8fa4Qlj-DN~VD5MtTWe zKKxryz&4%yQ-(>)Zqv*)i~f?yhW?n+I}-KRuXvEo4S3k1ocwq4tm7ntf9AQ|g2r_Kxma!?vv|ea-|ut~Qb& z$orQWG^5N;5lA9Fhn@5M62@?AX+G%2+IC}pLR3`lo&)PrI-_LlF2?C1i$Gh2oFg*bkl{Ck!!zeWq&uqO|0^g{}SeR zl6sK2zKtEm@fYI6exD8%CD^1(Jk0nOaLpHT+xJTl*~!vdNU8F(9;-a2f98vH!Y+ny zVf!gBUocb4aBM2(0IK;JOCN(Ne7SvlEhRlYUvlUQqykdM#Lwk?W`?CfFgr(;SU4?= z{;ZwyZrx&HX2gwDbFELy&e&1wfdkubP)x)qtA~ZCNaiKr71Y z_P*k5VzX`KuR60$%Qu6l`2=|S7!%Eb#~vF8$E8abE4CMnpFf{aud&)J?tvUs{GBXD z_uPTA9q+ce_&c|z8IeGbsDff6;^;FQD|8|Tg$8-fRf7g8{J!LQck=Yxb_AuvEmI1w zidiLO$1e_NI#_hui_zK(!+~^AxVos3<3W8mRkKQ0Y(2)BtTu!hvqlzM4CSH7pTmvM za>Tn#HQX#CEu$-5;#A3S3}c!H^lNgAP6MNaVAepo5RP6Jr|w7Gp56@{edE!EJLWx) z<(KY5)kD2S3Vo!yg4Ba9!0W3JUD)Pv#^(}tVfLQGP_j>I7@2ZEr)?OncAFidu>g{z z$a=Rtrs2+8gvg>hc4&2SeQH+x9ibStqn(59>Sn;pq@%HAJu!F>7SZBHn$>&zyz~!q z*Alp%jRhmtqgr+GHRWj!Ti^r+vqx`1Gi0%L0m3P9&k1Hp?Ai^Z)`+rK7FXId?=l}e z642cWD>#eMHJ|P4Ej4{%($${*3sU25(ygM!9_(VD&177Vi}eUtX;i*R)gtOBQixU} zl;YAaJpkn3iVQI@gu_Kn<|aBha4aK`&_ZZF*=wLuZk=~XW1FVajO6ZIlN{Hn*Sqh%r|j(!_px}~muy*KWes#$eo zr}@^bHx9E%ys7gROWb-l(}3Io+>j;rVltzi@U};`i?;UA(>@DT+|wU+5@i~)TeKAEbn96~ICR6(#^u=R<*#2_XEAP!$vkQ~#Eq7-`CJurp9>&q z0{Z9;CE9Z6;|OeD_C3Z%Mv>c^USiuG`|^PJz!~Ibi+{zZd(8Bdg9}JmzQf3A8*LVj z1l>el|LZkdyE%<)ee}^5R`6a6=Lg|#>V$)(|1eHS!rw`P&hlt^L-VlZv)NZwLL2^- z9^SLb`loon>QESvnyBdl=2m%XkxU@GsuK|?D=R~KDvP-eOhb~DhmB6vuZ02-Ul_0_F20=8i#MUgF5U3t1ecAxqAJo>T1(S>Li2 zRpq^%rZ(fNTBBco_S|CUVK=c-NEVJXx(5!hss`pPN-R&D1QS;kLm7VBcA$T~{OLwf zQUqqjlNBeI(i7d4U&ZQ zmVzCz>V+~yO>j<54n*DxhmPj1II{EpO5ji)13P})UqLqEr1e296z3rLWst_Z^ggr2 zeRPve65g9UxzzK(!dN~5KoZ#G3^bt7jSMTsqMPwv%`Dq{+nhr!>g~NY<_?96NsKd? zJchHHXiD*arKv{w&7 z(=d#27^`p1n0-n6s({eXi>JG^_jcQrLea-Wp-EAEe?R*e?vU=MMCKQKgt0ox8XoBq z;ox0QrQ^k{eYZ zGpk;&iKuQNtZRN@@k@n28F1fH+@uVN}2CV`9I5o*} z?Lk`gE4*Y0KjcU4nk+$!`T2@3Zz1nv`5vkxXA{=c2JfP}H0St!W|_}ucD(D{>2n4+ z(?H=5*K66fq#1PFst&CJzKIIv+P96z9A)7f=~^b^Hfla2yyw@hyzP?HsEU){pc&IF z8p_c8ILr|-H8D14{h0rziTm?Z?%!*~QKqzW%hNW1QcM2;rQFtR?%ur%{95&^3Mm~5 zdW2stOgnkgI$x)V^Yq@~W@Q~0n;|t)GeQkSox3;(1Q^h9s065x?zV>BxM_Ivw3mFr z!ur(3>Q-X%o?c9QS5>-=K`n{Ra((&@3RM!^iE17_pL3LjwYAR_)u`s?T=&Dvjo;3#_f54YsK!LQY@z%B>M}DISjF#*pnatK zjJ7=Gb*#81Mb66ig1)kzOvd2=Yr~?zw&^Ad@mI!^CYG(CfrDBidB z4wL1z*&kZ13w<{dqGApzZH}1qfVmr&ReaQbc2$wePr^$%gz(3frK?jJq3YXZ**=JP zhVFMtM2-~FZdTZC!EskE>GguLc<_Gq_XteBhnFiZCTvtsDSd|b`({RrKE%B2PS563 z6-x<3Mj{9MU2{TH>Z2m!2>kyVFBAFovG(bf$Vg+&qEn~k=v|rbYRhHk6)BUZ6KtEl zJiCtk3Y6op;`PgQ$72s`di62$AbV6wyQxZoiD|VD|9C94?6@{jmCdT0nq{-v ziQ}_iNh2)<*rx{Ihgl zt}2whel?dD6c&Jm#>C1wTm3nCajJK5a$>dD)a2yFXh}J`$BuoOmx`62#tNe zLAx*ZP3&$uIN)crJVGn)>B~%=9}69M?eCw9vR6n{J_E(*dgEm(du~d?M916NcVs(J z`Gg$}u-xrb`^t=_hVO_B?-739^CvBSO}xV`R#8o4{1STa=cfW>;XW=d-H!%IjVFvp zNVkZ{mE#~$x>pvxyjv4^kkDP`ApG6>(+X{yL33_|L^Dzs~14B}D-QiMLVoghk*{0@*|;^=P%*VXHe zDJUiVBW{|F9e%~|J)&IAKeKv%Ds>j7liM?XX1~?TVjE8BpYY6{EmJvrzm76D zW+gDDteQ|aKas@-Il>T@>zhY@9ee{$3<-qmbeR!_s4!{n0@7qMo2OSM>Q+R4 zCrEPwxh4HujtCe$v%EWu6y-d3ty5gnWJvyi&Hx||bL;!nxk>Hs!sn@4H)&SJvPH!FJtpbPKEUdqZ@X*pMwVVVznUXF9stn9!1%zA@39IjZsb8ngZB6D zCwK_-+h`;gUb!O5A7JCi`%PoGx~@IF7rczYl>Yx5-JB9{8lNxU%OFmy<4qX8Cjb6^ zeJ3a&nJgw^@stUFN*x2c9qFH*$}<2`Z^s>g=neHW^)&aiw0r_FrlK7TwA!xnLiekC zKXT{uhy9FsuhZ1rGV-=Qhb3bYx}P&`-7Xf>L0nvns5$0iqWb`Pl|g>^>$u zK@ImH;ca^wUrPJ*a?S8?n9zj+PH%Fdl9eK!mzn*NK|H>h zJ9*S;qppBK%HrsF6C5*v1Zk~=1X}p2$tv+@~OOLGO*Mya#H8s#YuRCqNO z*5$hZ{SXTfZlbSZ-8J_bfDH2wug+*^K`U#`3gwcGGMRAzfE_ zMD~Dy-kU9MS1wU(d1tgo+L7F4+v@%;TkaYBJA{{i6{!59a`L}E%|Cwm-ymGSmjv(m zUwzMiqbBozQjMeJYfV-TWDtMFK<7Hg6pSub;ZJT?0K zcnVtJS`BkCuAdF%vF^hAHJ?AbZQDj9b>DtUjAO@zPfQ+%F)w+`zeixK_az# z60bAkrwhckB;uN%`rWIz=LnNn&^~$bX%Uu+9l05gi^!_8x_iskzwYgQ^B5y&jEGlf+gSxPb zdg{h4DRO^x@>p*cf4v?xo!F;q{VnDBD$kyA?lpAsfU5^D=FT3b5k`AO=$ZG^I>p-{ zq{hms29Qk(blY5u2$fMrt}QnF6oSQ%80RcTmJ9}-CGVMced5+vY(1;3kVBV(kHu+; zjD=TT9B-s3{|v+9M&4?qWOGk}l#Wd?pjW7uK*FTVBz5~0nq}-xTYd}x?|?H0rD1wy z&wg{=D?@&nH^y7idyi^d zA3gCGQGxg7|5d+Bse1_m@N((nI<}zz0N18}Nw#sACw{-3vH;?FnrWI^yIB#tURCuPsI)N0*Qs{NCy{ z6VP39f3Za-KAKi^=gu@rLd#qVpG)UOoxQ8pYe%Rkcy%jPKHdfo&w=b`Yt`3HiI<zt2Z?vJXDbyivg8LljQGUb9VfN{<2xrU1i65;sq+iizyG3a49A-bZ zSe;l|GH99C&p%{p%HBQJl6y1Ts&*r6CrhoWx`O&m`I$~qbp=@!P0fdUVRN@c?6HS^ zHw;(QU~PNPoTzNG{&cTSy!T6qIJI^Yr@0fCB2T^Mvb-&@XwBx*UGjF4%DOW4{8grk z0?8qd`A^E1(~fuCmyMFWz-6^$-g?^vV>RfMH+wA;QgT|VI!B)j3X_O^NE*6A(wTq1 zFSmijd%%8voZI4i{;pp>91(j@pFZPRMvM5YXr}()$(Q=G!R(7u-Ptxd94u_*j5u3c zwnuN-qJ?ODzxC;2?SVgCUp#Pn()XjZ^Zp&Zh4G2TZROjw_C?!OOVkX>Xk@Hbo>~2K z!6j{@*{o=D&aPSd&+s*q8pGs5B}=B-l6y0RO}cd#)r<+zrCk&^2EJY1WME?K^DIo} z;=N3Nng63QhnAq7-&>}8`Ra^|=2Kr&>y=M^KJ{dM-%iavIhol zeWBf2FSO1!7|HgTt=!fjR<5?nZF%65Nu|wOI?D5!{8hj!o?F*8-OA1|xQc3erI?vH zSZ&IoBT!}7d`%~Kd2}G2xJMe?0rrz+K;ZkRRF%kpR znq@4VXO8~pN!F5~xZ%rgv?(8~_Ep+sbk8ZCSLV&-e@>7xS8|Y(T(j2Yq5ITX`?;+* zfV?Tg{9|`$@t43L8bSW2q9-jSXWJ&#bbRrc@8VsFa(jlF!|D9ASoTcT&80mvh%dQ$ z&OsY8_PnJesU)kUBx_BlS82Z4Eg8<5JLd%j&q?gFDXbI?6k37jF+qrn;fFfTFZd@A?pR*BoKdben?^X7{KgBGd=;-j4d!(BF} zn-O<6m#x=4uq8>sRCEjrKewfaYY144M#jen281&DRwRGiS?Vvhq&~b-GgN8|uNjmCXIsDZF znJXe!9sk(UGIrVjTMTW=_O0(fevxTBr=qTq5*HU2pC0d*Cd=GgYG-6<%0f;;LPuRO zI6T~fy%FggA@dK6BVip#XEl_J>BiqLGNw&RITUD(%pwHqkzP> zki(ET20a`(O!koZ1SXk0Fzi1rhu`BR0-D?J7jeUWzleYQ`-SuW*Nb>(iLVDDe>LH6 z*^u;qv7K7$FOO*qEu)0-E_~Oss_2s zNg4sy87WA%W2(@sIPu+nKa}~yk%4$QP%E5y9}c|D`H@2>_~f|IVcC35jW}a`S>0i! z;Pd@OzqURU@x43wb*#N3_oXriM=cZaVTsQ^y(25h2zswx&dzJo;-CD->(ZWoyqxA- zrhka;&Z;}jWY5=J{jUT`$r_i64UYyALBU`3MlL-0T=BkZ6!$O~DPi$J@57ys>((r< zNJ<)2PgMQX=xKh{ysWtx?w^3%Rnzp1tj|HVIhe{Fp!^6{l2pNX3#cJp0Y zZQ^lFl6q(MQgIqMN$dwK|_M z-XHiu@~Py$Rhr{`=06_#?$i`=Fdr{xHzsc5UyE1hG_c@GN5Qlw=xoM#q>_o6{lat# zSBS`o5za_nx>zHhG&0(Y@+%8%&($spFJ_& zIxZ35Fl*f&9&W#4fAVEza$tMU$Pt1^b_m#0sUj!zJKk!WN*~W7dN#*HNBnkdnKsWg z>@)maKDhPayM{{H`8KHn!Y|<`Iwmh=nHgL?L{GY@NBK#ypjNOs+|+-k4>Kq3FN_V& zGcPo{-8ifmh}m|Xm1-}qG5AXCqU-AFV*7cD`bjF$$3*NP`aq#GFY_upK6O-fc!))< z{JCOvAx-^^jE7{T=fS~);y%74bTS7H&`|NQ)PDM0JGc?1Lh!iG7{dK?_0@OcLc(d@ zH@CE-T)f8U+t?xh-iuu$q_DilD<)##_VKqomY?(RNe{X#9=Wn$mp=vP-K(juiI@=h zT=}W8^kE5(dF8=3LvNle?7$8)emb?5IZGBNe$l~J^TK`exd)Adg9l*PHg5UG1jgO?>WekXCqcl8vSa{0xX>T@g;Kw2wr--+2HSLg1amZ( zF2=Vc$uZM?dMBb)t03_!)-!R}x`^4CQ?ATnQ4trm6SK4i^4}9T@zZbrPW<1$ZN-*{ zzejc;7W-?2(tl-g{`n_Fm;3wmw^jQ4ZT_}Of4|LtvP$3R_ur#_aub{4oN&N#?ynH-@okW@6Y?^;{7{&@Xy8jcb@h?@4^3_ zPx^Z+|NheddR_kC{G@+-uLA%Q7y5w-=;^9+J`CxqRgtu?#r(BXpz=b_j})D#&%@P+<(!}B$RGXoVq$yK**-)_p*liAp4O1!~DMHM2!3Gs$E zDJfridrLtw3MSNEGhF1g*}p zs;Vjo*iv|XhFs>yGypZSMfbL_NJj{zzNzi#=x8v;2qO$>wwhGmk*L5AalXxh?wPXp zdQfJww6qj1J`PdG#o2n{!<3Y3%DGQT51)Y+;aW3CJEW$WDGkHR5)wv0_O7X`+juwl zv$rIKJPV>-N#`%x&*@`e7I&66inD0rcYOijVkHFy{R^!Ql#wYZ#*p;PIXXTzc7Ond zw>;CHB;8jZJ`m=GPolR~VzuVkQBIaHMF{BDp0)UK&ACwh%;sc%-*qV|{~=?2{R>b+ z%gQ<*oQhnaODhM=?3v*&-|I2)=-WFuEZJla@~4*-i;If`*i@r~&m8g^eImTMmfd#9 z8A6j7fHv6_R|8?Np6>3Z=4Oa(I$@$zXSN>gMce5x-PRI^MMzXNrbXcm@W(X#R{D@x z{Ns;54xdri@5tzP5qD52u!w_pY2>BHhIV{0(b0!EG`rKagpYMOUBur(No#XsbxPP# z38w?+4poqT$b6%v`+CMIDK z5iSsH>~q<4f@~X63DSBp7;o+EEq(18Nyu3yCOs@XhM>*8`h%5ebq%_n&?;=c*#j*@ zO!K;@K*W80nAb?{MKRQ@Pp1phsXu-C6dfH+#&+4%^ykMXWP=ubl5)(H5OE?qezCHu zDlt!>rLyuGG64<_pT10tD~!kFLRn^^jN`HLqxgVbbP#hwa4gX`G&uPA^JhW38BwWr zC5(>8y9s9mU<)uZPC;J&gO(MB)G2D@Vv-|n6ND~NLaQ}~mL0^-RCp;B<>aE`<9ThT zZ^eBf&d28DJbijJtZfiGhhu&$AhqduBjmd9yl>yW#bJs|S4vU2MB?e?bwlGPbjoh) z=tKxQC@H?ju&@s6#JsCH*j*@2Cykyubqb2IhCHrG=tS`P{2itBDA^8N!o7=LNxLK8 zq^l?^x3{$Tm1#kkkb=;{=C|N+Q%%k2ZCQilK@5JAUr}Q86=yhLW@Z+5ym2oT4>=*2 z*DS42E70G6ezf@s`T4uml&zlyT{c4dXp^66Ud3=d1B?;#^b|KYKj)2(&Mmn+x60XW zisWd2bcc@JL?4JK(3v$dFxXGX$<1Yw3ik6yItrycvf6Ls3$CoLLR_1I06{geY?H2>s;;hJ4H0u28>p`)Cfz!C@F33c1!!l=+vAw* zqGPjy_9zS8Z;@+dvN=C{sFt#w;^E1|XhCC!jMCB#Ovm$=cJZMRXoEO4kFG5`AUGhM zli{qdplf6l5*}V>nu%$ad{!f}c6Q63JSp4=bW*Sp7lor?XJ-}`bo-!Z$fi-K!04Mf z{fzuPbh>driZDU$A^?Z}4{lugeQ(X_H^&q)o{-O*m6`c9pCw}%ZwdsOp{1OZbe@d* zg2?J8{aom{8_Dyuig2;Bn?PZQtxT4gn%|1qOBK+b#sjbz>xb?pBC4C^f+7((w z=-ifl2^TEFiGc}w4tZTn+=BF%5>dA!H zL`aA|G@Gcj+S}Vh^Uemg8ebpNdg!k_>nL?veL;7*g8}0Lk6yIRkY%1*Tr6{3CTiu` zLYoak==3dSsp688)f5!CAmWQRc;e=U{#u08iowzsEg1E#Gu1qZlj^$;e3}( zXMS;%WU&b!KYUP1Q@6uU4GppwRCkb7DT6MI>z;(TI6jW38T{en$IazoT8x{7UHWtT z_J#&GYqk3m9p{*t^)Z*v^#$(1=6t&r9`-GETvYUvmdm<7Dr2c?y!P`^NzWZ1&qq7x()`Nl7`k*yln)h?O^hE#7zh;su@ZXOJTNTwV^nd44XgmX99?YD0Jp^G3aC z1W4%S0)}=`Fy7nzdNf(L?4G%~9J@&F2*rct$I6Kiz=WJGrv0^7I@6Jp{7H7)5nnPV zhs(LJtgP%WrPF0kNONNJ9n^i-YPLJVw!!vW6s$$KY}m!$hL-nt6qj)EVN#EA>OQ;1 z5UqTO7>ZuD?Drbm|NQCGlde`{EuKzl^72gya`c2s=p=Jb{Hm#`iHYxVS)V^#^Wx=8 zx&xlaxb$T;HR}$@gz<~5dT?naqNj_3kZ0CcC*NCaH@miM$-Ql%rTuaZ(|FB4xd3){ z1&9NpqUhFby5E|+zJNg1?5x#z+jDY@^_BZ8>0Vx5rKQg3R;>{k$ix`ay$+&~)xJcc znssMajfl=!2*dL{TSgR>^TfBz1B%KS;*`6^(1`^&YcfSgTV7U{yvFkTr(FaRha(3k za|g(3xzC-$2-6>j=eu%^AX8pwIV>I5Di&eGa>#4hNvkzLD)A~8BV&1MtN#@vKlL;5 zfc}&Z}jjWAyn22Z+_8z6%vvh6T@l#U9{_YmA&YwQwZ$xjT;mA z*5m};y3l25!Du|rz#@C|`Uu>_g<_bI$g7lwML&N0pz+6a+NXv?FyZ?Nr5h_o0nzdC zS3f?p8Iz1!529ea{%!GO^&MiE_RB#DC)>=_G;L$F)DhnSJF>bmo<90kwi=;rTbq)W z*5>-yRop|^Im8?+{!JERV`KZMc%DV*VQQ!=`LUyjiiMolpyl{jxZD-o) zW$zQ=FZU-uZ`^T~pE)@0j-Fn28XXNy7~Is%c+i#CFj{v#aU|C2)OdM;#VPiLxRPJK z{1NS~GdmOQZEdMxdoYjDkS9&PFVOw24m5k`M;c=go@G(8v!~+j!O@jEs*YMjz$8ug zUzU-P;Td~Pe)8ot47Cjk2slJbD??IXKMx1@?!g~yk4sC1%FY=*%Db}hM$T}H|85cz zW_X*k+FPlbg`f?ZlEP+BCsOPD>o~M?si~En#KII*-dUDzN*z+#CwB=x|4kXnf6P&5%NfhrUezeHAtA9ePL6XtJl2c!Vmrl4S>fv-MZCa4bIul%DaE`F{mS2^+r0ZD@{WHrW(h04jBPdms^!M_P#n@TT{;DTU7^@SL7FPTmAt7 z)q@sY5`z|Yam%BQP(k+VA}irsfPKKY%$Ud5XsD@|j_SLV4uuOjNjxq|IwlflJ<)-F zkIz00Xz9s;rgE5o4U0yLY!^rGW04ao2mvy*KO!!~u^$~9!#01U5wNzkwN)>&mRkSv z{Q2|Iuz)1LU@mU$53X1zH+T0Y@G zot+it6Fa0`$q}(3#ezR}zINkpIX>C=%TN3KJzIwCDOnd;D?g}Koi&S%v}ofp&G_Z%fm z&BVpLgvs51|;V-bFSIY#Ygj-6>s!EzuQT7oABu$l7(|L0+n?P+Og z+;9Dm_b!Y!4!q^{6(Mqr?L_{IqRqq3DT*1d;mjvT=Ncs(Pd znk(@)U`gx{FTz6XCqn!!f4+r<|C8nzbm%|Gz|9VA7EI6`NW7wCMg8U&j0>G>f+rV? zqLR`O0+$yr?tTB{>9gOh6o&|R&sa7Nr!hD8{>_`gP0y{ZE}Wt9k=Sh7Sw1~XapcG~ zioSH`7S6M0GqSU5Dl2W_p;DI@CsQYOd49S1#PFlZEW6$d^<8(7ne=4;yrSw`Q6cH z^z2F$QO?|MRu_@e@-NHhMCE5>5a{uSK6?|=HHjjw@z!MMN6Z5^fo8cPzc02Fqs`US z)M~di0*av^)FJZH62s??2o31b5G*+f?qb>>x`mY?pWtJp~@-bbxb~h%I zqHMqkH*9X-^*r^sXzT@#S?@)D{+pxj!$&dBI!qvNU+vx0K&Oz95C>Rx!*N%3H=Zqo zN}R-HyL~kLpN>6vg%B$+AOL}-QZ5tX-FpaLfkw>9eLQyP0XfvfEfILdJ>2DpC*a}b z9kw|L!T4g_$W8L};3mKstgOknBPI6p67%Q8zQ8PfzWoc5+shyI6M-EeU%5w}kMkk% z#4!0O3^7Kzx2MrKmF66{n1yP7vP&u{J9MbNsWXh=Qng-svF9Z}T%HClYYXenNLo51Q^>HaFJa zy%XWrT|y|}e`o>$Ef(i?rmgecg_Z1+0E z4secb7JwI#EBEXfvLyrvwEOp8qUFJg9@!9(+rIT-Nl8gWL?7JyA@-XLl)E)FG)PHF zxf5v@Rt}+JH&kFgaE0Iz5kV^%rF{kaGg=lD6x7z%hMXNo*4xt)Cz?^i6gGU+ktNl7 z#dHskFAN#U_N{0?0EY{{D+OA7LicQ2lN9^=`w=1Hmll?msICz=Atw(ZjcV=i`R;-PI zH+OvjVf5`gc0fH0)#gIdFA>7R2wfN%hXS>n_wROtf`NbONsoodthNN#QnEzsy5Rz8 z+}4J|lf{AS3iB+K2;p$QG1$GSKZ_We=Kqk;>WfZK-_&T;U%iuVrrlf@Asj(|8^UKw zO66wC6Z7oGWsxy~0{6#qFsGfL(GKnmMHm#Sa1ZE5yZRg@nZQ z#nO^3H&Zut1#(nR>$h^S%xi&~ECo)hdBI*B!}Sp^@gfR|$zZWGHnSVlbQ=;-LNw))i_(bN@iy8sQcg-&Iv0QDS!qVAzP zN>m;e)K?`5t4H{}C8eboe*NlSype0#gP^ThQBgPUp?>b&8@olZwIif*%0x!B(_)x>k^F8^K5qv+G6Db~ubmg?=jJe09~z=P zNxR=1^FVre3_>kOjwE<;>eU8|ZA`7YqJ;V_n;c~wQ|*LH=Yvv;i$jG3xK5t@(A;bZ z=m7qY?XsAdn4w`(US1wR8iA7QZm1)J(h+?UG4n?91)~tat~kk0KYvHctH2$8R#31c zA)&IdQEs07&6I|4D+@ETE#i9>wmf{zvL}mBw1a30=FMe10yK`qTR}kq_Nln<@~gfW zW5DZ98*2r*x!ex7&R3Wt6o<-2&Mm}cy0Z4}CV(W+4u+v~aWaE(jrWnIK7Rbz-E0Y= zbah=FK4Fk7o&EG_?WxChQ~5212~At|vwVeIHi~m{<|zE8HLi{zu_<$2M}Ls|$(Jn? zI+&faB~t0qiQU{WIXPAc77#e>i-~jISRMw@VT{}tPAlOg{1pBURHKBWfM9S0%is#d z#jAcJX#GeGFwmaN(sEWV=1P?F?>~NU$%nb+HH0l(Rwwh7)6}&Qc%C8VZ+)eLEJP|1 zv9$D|;uTUVKR;13VI#0bYkLQO^Q!)%Y}C6qT>P(J{m1YAe_Y`CM|ti4S<&hQxm#CK zLIN`~F8D_%fI8KoIv{|b`S{pXG9tS=kzclqy6o7o!znFS64z+&=ilp{peUNKwc!&` zCgd)n!jQ;fU}AFlwg;F{zHz4ovSB|z$^aE0|LLVGhCs&Pnv}yBPMsP=^y2yge#mfG z3qZMu$9{E4zWDBhn!PEast2%IK+j`1|FwG6&%G zMM1%`0};}Ugg=f~TP17ZlXF%8ncO3z1kv%2UeSpMjnI zuqe3BI1rCza;m=l`<>TVza5uLxB`I_B!nb%u*})J>&-HXf0xY%tYs<5j-S=eX=C-!Ba`W<{yoXHZiTW934JB>uexR59 z_s8yNYe&Vz(7(L)=RRs%1aSd$7cO+v)EFVcp6f$4*64=B*pK{`pI@xP9${hOfSGUa zx5a%1%9mxfZR^%0#eBr0JSJVQgM*udet1$a384m(`wroZR>rMMH395<_wGeyKP5Hw zYpzi~pt;XHJdbOoDN@yGtAb^s1Dl}O^B!diJ3Jki!S6@j+d#itu@LwYF3~PJgpbFBogL$7+@}~2d^;&|PAq&i zD?8}*dCn618n*)(nU{}GJ@PU~Cntb;UgHSlQcCv#|6gC7DjOZf^#Z(3%oB3R7JxoL zQbn7uuh*JWQh75#IOGVS0E0B=CH6ZgFF7HkC=mz zKQ5GUHAmc+(P|&yL=4E6s>3E{GTu~DdecIm)Dl=(Xt;|G-%GBUKKSKJoVCjoL`;I` z3G6_#zS0Tu*x1;HPqZ#;FKhd8CD|Ah%*7>6dVq@8G^0xO{RQuus;YC`+_~A= z<2d<_ju*R#Nz`vRF%be*ZoQA*;?M{P6deoF!^f>dt+%T194m&a)(R!}cIz7(7vHHm zurP&>AfhqDSjFU^NgzI|fhWo&@#%S~H*=%g?{<{DNf~GX*ed4a`eFy^A%sGDs3u{H z0FB%G*e~H&bPiK6Nher885C4<3vf6o+!AzW-vnVTa5!)`-f*P21Ib9RHz|UV; zRD^TqOKyRT3;B2B98vv;3_d<)O4bRoIZ8^0NC!5N#PCoo+-ygr24n%1Lu5`UDgsp? zRN@w*CXJA+vA|LffLc=duHRM}F6ibZ7Jup2XD^)zgdaiO^r}<)pujm^-gpfU82sIC zkA&9p06y2{GR2s4m;Id85na-D+@6ch|w80RtWxQ74& z*pnbt&>rI2g6v`V62sk^+Mg~hEfGUqXghHU($PJ1eo-@sS`nRVj%iP@uu9HN#MfMH zET>PS^lH=?Ef&{VT~pIZ6YlNpJ+Xe~nc))_;hRd$J=Ig{CWy}C&ha=+kh{D#+Ux%P z3$Q-j`fzrC34^=dRJ`8LiG-)Qg#{({41a%r(UXZ*ri7>$&Pav=l9R`i6qBLNwL}&u zAuYX8@3LVD=nYoGQ?z58Nacg4YdMc9@*HNr;q}7M9a~^u{{x5;kg2rg(30Zf4w~1H z=UaRD#u3rImE&o;SeWyqqf0&hltn%Y%#=#4G!i8JHfg|_gXUwB>Z?pmQZFI!Maul< z*BZ)OK!GdD2fdG+BLJ4jJpxw}MRrap9fS-(rIq#dJ{}$(-rl8fZ73q{l|bzaRiK0+ zyT1a6h(C`jZI7t)*iYY~b|&BCt2J8tS}!8(@H)()yP0)$W*QNLPhU@k%at@=U*F(; zUoi15vmTe*@G0(y{+&Cb!n3rxk|cIBKg1D*!h$kgfBnuycCzSpIwul9adC0&slzm! zx_iowu%#(!-8zMuAIySQfyG_yKL{37U#O2B^|byS6OxEVwFPlO9JIQ@Mj6bE`}Ykb z5WMJ%41OcN8j9^K=Pdyh=#dS9ppG@zM?&(=M+lOrbC8`%|H3;FW|MKM~<#ldlV#QxP|B!pTHO z0AgxxZthfOk`5i|E8BG4MS-h!(zl9)4*4)(egcw7v&5dCfVh~MDg+S&ol$NPy$sUB0$UuP#+c( z_@bA$cW;X zB4o0WngK19mP*C>SBa91JVms7@ARIS+fOH=v;igqQX`$|Z|||D5?aekODKjD(f*W8 z-{;||lEp<#PE3I5(+2O=rbzTU#+_L>YKlcxo}vd19^}@mqi*w&pckQ~jhLRk$Fuf2 z7+Y>@y95{Tnd~Y+h1CHc;oidgUYjW~+8^Daq3C@e@f<9kK-$FD?m zCg0guTSi7U)eyC9bD`aSerz4sFd`isj1+pVix(Y%qa>y0gTXPnF!>edRJfet!EcMx z>;Is6!kOoR&!s5Y*!cM2A3qRXk&=43@1-hjt`S2$1l$u`D-Ct^j*%NILPFt!!TMNI zUq&f;jXA*8AYB2_A8SufA5txHeSs(g%YlsUrm8BpenVu^y`OM;xc;{@A>X*dCX{js z39W&F0W@RF%ddc%P|!aMNDTD@W>!|IcUT?cd)&Iw~$a^);Vt zitYC^qv7Sa+!Ap%_bDbOGenqi9i5#~H-G;V&?X((5V(g3Iq|QycXt;z*}VJxf4m!h z^yJ|Cz%P*JsSg*F@DT+-4Hr>Qy6EvCkWo-@9j9gx(Ct_&L=;oq+;)tCdxqCPQ_Z!- z|Bv%I|E4zn{mB1`aQN>e(0`LC|0baRPh8CDqk|X^sH^K78)QkXtgfD-J@n|&BTObs zRFK%Lt*Wv^WO0?{byJoI1)v!KjR-Oo@5(Y$;zxkz%b#|9Y;!aN!4CgDX4B+T$YiME zUhgsR7KtT5l+Bs*2`n5OfI9(kuN>yKEl>}~U!vMVwUDxS1BHN~AXRz!nX2lAf_)RY z*++7RE7!Cfe*CdLdYXeA_E%F&ruD~YM`lb($$ACrWsuuMPj+VAm7Gk8#!Zl5c=gA&Ki2{SFSR1? zIdz~4$(i9rC56qJc{;seR5uQI-hmCt)vgC#AN}a@V{TzbkoT^gd^ypTJMKGa9x?t- zQ^4z&LCdR{+mjb(MA#V!2OqpbpuGx`hH?ZG8{3zfnsNGr-;gr_%|!^g0loo*M>W5W z#UuR!aD}U=&%%8TMWgoid|-8(wf^_ONNH+ny7c%@r*lRv$dH0dPKKjQap1tr`eI+R z3re1F%OP9_j|39}ZgkzF6-SR;L)7KgJGLuxiN3zgfpT%UDsam1>xpXlKarP$x+DCa z(0AX*p?#Z!RIcy$@88+g@~)$Rydm$B)fd=xZ;y*l%H8a z%IBtgQdBvet*V)bO*05`;alLoczJk~YHxsT6A-`{STi{}xp&W=mcx+%(8nzDwvzYaFrHC;)f?hzm*1l4f;@T4kj}foa0` z{CA-}r;)EES-Jkhhv=j@;4-)#t%*0DoC0G>@6H_$(P%)B9-{uV%rlr}%*hF}os+Yn z_oD1NqolYviV9$cBqfW7NXW@GV%ON%*pR|=tAa`!92}e!6QiT2S8?bQn0qC*zdn5V zl9H6`Kz2;Y0ieIVePLYO-8j~nv>m<@aY(u6fBlkM9|J4|P@uiF^*)doN4199m!Y9- z2RsoAsM-UtV0YAS&Fye;;%QJ;jImhK6vu2DxR$RzBI8nddk; zbp-AM4+b{mzSD4ic+0V$9ER4@@V}CAO<4YEqxsKXhjBr$)<~YG%p)77Q$#*0-mu)$ z{$o+$OdxS=xW7MWw6bi6%9<}-xvaRZtEi|kWz`m|OPjt>8B-;_U5jm>NGfd10RjxH zLYZM>w42C@%Iaz&Kao8NH6>zRC4*f=QaV3B-+B52B9G;xe#|u5$Omf8L)Fh{W!`ox zDBzPME)`b%aN{GtOx3RD|zuxxSDNom&HELt~ zo%}5kSs=)^{j2We5FjDV=N+S$Oynk^6yfDnv#H**-xD<+jMC`HfyvX=d4_NR;0#QK z0ihBGFDYr~eDWId+WiF3t&_R@i;4v3z)^p=QDo4}xH0v-sL0{^^*uEgwLfepTmz8> zfzK`?P!>0eNZa6R9(zbN%r_z!i-J(+)rn3{LM77v_4W19#4#AX3*I*{T1_eCRv;N- zdOV7XoZO}OU_l2SItElzkYO2Lep^tGIdc(YR`RAI8?%)uBviZTzvb1GR9H?+@4cIq6>&00GP+;+qEJ2@->Yaae~fkwm`!D(<)aFULSSN0O_!44!lb+ zGNNR!HA`K;PE_3Xt!gnQZDT}ef9k-lum(VoC~zXWxuslWSyPLsQQ%VBP zVhUKyNix3?0kKlLW^LV8AO|)>UycUE<7%Ktw`P}Q=1W}xVDT5naK1tF5OQVX9-tfG8Lu9sr1bdw9f4rupX!tSBfvI@rKbKD-rjY% za?lV+N{Yt80#G$0^Qg#b)BUEHJ;s%h zpYQYhdEB_|(zLes09YExB|n>S!Z{bYY?d~K=b{eBJ?P`*Mehpm#e#Zxa*~~#Wa;Z8 z7+AyZx97h09cEL>0Ev!J2}iwrH5)Jh$`g$|90xpy>cVQwyRn$64KSebhdDGG#5;~x zI2)Rnm|$KKibyv``5rVq)TrH%HxS^v_iYQ^CnU#*T01*~>X`l_^rj5C5&Gd6;ZR2M zC6qIPu%#+IGpygurOLh6r+>^v1}0{-e+4Dzlp;-#F;PN2cKnXQX%qVSGR!e5Vw{f= z&8_3UIHOQR@t)W_=_q?52{=K2|2cFvpm#yN*!Ja>SOnX**E!aV{s02dXB75oCKXUbF_XlOuf%$@wa z&Cl+?Se+Z-{bO$s_kuL3^Q!}VT-BrM8X8EEjg5^}b~{~|#)(mJYY_44-5mP)(^O9{ zALj}Qi}lY9L?O)vFeX69#ZES220k7Qm> zZGVJfe}jw5#97yxu)zq+FxNza*$wz4y)Lt&Kb|5uEWCIQX zY!!%}8r?8e@U^f3W@YQvzp2Cx54Y_+Kmd;~N>{CcrxP?oc#jE?ez1^MabOQXg#Ik7 zH<%DWF5sYdZ-0bdfuyID)YNR`B=`dOVGVX45Yqjh-9dc^Mn)|FIs+$l1i(uS2yf;} zFdP^i89{GPY!jZAXBkvilor5R6h^%c6&0WX+4!RPHgh9#K$ZYIVS&NUm6dIP+3=Sx zDEFq3B;m99N$tYEFx4kRvfTfKmWz*CJWk%h!68#+4UqSfCr^m@3<4)4bVTf=wF#{6 zU3930l>SY3hR?sNufIgB5N*#hY^`oD?N)!Dv ztaDM@S;wV&d7r?22M&$WDr_HQZa9SP=Ms`c<~ReQn)Y7Z)`$rBYiH+VPthU_5{|ZF z*Za!^0vsD^H&|yds9ZqDCh|5bfdB}fB~P`k|9-(+XuCG9`nhxGz(Xe1mFdorigE`5 z29ylrzi*F30w)wy?RhZ9Q=(Q@R@_}((aPk6iwrOY;pd!4lJ<#}9-F@Xgfkk2pUl;< z*G50qL~2kFxq4L(v3fd6a`gCh=;owA{E_5 zhq^n>X6R*R%C>Z^2$$#TiALsdp=*y*l5mSaur}`eaONnEEzIw%j`GS{D?)w+Di3sh zP!P&}XzR5;;RudSQm4F_u-^m@zl(0JJ1p$Y&h6VX&d+X>Tex8ByiPO$8`e!OqrP;9 z*>8R#c4~R-6VhhdE|H`$_~_AA;6SL6Z75h>BGw><&8#TV*uhtGZ>;5X*TeEnCku0P zZ6*=wipky*V(Y=$tmFzsZ>%`Q3deIxM5Y@n;~W9Qh}aN~;^Y7FgzZ0ewd-mHB>+7Tqk;p0tepC%vj*;0#~s<7`lEdHt5}IIA}NZsPT+9f`M#5@Sz$^wF3a|cjcL|l9P;NvGg2Dk;?K` zcOzV?=ZL=^^dXB~vslGo$Pp;|KDq&$>|&?YHY73~9j~qZ8k_INndG3vL8ydPQrIRZ z)y2?5jgufhrl)f%KZE#6nDZOQ(ypn>%{?Wfp_iTP_psi_Ov8%m1`jeXpo$8uWMKYR z$`qim1K=H}@J8#ehu-eDDt4|=wjsHj)oTLCL?96iG--<6Yn#tTc9;c^<>EfF`Ikd1F-0#C-+nJT?%;-6&3aP@wT$7gMwQd z4Hr|ePZR_YrM^Tw4L_L;vlP^D>k7kxMrX-GTXW$=4VvFf$X1zm1G6KcLq+A-pV7!< z%gf6b78b0C)J7zR&`|k4rHT_v?}{AXHIDM|;byu66E;td*DfWa*GRL=s>#mZMrw@6di|*Y4o!htJ^@vzBt%&HVv#Rlx zoh&dziZ}n^&!xQkTQ|a+{$QIsBNgz(+uQ^Zxx4=xA@bA(Udh}p5Uvy@?x$6~yy_c9 zQfh1KMC!}+ij3Bh`T4w4)Z zO0%@&Ima@EvuN;)j&e7uOcG^}mhCteHKAa&eBMi%dhpcr}F+WtyMr1m-6UhK7} zbIp*5eEEg9&++5=w}pjpV~dxSIx8yyzg|-j@ z2&4chL!;jci96~tRe=>pL)wVv{=4YPGB7~*0_lbVks-f~H2$w>w^60h=8T zj){?R#>^%7{N3GD4=;~D)RIeDS(vOTV|}Ith8!^(LZrsJ*~@MpwOC@%+r%gn{zdDh zk3t4YW*|m3th*@+t?v?cSTI)n`e<*=-TbOXZ>g@t&*v`)2sArHuxQMo-wtE@;0e*? zQh5NyI*0i&MOj&q3TAmCWy_3y#ScXnQ-zx)t$9^Q89?osHp@DO<``6qQC^iZx$iXJ zs*JimAog47$$+R}WQjg<^j(G_*;T7)HKe9xH{ZxalsYV${twFD10Ku1{~s<3e)seI z{`c#8-7i;{&T$;y;AIH{KKtTyzgExFAJP8Et5*usU-JbRHuCg%*4ln_t65Y61yox^K z6BDo3&tnJ#vj*xIcv{BSee3$T_%xLa!SvIROYF;g^)Aj)SKWX3>$`@bJ(=@c)k6R) zsgNCg{=9gut|QZ*$1aDBL;^V^g?4El3qWoV;y^;%*^gx92g3gL*4i&`pWI4>-~sWr z-HI~x@N)^=GCG@-V z=DaToTre%sH2!_5F+2F#0$fam;1Zw~PIBLR@vUag-T3}ormRGltb?;okBPE%fx7PM z=Y#wGNhvuwO?~1^i!-362{T&*>ypH>CW~&OVj9mm%?Y&l=)f=k{K~nyXAk3!3|%|W zVCixvf!aKvNx>e0Mgcpr8xB`f(_ZX0&V29D7G*zpM{HE9F^VVrjj4Eg(~YzsN<>97 zd^L9#lpYhVET{o2`%c9~6ua2t+YjrsO;&*pfpPV2V>HT{goKvQDi=pRT`UR~s1j653uP4C)0KJmu&Ta{Q&&=9eedne z!b5g4(W*Lb8sgWK?KIqa>DiSwQyUfNF{Fr4h0$u=Irh}o@BTu2O{mpwgX(zvCn^u$aCWk zp9VjSA{&?oBQ5O~vc0;Jl0QM;T?Kyu5pdaq2M<7d6LQc!Zl>6m#x=B}hSnK=Yl3x9 zQxk%d7abO(Yp^n>VZDa;2Bxf?&>0|N{q0-uwdb%;V-a!;qiB{qHhdBell$BM2_I5Oqisv|8?z1`Rm!uEODh400%pC)m1{F6-YBPo8(|&PJ zR28}OrDtVwSoobn1=KtDbrpw6FFrW8^5;TN(!{`k(sHm9HCf-AWy2l!n`;}5`y^RW zsq$CJ@$uPU2b4-hI~vHd9rpJEK@^~JVq#&kCS?7oqeV}iU=L6E%2HZpylsyg)J5OW zisFcVIW&`$d8U=o8JE7!Q|NOpQ4K@bi<~Tl+{=hH)$cQ>0}<{rVJ>S75!s)go*p7OBvrvw zq-J_@ZRVK^jh~oA&*>LfV&n`3av3b3^jV|SJ5tx&US|a1gPnT!cmz$RO=#`5wdI?d z9pv}%?4HX zAzS`X?2M`j-pl(?=gyqp{})JkH8xj6t~@;y^5DU?WtpT;BFpO=lhm>RSr|<|yJ+_u z-s+#uIo!IXKg7rD#f|N~T|h>4s|?;42dD$q4a}(%C^A?*_4RA4oB&knXljyWWb8RV z0NFv6kDYg&tDzlR7Xy9E+1Tdx)jbU>DGaWmVmo)vEG+11z~Fp(;#0*_zwbP-D4tbEE9$upg?O7VR?MY2e)ssB=ShqshB-d`8Rnrpi95tu++BuD$(^ zx{&BWY3DADw!~;BeRMmxZx_&*;MN1cM;CRI_uzw&)B!U0%=t<{@py)-pnKi3=O-Ws zY}mkgB6ts`|0Nd%@21K0Xbshlz=) zcb;ggPy(QJfj=E>q$^MRpp}S<;d?T)9@F>Ue=OVO=52hZXz2mX&#gHeh?;#;c?p`T zQPfR1lQ*Fd`ux7gk?GTL?ky-j5=b4ed-ePzL`uMY(F<}Mx!NHrW$n`}S}9@PVeOBz zAnoBpxVquc$@`IN;NcIZgPK;mEFYQu!SL#Uqr?Q`+bAW-nAs$q#>8 z`zBQ2(dOPK4a@UM%)Pv~A&!cFchGmq$lBUk$4y1{X`P8d`CtP`{Em)UU`f!rj?MkT zgD&->ZeazL3G`zAMG6xBCyxNTZVm%Ldg?;dAZ-Kg96Hj(xHz_Q9?P-;hQ2VBq;m7=t)EwU@;q%u`isExp}E(X<_Q%-GD}69W>22 z{jh00)0jI}C306`6TgtO^qsghd#E2ju{+(R0a)hJrQcB1m^QC{Xt1+%c*JxT53~tT z=L&B|pPY^ZR4w0FLENIrR)o0hwy+i*Jw57!D&IXV<~y?^k?drjM%ui zckkbi4i6W6y%2pL#0#7z(qwW*qAfA59lLOOSj zZ%g!sA=bY0Y+kM^IB)11~1I7yK5fEx2{=?4}|oRJGy#>e3-B|;YLh($Th!@5$oV*YP z*5DJA7XV&rw^2s#UxG6pzYU|6{pAaJ`T3g|7^pK|i0+n>8kqaloR^2mUiH`6d=wMS zm>mw?*ith#hllA%i$s~FB2XX55oOQqU^)zEsI!yPdH5rj3@{P~i^^UYT+X$K2uH3x zk90fZjiuP^b|>o6CWm_`{eERnHeHh(6chycsj(1q)hU%?Xl!9|)mA9N21O=!ynoLX zF1!vUQS)3rlpKK(@{Jcf+g}40MIOZHkvzzMaP~r?=dXEfr+|av%A#F>(wc-6$l`FR z#uT{&R+*w_)>Wh%Px^U!J_bVL`ud2@Qu_K#PzR&;Z(x2~zH?d9l;i_`q2uSZg(3E0re>JwOxsB>>1=GTFc=L);mXnDDx zR(ziJ%%h#ff%7{g1Fe$ex#Nr(EeUK+(uph2m_}9Mza$i8Xcqc$_wcfH^!AzCqoqW9hF)Y&oqH#)1#ZAl{f+>Zt-NnW}P&g+kF3u4CNN?9S(L|ctK_-Tr)xn&X z{4b_u=rcy|vOYpP0d5*_7@_H5WgVWHni?2*e&aTks3uRN>kYwd{jXeNwS_jKb#Bw= z_e)C`VM~Fyn!Pp%Z6xq4$bgZ=LdZ}6tCb)Iu03_bnSD_wlV=6A#bG9$U|T$&yj}GL znqdCe7HkpNTz6TOgY(=)d4)rl+St_~2;V0zc=LEp5F_x$-GoXAOjy zL5h|*cb)*AhYh(OLMPmi?+?H4OL~MkIqm)V1Ntx;xUwvP+6-cBCG^n z6&MaPL2gAfRKQZzFvBm08CD-Z_Vz9!ZwPcFo`!XP()dtzeIvue_HJ&#a79H$o%n>2 z_ik%jOZP2_?9=o?;)-Y8>4^b+@{H4};13>IRjkig=zg(fcuTdK-J9D@BPhm$B7w~U zaupU3u!VvE7eOeoIi7~;hRnN z35(ym#>?hyueJQ-Mrs%AXxi%Pp5FkO2u9IFJIFvTHR zM0L}6h#cbTlNdNB0bn0^I=7;ayoAIzbVdcFi{J{wDMQTFYRd{?!rtLU+oQbJhP35$=)I3UnKuoo`^FdlbLHh*I;Q8#;ijFU9F_<-Xa^PH2UBBx4EMsFZgyp zT;Gz61^E%5c%FM`auOF}XO!mPe%i!0yFj5el7g29p$K=Gq&Zf?x99>a=93Uq?}%>k z44q1Osd^zVB=hA;t-dZuG5))>1F#9>QND9$U4sCQ#f`hjwDELJuX1fY;@F&yhl)lF za`k7}5a=>=J^}m0fcrqI)FVj8i_psa^rqG zTU0d`jI0eLI5ru!%ZK8?sp6XB9vQAn1q6nQYNwwBYnIUxXcxuAso~)+%eP_XQxlo_ z`Rku<@GP^mw&rc+tbGJK1>_NEIeyUmS}$``t0q1Lkxig>-5dcU`Oj|Zyywy#=Z>i0MOOw8}5X#9ij^K`r!6I%x?K*-jsB<4r)hK z{n*P*7Sgf`9l^2zZAD;+g_)Ui!Zk8JJgQre(am?p!13UVYByN3W4Owb8upYmt5oXvSZC5r*)6pymqTK)aVJ3qOB`gSt6##AN8x zX8ku1vI5&JaA;y*@_vSv5<)W2GmKxiL19wQVO_vISxHaxI|k^Isj+c)?l>!LAm1wU zbJG0WoFS(Nt?~+^%_2MXg(_6>5M*gd#^AX`Q3$a1YEaON`g$lCliA)g6Lw=BN4~^jbk{S3{w?w#$cg?ca}$-=hr-5&7?bCO*R7 zU%>zW`_Fv1WB>Yd;%9YNtV00sP)amFW-t$pD4v*+2&6qgW7JE%$^gtm>ONZs2S|65F0)coUwoe8cP*q%(qkSPEMq-dN`ycc3!cR zgrWxv^L^C~d=0b)k*lX5w6=A0T!8B-d;$U{cl-?G>gjMYcxHqMK(_<508B$K-D)>T zmULWqtZPD2=e!2mZAfW4@4fkn;sr^FM5;-HRxj>rYwPzGpVwScHcCLs+K>u@UCw=Jwfl1KplMGi+9LVt%Us8Dz!1J*!p7Tf!f7cXhcT+6r~Q z$7wV$@Z159oL2kN*t;9XIDT@-q_c#;;ehJfh&G^+X$i6QHGGbA>+%+c7)aQA1gZIx4SQw>EQ#$s9cR?BPSSW=1VN;6BRH z<0k8kLpVp)Ekwq(k^QMteSijJ-x%yHOpjC-0wfv~351Q%)`{bMhQl5;9?1M2^I+_K z!t7yC!%%We3=Q!-qm2dbc7FeZp7}Hp*6Y{Z-@_#>U17IzfFG zPR{56XzeCCM*I|`X@fxl$25)TI4F3HYExc8 ziNyC8$EIhO+OZF1FDjhkVI+#}2=amVN5|OOx0^`f+@EL|_Xdy(zKGLf+}!WIg;!QC zP7f$kUcrGj12$3A&^fOS%XKJ@pGv4VJg ze?acISx3*@9JscTOAF|0=zaH^22_ESPEiNn zNJ)l}{T^O0;W3U#-hF36FZo7g<>uZ$=%-jz1~9;9;k#9M9;m8UZknK&l9KpFqu@DZ zp=>{L|CNu(-D%hml8$0MUD)4;4Q8+(jZ)O!AvZ)-6tNRcBL6TByuV2bP`7dBqdi4e zJcjeP*a|OU3R!mg5_icmUPd0sN5VaGbMtKq-Z#?WfPvfU>Ir0~!7;gW=W96B%dW*C zfeS$j?bWCkf!XOHNiElng_(K$mcFm=GDJ1OK|v%6+~AJt1D`*4B&%G-!`6Gr4^buI z7d=NB*+#Ef!>sk_*-HE-S*{BImrvSa*Rez!ocvU7oUDi3qv`XNP&eZewk1Nb(BgBQ zT{PLi7N-q%SeX_gKI~7y_~__QFjwu?AWQH$#-E|EhvGLV5}I1Czbp7m5bR*$=Eb3# z6mV9djct}3oto0kYXD@kLr923LFv`Ce+ek)4>6{QhOOvqv6u!kaGfx2AkP9hw)__# zU+I>W`RTAF06v{qHaw?8@=2$^KG2F5Pu`#e%`=2t*eroyy%8USEGRbpH}d4-Iy!q@ z^k%X55B}Mp94WVvD||kvun1v7S4of0&wPf-5fA^VzDhG#4Ey?4a13!X>U(V1=hB5oCI_dZJ<2!~_y`L_ z{8>=su4jK{aaiHT|CpY(VK=t(jY3K>ncp7e762>&^?1oA=v>KUWHt?V!~>f_%a+7- z7PJdQ23HQjGc$*;&&kP&^@f91{9Y%F-5|Su*g83h@DHOiPfgqcoe#{A@38ie;MUgK z8vbU?kS+KHE@H`(C&v&lFzDmb71|wEOne6M4O)oI z%uGlhHd6owDt9_HKPfIoiBAE22DuoBeB6}<^y+2`vZ^?wFgoP`UJe;1xMAShyxQ+z zXQU6NAa4t`;md{w>+&DA99#}nataTCut);;p_s)hSBPdiN5QzQ(lr7>FKX1Z&}|9rR&VEKMQ@A z9)bVjO2O%lBbY!ce0=_38)=;6;`;sgqKZ*!is!@woD~xM57B}GLo0`cH6!sd4wkn- z5WwNK#pjz9tv^PM(&>n%<`P&3oNU11pm5v!go`WXZ~0j%_FUohr%wrcKcTSZ3%ajx z?nts8GBD=OSHb|Wo8`sJm&}xqO+0kapDy$VMFMzjr?&Q)p>gHWkc?UQ_93QWsK#aM z*+4&#n(?DByGgmai&~`f1F!A{4h6OW5j62Oum%Q20(SG+ z90$}T-*c1`g$DA4Mx*eNf$pN8NVIcB3Sw-UK2*K}L1=HnvYx_k8{h|MqH$;jWQL== z`QX4mztt1`lRX{mBznD5j}gGep0%s(m>ABoDRW zy?a`n#9mE$jPmH!3ka8>?JO%`vS8}kl7hV(tOFnv-3hih?e(trq)J9^OSnmzmbkF# z=ouOk9t0WHOFzaTfkCuMobKDq9n(qBOy8LgaE3&{vi$EEbA>FPMx}C>L`KZi#k9&w zOFj}|*K>_>(zMl9VO3lua^$`Mi-+T5LX^9c^y$gTt^D?=aJettXU~TC3R-bm3%2pw zC6wgxcSSq+sgE%Nz!wZ+;F1ZAlQvSl$^RZeEmU2Frp*^ODC;D<6583FbOq(ft{xLj zlZ^T|uV)ut+9M-_m;^2^E;2`CP4>fO+C%yr95Epw>*GgZ#wpklY?p&Q4TcJ;J{=U@ z=zHAzNolU<)=(Sy3)93J)#Qd>1C*>MlKbeCcj-yC8$e*!J%~pKiEp{B)lA9jbt%D-LDM;-KEFsda@k)W5TwJxE*MWW% z8i|H!S|8worR11_wF8P_SOMeiwZ(sk=VELJEKNcp9A%&%EhzvWLQWb)DmSab8{rP0 z)Z~TN#ir(}GxuYcC1et@P#`Lg!}Maqjr=(6_!nB6I=s)b7kOV_wPN`VRViXRpgW72 zCsBN}`{Q#Ma`#azJYIWuW$Fh-!kB)7ONuR%pRR|?P~7qdwWvHkV3gR^f0Z2PRDPfo zXtswTq|3JJi11zEmt@tN8^P#E>oJ)HI)FI{sf zc3zW8rD~^&jG&;(g)QPccV0koqozjljSG#L&306|2c6yybi{PyVzV0CEg)oFlHVTe zP9rai^TEKQbLaYf8!kqo3k?od6MMoH$furjrS*E`_KBXnt#j7$&VN%MXq)TClT|e# zphrL#wt+ZD!K^n(p7Q~)f}^nL&)w&qEOV@k(gBG5EVUavHj4uZN)7)H>$8mLB5(p( ze(z3kX=$Xco?+r7tENUOZ%6NoLs?duQQH?aEG1%_td=bRp!-nA;9>w60yhT%G&6|= zDCS}Hbn$SDK{6@|X}b^4yCNrIukKv?ecs_QXj3SqQICQ6#m;&L>=t2A-V|w`CVQ2E z6S|(QkT*6xKyiXNU?O5!i4P`m6b$HGnwpz~(nPbnaY!N9O#_`8Z11_bMm zh)k9`oy8$wGSznEgBjV;MIG(|{-CTiK_oQt=?m%U`-QBkefBCURwpGT<>w#SekWjN zW5np~yha&Oi=drik{4&&5AzcH16pdwWR#rfs4$(+v^3wOddB;3v0U{k% z>VmYi5!4INEMV70Hecyjl3KU0x~F(q43Ff5c*z$Z-cQ5h`=&{5gRku(6e(R7aJE z>gyN!A-B9988R8E$ZaUvY92$s5BLSqVH4N~O*3$t3tZMtEFd-$Z9QFZEqE97Phfqs z&gf+s$OAfdY}o|GeC8vryb`OMA;{p#cDoC^jQ_T51b@8f?>{Ik49g1P6NADK2?%C7 zlJBy$Q^}&c3{5P5K*bIR&~bb|hzJPQwBp>O{QOg>X;D>BnVp`Xn*2cV-PCe^gWR`0 zmh{-tD`FAjDux^)oc~ac62=WwVxYwfo!SNDDI1-KJ%2%yAk2)B7T48w&JF$Kv%Uau@jtL!s2q^Ta2fIngl?m5*~BH2X>5LnI2NWMrvMjy zNKI|#m(TP)GzRN_Ba%543?-bkwEW2O#C|Pr;dN>27XCq7cH0iiu@i zI)1(lq#d{z!*4G&?tkN>oqaNpN*kH}s=3*Ih5lZu4Ts3rv)a14j#WIk?AhQI$Q|*Z z0a1X@&COYmrQ2v1ljG2p&sE5NQ7F7voXORo{c80)yWRJALqYrAqW8HI=3cPA@qns^ zIRjOWfvM>h9-dD|gJ!}UbiqF^?dM|;>lRO1>!Bbvh7cRLb@T;p6&F+kMgXk=na)N= zMu1-spE~9B2nG3PrKYL@i3r7W0sOMSCH$EzBo7>+ zH*PoA>dv{|*uH(&t|^Ex8wHCri@!JJ_4<$;t{Tt4@RsiUK6k@uH`#x{zNZY-aY?|7 zH&ZIBsx}gGZK{9)$i$jS-~KOw#Z@+@-jRAs;jPGU2TFu8JMJBv6#r-xP8*x0xy3y{ z>M^Rd1Pzx|jRB|5F-}S2A=^+Qe-utZXGeApj>CrzVS>fNm$wne>|1WcQP9nO$9ISP z_I^f+&rCfBu(wk^$!6P8ntsRB3D=&ECnqgL1*X+5z&>_@%9MJ|6qz`4zAPgH$@$aGdzWOA~9cL zoTzYeo@xDR$1=Pk_+r{g@*VOeVo6jh=KdWW1|E!Q>m@Hfc6&#L#3-Ev>=Ch;th#pp zbZ<`IpLd&!Cf~yPf_Eg;Sv7!fpQsk0mxs?BH9WoL0oSht-p8S2ENNMqq$e^yCKQ_2 z!HT>gDcUP?WE)f;;FJIrT5iieYdxBuX<43;oIHr#6zq_5J-~!l+S0&fq5ne@Nq#nq zO=!dV_21tWT}2ri69Yz}=7tY^V+d{_vY=A0MEO81$+c~ zciXDMK!%Y605t$vL$HWyFtgtXd+&)8-Y6F#0TX4VD>Nlyy)!akZA{0}fvz18*ITN9 zB*=sYG&wBu9%Inf*tW@Ny}cIcZ!P8XfVr`6+jbev8qj1j3yUju$H0amqBhGYdv|!| z%WUT#@i}@TlE*4(15}6z&j$~PAvyqe12|uv=_5Wbf+)a^XQZbSrUztMVzx#I3*ssE zF{;GG$79%ntcSDKl?@)ZwuE817l0-Ha1OT%ECf!Acqqsx{-p )X#ea;#pK(R=i- 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 literal 0 HcmV?d00001 diff --git a/docs/em002-1.adoc b/docs/em002-1.adoc new file mode 100644 index 0000000..f5e6e16 --- /dev/null +++ b/docs/em002-1.adoc @@ -0,0 +1,2665 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-1 Practical Guidelines for Open Source Software in the Federal Administration +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-1 Guida pratica per il software open source nell'Amministrazione federale +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-1 Guida pratica per software open source en l'administraziun federala +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +NOTE: This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main {url-repo}/tree/main[README]. + +== 1. Use of these guidelines + +Under Article 9 of the Federal Act on the Use of Electronic Means to Carry Out Official Tasks (EMOTA), the Confederation is required to disclose the source code of software that it develops or commissions for the performance of its duties. footnote:[SR 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/de] The DTI Sector of the Federal Chancellery has derived overarching objectives from this legal mandate in the Strategic Guidelines for Open Source Software. + +This document serves as practical guidelines on the legal and strategic requirements. It is designed to assist federal administrative units in the use, procurement and release of open source software. It provides all interested parties with a comprehensive overview of the subject and refers to additional information in the other resources. + +However, depending on your prior knowledge and needs, you may wish to read the guides selectively before moving on to the other tools. The following outline will help you find the appropriate starting point. If you are unsure, it is recommended that you read through the guidelines first. + +=== Intention / Stakeholders + +General introduction to open source software + +* Section Definitions +* Section Potential and challenges +* Section Findability of OSS solutions +* link:em002-5.pdf[Em002-5 OSS Tools information sheet] +* link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] +* link:em002-6.pdf[Em002-6 FAQ about OSS] + +General introduction to EMOTA for decision-makers + +* link:em002-5.pdf[Em002-5 OSS Tools information sheet] +* link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration] + +Procurement only of software to be used + +* Section Maturity levels for OSS in the Federal Administration +* Section Use of unmodified open source software +* link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and OSS] +* Software Procurement and Art. 9 EMOTA information sheet [KBB-MB] +* OSS in Procurement guidelines [BBL-WL] + +New IT development and release + +* Section Development with open source components and release of source code +* Section Collaboration in open projects (contribution) +* link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist] +* link:em002-4.pdf[Em002-4 OSS Community Guidelines] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist] + +Procurement of created software (service or work) + +* Section Maturity levels for OSS in the Federal Administration +* Section Development with open source components and release of source code +* Section Collaboration in open projects (contribution) +* link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and OSS] +* FOBL toolbox, including the Open Source in Procurement guidelines +* CCPP public administration learning and template platform (www.perimap.admin.ch) including Software Procurement and Art. 9 EMOTA [KBB-MB] +* OSS in Procurement guidelines [BBL-WL] +* link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist] +* link:em002-4.pdf[Em002-4 OSS Community Guidelines] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist] + +Legal clarifications for release + +* link:em002-6.pdf[Em002-6 Frequently Asked Questions about Publishing OSS (OSS-FAQ)] +* link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] + +Working principles for project managers + +* https://www.hermes.admin.ch/[HERMES documents] +* link:em002-5.pdf[Em002-5 OSS Tools information sheet] + +Contributions of software to third parties and collaborations + +* link:em002-4.pdf[Em002-4 OSS Community Guidelines] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist] +* link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and OSS] +* link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] + +The following diagram gives an overview of the documents relevant to OSS in the Federal Administration. + +include::partials/document-map.en.adoc[] + +Figure 1: Overview of OSS tools in relation to Art. 9 EMOTA + +== Definitions + +Open source software:: +Software is considered open source software (OSS) when it is published under one of approximately 80 licences recognised by the Open Source Initiative OSI _[OSI2024]_. 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: ++ +. The software may be used for any purpose. +. The source code of the software is freely accessible. +. The software may be copied and distributed without restriction. +. The software may be modified and distributed in modified form under certain conditions. + +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. footnote:[https://en.wikipedia.org/wiki/Free_software[Free software -- Wikipedia]] + +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. footnote:[https://en.wikipedia.org/wiki/Proprietary_software[Proprietary software -- Wikipedia]] 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. footnote:[https://opensource.org/[Open Source Initiative]] + +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 link:em002-4.pdf[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 link:em002-2.pdf[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. footnote:[https://en.wikipedia.org/wiki/Source_code[Source code -- Wikipedia]] + +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 footnote:[https://en.wikipedia.org/wiki/Fork_(software_development)[Fork (software development) -- Wikipedia]] 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 Agreement footnote:[https://en.wikipedia.org/wiki/Contributor_License_Agreement[Contributor License Agreement -- Wikipedia]] 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 footnote:[https://en.wikipedia.org/wiki/Version_control[Version control -- Wikipedia]], also known as version control, is a tool that effectively manages changes and version numbers, particularly in software development. The free software Git footnote:[https://en.wikipedia.org/wiki/Git[Git -- Wikipedia]] for managing distributed SCM has become established. + +Open source software development (OSSD):: +In open source software development (OSSD) footnote:[https://en.wikipedia.org/wiki/Open-source_software_development[Open-source software development -- Wikipedia]], 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) footnote:[https://en.wikipedia.org/wiki/Software_Package_Data_Exchange[Software Package Data Exchange -- Wikipedia]] 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 link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]). + +== Potential and challenges + +There is enormous potential for open source software in today's world of IT. At the same time, the use of open source solutions also brings challenges. These two sides are explained in more detail in the following section. The information is based on, among other things, the results of the Open Source Study Switzerland 2018, 2021 and 2024 by the University of Bern, in which respondents provided information about the recognised advantages and disadvantages of open source software. + +=== Potential of open source software + +The following points describe the potential that can be realised when using and releasing open source software. + +{empty}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. footnote:[We use the definition from _[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.'] + +{empty}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. + +{empty}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. + +{empty}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. + +{empty}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. + +{empty}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. + +{empty}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). + +{empty}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. + +{empty}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. footnote:[Another aspect of security is that it is easier to document the libraries used (including dependencies) than in proprietary software. This in turn means that when vulnerabilities occur, they can be quickly identified and fixed (see also SBOM).] + +{empty}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. + +{empty}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. + +{empty}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. + +=== Challenges in dealing with OSS + +The following describes the typical challenges encountered in practice with open source software and outlines some possible solutions. We do not address general challenges that affect all software at this point (e.g. the need to check for cybersecurity and the need to secure appropriate support for critical software). + +{empty}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. + +{empty}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. footnote:[Project or application managers are responsible for such new features. The project determines exactly how this is done. Em002-2 and Em002-4 help with detailed decisions. Depending on the size of the feature, it may not make sense to go through the instructions in full. Procurement law aspects for resources must be observed.] + +{empty}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. + +{empty}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 footnote:[https://www.oss-studie.ch/[OSS Study]] _[OSS2024]_. + +{empty}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. + +{empty}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 alternativeTo footnote:[https://alternativeto.net/] that provide an overview of solutions for specific tasks (more on OSS alternatives in the section 'Findability of OSS solutions'). + +{empty}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. + +{empty}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. + +{empty}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, The section 'Open Hub' 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. + +{empty}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 link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] and in link:em002-6.pdf[Em002-6 FAQ on OSS and Art. 9 EMOTA]. + +{empty}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. + +{empty}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. + +== Constellations for using/working with OSS + +=== Maturity levels for OSS in the Federal Administration + +When using and developing OSS in the Federal Administration, there are various constellations regarding the obligations related to open source licences: A typical maturity model footnote:[Maturity model based on https://todogroup.org/resources/guides/a-guide-to-outbound-open-source-software/#maturity-levels] for introducing open source into organisations can look like this: + +. Denial -- No or unconscious use of open source software +. Consumption -- Passive use of open source software +. Participation -- Engagement with open source communities +. Contribution -- Pragmatic contributions to open source projects +. Leadership -- Strategic involvement with open source to drive business value footnote:[Creation is not mentioned, as Art. 9 EMOTA directly requires this.] + +[options="header",cols="1,2a"] +|=== +|Constellation |Impact + +|The mere *use* of existing open source software (without modifying the code). +|There is *no obligation* to share the source code. + +|The *completely new development* of software that is be published under an open source licence. +|*In this case, there is complete freedom regarding the licence under which the software is published.* The document link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] should be used for the Confederation. The document link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] and link:em002-4.pdf[Em002-4 OSS Community Guidelines] must be observed. + +|*Further development* (internal or external) with existing open source components (with or without copyleft effect footnote:[Explanation of the term 'copyleft' in link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]]), as long as the software is used *exclusively within the same organisation* and not redistributed. +|The OSS components can be combined with third-party components as required. There is generally no publication obligation from the licence, as long as the software is used exclusively within the same organisation and not distributed (exception: AGPL). Since it is not legally conclusive how far the concept of 'distribution within the same organisation' extends, this scenario only applies in exceptional cases for OSS components with copyleft effects. In these cases, consult your organisation's legal department. See link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] and link:em002-6.pdf[Em002-6 FAQ about OSS and Art.9 EMOTA]. The document link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] and link:em002-4.pdf[Em002-4 OSS Community Guidelines] must be observed. *As there is a publication obligation under Art. 9 EMOTA, the changes must be re-released. The easiest way is as changes to the existing open source project.* + +|*Further development* (internal or external) *exclusively with* existing open source *components without copyleft effect*, if the software is to be distributed externally (e.g. to cantons). +|The OSS components can be combined with third-party components at will, and there is no publication obligation from the licences (see also link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]). *However, release is mandatory within the framework of Art. 9 EMOTA. Ideally, the release should made be via the existing project (no fork).* The document link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] and link:em002-4.pdf[Em002-4 OSS Community Guidelines] must be observed. + +|*Further development* (internally or externally) with existing open source components *with copyleft effect*, if the software is to be distributed externally (e.g. to cantons). +|*There is an obligation to publish* due to the copyleft licence (see also link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] regarding the copyleft effect). The document link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] and link:em002-4.pdf[Em002-4 OSS Community Guidelines] must be observed. + +|*Contributing* to an existing open source project. +|*There is generally a publication obligation according to EMOTA. The governance and licence of the project are used.* The document link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] and link:em002-4.pdf[Em002-4 OSS Community Guidelines] must be observed. + +|*Joint development* of a new or existing project with a community and cost sharing. +|*There is generally a publication obligation according to EMOTA.* The documents link:em002-2.pdf[Em002-2 Instructions for Publishing OSS], link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] and link:em002-4.pdf[Em002-4 OSS Community Guidelines] are used *to set up the project and its governance.* + +|*All variants of development or further development* are carried out *via a supplier or commissioned third party.* +|*There is generally a publication obligation according to EMOTA.* Based on link:em002-2.pdf[Em002-2 Instructions for Publishing OSS], link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] and link:em002-4.pdf[Em002-4 OSS Community Guidelines]. If possible, the prerequisites for publication should be established during the procurement process and, if necessary, the requirements for software approval should be communicated to the supplier/third party. +|=== + +=== Use of unmodified open source software + +When using open source software, it is generally not relevant under which open source licence it is published, as all open source licences (see Section 2 'Definitions') allow the unrestricted use of open source software, regardless of how many workstations, simultaneously logged-in users, number of servers and processors, etc. the software is used on. + +When using unmodified open source software, *no publication obligations* arise even for programs that are under a licence with a strict copyleft effect (exception: AGPL licence, Affero General Public Licence). + +As long as open source software is introduced and operated by internal federal service providers, this can be done *without a public procurement procedure*, because "the OSS licence alone generally costs the procuring entity nothing and is therefore not relevant to procurement in itself." + +If an external service provider is commissioned for maintenance, support and other services for the open source software, the requirements of public procurement law must be observed. Different support variants are described in Section 9. It is also important to use appropriate suitability and award criteria when procuring open source software. The basis for this is explained in Section 8. + +=== Development with open source components and release of source code + +With the publication obligation according to Art. 9 EMOTA, the procedure described in link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] should be followed here. +The documents link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] and link:em002-4.pdf[Em002-4 OSS Community Guidelines] must also be consulted if necessary. The goal is to release the project in a controlled manner using the three checklists _link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1], link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2], link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3]_. + +=== Collaboration in open projects (contribution) + +Possible considerations for the Federal Administration's contribution to open, already existing projects are listed in the BITKOM guide _[BITKOM2024]_ Section 4.2. footnote:[See https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html in, Section 4.2.] Depending on the importance of the project for the Federal Administration, it should be examined how much responsibility the respective office wants to and can assume. + +Collaboration in open projects and direct development in open projects can also take place using the documents for release. The focus is on link:em002-4.pdf[Em002-4 OSS Community Guidelines] and the associated checklist _link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]_. + +== Properties and selection of open source licences + +The properties and selection of open source licences are described in the document link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]. + +== OSS procurement + +Strategic issues relating to procurement and OSS are dealt with in link:em002-7.pdf[Em002-7 Strategic aspects of procurement and open source software]. + +The Competence Centre for Federal Public Procurement (CCPP) has published a new information sheet entitled _Software Procurement and Art. 9 EMOTA https://perimap.admin.ch/goto_perimap_file_46835_download.html[[KBB-MB]]_ as well as two documents 'Sample criteria -- EMOTA procurement and open source' and 'Sample contract texts -- software development'. + +Further assistance is available on the https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[FOBL intranet] (accessible only on the federal network) with the https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[_Open Source in Procurement Guidelines_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[BBL-WL]]_ and the https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[_Checklist for Art. 9 EMOTA Blanket Exception_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[BBL-CL]]_. + +The enterprise readiness of open source can be found in the document _Selection Criteria for Enterprise-Ready Open Source Software [Gu2024]_ footnote:[See _[Gu2024\]_] or in the Bitkom guide. footnote:[See https://www.bitkom.org/Bitkom/Publikationen/Praxisempfehlungen-fuer-Open-Source-Software[Best practice recommendations for open source software | 2025 Guidelines | Bitkom e. V.], Section 3.3] + +== Findability of OSS solutions + +Various platforms allow interested organisations to find and analyse open source software before use or procurement. The resulting data provide a basis for deciding on the use or procurement of open source software. + +A compilation of minimum requirements and possibly a market analysis should serve in any case. + +=== OSS Catalogue + +The federal authorities are required to publish the source code of software they develop or commission for the performance of their duties. The OSS Catalogue footnote:[https://www.opensource.admin.ch/] lists all software developed by federal authorities since 1 January 2024 and released as open source. It provides an overview of available software and makes it easier to find and reuse open source solutions. + +If a new repository or organisation is created, it should be reported for inclusion in the OSS Catalogue by email to opensource@bk.admin.ch. + +OSS Catalogue: https://www.opensource.admin.ch + +=== OSS Directory + +The OSS Directory operated by CH Open footnote:[https://www.ossdirectory.com/en/home] makes it easy to find qualified providers offering professional support for open source software. + +Open source providers use success stories to show which users (customers) they have helped implement specific open source products. +The Directory also features current open source news from existing platforms, curated top news, events, communities, job listings and knowledge-sharing articles. The OSS Directory is available in German, English, French and Italian. All entries can be added and updated directly by registered users. + +OSS Directory: https://www.ossdirectory.com + +=== alternativeTo + +A practical tool for finding alternatives to software is 'alternativeTo - Crowdsourced software recommendations'. footnote:[https://alternativeto.net/] As the name suggests, the alternatives and their ratings have been created through crowdsourcing, i.e. the input of many individual users. alternativeTo distinguishes four types of software solutions, of which only the first is considered open source software in the sense of Art. 9 EMOTA: + +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. + +=== Open source repositories + +Currently, the world's most popular open source development platform with over 30 million users and over 100 million source code repositories is GitHub. footnote:[https://octoverse.github.com] Today, practically all IT companies, especially manufacturers of proprietary software, as well as many other types of company and organisation, have a GitHub presence. More and more public authorities -- about a dozen from Switzerland footnote:[https://government.github.com/community/#switzerland] -- also publish their own open source software on 'GitHub and Government' at https://government.github.com. This process can also be carried out with other repositories. + +Examples of other repositories are: + +* GitLab +* Bitbucket +* SourceForge +* LaunchPad + +On GitHub Insights, numerous relevant statistics of an Open Source project on GitHub can be read: + +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. + +=== Open Hub + +If information is to be collected on an open source solution that is not necessarily developed on GitHub, Open Hub by Black Duck is a good option. footnote:[https://www.openhub.net/] A wealth of important information is clearly summarised for around half a million open source projects: + +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. + +Open Hub also allows you to compare different open source projects. footnote:[https://www.openhub.net/p/_compare] This quickly provides an overview of which project has the most active community, the longest development time or the most suitable licence. + +=== Special code repositories + +Larger organisations have their own code repositories. Particularly noteworthy is, for example, the German repository for authorities opencode.de. footnote:[https://opencode.de/en/home] Repositories from other public administrations are of particular interest here. + +== Support models for OSS use + +Open source software already available on the market can basically be used in three ways: + +. Use without professional support +. Use with internal support +. Use with support from an external supplier. + +These three types of use and their advantages and disadvantages are briefly explained below. Which of these scenarios makes the most sense in a particular case must be decided on a case-by-case basis. Which support model is suitable depends on the strategic relevance of the open source software, the technical integration and the available personnel resources. + +For critical software, support must be provided professionally in any case, whether internally or externally. The planned lifecycle should also play a role in support planning. It may also be that support is obtained from multiple providers. + +=== Use without professional support + +Open source software is available on the internet to download, install and use free of charge. + +Advantages:: +* Low cost +* Rapid implementation + +Disadvantages:: +* No guaranteed support +* No liability claims + +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. + +=== Use with internal support + +A company or public sector organisation builds up expertise and resources in specific open source solutions for long-term use. This approach is particularly common in business-critical areas. + +Advantages:: +* High flexibility thanks to internal know-how +* No supplier lock-in + +Disadvantages:: +* High investment and time required to build up expertise +* Higher internal fixed costs for staff + +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. + +=== Use with support from external supplier + +An external open source provider is brought in to professionally accompany the rollout and maintenance of the open source software. This approach is particularly used in business-critical areas where in-depth know-how of the software must be immediately available. This can also include parts of or the entire release. + +Advantages:: +* Direct access to the know-how of open source developers +* Fixes and enhancements on a contract basis +* Selection of different open source suppliers +* Commitment, safeguarding against compliance risks + +Disadvantages:: +* External costs through open source suppliers +* Know-how dependency on open source supplier + +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 + +== Contact point + +There is no single point of contact in the Federal Administration that acts as an Open Source Programme Office. In principle, federal offices are responsible for implementation themselves. + +General enquiries about the OSS tools in the Em002 document set can be directed to the DTI Sector of the Federal Chancellery: opensource@bk.admin.ch. + +== Annexes + +=== Changes from previous version + +* Section 4.1: Maturity levels added +* Section 6: Procurement of OSS supplemented and adapted with the new FOBL documents +* Section 7.1: New federal OSS Catalogue (opensource.admin.ch) +* More minor editorial changes and improvements + +=== References + +The references to the Em002 document set can be found in the link:em002.pdf[Em002 Strategic Guidelines]. + +=== Abbreviations + +A list of abbreviations can be found in the main document Em002. +A glossary can be found in the document 'link:em002-6.pdf[Em002-6 Frequently Asked Questions about Publishing OSS (FAQ-OSS)]'. + +=== Business models with OSS + +Open source software is not a business model per se because, unlike with proprietary software, it is not possible to sell software under an open source licence. Nevertheless, there are different possibilities for companies to operate business models based on open source software. For example, if professional external support is to be obtained for an open source solution, then the procurement of corresponding commercial services is necessary. The four most common business models for open source software are explained below. Additional aspects of these and other business models are explained in the BITKOM guidelines _[BITKOM2023]_. + +==== Services and products based on OSS + +Companies can offer commercial services such as web hosting or cloud computing based on open source software, which would be much more expensive with proprietary software. As a result, most start-ups, online portals and e-commerce providers today build their platforms on open source software. Other technology companies such as telecommunications companies, streaming providers or even manufacturers of proprietary software integrate open source software into their software and hardware products as well as online services. This allows companies to continue to offer innovative solutions that would be difficult to achieve with proprietary software. + +==== Services for OSS + +Open source providers provide services for selected open source software. They have experienced open source developers and can therefore offer support, maintenance, operation, development, consulting, training and other services for open source software. These can be obtained from the open source supplier as a mandate or under a contract for work and services. Such services for open source software can be publicly tendered as there is no vendor lock-in. What is important for such tenders is the consideration of appropriate criteria so that the service providers that are actually competent are selected (see Sections 0 and 8, _[BITKOM2023]_ Section 3.3 and _[Gu2024]_). + +==== Subscriptions + +If services for open source software are provided in a standardised, recurring form as a kind of service level agreement (SLA), these are called subscriptions. As part of such subscriptions, companies guarantee, for example, continuous security updates, support by email or telephone, compatibility with other software and hardware products through certifications, long-term maintenance services and safeguards against legal claims (copyright, patents). In return, customers pay subscriptions per workstation or CPU, similar to licence fees or usage fees for proprietary software. Unlike proprietary software, however, subscriptions for open source software are not a prerequisite for using the software, but merely a way of paying for the added value of the services provided by the open source supplier. + +==== Dual licensing + +If a company owns the intellectual property of a software solution and all integrated open source components are under a permissive licence, then dual or multiple licensing can be applied. This allows the developer company to publish the software under a copyleft open source licence and also sell it under a proprietary licence. This commercial version is often called the Enterprise version and typically includes certain additional features, such as exclusive interface integrations or permission for buyers to integrate the software into their own proprietary products. Depending on the extent of the restrictions of the open source version, caution is advised when using dual-licensed software, as obtaining the Enterprise version may be unavoidable, making the vendor lock-in as high as with typical proprietary software. +endif::[] + +ifeval::["{lang}" == "de"] +NOTE: Dieses Dokument ist ein laufend weiterentwickelter Entwurf und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Weitere Informationen finden Sie im {url-repo}/tree/main[README]. + +== 1. Verwendung dieses Leitfadens + +Nach Artikel 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG) ist der Bund verpflichtet, den Quellcode von Software offenzulegen, die er zur Erfüllung seiner Aufgaben entwickelt oder entwickeln lässt. footnote:[SR 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/de] Der Sektor DTI der Bundeskanzlei hat aus diesem gesetzlichen Auftrag in den Strategischen Leitlinien für Open-Source-Software übergeordnete Ziele abgeleitet. + +Dieses Dokument dient als Praxisleitfaden zu den rechtlichen und strategischen Vorgaben. Es soll die Verwaltungseinheiten des Bundes bei der Nutzung, Beschaffung und Freigabe von Open-Source-Software unterstützen. Es bietet allen Interessierten einen umfassenden Überblick über das Thema und verweist auf weiterführende Informationen in den übrigen Hilfsmitteln. + +Je nach Vorwissen und Bedarf können Sie die Leitfäden jedoch auch selektiv lesen, bevor Sie zu den anderen Hilfsmitteln übergehen. Die folgende Übersicht hilft Ihnen, den passenden Einstieg zu finden. Wenn Sie unsicher sind, empfiehlt es sich, zuerst den Leitfaden durchzulesen. + +=== Absicht / Anspruchsgruppen + +Allgemeine Einführung in Open-Source-Software + +* Kapitel Begriffe +* Kapitel Potenzial und Herausforderungen +* Kapitel Auffindbarkeit von OSS-Lösungen +* link:em002-5.pdf[Em002-5 Merkblatt OSS-Hilfsmittel] +* link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] +* link:em002-6.pdf[Em002-6 FAQ zu OSS] + +Allgemeine Einführung in das EMBAG für Entscheidungsträgerinnen und Entscheidungsträger + +* link:em002-5.pdf[Em002-5 Merkblatt OSS-Hilfsmittel] +* link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung] + +Reine Beschaffung von zu nutzender Software + +* Kapitel Reifegrade für OSS in der Bundesverwaltung +* Kapitel Nutzung unveränderter Open-Source-Software +* link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und OSS] +* Merkblatt Softwarebeschaffung und Art. 9 EMBAG [KBB-MB] +* Wegleitung OSS in der Beschaffung [BBL-WL] + +Neue IT-Entwicklung und Freigabe + +* Kapitel Entwicklung mit Open-Source-Komponenten und Freigabe des Quellcodes +* Kapitel Mitarbeit in offenen Projekten (Contribution) +* link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] +* link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] + +Beschaffung von zu erstellender Software (Dienstleistung oder Werk) + +* Kapitel Reifegrade für OSS in der Bundesverwaltung +* Kapitel Entwicklung mit Open-Source-Komponenten und Freigabe des Quellcodes +* Kapitel Mitarbeit in offenen Projekten (Contribution) +* link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und OSS] +* Werkzeugkasten BBL, einschliesslich der Wegleitung Open Source in der Beschaffung +* Lern- und Vorlagenplattform der öffentlichen Verwaltung des KBB (www.perimap.admin.ch) einschliesslich Softwarebeschaffung und Art. 9 EMBAG [KBB-MB] +* Wegleitung OSS in der Beschaffung [BBL-WL] +* link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] +* link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] + +Rechtliche Abklärungen für die Freigabe + +* link:em002-6.pdf[Em002-6 Häufig gestellte Fragen zur Veröffentlichung von OSS (OSS-FAQ)] +* link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] + +Arbeitsgrundsätze für Projektleitende + +* https://www.hermes.admin.ch/[HERMES-Dokumente] +* link:em002-5.pdf[Em002-5 Merkblatt OSS-Hilfsmittel] + +Beiträge von Software an Dritte und Zusammenarbeit + +* link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] +* link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und OSS] +* link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] + +Die folgende Grafik gibt einen Überblick über die für OSS relevanten Dokumente in der Bundesverwaltung. + +include::partials/document-map.de.adoc[] + +Abbildung 1: Übersicht über die OSS-Hilfsmittel im Zusammenhang mit Art. 9 EMBAG + +== Begriffe + +Open-Source-Software:: +Software gilt als Open-Source-Software (OSS), wenn sie unter einer der rund 80 von der Open Source Initiative OSI anerkannten Lizenzen veröffentlicht wird _[OSI2024]_. Konkret legt die Definition von Open Source zehn Kriterien fest, die alle Open-Source-Lizenzen erfüllen müssen _[Pe1999]_. Diese lassen sich im Wesentlichen in vier Punkten zusammenfassen: ++ +. Die Software darf zu jedem Zweck genutzt werden. +. Der Quellcode der Software ist frei zugänglich. +. Die Software darf uneingeschränkt kopiert und verbreitet werden. +. Die Software darf unter bestimmten Bedingungen verändert und in veränderter Form verbreitet werden. + +Freie Software:: +Vor dem Begriff «Open Source» führte die Free Software Foundation (FSF) in den 1980er-Jahren das Konzept der «freien Software» ein. Im Kern erfüllt freie Software die Bedingungen von Open-Source-Software, zielt aber darauf ab, dass die Software stets frei zugänglich bleibt und nach Möglichkeit nicht in proprietäre Software integriert wird. footnote:[https://de.wikipedia.org/wiki/Freie_Software[Freie Software -- Wikipedia]] + +Proprietäre Software:: +Bei proprietärer Software entwickelt ein Anbieter Software und verkauft der Nutzerin oder dem Nutzer eine Nutzungslizenz. In der Regel kennen die Nutzenden den Softwarecode nicht und dürfen die Software weder weiterverbreiten noch verändern. Sie können die Software nur gemäss den Lizenzbedingungen (z. B. End-User Licence Agreement, EULA) gegen Bezahlung von Lizenzgebühren nutzen. So kann die Software beispielsweise nur für eine bestimmte Anzahl Nutzender oder eine bestimmte Anzahl Prozessoren zugelassen sein. footnote:[https://de.wikipedia.org/wiki/Proprietäre_Software[Proprietäre Software -- Wikipedia]] Im Gegenzug für die meist jährlichen Wartungsgebühren verpflichtet sich der Anbieter, Fehler innerhalb einer angemessenen Frist zu beheben und die Software laufend weiterzuentwickeln. + +Lizenz:: +Eine Lizenz ist ein Dokument, das verbindliche Vorgaben für die Nutzung und Verbreitung von Software enthält. Bei Open Source werden in der Regel Lizenzen verwendet, die der OSI entsprechen. footnote:[https://opensource.org/[Open Source Initiative]] + +Community:: +Eine Community im Kontext von Open-Source-Software ist breit definiert. Es kann sich um ein loses Ökosystem oder um eine Struktur mit Governance handeln, welche die Software entwickelt. Das Dokument link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] behandelt dieses Thema. Mitglieder der Community können das Produkt gemeinsam führen, entwickeln, testen, übersetzen, Rückmeldungen geben oder die Software einfach nutzen. + +Rechte Dritter:: +Auch bei Open-Source-Software können Schutzrechte bestehen (Urheberrecht, Markenrecht, Patentrecht) und von Dritten geltend gemacht werden, z. B. bei der Nutzung von Quellcode, der von Dritten erstellt wurde. + +Ausnahmen nach EMBAG:: +Ausnahmen nach Art. 9 Abs. 1 EMBAG sind Rechte Dritter und sicherheitsrelevante Gründe. Beide werden in Kapitel 3 von link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] behandelt. + +Quellcode:: +In der Informatik ist der Quellcode (oder Quelltext) der für Menschen lesbare Text eines Computerprogramms, der in einer Programmiersprache verfasst ist. footnote:[https://de.wikipedia.org/wiki/Quelltext[Quelltext -- Wikipedia]] + +Veröffentlichung:: +Veröffentlichung bezeichnet in erster Linie die Freigabe des Quellcodes unter einer offenen Lizenz nach OSI. Aus praktischen Gründen gehören dazu in der Regel auch die Dokumentation und automatisierte Anweisungen, um die Anwendung aus dem Quellcode zu erstellen. Automatisierte Tests und Testdokumente sind üblicherweise ebenfalls enthalten. Damit sich eine Community entwickeln kann, wird eine Plattform eingesetzt, die dann mehrere Funktionen einer Entwicklungsplattform übernimmt (Build, Test, Support). + +Digitale Souveränität:: +Wir verwenden die Definition aus dem Bericht zur digitalen Souveränität des EDA [St2024]: «Die digitale Souveränität eines Staates oder einer Organisation umfasst zwingend die vollständige Kontrolle über gespeicherte und verarbeitete Daten sowie die selbstständige Entscheidung darüber, wer darauf zugreifen darf. Sie umfasst weiter die Fähigkeit, technologische Komponenten und Systeme eigenständig zu entwickeln, zu verändern, zu kontrollieren und zu ergänzen.» + +Repository:: +Ein Repository ist ein Speicherort, den ein Versionsverwaltungswerkzeug für Dateien und Metadaten zur Codebasis nutzt. Repositories erlauben es mehreren Mitwirkenden, an denselben Dateien zu arbeiten und verschiedene Versionen abzulegen. Die meisten ermöglichen zudem Issue-Tracking, Release-Management, automatisierte Builds und Dokumentation. + +Fork:: +Ein Fork footnote:[https://de.wikipedia.org/wiki/Abspaltung_(Softwareentwicklung)[Abspaltung (Softwareentwicklung) -- Wikipedia]] eines Open-Source-Projekts ist der Vorgang, eine eigenständige Entwicklung des ursprünglichen Projekts aufzubauen. + +Contributor Licence Agreement (CLA):: +Ein Contributor Licence Agreement footnote:[https://en.wikipedia.org/wiki/Contributor_License_Agreement[Contributor License Agreement -- Wikipedia]] ist ein Dokument, das die Bedingungen beschreibt, unter denen geistiges Eigentum zu einem Projekt oder Vorhaben beigetragen werden kann. + +Source Code Management (SCM):: +Source Code Management footnote:[https://de.wikipedia.org/wiki/Versionsverwaltung[Versionsverwaltung -- Wikipedia]], auch Versionsverwaltung genannt, ist ein Werkzeug, das Änderungen und Versionsnummern insbesondere in der Softwareentwicklung wirksam verwaltet. Durchgesetzt hat sich die freie Software Git footnote:[https://de.wikipedia.org/wiki/Git[Git -- Wikipedia]] zur Verwaltung verteilter SCM. + +Open Source Software Development (OSSD):: +Bei der Open-Source-Softwareentwicklung (OSSD) footnote:[https://en.wikipedia.org/wiki/Open-source_software_development[Open-source software development -- Wikipedia]] wird zusätzlich zur Veröffentlichung des Quellcodes der gesamte Entwicklungsprozess öffentlich durchgeführt. Alles von den Anforderungen (Issues) bis zum Quellcode ist transparent. OSSD wird unterstützt durch öffentliche Kommunikationswerkzeuge (Mailinglisten, Foren usw.), ein Versionsverwaltungssystem (Git), Fehler- und Funktionslisten, eine Roadmap und Entwicklerwerkzeuge. + +Software Package Data Exchange (SPDX):: +Software Package Data Exchange (SPDX) footnote:[https://en.wikipedia.org/wiki/Software_Package_Data_Exchange[Software Package Data Exchange -- Wikipedia]] beschreibt ein Standardformat für Software Bill of Materials (SBOM) mit dem Ziel, den korrekten Umgang mit freier Software oder Open-Source-Software zu erleichtern. + +Copyleft-Effekt:: +Steht Software unter einer Lizenz mit Copyleft-Bestimmung, so muss jede Veränderung oder Erweiterung des Quellcodes wieder unter der Lizenz der veränderten Open-Source-Software freigegeben werden (siehe auch link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung]). + +== Potenzial und Herausforderungen + +In der heutigen IT-Welt besteht ein enormes Potenzial für Open-Source-Software. Gleichzeitig bringt der Einsatz von Open-Source-Lösungen auch Herausforderungen mit sich. Diese beiden Seiten werden im folgenden Abschnitt näher erläutert. Die Angaben beruhen unter anderem auf den Ergebnissen der Open Source Studie Schweiz 2018, 2021 und 2024 der Universität Bern, in der die Befragten Auskunft über die erkannten Vor- und Nachteile von Open-Source-Software gaben. + +=== Potenzial von Open-Source-Software + +Die folgenden Punkte beschreiben das Potenzial, das sich bei der Nutzung und Freigabe von Open-Source-Software realisieren lässt. + +{empty}1. Digitale Souveränität:: +Dabei geht es um die Fähigkeit, digitale Dienste zu nutzen und zu kontrollieren. Die digitale Souveränität erstreckt sich über den gesamten Lebenszyklus eines digitalen Systems. Open-Source-Software fördert die digitale Souveränität, da sie Austauschbarkeit, Gestaltungsfreiheit und Einfluss garantiert. footnote:[Wir verwenden die Definition aus _[St2024\]_: «Die digitale Souveränität eines Staates oder einer Organisation umfasst zwingend die vollständige Kontrolle über gespeicherte und verarbeitete Daten sowie die selbstständige Entscheidung darüber, wer darauf zugreifen darf. Sie umfasst weiter die Fähigkeit, technologische Komponenten und Systeme eigenständig zu entwickeln, zu verändern, zu kontrollieren und zu ergänzen.»] + +{empty}2. Keine Lizenzgebühren:: +Für die Nutzung von Open-Source-Software fallen keine Lizenzkosten an. Beim Bezug komplexer Open-Source-Standardsoftwarepakete kann es jedoch sinnvoll sein, kostenpflichtige Support-Subskriptionen zu erwerben. + +{empty}3. Kosteneinsparungen durch Zusammenarbeit mit anderen Nutzenden:: +Da Software unter einer Open-Source-Lizenz uneingeschränkt genutzt und weiterentwickelt werden darf, können Kosten von Weiterentwicklungen geteilt oder bestehende Zusatzentwicklungen anderer Verwaltungseinheiten nach dem Grundsatz «einmal entwickeln – mehrfach nutzen» übernommen werden. Gleichzeitig besteht die Möglichkeit, von den Erfahrungen und Entwicklungen anderer zu profitieren. + +{empty}4. Community-Aufbau und Wissensaustausch:: +Open-Source-Software erleichtert den Aufbau von Communities und den Wissensaustausch, beispielsweise zwischen den verschiedenen föderalen Ebenen der Schweiz. Software kann gemeinsam weiterentwickelt, Fehler können behoben und individuelle Erfahrungen geteilt werden. Der verstärkte Wissensaustausch zwischen verschiedenen Verwaltungseinheiten führt zu einem besseren Verständnis dafür, woran andere arbeiten, sodass Doppelspurigkeiten vermieden werden und sich die besten Lösungen verbreiten können. + +{empty}5. Geringere Herstellerabhängigkeit:: +Vendor-Lock-in (Abhängigkeit von Softwarelieferanten) gilt in der Informatik als sehr hoch. Der Einsatz von Software unter einer Open-Source-Lizenz verringert den Vendor-Lock-in, da Betrieb, Wartung, Support, Weiterentwicklung und weitere Dienstleistungen für Open-Source-Software offen ausgeschrieben werden können. Statt aufgrund eines Vendor-Lock-in ein ganzes System vollständig neu zu beschaffen, können Erweiterungen oder Lebenszyklusleistungen für eine OSS-Lösung auch separat ausgeschrieben werden. Dadurch lassen sich erhebliche Migrationskosten einsparen. + +{empty}6. Offene Standards und Interoperabilität:: +Bei Open-Source-Software ist die Kompatibilität mit anderen Softwarelösungen und IT-Systemen (Interoperabilität) in der Regel höher als bei proprietärer Software. Open-Source-Lösungen verwenden zudem fast ausschliesslich offene Datenformate, weshalb sie sich einfach mit anderen Systemen austauschen lassen. + +{empty}7. Transparenz über den Aufbau der Software:: +Da die Software auch in Form des Quellcodes vorliegt, kann ihre Qualität beispielsweise durch externe Reviews geprüft werden. Zudem lässt sich auf Basis des Quellcodes Dokumentation erstellen (z. B. im Hinblick auf neue Ausschreibungen für Weiterentwicklungsleistungen oder die Ablösung von Open-Source-Software am Ende ihrer Nutzungsdauer). + +{empty}8. Sicherheit und Vertrauen durch Transparenz:: +Aufgrund der Offenheit des Quellcodes kann die Sicherheit von Open-Source-Software höher sein als jene proprietärer Software. Zudem ist es deutlich schwieriger, Hintertüren und andere Lücken in Open-Source-Software einzubauen, was zu mehr Vertrauen in die Software führt. + +{empty}9. Höhere Qualität und Modularität des Codes:: +Die Qualität von Open-Source-Software kann höher sein als jene proprietärer Software, weil die Motivation, guten Code zu schreiben, grösser sein dürfte, wenn Entwicklerinnen und Entwickler wissen, dass ihr Quellcode veröffentlicht wird. Zudem sind Open-Source-Lösungen tendenziell stark modular aufgebaut, sodass sich einzelne Module leicht ersetzen und die übrigen Module weiterverwenden lassen. footnote:[Ein weiterer Sicherheitsaspekt ist, dass sich die verwendeten Bibliotheken (einschliesslich Abhängigkeiten) leichter dokumentieren lassen als bei proprietärer Software. Das wiederum bedeutet, dass Schwachstellen beim Auftreten rasch erkannt und behoben werden können (siehe auch SBOM).] + +{empty}10. Einfache Anpassung:: +Der Zugriff auf den Quellcode erlaubt es den Nutzenden, Weiterentwicklungen selbst oder durch externe Lieferanten vorzunehmen. So kann die Software rasch an die eigenen Bedürfnisse angepasst werden. + +{empty}11. Rasche Innovation und Integration:: +Open-Source-Software wird durch die Community rasch und kontinuierlich weiterentwickelt. So werden neue Technologien und Datenstandards häufig als Open-Source-Programmbibliotheken veröffentlicht. Dies ermöglicht die rasche Umsetzung innovativer Softwarelösungen. + +{empty}12. Arbeitgeberattraktivität:: +Der Einsatz moderner Open-Source-Technologien und die informelle Zusammenarbeit mit internationalen Communities fördern die Motivation der Mitarbeitenden und erhöhen damit die Arbeitgeberattraktivität, was wiederum die Rekrutierung junger, qualifizierter Fachpersonen erleichtert. + +=== Herausforderungen im Umgang mit OSS + +Im Folgenden werden die typischen Herausforderungen beschrieben, die in der Praxis mit Open-Source-Software auftreten, und einige Lösungsansätze skizziert. Auf allgemeine Herausforderungen, die sämtliche Software betreffen, gehen wir an dieser Stelle nicht ein (z. B. die Notwendigkeit der Prüfung auf Cybersicherheit und die Notwendigkeit, für kritische Software angemessenen Support sicherzustellen). + +{empty}1. Hohe Wechselkosten durch bestehende Abhängigkeiten:: +Die Ablösung proprietärer Software durch Open-Source-Lösungen kann sehr kostspielig sein, wenn die Anwendung durch Schnittstellenintegration oder andere Abhängigkeiten eng im bestehenden IT-System eingebettet ist. Diese Wechselkosten führen dazu, dass sich die Einführung von Open-Source-Software oft erst am Ende des Lebenszyklus der proprietären Software lohnt. + +{empty}2. Fehlende Funktionen oder keine passende Open-Source-Lösung:: +Bei der Beschaffung von Standardsoftware kann es vorkommen, dass es zur (bisherigen) proprietären Lösung keine Open-Source-Alternative gibt oder nur eine funktional unzureichende. Als Lösungsansatz besteht die Möglichkeit, die fehlenden Funktionen gemeinsam mit anderen Nutzenden der Open-Source-Software zu entwickeln und dem Open-Source-Projekt hinzuzufügen. footnote:[Für solche neuen Funktionen sind die Projekt- oder Applikationsverantwortlichen zuständig. Wie genau dies geschieht, bestimmt das Projekt. Em002-2 und Em002-4 helfen bei detaillierten Entscheiden. Je nach Umfang der Funktion kann es sinnvoll sein, die Anleitung nicht vollständig zu durchlaufen. Beschaffungsrechtliche Aspekte für Ressourcen sind zu beachten.] + +{empty}3. Höhere Integrationskosten:: +Kurzfristige Kosteneinsparungen durch wegfallende Lizenzen beim Einsatz von Open-Source-Software werden oft durch höhere Integrationskosten aufgewogen. Daher ist es wichtig zu erkennen, dass der professionelle Einsatz von Open-Source-Software nicht «gratis» ist, sondern tatsächlich interne oder externe Kosten verursacht. + +{empty}4. Unklare Verantwortlichkeiten und Support:: +Open-Source-Software wird häufig für den fehlenden Support und die fehlende Wartung durch externe Unternehmen kritisiert. Inzwischen gibt es jedoch eine Vielzahl von Anbietern, die kommerzielle Leistungen (Long-Term-Support, laufende Wartung, Weiterentwicklung, Haftung und Gewährleistung usw.) für Open-Source-Lösungen anbieten. Die verschiedenen Geschäftsmodelle mit Open-Source-Software werden in Anhang D und die verschiedenen Supportmodelle in Kapitel 8 erläutert. Eine aktuelle Übersicht über Open-Source-Dienstleister und ihre Leistungen findet sich im Open Source Directory (https://www.ossdirectory.com) oder in der OSS-Studie 2024 footnote:[https://www.oss-studie.ch/[OSS-Studie]] _[OSS2024]_. + +{empty}5. Kleiner Markt mit wenigen Anbietern:: +Da bestimmte Open-Source-Anwendungen, etwa Desktop-Anwendungen, in der Regel wenig oder keinen Support und keine Wartung benötigen, kann der Markt für Open-Source-Anbieter von Support und Wartung klein sein. In diesem Fall kann eine Ausschreibung für Open-Source-Softwaredienstleistungen dazu beitragen, einen Markt zu schaffen, der den Wettbewerb zwischen den Anbietern erhöht. Das Bestehen einer breiten Entwicklungs-Community für die betreffende Software und die Qualität der Entwicklungsdokumentation sind bei der Ausschreibung solcher Leistungen von praktischer Bedeutung. + +{empty}6. Geringe Sichtbarkeit:: +Communities von Open-Source-Projekten konzentrieren sich vor allem auf die Produktentwicklung und selten auf Marketing. Hersteller proprietärer Software investieren hingegen stark in die Vermarktung und den Verkauf ihrer Produkte. Diese fehlende Werbung für Open-Source-Software erweckt oft den falschen Eindruck, dass es zu proprietären Produkten keine Alternative gebe. Es gibt jedoch Plattformen wie alternativeTo footnote:[https://alternativeto.net/], die einen Überblick über Lösungen für bestimmte Aufgaben bieten (mehr zu OSS-Alternativen im Kapitel «Auffindbarkeit von OSS-Lösungen»). + +{empty}7. Fehlende Akzeptanz bei Endnutzenden:: +Aufgrund unterschiedlicher Benutzeroberflächen, fehlender Funktionen, geringer Benutzerfreundlichkeit und wenig Werbung für Open-Source-Software fehlt bei bestimmten Open-Source-Produkten die Akzeptanz der Endnutzenden. Geeignete Kommunikations-, Dokumentations- und Schulungsangebote können dieser Herausforderung entgegenwirken. Auch der Umstand, dass Open-Source-Software nach den Bedürfnissen der Nutzenden weiterentwickelt werden kann, kann zu höherer Akzeptanz führen. + +{empty}8. Wenig oder kein internes Fachwissen:: +Open-Source-Lösungen entwickeln sich rasch weiter und erfordern gleichzeitig ein vertieftes technisches Verständnis. So kann es vorkommen, dass interne Mitarbeitende wenig oder kein Fachwissen zu bestimmter Open-Source-Software haben. Internes OSS-Know-how lässt sich durch Weiterbildung und Möglichkeiten zum Selbststudium über Online-Quellen sowie durch den Aufbau interner Wikis usw. aufbauen. + +{empty}9. Schwierige Zukunftseinschätzung:: +Für Aussenstehende einer Open-Source-Community ist oft schwer erkennbar, wie sich das Projekt künftig entwickeln wird. Daher ist es wichtig, die künftige Entwicklung einer Open-Source-Lösung realistisch einschätzen zu können. Das Kapitel «Open Hub» stellt hierzu die Plattform Open Hub vor, die eine Einschätzung der Aktivität und Heterogenität der Entwickler-Community erlaubt. Dadurch lässt sich die künftige Entwicklung eines Open-Source-Projekts besser beurteilen. + +{empty}10. Rechtliche Unsicherheiten:: +Die Vielzahl unterschiedlicher Open-Source-Lizenzen und die bislang geringe Zahl von Gerichtsurteilen zu Auslegungsfragen können bei Open-Source-Software mitunter zu rechtlichen Unsicherheiten führen. Dieser Praxisleitfaden soll einen Überblick über die wichtigsten Open-Source-Lizenzen sowie deren Eigenschaften und Kompatibilitäten geben. Quellen für vertiefte Antworten auf rechtliche Fragen finden sich in den Dokumenten link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] und link:em002-6.pdf[Em002-6 FAQ zu OSS und Art. 9 EMBAG]. + +{empty}11. Zu umfangreiches Angebot an Open-Source-Software:: +Die Zahl der Open-Source-Softwareprodukte hat in den letzten Jahren stark zugenommen. Potenzielle Nutzende von Open-Source-Software beklagen daher die Vielzahl bestehender Open-Source-Lösungen auf dem Markt. Aus diesem Grund stellt das Kapitel «Auffindbarkeit von …» zwei Plattformen vor, alternativeTo und Open Hub, die einen Vergleich von Open-Source-Lösungen ermöglichen. + +{empty}12. Koordinationsaufwand bei gemeinsamer Entwicklung:: +Wenn sich die Bundesverwaltung an gemeinsamen Projekten beteiligt und dazu beiträgt, entsteht innerhalb dieser Zusammenarbeit ein Koordinationsaufwand, aber auch dann, wenn eine Community ins Boot geholt werden muss. Idealerweise lohnt sich dieser Mehraufwand dennoch dank einer verbesserten Lösung, grösserer Akzeptanz oder verstärkter Beteiligung Dritter. + +== Konstellationen für die Nutzung von und die Arbeit mit OSS + +=== Reifegrade für OSS in der Bundesverwaltung + +Bei der Nutzung und Entwicklung von OSS in der Bundesverwaltung bestehen verschiedene Konstellationen hinsichtlich der Pflichten im Zusammenhang mit Open-Source-Lizenzen: Ein typisches Reifegradmodell footnote:[Reifegradmodell in Anlehnung an https://todogroup.org/resources/guides/a-guide-to-outbound-open-source-software/#maturity-levels] für die Einführung von Open Source in Organisationen kann folgendermassen aussehen: + +. Denial -- keine oder unbewusste Nutzung von Open-Source-Software +. Consumption -- passive Nutzung von Open-Source-Software +. Participation -- Engagement in Open-Source-Communities +. Contribution -- pragmatische Beiträge zu Open-Source-Projekten +. Leadership -- strategisches Engagement mit Open Source zur Steigerung des Geschäftswerts footnote:[Creation wird nicht erwähnt, da Art. 9 EMBAG dies direkt verlangt.] + +[options="header",cols="1,2a"] +|=== +|Konstellation |Auswirkung + +|Die blosse *Nutzung* bestehender Open-Source-Software (ohne Veränderung des Codes). +|Es besteht *keine Pflicht*, den Quellcode zu teilen. + +|Die *vollständige Neuentwicklung* von Software, die unter einer Open-Source-Lizenz veröffentlicht werden soll. +|*In diesem Fall besteht völlige Freiheit bezüglich der Lizenz, unter der die Software veröffentlicht wird.* Für den Bund ist das Dokument link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] heranzuziehen. Die Dokumente link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] sind zu beachten. + +|*Weiterentwicklung* (intern oder extern) mit bestehenden Open-Source-Komponenten (mit oder ohne Copyleft-Effekt footnote:[Erläuterung des Begriffs «Copyleft» in link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung]]), solange die Software *ausschliesslich innerhalb derselben Organisation* genutzt und nicht weiterverbreitet wird. +|Die OSS-Komponenten können beliebig mit Drittkomponenten kombiniert werden. Aus der Lizenz ergibt sich grundsätzlich keine Veröffentlichungspflicht, solange die Software ausschliesslich innerhalb derselben Organisation genutzt und nicht verbreitet wird (Ausnahme: AGPL). Da rechtlich nicht abschliessend geklärt ist, wie weit der Begriff «Verbreitung innerhalb derselben Organisation» reicht, gilt dieses Szenario für OSS-Komponenten mit Copyleft-Effekt nur in Ausnahmefällen. Ziehen Sie in diesen Fällen den Rechtsdienst Ihrer Organisation bei. Siehe link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] und link:em002-6.pdf[Em002-6 FAQ zu OSS und Art. 9 EMBAG]. Die Dokumente link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] sind zu beachten. *Da nach Art. 9 EMBAG eine Veröffentlichungspflicht besteht, müssen die Änderungen erneut freigegeben werden. Am einfachsten geschieht dies als Änderungen am bestehenden Open-Source-Projekt.* + +|*Weiterentwicklung* (intern oder extern) *ausschliesslich mit* bestehenden Open-Source-*Komponenten ohne Copyleft-Effekt*, wenn die Software extern verbreitet werden soll (z. B. an Kantone). +|Die OSS-Komponenten können beliebig mit Drittkomponenten kombiniert werden, und aus den Lizenzen ergibt sich keine Veröffentlichungspflicht (siehe auch link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung]). *Im Rahmen von Art. 9 EMBAG ist die Freigabe jedoch obligatorisch. Idealerweise erfolgt die Freigabe über das bestehende Projekt (kein Fork).* Die Dokumente link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] sind zu beachten. + +|*Weiterentwicklung* (intern oder extern) mit bestehenden Open-Source-Komponenten *mit Copyleft-Effekt*, wenn die Software extern verbreitet werden soll (z. B. an Kantone). +|*Aufgrund der Copyleft-Lizenz besteht eine Veröffentlichungspflicht* (siehe auch link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] zum Copyleft-Effekt). Die Dokumente link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] sind zu beachten. + +|*Beitrag* zu einem bestehenden Open-Source-Projekt. +|*Nach EMBAG besteht grundsätzlich eine Veröffentlichungspflicht. Es gelten die Governance und die Lizenz des Projekts.* Die Dokumente link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] sind zu beachten. + +|*Gemeinsame Entwicklung* eines neuen oder bestehenden Projekts mit einer Community und Kostenteilung. +|*Nach EMBAG besteht grundsätzlich eine Veröffentlichungspflicht.* Die Dokumente link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS], link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] dienen *dem Aufbau des Projekts und seiner Governance.* + +|*Sämtliche Varianten der Entwicklung oder Weiterentwicklung* erfolgen *über einen Lieferanten oder beauftragte Dritte.* +|*Nach EMBAG besteht grundsätzlich eine Veröffentlichungspflicht.* Grundlage bilden link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS], link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community]. Wenn möglich sollten die Voraussetzungen für die Veröffentlichung bereits im Beschaffungsprozess geschaffen und nötigenfalls die Anforderungen an die Softwarefreigabe dem Lieferanten bzw. den Dritten mitgeteilt werden. +|=== + +=== Nutzung unveränderter Open-Source-Software + +Bei der Nutzung von Open-Source-Software ist grundsätzlich nicht relevant, unter welcher Open-Source-Lizenz sie veröffentlicht wird, da alle Open-Source-Lizenzen (siehe Kapitel 2 «Begriffe») die uneingeschränkte Nutzung von Open-Source-Software erlauben, unabhängig davon, auf wie vielen Arbeitsplätzen, mit wie vielen gleichzeitig angemeldeten Nutzenden, auf wie vielen Servern und Prozessoren usw. die Software eingesetzt wird. + +Bei der Nutzung unveränderter Open-Source-Software entstehen *keine Veröffentlichungspflichten*, auch nicht bei Programmen, die unter einer Lizenz mit striktem Copyleft-Effekt stehen (Ausnahme: AGPL-Lizenz, Affero General Public Licence). + +Solange Open-Source-Software durch interne Leistungserbringer des Bundes eingeführt und betrieben wird, kann dies *ohne öffentliches Beschaffungsverfahren* erfolgen, denn «die OSS-Lizenz allein kostet die Beschaffungsstelle in der Regel nichts und ist daher für sich genommen nicht beschaffungsrelevant». + +Wird ein externer Leistungserbringer für Wartung, Support und weitere Dienstleistungen für die Open-Source-Software beauftragt, so sind die Vorgaben des öffentlichen Beschaffungsrechts zu beachten. Verschiedene Supportvarianten werden in Kapitel 9 beschrieben. Wichtig ist zudem, bei der Beschaffung von Open-Source-Software geeignete Eignungs- und Zuschlagskriterien zu verwenden. Die Grundlagen dazu werden in Kapitel 8 erläutert. + +=== Entwicklung mit Open-Source-Komponenten und Freigabe des Quellcodes + +Mit der Veröffentlichungspflicht nach Art. 9 EMBAG ist hier das in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] beschriebene Vorgehen zu befolgen. +Die Dokumente link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] sind nötigenfalls ebenfalls beizuziehen. Ziel ist es, das Projekt anhand der drei Checklisten _link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1], link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2], link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3]_ kontrolliert freizugeben. + +=== Mitarbeit in offenen Projekten (Contribution) + +Mögliche Überlegungen zum Beitrag der Bundesverwaltung an offene, bereits bestehende Projekte sind im BITKOM-Leitfaden _[BITKOM2024]_ Kapitel 4.2 aufgeführt. footnote:[Siehe https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html, Kapitel 4.2.] Je nach Bedeutung des Projekts für die Bundesverwaltung ist zu prüfen, wie viel Verantwortung das jeweilige Amt übernehmen will und kann. + +Die Mitarbeit in offenen Projekten und die direkte Entwicklung in offenen Projekten können ebenfalls anhand der Dokumente für die Freigabe erfolgen. Im Mittelpunkt stehen link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] und die zugehörige Checkliste _link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]_. + +== Eigenschaften und Auswahl von Open-Source-Lizenzen + +Die Eigenschaften und die Auswahl von Open-Source-Lizenzen werden im Dokument link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] beschrieben. + +== OSS-Beschaffung + +Strategische Fragen zu Beschaffung und OSS werden in link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und Open-Source-Software] behandelt. + +Das Kompetenzzentrum Beschaffungswesen Bund (KBB) hat ein neues Merkblatt _Softwarebeschaffung und Art. 9 EMBAG https://perimap.admin.ch/goto_perimap_file_46835_download.html[[KBB-MB]]_ sowie zwei Dokumente «Musterkriterien – Beschaffung EMBAG und Open Source» und «Mustervertragstexte – Softwareentwicklung» veröffentlicht. + +Weitere Unterstützung steht im https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[BBL-Intranet] (nur im Bundesnetz zugänglich) mit der https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[_Wegleitung Open Source in der Beschaffung_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[BBL-WL]]_ und der https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[_Checkliste Integral-Ausnahme Art. 9 EMBAG_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[BBL-CL]]_ zur Verfügung. + +Die Enterprise-Tauglichkeit von Open Source findet sich im Dokument _Selection Criteria for Enterprise-Ready Open Source Software [Gu2024]_ footnote:[Siehe _[Gu2024\]_] oder im Bitkom-Leitfaden. footnote:[Siehe https://www.bitkom.org/Bitkom/Publikationen/Praxisempfehlungen-fuer-Open-Source-Software[Praxisempfehlungen für Open-Source-Software | Leitfaden 2025 | Bitkom e. V.], Kapitel 3.3] + +== Auffindbarkeit von OSS-Lösungen + +Verschiedene Plattformen erlauben es interessierten Organisationen, Open-Source-Software vor der Nutzung oder Beschaffung zu finden und zu analysieren. Die daraus gewonnenen Daten bilden eine Grundlage für den Entscheid über den Einsatz oder die Beschaffung von Open-Source-Software. + +Eine Zusammenstellung von Mindestanforderungen und gegebenenfalls eine Marktanalyse sollten in jedem Fall dienen. + +=== OSS-Katalog + +Die Bundesbehörden sind verpflichtet, den Quellcode von Software offenzulegen, die sie zur Erfüllung ihrer Aufgaben entwickeln oder entwickeln lassen. Der OSS-Katalog footnote:[https://www.opensource.admin.ch/] listet sämtliche Software auf, die seit dem 1. Januar 2024 von Bundesbehörden entwickelt und als Open Source freigegeben wurde. Er bietet einen Überblick über verfügbare Software und erleichtert das Auffinden und die Wiederverwendung von Open-Source-Lösungen. + +Wird ein neues Repository oder eine neue Organisation erstellt, so ist dies für die Aufnahme in den OSS-Katalog per E-Mail an opensource@bk.admin.ch zu melden. + +OSS-Katalog: https://www.opensource.admin.ch + +=== OSS Directory + +Das von CH Open betriebene OSS Directory footnote:[https://www.ossdirectory.com/de/home] erleichtert das Auffinden qualifizierter Anbieter, die professionellen Support für Open-Source-Software anbieten. + +Open-Source-Anbieter zeigen anhand von Erfolgsgeschichten, welchen Nutzenden (Kunden) sie bei der Einführung bestimmter Open-Source-Produkte geholfen haben. +Das Directory bietet zudem aktuelle Open-Source-News aus bestehenden Plattformen, kuratierte Top-News, Veranstaltungen, Communities, Stellenangebote und Artikel zum Wissensaustausch. Das OSS Directory ist auf Deutsch, Englisch, Französisch und Italienisch verfügbar. Sämtliche Einträge können von registrierten Nutzenden direkt hinzugefügt und aktualisiert werden. + +OSS Directory: https://www.ossdirectory.com + +=== alternativeTo + +Ein praktisches Werkzeug zum Auffinden von Alternativen zu Software ist «alternativeTo – Crowdsourced software recommendations». footnote:[https://alternativeto.net/] Wie der Name andeutet, sind die Alternativen und ihre Bewertungen durch Crowdsourcing entstanden, also durch die Eingaben vieler einzelner Nutzender. alternativeTo unterscheidet vier Arten von Softwarelösungen, von denen nur die erste als Open-Source-Software im Sinne von Art. 9 EMBAG gilt: + +Free open source:: +Software, die unter einer Open-Source-Lizenz veröffentlicht wird. + +Free:: +Kostenlose Software (Freeware), deren Quellcode jedoch nicht frei verfügbar ist und nicht verändert werden darf. + +Freemium:: +Solche Software bietet eine kostenlose und eine Premium-Version, wobei alle wichtigen Funktionen bereits in der kostenlosen Version verfügbar sind. Nicht zu dieser Kategorie gehört Software, die während einer bestimmten Zeit kostenlos getestet werden kann (z. B. eine 30-Tage-Testversion); diese fällt in die Kategorie «Commercial». + +Commercial:: +Dabei handelt es sich um proprietäre Software, für deren Nutzung Lizenzgebühren erhoben werden. + +=== Open-Source-Repositories + +Die derzeit weltweit beliebteste Open-Source-Entwicklungsplattform mit über 30 Millionen Nutzenden und über 100 Millionen Quellcode-Repositories ist GitHub. footnote:[https://octoverse.github.com] Heute haben praktisch alle IT-Unternehmen, insbesondere Hersteller proprietärer Software, sowie viele andere Arten von Unternehmen und Organisationen eine GitHub-Präsenz. Immer mehr Behörden – rund ein Dutzend aus der Schweiz footnote:[https://government.github.com/community/#switzerland] – veröffentlichen ihre eigene Open-Source-Software zudem auf «GitHub and Government» unter https://government.github.com. Dieser Vorgang lässt sich auch mit anderen Repositories durchführen. + +Beispiele für andere Repositories sind: + +* GitLab +* Bitbucket +* SourceForge +* LaunchPad + +Auf GitHub Insights lassen sich zahlreiche relevante Statistiken eines Open-Source-Projekts auf GitHub ablesen: + +Pulse:: +Überblick über die jüngsten Aktivitäten eines Open-Source-Projekts auf GitHub: Zusammenfassung der wichtigsten Informationen zu Entwicklungsintensität, Heterogenität der Community, offenen Meldungen, Verbesserungen (Pull Requests) usw. + +Contributors:: +Darstellung, welche Entwicklerinnen und Entwickler wann aktiv waren. Dies ist ein wichtiger Hinweis darauf, ob alles von einer Person abhängt oder ob eine grössere Community dahintersteht. + +Commits:: +Darstellung, welche Beiträge in welchem Zeitraum zu diesem Open-Source-Projekt geleistet wurden. + +Code frequency:: +Visualisierung, wie viel Quellcode wann hinzugefügt oder entfernt wurde. + +Dependency graph:: +Abhängigkeiten des Open-Source-Projekts von anderer Open-Source-Software (z. B. relevant für das Erkennen von Sicherheitslücken und Updates). + +Network:: +Darstellung, wann welche Entwicklerin bzw. welcher Entwickler zu welchem Entwicklungszweig beigetragen hat. + +Forks:: +Liste aller Kopien des Open-Source-Projekts auf GitHub. Indikator für die Beliebtheit und Verbreitung der Open-Source-Software. + +=== Open Hub + +Sollen Informationen zu einer Open-Source-Lösung gesammelt werden, die nicht zwingend auf GitHub entwickelt wird, bietet sich Open Hub von Black Duck an. footnote:[https://www.openhub.net/] Für rund eine halbe Million Open-Source-Projekte werden zahlreiche wichtige Informationen übersichtlich zusammengefasst: + +Project Summary:: +Eine kurze Beschreibung des Open-Source-Projekts. + +In a Nutshell:: +Die wichtigsten Fakten zu einem Open-Source-Projekt, etwa die Zahl der Commits, der Mitwirkenden und der Codezeilen sowie die meistverwendete Programmiersprache, der Zeitpunkt des ersten Commits und der letzten Änderung. Zudem wird eine Einschätzung der Codebasis und der Grösse des Entwicklungsteams aufgeführt (z. B. «Mozilla Firefox has a well-established, mature codebase maintained by a very large development team with stable Y-O-Y commits»). + +Quick Reference:: +Enthält Informationen zur Organisation, Links zum Projekt und zum Code sowie Hinweise auf ähnliche Projekte. + +Licences:: +Gibt an, unter welcher Lizenz bzw. welchen Lizenzen das Open-Source-Projekt lizenziert ist und welche Folgen damit verbunden sind. + +Project Security:: +Liefert Angaben zur Sicherheit und zu Schwachstellen des Open-Source-Projekts. + +Code:: +Eine Grafik, welche die Zahl der Codezeilen im Zeitverlauf zeigt, aufgeschlüsselt nach Programmiersprache. + +Activity:: +Eine Grafik, welche die Zahl der Commits pro Monat zeigt. Zusätzlich wird eine Zusammenfassung der letzten 30 Tage und 12 Monate bereitgestellt. + +Community:: +Eine Grafik, welche die Zahl der aktiven Mitwirkenden pro Monat zeigt. Zudem wird eine Bewertung des Projekts auf einer Fünf-Sterne-Skala angezeigt. + +Open Hub erlaubt es auch, verschiedene Open-Source-Projekte zu vergleichen. footnote:[https://www.openhub.net/p/_compare] Dies verschafft rasch einen Überblick darüber, welches Projekt die aktivste Community, die längste Entwicklungszeit oder die am besten geeignete Lizenz hat. + +=== Besondere Code-Repositories + +Grössere Organisationen verfügen über eigene Code-Repositories. Besonders zu erwähnen ist beispielsweise das deutsche Repository für Behörden opencode.de. footnote:[https://opencode.de/de/home] Von besonderem Interesse sind hier Repositories anderer öffentlicher Verwaltungen. + +== Supportmodelle für die OSS-Nutzung + +Bereits auf dem Markt verfügbare Open-Source-Software kann grundsätzlich auf drei Arten genutzt werden: + +. Nutzung ohne professionellen Support +. Nutzung mit internem Support +. Nutzung mit Support durch einen externen Lieferanten. + +Diese drei Nutzungsarten und ihre Vor- und Nachteile werden nachfolgend kurz erläutert. Welches dieser Szenarien im Einzelfall am sinnvollsten ist, muss fallweise entschieden werden. Welches Supportmodell geeignet ist, hängt von der strategischen Relevanz der Open-Source-Software, der technischen Integration und den verfügbaren Personalressourcen ab. + +Bei kritischer Software muss der Support in jedem Fall professionell erbracht werden, sei es intern oder extern. Auch der geplante Lebenszyklus sollte bei der Supportplanung eine Rolle spielen. Es kann auch sein, dass Support von mehreren Anbietern bezogen wird. + +=== Nutzung ohne professionellen Support + +Open-Source-Software steht im Internet zum kostenlosen Herunterladen, Installieren und Nutzen zur Verfügung. + +Vorteile:: +* Geringe Kosten +* Rasche Umsetzung + +Nachteile:: +* Kein garantierter Support +* Keine Haftungsansprüche + +Risiko und Absicherung:: +Hohes Risiko: Es bestehen keine Supportverträge oder Garantien und in der Organisation ist wenig oder kein Entwicklerwissen vorhanden. + +Typischer Anwendungsbereich:: +Open-Source-Standardsoftware, die unabhängig von anderen Systemen aktualisiert werden kann. + +=== Nutzung mit internem Support + +Ein Unternehmen oder eine Organisation der öffentlichen Hand baut für die langfristige Nutzung Fachwissen und Ressourcen zu bestimmten Open-Source-Lösungen auf. Dieser Ansatz ist besonders in geschäftskritischen Bereichen verbreitet. + +Vorteile:: +* Hohe Flexibilität dank internem Know-how +* Kein Lieferanten-Lock-in + +Nachteile:: +* Hoher Investitions- und Zeitaufwand für den Aufbau von Fachwissen +* Höhere interne Fixkosten für Personal + +Risiko und Absicherung:: +Mittleres Risiko: Der Support hängt vom Know-how und der Verfügbarkeit der internen IT ab. + +Typischer Anwendungsbereich:: +Eigenentwicklungen, strategisch eingesetzte Open-Source-Software, für die vertieftes Know-how vorhanden ist. + +=== Nutzung mit Support durch einen externen Lieferanten + +Ein externer Open-Source-Anbieter wird beigezogen, um die Einführung und Wartung der Open-Source-Software professionell zu begleiten. Dieser Ansatz wird vor allem in geschäftskritischen Bereichen eingesetzt, in denen vertieftes Know-how der Software sofort verfügbar sein muss. Dies kann auch Teile der Freigabe oder die gesamte Freigabe umfassen. + +Vorteile:: +* Direkter Zugang zum Know-how der Open-Source-Entwicklerinnen und -Entwickler +* Fehlerbehebungen und Erweiterungen auf Vertragsbasis +* Auswahl unter verschiedenen Open-Source-Lieferanten +* Verbindlichkeit, Absicherung gegen Compliance-Risiken + +Nachteile:: +* Externe Kosten durch Open-Source-Lieferanten +* Know-how-Abhängigkeit vom Open-Source-Lieferanten + +Risiko und Absicherung:: +Geringes Risiko: Die Gewährleistung erfolgt gemäss Pflichtenheft oder Service Level Agreement + +Typischer Anwendungsbereich:: +Geschäftskritische Open-Source-Software, für die wenig oder kein internes Entwicklungs-Know-how vorhanden ist + +== Anlaufstelle + +In der Bundesverwaltung gibt es keine zentrale Anlaufstelle, die als Open Source Programme Office tätig wäre. Grundsätzlich sind die Bundesämter für die Umsetzung selbst verantwortlich. + +Allgemeine Anfragen zu den OSS-Hilfsmitteln des Dokumentensatzes Em002 können an den Sektor DTI der Bundeskanzlei gerichtet werden: opensource@bk.admin.ch. + +== Anhänge + +=== Änderungen gegenüber der Vorversion + +* Kapitel 4.1: Reifegrade ergänzt +* Kapitel 6: Beschaffung von OSS ergänzt und mit den neuen BBL-Dokumenten angepasst +* Kapitel 7.1: Neuer OSS-Katalog des Bundes (opensource.admin.ch) +* Weitere kleinere redaktionelle Änderungen und Verbesserungen + +=== Referenzen + +Die Referenzen zum Dokumentensatz Em002 finden sich in den link:em002.pdf[Em002 Strategischen Leitlinien]. + +=== Abkürzungen + +Ein Abkürzungsverzeichnis findet sich im Hauptdokument Em002. +Ein Glossar findet sich im Dokument «link:em002-6.pdf[Em002-6 Häufig gestellte Fragen zur Veröffentlichung von OSS (FAQ-OSS)]». + +=== Geschäftsmodelle mit OSS + +Open-Source-Software ist an sich kein Geschäftsmodell, weil es – anders als bei proprietärer Software – nicht möglich ist, Software unter einer Open-Source-Lizenz zu verkaufen. Dennoch bestehen für Unternehmen verschiedene Möglichkeiten, Geschäftsmodelle auf Basis von Open-Source-Software zu betreiben. Soll etwa professioneller externer Support für eine Open-Source-Lösung bezogen werden, so ist die Beschaffung entsprechender kommerzieller Leistungen erforderlich. Die vier häufigsten Geschäftsmodelle für Open-Source-Software werden nachfolgend erläutert. Weitere Aspekte dieser und anderer Geschäftsmodelle werden im BITKOM-Leitfaden _[BITKOM2023]_ erläutert. + +==== Dienstleistungen und Produkte auf Basis von OSS + +Unternehmen können kommerzielle Dienstleistungen wie Webhosting oder Cloud Computing auf Basis von Open-Source-Software anbieten, die mit proprietärer Software wesentlich teurer wären. Deshalb bauen die meisten Start-ups, Onlineportale und E-Commerce-Anbieter ihre Plattformen heute auf Open-Source-Software auf. Andere Technologieunternehmen wie Telekommunikationsunternehmen, Streaminganbieter oder gar Hersteller proprietärer Software integrieren Open-Source-Software in ihre Software- und Hardwareprodukte sowie in Onlinedienste. Dies erlaubt es Unternehmen, weiterhin innovative Lösungen anzubieten, die mit proprietärer Software nur schwer zu erreichen wären. + +==== Dienstleistungen für OSS + +Open-Source-Anbieter erbringen Dienstleistungen für ausgewählte Open-Source-Software. Sie verfügen über erfahrene Open-Source-Entwicklerinnen und -Entwickler und können daher Support, Wartung, Betrieb, Entwicklung, Beratung, Schulung und weitere Leistungen für Open-Source-Software anbieten. Diese können beim Open-Source-Lieferanten im Auftrag oder im Rahmen eines Werkvertrags bezogen werden. Solche Dienstleistungen für Open-Source-Software können öffentlich ausgeschrieben werden, da kein Vendor-Lock-in besteht. Wichtig bei solchen Ausschreibungen ist die Berücksichtigung geeigneter Kriterien, damit tatsächlich kompetente Leistungserbringer ausgewählt werden (siehe Kapitel 0 und 8, _[BITKOM2023]_ Kapitel 3.3 und _[Gu2024]_). + +==== Subskriptionen + +Werden Dienstleistungen für Open-Source-Software in standardisierter, wiederkehrender Form als eine Art Service Level Agreement (SLA) erbracht, so spricht man von Subskriptionen. Im Rahmen solcher Subskriptionen garantieren Unternehmen beispielsweise laufende Sicherheitsupdates, Support per E-Mail oder Telefon, Kompatibilität mit anderen Software- und Hardwareprodukten durch Zertifizierungen, langfristige Wartungsleistungen und Absicherungen gegen rechtliche Ansprüche (Urheberrecht, Patente). Im Gegenzug bezahlen Kundinnen und Kunden Subskriptionen pro Arbeitsplatz oder CPU, ähnlich wie Lizenz- oder Nutzungsgebühren für proprietäre Software. Anders als bei proprietärer Software sind Subskriptionen für Open-Source-Software jedoch keine Voraussetzung für die Nutzung der Software, sondern lediglich eine Möglichkeit, den Mehrwert der vom Open-Source-Lieferanten erbrachten Leistungen abzugelten. + +==== Duale Lizenzierung + +Besitzt ein Unternehmen das geistige Eigentum an einer Softwarelösung und stehen alle integrierten Open-Source-Komponenten unter einer permissiven Lizenz, so kann eine duale oder mehrfache Lizenzierung angewendet werden. Dies erlaubt es dem entwickelnden Unternehmen, die Software unter einer Copyleft-Open-Source-Lizenz zu veröffentlichen und sie zugleich unter einer proprietären Lizenz zu verkaufen. Diese kommerzielle Version wird oft Enterprise-Version genannt und enthält typischerweise bestimmte Zusatzfunktionen, etwa exklusive Schnittstellenintegrationen oder die Erlaubnis für Käuferinnen und Käufer, die Software in eigene proprietäre Produkte zu integrieren. Je nach Ausmass der Einschränkungen der Open-Source-Version ist beim Einsatz dual lizenzierter Software Vorsicht geboten, da der Bezug der Enterprise-Version unumgänglich sein kann, womit der Vendor-Lock-in gleich hoch ist wie bei typischer proprietärer Software. +endif::[] + +ifeval::["{lang}" == "fr"] +NOTE: Le présent document est un projet en cours d'élaboration et fait partie des outils destinés à soutenir l'administration fédérale dans la publication de code open source. Pour de plus amples informations, voir le {url-repo}/tree/main[README] principal. + +== 1. Utilisation du présent guide + +Conformément à l'article 9 de la loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA), la Confédération est tenue de publier le code source des logiciels qu'elle développe ou fait développer pour accomplir ses tâches. footnote:[RS 172.019 : https://www.fedlex.admin.ch/eli/cc/2023/682/fr] Le secteur TNI de la Chancellerie fédérale a déduit de ce mandat légal des objectifs généraux, exposés dans les Lignes directrices stratégiques pour les logiciels open source. + +Le présent document constitue un guide pratique relatif aux exigences juridiques et stratégiques. Il vise à soutenir les unités administratives fédérales dans l'utilisation, l'acquisition et la publication de logiciels open source. Il offre à toutes les personnes intéressées une vue d'ensemble complète du sujet et renvoie à des informations complémentaires figurant dans les autres outils. + +Selon vos connaissances préalables et vos besoins, vous pouvez toutefois lire les guides de manière sélective avant de passer aux autres outils. L'aperçu suivant vous aidera à trouver le point de départ approprié. En cas de doute, il est recommandé de lire d'abord le guide. + +=== Intention / parties prenantes + +Introduction générale aux logiciels open source + +* Chapitre Définitions +* Chapitre Potentiel et défis +* Chapitre Repérabilité des solutions OSS +* link:em002-5.pdf[Em002-5 Aide-mémoire Outils OSS] +* link:em002-3.pdf[Em002-3 Guide de licences OSS] +* link:em002-6.pdf[Em002-6 FAQ sur l'OSS] + +Introduction générale à la LMETA pour les décideurs + +* link:em002-5.pdf[Em002-5 Aide-mémoire Outils OSS] +* link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale] + +Acquisition uniquement de logiciels destinés à être utilisés + +* Chapitre Degrés de maturité pour l'OSS dans l'administration fédérale +* Chapitre Utilisation de logiciels open source non modifiés +* link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et OSS] +* Aide-mémoire Acquisition de logiciels et art. 9 LMETA [KBB-MB] +* Directives OSS dans les acquisitions [BBL-WL] + +Nouveau développement informatique et publication + +* Chapitre Développement avec des composants open source et publication du code source +* Chapitre Participation à des projets ouverts (contribution) +* link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Liste de contrôle Évaluation préalable OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Liste de contrôle Analyse et préparation OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Liste de contrôle Validation et publication OSS] +* link:em002-4.pdf[Em002-4 Guide des communautés OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Liste de contrôle Communauté OSS] + +Acquisition de logiciels à créer (prestation de services ou ouvrage) + +* Chapitre Degrés de maturité pour l'OSS dans l'administration fédérale +* Chapitre Développement avec des composants open source et publication du code source +* Chapitre Participation à des projets ouverts (contribution) +* link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et OSS] +* Boîte à outils de l'OFCL, y compris les directives Open Source dans les acquisitions +* Plateforme d'apprentissage et de modèles de l'administration publique du CCMP (www.perimap.admin.ch), y compris Acquisition de logiciels et art. 9 LMETA [KBB-MB] +* Directives OSS dans les acquisitions [BBL-WL] +* link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Liste de contrôle Évaluation préalable OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Liste de contrôle Analyse et préparation OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Liste de contrôle Validation et publication OSS] +* link:em002-4.pdf[Em002-4 Guide des communautés OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Liste de contrôle Communauté OSS] + +Clarifications juridiques en vue de la publication + +* link:em002-6.pdf[Em002-6 Foire aux questions sur la publication d'OSS (FAQ-OSS)] +* link:em002-3.pdf[Em002-3 Guide de licences OSS] + +Principes de travail pour les cheffes et chefs de projet + +* https://www.hermes.admin.ch/[Documents HERMES] +* link:em002-5.pdf[Em002-5 Aide-mémoire Outils OSS] + +Contributions logicielles à des tiers et collaborations + +* link:em002-4.pdf[Em002-4 Guide des communautés OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Liste de contrôle Communauté OSS] +* link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et OSS] +* link:em002-3.pdf[Em002-3 Guide de licences OSS] + +Le schéma suivant donne une vue d'ensemble des documents pertinents pour l'OSS au sein de l'administration fédérale. + +include::partials/document-map.fr.adoc[] + +Figure 1 : Vue d'ensemble des outils OSS en lien avec l'art. 9 LMETA + +== Définitions + +Logiciel open source:: +Un logiciel est considéré comme un logiciel open source (OSS) lorsqu'il est publié sous l'une des quelque 80 licences reconnues par l'Open Source Initiative OSI _[OSI2024]_. Concrètement, la définition de l'open source énonce dix critères que toutes les licences open source doivent remplir _[Pe1999]_. Ceux-ci peuvent pour l'essentiel se résumer en quatre points : ++ +. Le logiciel peut être utilisé à toutes fins. +. Le code source du logiciel est librement accessible. +. Le logiciel peut être copié et diffusé sans restriction. +. Le logiciel peut être modifié et diffusé sous forme modifiée à certaines conditions. + +Logiciel libre:: +Avant le terme « open source », la Free Software Foundation (FSF) a introduit dans les années 1980 la notion de « logiciel libre ». Sur le fond, le logiciel libre remplit les conditions du logiciel open source, mais vise à garantir que le logiciel reste toujours librement accessible et, dans la mesure du possible, ne soit pas intégré à des logiciels propriétaires. footnote:[https://fr.wikipedia.org/wiki/Logiciel_libre[Logiciel libre -- Wikipédia]] + +Logiciel propriétaire:: +Dans le cas d'un logiciel propriétaire, un fournisseur développe le logiciel et vend à l'utilisateur une licence d'utilisation. En règle générale, l'utilisateur ne connaît pas le code du logiciel et ne peut ni le rediffuser ni le modifier. Il peut uniquement utiliser le logiciel selon les conditions de licence (p. ex. End-User Licence Agreement, EULA) moyennant le paiement de redevances de licence. Le logiciel peut par exemple n'être autorisé que pour un certain nombre d'utilisateurs ou un certain nombre de processeurs. footnote:[https://fr.wikipedia.org/wiki/Logiciel_propriétaire[Logiciel propriétaire -- Wikipédia]] En contrepartie des frais de maintenance généralement annuels, le fournisseur s'engage à corriger les erreurs dans un délai raisonnable et à développer le logiciel en continu. + +Licence:: +Une licence est un document qui contient des prescriptions contraignantes relatives à l'utilisation et à la diffusion d'un logiciel. Dans le domaine de l'open source, on utilise généralement des licences conformes à l'OSI. footnote:[https://opensource.org/[Open Source Initiative]] + +Communauté:: +La notion de communauté dans le contexte des logiciels open source est définie largement. Il peut s'agir d'un écosystème informel ou d'une structure dotée d'une gouvernance qui développe le logiciel. Le document link:em002-4.pdf[Em002-4 Guide des communautés OSS] traite de ce sujet. Les membres de la communauté peuvent gérer le produit en commun, le développer, le tester, le traduire, donner leur avis ou simplement utiliser le logiciel. + +Droits de tiers:: +Même pour les logiciels open source, des droits de protection peuvent exister (droit d'auteur, droit des marques, droit des brevets) et être invoqués par des tiers, p. ex. lors de l'utilisation de code source créé par des tiers. + +Exceptions selon la LMETA:: +Les exceptions prévues à l'art. 9, al. 1, LMETA sont les droits de tiers et les motifs relevant de la sécurité. Les deux sont traités au chapitre 3 de link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +Code source:: +En informatique, le code source (ou texte source) est le texte lisible par l'être humain d'un programme informatique, rédigé dans un langage de programmation. footnote:[https://fr.wikipedia.org/wiki/Code_source[Code source -- Wikipédia]] + +Publication:: +La publication désigne en premier lieu la mise à disposition du code source sous une licence ouverte conforme à l'OSI. Pour des raisons pratiques, elle comprend généralement aussi la documentation et les instructions automatisées permettant de construire l'application à partir du code source. Les tests automatisés et les documents de test en font aussi habituellement partie. Pour qu'une communauté puisse se développer, une plateforme est utilisée, laquelle assume alors plusieurs fonctions d'une plateforme de développement (build, test, support). + +Souveraineté numérique:: +Nous utilisons la définition du rapport du DFAE sur la souveraineté numérique [St2024] : « La souveraineté numérique d'un État ou d'une organisation comprend nécessairement le contrôle complet des données stockées et traitées ainsi que la décision autonome de savoir qui peut y accéder. Elle comprend en outre la capacité de développer, de modifier, de contrôler et de compléter de manière autonome des composants et des systèmes technologiques. » + +Dépôt (repository):: +Un dépôt est un emplacement de stockage utilisé par un outil de gestion de versions pour les fichiers et les métadonnées relatives à la base de code. Les dépôts permettent à plusieurs contributeurs de travailler sur les mêmes fichiers et d'enregistrer différentes versions. La plupart permettent en outre le suivi des problèmes, la gestion des versions, les compilations automatisées et la documentation. + +Fork:: +Un fork footnote:[https://fr.wikipedia.org/wiki/Fork_(développement_logiciel)[Fork (développement logiciel) -- Wikipédia]] d'un projet open source est le fait de mettre en place un développement indépendant du projet initial. + +Contributor Licence Agreement (CLA):: +Un Contributor Licence Agreement footnote:[https://en.wikipedia.org/wiki/Contributor_License_Agreement[Contributor License Agreement -- Wikipédia]] est un document qui décrit les conditions auxquelles de la propriété intellectuelle peut être apportée à un projet ou à une entreprise. + +Source code management (SCM):: +La gestion du code source footnote:[https://fr.wikipedia.org/wiki/Gestion_de_versions[Gestion de versions -- Wikipédia]], également appelée gestion de versions, est un outil qui gère efficacement les modifications et les numéros de version, en particulier dans le développement logiciel. Le logiciel libre Git footnote:[https://fr.wikipedia.org/wiki/Git[Git -- Wikipédia]] s'est imposé pour la gestion des SCM distribués. + +Open source software development (OSSD):: +Dans le développement de logiciels open source (OSSD) footnote:[https://en.wikipedia.org/wiki/Open-source_software_development[Open-source software development -- Wikipédia]], outre la publication du code source, l'ensemble du processus de développement se déroule publiquement. Tout, des exigences (issues) au code source, est transparent. L'OSSD s'appuie sur des outils de communication publics (listes de diffusion, forums, etc.), un système de gestion de versions (Git), des listes d'erreurs et de fonctionnalités, une feuille de route et des outils de développement. + +Software Package Data Exchange (SPDX):: +Software Package Data Exchange (SPDX) footnote:[https://en.wikipedia.org/wiki/Software_Package_Data_Exchange[Software Package Data Exchange -- Wikipédia]] décrit un format standard pour les Software Bill of Materials (SBOM), dans le but de faciliter le traitement correct des logiciels libres ou open source. + +Effet copyleft:: +Si un logiciel est placé sous une licence comportant une clause de copyleft, toute modification ou extension du code source doit être publiée à nouveau sous la licence du logiciel open source modifié (voir aussi link:em002-3.pdf[Em002-3 Guide de licences OSS]). + +== Potentiel et défis + +Les logiciels open source recèlent un potentiel énorme dans le monde informatique actuel. Parallèlement, l'utilisation de solutions open source comporte aussi des défis. Ces deux aspects sont expliqués plus en détail dans la section suivante. Les indications se fondent notamment sur les résultats de l'Étude Open Source Suisse 2018, 2021 et 2024 de l'Université de Berne, dans laquelle les personnes interrogées ont donné des informations sur les avantages et les inconvénients reconnus des logiciels open source. + +=== Potentiel des logiciels open source + +Les points suivants décrivent le potentiel qui peut être réalisé lors de l'utilisation et de la publication de logiciels open source. + +{empty}1. Souveraineté numérique:: +Il s'agit ici de la capacité d'utiliser et de contrôler des services numériques. La souveraineté numérique s'étend sur l'ensemble du cycle de vie d'un système numérique. Les logiciels open source favorisent la souveraineté numérique, car ils garantissent l'interchangeabilité, la liberté de conception et l'influence. footnote:[Nous utilisons la définition de _[St2024\]_ : « La souveraineté numérique d'un État ou d'une organisation comprend nécessairement le contrôle complet des données stockées et traitées ainsi que la décision autonome de savoir qui peut y accéder. Elle comprend en outre la capacité de développer, de modifier, de contrôler et de compléter de manière autonome des composants et des systèmes technologiques. »] + +{empty}2. Pas de redevances de licence:: +L'utilisation de logiciels open source n'entraîne aucun coût de licence. Lors de l'acquisition de progiciels open source standard complexes, il peut toutefois être judicieux d'acheter des abonnements de support, qui sont payants. + +{empty}3. Économies grâce à la coopération avec d'autres utilisateurs:: +Comme un logiciel placé sous licence open source peut être utilisé et développé sans restriction, les coûts des développements ultérieurs peuvent être partagés ou des développements complémentaires existants d'autres unités administratives peuvent être repris selon le principe « développer une fois — utiliser plusieurs fois ». Il est en même temps possible de profiter de l'expérience et des développements des autres. + +{empty}4. Constitution de communautés et partage des connaissances:: +Les logiciels open source facilitent la constitution de communautés et le partage des connaissances, par exemple entre les différents niveaux fédéraux en Suisse. Les logiciels peuvent être développés en commun, les erreurs corrigées et les expériences individuelles partagées. L'échange accru de connaissances entre différentes unités administratives conduit à une meilleure compréhension de ce sur quoi travaillent les autres, de sorte que les doublons sont évités et que les meilleures solutions peuvent se diffuser. + +{empty}5. Moindre dépendance vis-à-vis des fabricants:: +Le vendor lock-in (dépendance envers les fournisseurs de logiciels) est considéré comme très élevé en informatique. L'utilisation de logiciels sous licence open source réduit le vendor lock-in, car l'exploitation, la maintenance, le support, le développement ultérieur et d'autres prestations pour les logiciels open source peuvent faire l'objet d'appels d'offres ouverts. Au lieu de réacquérir entièrement un système complet en raison d'un vendor lock-in, des extensions ou des prestations de cycle de vie pour une solution OSS peuvent aussi faire l'objet d'appels d'offres distincts. Cela permet d'économiser des coûts de migration considérables. + +{empty}6. Standards ouverts et interopérabilité:: +Avec les logiciels open source, la compatibilité avec d'autres solutions logicielles et systèmes informatiques (interopérabilité) est généralement plus élevée qu'avec les logiciels propriétaires. Les solutions open source utilisent en outre presque exclusivement des formats de données ouverts, ce qui permet de les échanger facilement avec d'autres systèmes. + +{empty}7. Transparence sur la structure du logiciel:: +Comme le logiciel est également disponible sous forme de code source, sa qualité peut être vérifiée, par exemple par des revues externes. De plus, de la documentation peut être créée à partir du code source (p. ex. en vue de nouveaux appels d'offres pour des prestations de développement ou du remplacement d'un logiciel open source en fin de vie). + +{empty}8. Sécurité et confiance grâce à la transparence:: +En raison du caractère ouvert du code source, la sécurité des logiciels open source peut être supérieure à celle des logiciels propriétaires. En outre, il est nettement plus difficile d'intégrer des portes dérobées et d'autres failles dans un logiciel open source, ce qui accroît la confiance dans le logiciel. + +{empty}9. Qualité et modularité accrues du code:: +La qualité des logiciels open source peut être supérieure à celle des logiciels propriétaires, car la motivation d'écrire du bon code est probablement plus grande lorsque les développeurs savent que leur code source sera publié. De plus, les solutions open source tendent à être fortement modulaires, de sorte que des modules individuels peuvent être facilement remplacés et les autres modules continuer à être utilisés. footnote:[Un autre aspect de sécurité est qu'il est plus facile de documenter les bibliothèques utilisées (y compris les dépendances) que dans un logiciel propriétaire. Cela signifie à son tour que, lorsque des vulnérabilités apparaissent, elles peuvent être rapidement identifiées et corrigées (voir aussi SBOM).] + +{empty}10. Adaptation aisée:: +L'accès au code source permet aux utilisateurs de réaliser eux-mêmes des développements ultérieurs ou de les confier à des fournisseurs externes. Le logiciel peut ainsi être rapidement adapté à leurs propres besoins. + +{empty}11. Innovation et intégration rapides:: +Les logiciels open source font l'objet d'un développement rapide et continu par la communauté. Ainsi, les nouvelles technologies et les nouveaux standards de données sont souvent publiés sous forme de bibliothèques de programmation open source. Cela permet la réalisation rapide de solutions logicielles innovantes. + +{empty}12. Attractivité de l'employeur:: +L'utilisation de technologies open source modernes et la collaboration informelle avec des communautés internationales favorisent la motivation des collaborateurs et accroissent ainsi l'attractivité de l'employeur, ce qui facilite à son tour le recrutement de jeunes professionnels qualifiés. + +=== Défis liés à l'OSS + +Sont décrits ci-après les défis typiques rencontrés dans la pratique avec les logiciels open source, ainsi que quelques pistes de solution. Nous n'abordons pas ici les défis généraux qui concernent tous les logiciels (p. ex. la nécessité de vérifier la cybersécurité et d'assurer un support approprié pour les logiciels critiques). + +{empty}1. Coûts de migration élevés dus aux dépendances existantes:: +Le remplacement d'un logiciel propriétaire par une solution open source peut être très coûteux si l'application est étroitement intégrée au système informatique existant par des interfaces ou d'autres dépendances. Ces coûts de migration font que l'introduction d'un logiciel open source n'est souvent rentable qu'à la fin du cycle de vie du logiciel propriétaire. + +{empty}2. Fonctionnalités manquantes ou absence de solution open source adaptée:: +Lors de l'acquisition de logiciels standard, il peut arriver qu'il n'existe aucune alternative open source à la solution propriétaire (précédente), ou seulement une alternative fonctionnellement insuffisante. Comme piste de solution, il est possible de développer les fonctionnalités manquantes conjointement avec d'autres utilisateurs du logiciel open source et de les ajouter au projet open source. footnote:[Les responsables de projet ou d'application sont compétents pour de telles nouvelles fonctionnalités. Le projet détermine exactement comment procéder. Em002-2 et Em002-4 aident à prendre des décisions détaillées. Selon l'ampleur de la fonctionnalité, il peut ne pas être judicieux de parcourir les instructions dans leur intégralité. Les aspects du droit des marchés publics relatifs aux ressources doivent être respectés.] + +{empty}3. Coûts d'intégration plus élevés:: +Les économies à court terme résultant de l'absence de licences lors de l'utilisation de logiciels open source sont souvent compensées par des coûts d'intégration plus élevés. Il est donc important de reconnaître que l'utilisation professionnelle de logiciels open source n'est pas « gratuite », mais génère bel et bien des coûts internes ou externes. + +{empty}4. Responsabilités et support peu clairs:: +Les logiciels open source sont souvent critiqués pour l'absence de support et de maintenance assurés par des entreprises externes. Il existe toutefois désormais une multitude de fournisseurs proposant des prestations commerciales (support à long terme, maintenance continue, développement ultérieur, responsabilité et garantie, etc.) pour les solutions open source. Les différents modèles d'affaires liés aux logiciels open source sont expliqués à l'annexe D et les différents modèles de support au chapitre 8. Une vue d'ensemble actuelle des prestataires open source et de leurs services figure dans l'Open Source Directory (https://www.ossdirectory.com) ou dans l'Étude OSS 2024 footnote:[https://www.oss-studie.ch/[Étude OSS]] _[OSS2024]_. + +{empty}5. Marché restreint avec peu de fournisseurs:: +Comme certaines applications open source, telles que les applications de bureau, ne nécessitent généralement que peu ou pas de support et de maintenance, le marché des fournisseurs open source de support et de maintenance peut être restreint. Dans ce cas, un appel d'offres portant sur des prestations de services pour logiciels open source peut contribuer à créer un marché qui accroît la concurrence entre les fournisseurs. L'existence d'une large communauté de développement pour le logiciel concerné et la qualité de la documentation de développement revêtent une importance pratique lors de l'appel d'offres pour de telles prestations. + +{empty}6. Faible visibilité:: +Les communautés des projets open source se concentrent avant tout sur le développement du produit et rarement sur le marketing. À l'inverse, les fabricants de logiciels propriétaires investissent massivement dans la commercialisation et la vente de leurs produits. Ce manque de publicité pour les logiciels open source donne souvent la fausse impression qu'il n'existe pas d'alternative aux produits propriétaires. Il existe cependant des plateformes telles qu'alternativeTo footnote:[https://alternativeto.net/] qui offrent une vue d'ensemble des solutions répondant à des tâches précises (plus d'informations sur les alternatives OSS au chapitre « Repérabilité des solutions OSS »). + +{empty}7. Manque d'acceptation par les utilisateurs finaux:: +En raison d'interfaces utilisateur différentes, de fonctions manquantes, d'une faible convivialité et du peu de publicité pour les logiciels open source, certains produits open source souffrent d'un manque d'acceptation de la part des utilisateurs finaux. Des offres appropriées de communication, de documentation et de formation peuvent contrer ce défi. Le fait qu'un logiciel open source puisse être développé selon les besoins des utilisateurs peut également conduire à une meilleure acceptation. + +{empty}8. Expertise interne faible ou inexistante:: +Les solutions open source évoluent rapidement et exigent en même temps une compréhension technique approfondie. Il peut donc arriver que les collaborateurs internes disposent de peu ou pas d'expertise sur certains logiciels open source. Le savoir-faire OSS interne peut être développé par la formation continue et des possibilités d'auto-apprentissage via des sources en ligne, la constitution de wikis internes, etc. + +{empty}9. Évaluation difficile de l'avenir:: +Il est souvent difficile, pour une personne extérieure à une communauté open source, de reconnaître comment le projet évoluera à l'avenir. Il est donc important de pouvoir évaluer de manière réaliste le développement futur d'une solution open source. Le chapitre « Open Hub » présente à cet égard la plateforme Open Hub, qui permet d'évaluer l'activité et l'hétérogénéité de la communauté de développement. Cela permet de mieux apprécier le développement futur d'un projet open source. + +{empty}10. Incertitudes juridiques:: +La multitude de licences open source différentes et le faible nombre de décisions judiciaires rendues à ce jour sur des questions d'interprétation peuvent parfois engendrer des incertitudes juridiques avec les logiciels open source. Le présent guide pratique vise à donner une vue d'ensemble des principales licences open source ainsi que de leurs caractéristiques et compatibilités. Des sources pour des réponses approfondies à des questions juridiques figurent dans les documents link:em002-3.pdf[Em002-3 Guide de licences OSS] et link:em002-6.pdf[Em002-6 FAQ sur l'OSS et l'art. 9 LMETA]. + +{empty}11. Offre trop vaste de logiciels open source:: +Le nombre de produits logiciels open source a fortement augmenté ces dernières années. Les utilisateurs potentiels de logiciels open source déplorent dès lors la multitude de solutions open source existant sur le marché. C'est pourquoi le chapitre « Repérabilité de… » présente deux plateformes, alternativeTo et Open Hub, qui permettent de comparer les solutions open source. + +{empty}12. Charge de coordination liée au développement conjoint:: +Lorsque l'administration fédérale participe à des projets communs et y contribue, il en résulte une charge de coordination au sein de ces collaborations, mais aussi lorsqu'une communauté doit être associée. Idéalement, cette charge supplémentaire doit malgré tout en valoir la peine grâce à une solution améliorée, une meilleure acceptation ou une participation accrue de tiers. + +== Constellations d'utilisation et de travail avec l'OSS + +=== Degrés de maturité pour l'OSS dans l'administration fédérale + +Lors de l'utilisation et du développement d'OSS au sein de l'administration fédérale, il existe différentes constellations concernant les obligations liées aux licences open source. Un modèle de maturité typique footnote:[Modèle de maturité inspiré de https://todogroup.org/resources/guides/a-guide-to-outbound-open-source-software/#maturity-levels] pour l'introduction de l'open source dans les organisations peut se présenter ainsi : + +. Denial — aucune utilisation de logiciels open source, ou utilisation inconsciente +. Consumption — utilisation passive de logiciels open source +. Participation — engagement auprès des communautés open source +. Contribution — contributions pragmatiques à des projets open source +. Leadership — engagement stratégique en faveur de l'open source pour créer de la valeur footnote:[La création n'est pas mentionnée, car l'art. 9 LMETA l'exige directement.] + +[options="header",cols="1,2a"] +|=== +|Constellation |Conséquence + +|La simple *utilisation* de logiciels open source existants (sans modification du code). +|Il n'existe *aucune obligation* de partager le code source. + +|Le *développement entièrement nouveau* d'un logiciel destiné à être publié sous une licence open source. +|*Dans ce cas, il existe une liberté totale quant à la licence sous laquelle le logiciel est publié.* Pour la Confédération, il convient de se référer au document link:em002-3.pdf[Em002-3 Guide de licences OSS]. Les documents link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS] doivent être respectés. + +|*Développement ultérieur* (interne ou externe) avec des composants open source existants (avec ou sans effet copyleft footnote:[Explication du terme « copyleft » dans link:em002-3.pdf[Em002-3 Guide de licences OSS]]), tant que le logiciel est utilisé *exclusivement au sein de la même organisation* et n'est pas rediffusé. +|Les composants OSS peuvent être combinés à volonté avec des composants tiers. La licence n'entraîne en principe aucune obligation de publication, tant que le logiciel est utilisé exclusivement au sein de la même organisation et n'est pas diffusé (exception : AGPL). Comme il n'est pas juridiquement établi de manière définitive jusqu'où s'étend la notion de « diffusion au sein de la même organisation », ce scénario ne s'applique aux composants OSS à effet copyleft que dans des cas exceptionnels. Dans ces cas, consultez le service juridique de votre organisation. Voir link:em002-3.pdf[Em002-3 Guide de licences OSS] et link:em002-6.pdf[Em002-6 FAQ sur l'OSS et l'art. 9 LMETA]. Les documents link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS] doivent être respectés. *Comme une obligation de publication découle de l'art. 9 LMETA, les modifications doivent être publiées à nouveau. Le plus simple est de le faire sous forme de modifications du projet open source existant.* + +|*Développement ultérieur* (interne ou externe) *exclusivement avec* des *composants* open source existants *sans effet copyleft*, lorsque le logiciel doit être diffusé à l'extérieur (p. ex. aux cantons). +|Les composants OSS peuvent être combinés à volonté avec des composants tiers, et les licences n'entraînent aucune obligation de publication (voir aussi link:em002-3.pdf[Em002-3 Guide de licences OSS]). *La publication est toutefois obligatoire dans le cadre de l'art. 9 LMETA. Idéalement, elle devrait se faire via le projet existant (pas de fork).* Les documents link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS] doivent être respectés. + +|*Développement ultérieur* (interne ou externe) avec des composants open source existants *à effet copyleft*, lorsque le logiciel doit être diffusé à l'extérieur (p. ex. aux cantons). +|*Il existe une obligation de publication* en raison de la licence copyleft (voir aussi link:em002-3.pdf[Em002-3 Guide de licences OSS] concernant l'effet copyleft). Les documents link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS] doivent être respectés. + +|*Contribution* à un projet open source existant. +|*Il existe en principe une obligation de publication selon la LMETA. La gouvernance et la licence du projet s'appliquent.* Les documents link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS] doivent être respectés. + +|*Développement conjoint* d'un projet nouveau ou existant avec une communauté et partage des coûts. +|*Il existe en principe une obligation de publication selon la LMETA.* Les documents link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS], link:em002-3.pdf[Em002-3 Guide de licences OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS] servent *à mettre en place le projet et sa gouvernance.* + +|*Toutes les variantes de développement ou de développement ultérieur* sont réalisées *par un fournisseur ou un tiers mandaté.* +|*Il existe en principe une obligation de publication selon la LMETA.* Sur la base de link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS], link:em002-3.pdf[Em002-3 Guide de licences OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS]. Si possible, les conditions de la publication devraient être créées dès le processus d'acquisition et, au besoin, les exigences relatives à la validation du logiciel communiquées au fournisseur ou au tiers. +|=== + +=== Utilisation de logiciels open source non modifiés + +Lors de l'utilisation de logiciels open source, il n'est en principe pas déterminant de savoir sous quelle licence open source ils sont publiés, car toutes les licences open source (voir chapitre 2 « Définitions ») autorisent l'utilisation illimitée des logiciels open source, indépendamment du nombre de postes de travail, d'utilisateurs connectés simultanément, de serveurs et de processeurs, etc. sur lesquels le logiciel est utilisé. + +Lors de l'utilisation de logiciels open source non modifiés, *aucune obligation de publication* ne naît, même pour les programmes placés sous une licence à effet copyleft strict (exception : licence AGPL, Affero General Public Licence). + +Tant que le logiciel open source est introduit et exploité par des prestataires internes à la Confédération, cela peut se faire *sans procédure de marché public*, car « la licence OSS à elle seule ne coûte en règle générale rien au service acquéreur et n'est donc pas en soi pertinente du point de vue des marchés publics ». + +Si un prestataire externe est mandaté pour la maintenance, le support et d'autres prestations relatives au logiciel open source, les exigences du droit des marchés publics doivent être respectées. Différentes variantes de support sont décrites au chapitre 9. Il est en outre important d'utiliser des critères d'aptitude et d'adjudication appropriés lors de l'acquisition de logiciels open source. Les bases à ce sujet sont exposées au chapitre 8. + +=== Développement avec des composants open source et publication du code source + +Compte tenu de l'obligation de publication prévue à l'art. 9 LMETA, il convient de suivre ici la procédure décrite dans link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS]. +Les documents link:em002-3.pdf[Em002-3 Guide de licences OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS] doivent également être consultés si nécessaire. L'objectif est de publier le projet de manière contrôlée à l'aide des trois listes de contrôle _link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1], link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2], link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3]_. + +=== Participation à des projets ouverts (contribution) + +Les réflexions possibles concernant la contribution de l'administration fédérale à des projets ouverts déjà existants sont exposées au chapitre 4.2 du guide BITKOM _[BITKOM2024]_. footnote:[Voir https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html, chapitre 4.2.] Selon l'importance du projet pour l'administration fédérale, il convient d'examiner quelle part de responsabilité l'office concerné veut et peut assumer. + +La participation à des projets ouverts et le développement direct dans des projets ouverts peuvent également s'appuyer sur les documents relatifs à la publication. L'accent est mis sur link:em002-4.pdf[Em002-4 Guide des communautés OSS] et la liste de contrôle correspondante _link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]_. + +== Caractéristiques et choix des licences open source + +Les caractéristiques et le choix des licences open source sont décrits dans le document link:em002-3.pdf[Em002-3 Guide de licences OSS]. + +== Acquisition d'OSS + +Les questions stratégiques relatives aux acquisitions et à l'OSS sont traitées dans link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et des logiciels open source]. + +Le Centre de compétence des marchés publics de la Confédération (CCMP) a publié un nouvel aide-mémoire intitulé _Acquisition de logiciels et art. 9 LMETA https://perimap.admin.ch/goto_perimap_file_46835_download.html[[KBB-MB]]_ ainsi que deux documents « Critères types — acquisition LMETA et open source » et « Textes contractuels types — développement logiciel ». + +Une aide supplémentaire est disponible sur l'https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[intranet de l'OFCL] (accessible uniquement sur le réseau fédéral) avec les https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[_directives Open Source dans les acquisitions_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[BBL-WL]]_ et la https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[_liste de contrôle pour l'exception forfaitaire selon l'art. 9 LMETA_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[BBL-CL]]_. + +L'aptitude de l'open source à un usage en entreprise est traitée dans le document _Selection Criteria for Enterprise-Ready Open Source Software [Gu2024]_ footnote:[Voir _[Gu2024\]_] ou dans le guide Bitkom. footnote:[Voir https://www.bitkom.org/Bitkom/Publikationen/Praxisempfehlungen-fuer-Open-Source-Software[Recommandations pratiques pour les logiciels open source | Guide 2025 | Bitkom e. V.], chapitre 3.3] + +== Repérabilité des solutions OSS + +Différentes plateformes permettent aux organisations intéressées de trouver et d'analyser des logiciels open source avant leur utilisation ou leur acquisition. Les données ainsi obtenues constituent une base pour décider de l'utilisation ou de l'acquisition d'un logiciel open source. + +Une compilation des exigences minimales et, le cas échéant, une analyse de marché devraient servir dans tous les cas. + +=== Catalogue OSS + +Les autorités fédérales sont tenues de publier le code source des logiciels qu'elles développent ou font développer pour accomplir leurs tâches. Le catalogue OSS footnote:[https://www.opensource.admin.ch/] recense tous les logiciels développés par des autorités fédérales depuis le 1er janvier 2024 et publiés en open source. Il offre une vue d'ensemble des logiciels disponibles et facilite la recherche et la réutilisation de solutions open source. + +Si un nouveau dépôt ou une nouvelle organisation est créé, cela doit être annoncé par courriel à opensource@bk.admin.ch en vue de l'inscription au catalogue OSS. + +Catalogue OSS : https://www.opensource.admin.ch + +=== OSS Directory + +L'OSS Directory exploité par CH Open footnote:[https://www.ossdirectory.com/fr/home] facilite la recherche de fournisseurs qualifiés offrant un support professionnel pour les logiciels open source. + +Les fournisseurs open source montrent, au moyen de témoignages de réussite, quels utilisateurs (clients) ils ont aidés à mettre en œuvre des produits open source déterminés. +Le Directory propose en outre des actualités open source issues de plateformes existantes, des actualités phares sélectionnées, des événements, des communautés, des offres d'emploi et des articles de partage de connaissances. L'OSS Directory est disponible en allemand, anglais, français et italien. Toutes les entrées peuvent être ajoutées et mises à jour directement par les utilisateurs enregistrés. + +OSS Directory : https://www.ossdirectory.com + +=== alternativeTo + +Un outil pratique pour trouver des alternatives à un logiciel est « alternativeTo - Crowdsourced software recommendations ». footnote:[https://alternativeto.net/] Comme son nom l'indique, les alternatives et leurs évaluations ont été créées par crowdsourcing, c'est-à-dire par les contributions de nombreux utilisateurs individuels. alternativeTo distingue quatre types de solutions logicielles, dont seul le premier est considéré comme un logiciel open source au sens de l'art. 9 LMETA : + +Free open source:: +Logiciel publié sous une licence open source. + +Free:: +Logiciel gratuit (freeware) dont le code source n'est toutefois pas librement disponible et ne peut pas être modifié. + +Freemium:: +Ce type de logiciel propose une version gratuite et une version premium, toutes les fonctionnalités importantes étant déjà disponibles dans la version gratuite. Cette catégorie ne comprend pas les logiciels pouvant être testés gratuitement pendant une période déterminée (p. ex. une version d'essai de 30 jours), qui relèvent de la catégorie « Commercial ». + +Commercial:: +Il s'agit de logiciels propriétaires pour lesquels des redevances de licence sont perçues en cas d'utilisation. + +=== Dépôts open source + +La plateforme de développement open source la plus populaire au monde à l'heure actuelle, avec plus de 30 millions d'utilisateurs et plus de 100 millions de dépôts de code source, est GitHub. footnote:[https://octoverse.github.com] Aujourd'hui, pratiquement toutes les entreprises informatiques, en particulier les fabricants de logiciels propriétaires, ainsi que de nombreux autres types d'entreprises et d'organisations, sont présents sur GitHub. De plus en plus d'autorités publiques — une douzaine environ en Suisse footnote:[https://government.github.com/community/#switzerland] — publient en outre leurs propres logiciels open source sur « GitHub and Government » à l'adresse https://government.github.com. Cette démarche peut également être réalisée avec d'autres dépôts. + +Exemples d'autres dépôts : + +* GitLab +* Bitbucket +* SourceForge +* LaunchPad + +GitHub Insights permet de consulter de nombreuses statistiques pertinentes d'un projet open source sur GitHub : + +Pulse:: +Vue d'ensemble des activités récentes d'un projet open source sur GitHub : résumé des principales informations sur l'intensité du développement, l'hétérogénéité de la communauté, les signalements ouverts, les améliorations (pull requests), etc. + +Contributors:: +Affichage des développeurs qui ont été actifs et à quel moment. Il s'agit d'un indicateur important pour savoir si tout dépend d'une seule personne ou si une communauté plus large se trouve derrière le projet. + +Commits:: +Affichage des contributions apportées à ce projet open source et de la période concernée. + +Code frequency:: +Visualisation de la quantité de code source ajoutée ou supprimée et du moment où cela s'est produit. + +Dependency graph:: +Dépendances du projet open source vis-à-vis d'autres logiciels open source (p. ex. pertinent pour identifier les failles de sécurité et les mises à jour). + +Network:: +Affichage indiquant quand quel développeur a contribué à quelle branche de développement. + +Forks:: +Liste de toutes les copies du projet open source sur GitHub. Indicateur de la popularité et de la diffusion du logiciel open source. + +=== Open Hub + +S'il s'agit de collecter des informations sur une solution open source qui n'est pas nécessairement développée sur GitHub, Open Hub de Black Duck constitue une bonne option. footnote:[https://www.openhub.net/] Pour environ un demi-million de projets open source, une multitude d'informations importantes sont résumées de manière claire : + +Project Summary:: +Une brève description du projet open source. + +In a Nutshell:: +Les faits les plus importants sur un projet open source, tels que le nombre de commits, de contributeurs et de lignes de code, ainsi que le langage de programmation le plus utilisé, la date du premier commit et de la dernière modification. Une appréciation de la base de code et de la taille de l'équipe de développement est en outre indiquée (p. ex. « Mozilla Firefox has a well-established, mature codebase maintained by a very large development team with stable Y-O-Y commits »). + +Quick Reference:: +Contient des informations sur l'organisation, des liens vers le projet et le code, ainsi que des renvois vers des projets similaires. + +Licences:: +Indique sous quelle(s) licence(s) le projet open source est placé et quelles conséquences y sont associées. + +Project Security:: +Fournit des indications sur la sécurité et les vulnérabilités du projet open source. + +Code:: +Un graphique montrant le nombre de lignes de code au fil du temps, ventilé par langage de programmation. + +Activity:: +Un graphique montrant le nombre de commits par mois. Un résumé des 30 derniers jours et des 12 derniers mois est également fourni. + +Community:: +Un graphique montrant le nombre de contributeurs actifs par mois. Une évaluation du projet sur une échelle de cinq étoiles est également affichée. + +Open Hub permet également de comparer différents projets open source. footnote:[https://www.openhub.net/p/_compare] Cela donne rapidement une vue d'ensemble du projet qui a la communauté la plus active, la durée de développement la plus longue ou la licence la plus appropriée. + +=== Dépôts de code particuliers + +Les grandes organisations disposent de leurs propres dépôts de code. Il convient de mentionner en particulier le dépôt allemand destiné aux autorités, opencode.de. footnote:[https://opencode.de/en/home] Les dépôts d'autres administrations publiques présentent ici un intérêt particulier. + +== Modèles de support pour l'utilisation de l'OSS + +Les logiciels open source déjà disponibles sur le marché peuvent en principe être utilisés de trois manières : + +. Utilisation sans support professionnel +. Utilisation avec support interne +. Utilisation avec support d'un fournisseur externe. + +Ces trois types d'utilisation et leurs avantages et inconvénients sont brièvement expliqués ci-après. Lequel de ces scénarios est le plus judicieux dans un cas donné doit être décidé au cas par cas. Le modèle de support approprié dépend de la pertinence stratégique du logiciel open source, de l'intégration technique et des ressources en personnel disponibles. + +Pour les logiciels critiques, le support doit dans tous les cas être assuré de manière professionnelle, en interne ou en externe. Le cycle de vie prévu devrait également jouer un rôle dans la planification du support. Il se peut aussi que le support soit obtenu auprès de plusieurs fournisseurs. + +=== Utilisation sans support professionnel + +Les logiciels open source sont disponibles sur Internet et peuvent être téléchargés, installés et utilisés gratuitement. + +Avantages:: +* Faibles coûts +* Mise en œuvre rapide + +Inconvénients:: +* Aucun support garanti +* Aucune prétention en responsabilité + +Risque et couverture:: +Risque élevé : il n'existe ni contrats de support ni garanties, et l'organisation dispose de peu ou pas de compétences en développement. + +Domaine d'application typique:: +Logiciels open source standard pouvant être mis à jour indépendamment d'autres systèmes. + +=== Utilisation avec support interne + +Une entreprise ou une organisation du secteur public développe des compétences et des ressources sur des solutions open source déterminées en vue d'une utilisation à long terme. Cette approche est particulièrement répandue dans les domaines critiques pour l'activité. + +Avantages:: +* Grande flexibilité grâce au savoir-faire interne +* Pas de dépendance envers un fournisseur + +Inconvénients:: +* Investissement et temps importants pour développer les compétences +* Coûts fixes internes plus élevés pour le personnel + +Risque et couverture:: +Risque moyen : le support dépend du savoir-faire et de la disponibilité de l'informatique interne. + +Domaine d'application typique:: +Développements propres, logiciels open source utilisés de manière stratégique et pour lesquels un savoir-faire approfondi est disponible. + +=== Utilisation avec support d'un fournisseur externe + +Un fournisseur open source externe est associé afin d'accompagner de manière professionnelle le déploiement et la maintenance du logiciel open source. Cette approche est surtout utilisée dans les domaines critiques pour l'activité, où un savoir-faire approfondi du logiciel doit être immédiatement disponible. Cela peut aussi englober une partie ou l'intégralité de la publication. + +Avantages:: +* Accès direct au savoir-faire des développeurs open source +* Corrections et extensions sur une base contractuelle +* Choix entre différents fournisseurs open source +* Engagement, couverture contre les risques de conformité + +Inconvénients:: +* Coûts externes liés aux fournisseurs open source +* Dépendance en matière de savoir-faire envers le fournisseur open source + +Risque et couverture:: +Risque faible : la garantie est fournie selon le cahier des charges ou le service level agreement + +Domaine d'application typique:: +Logiciels open source critiques pour l'activité, pour lesquels peu ou pas de compétences internes de développement sont disponibles + +== Point de contact + +Il n'existe au sein de l'administration fédérale aucun point de contact unique faisant office d'Open Source Programme Office. En principe, les offices fédéraux sont eux-mêmes responsables de la mise en œuvre. + +Les demandes générales concernant les outils OSS du jeu de documents Em002 peuvent être adressées au secteur TNI de la Chancellerie fédérale : opensource@bk.admin.ch. + +== Annexes + +=== Modifications par rapport à la version précédente + +* Chapitre 4.1 : degrés de maturité ajoutés +* Chapitre 6 : acquisition d'OSS complétée et adaptée avec les nouveaux documents de l'OFCL +* Chapitre 7.1 : nouveau catalogue OSS de la Confédération (opensource.admin.ch) +* Autres modifications et améliorations rédactionnelles mineures + +=== Références + +Les références relatives au jeu de documents Em002 figurent dans les link:em002.pdf[Em002 Lignes directrices stratégiques]. + +=== Abréviations + +Une liste d'abréviations figure dans le document principal Em002. +Un glossaire figure dans le document « link:em002-6.pdf[Em002-6 Foire aux questions sur la publication d'OSS (FAQ-OSS)] ». + +=== Modèles d'affaires avec l'OSS + +Le logiciel open source n'est pas en soi un modèle d'affaires car, contrairement au logiciel propriétaire, il n'est pas possible de vendre un logiciel placé sous licence open source. Il existe néanmoins différentes possibilités pour les entreprises d'exploiter des modèles d'affaires fondés sur les logiciels open source. Ainsi, si un support externe professionnel doit être obtenu pour une solution open source, l'acquisition des prestations commerciales correspondantes est nécessaire. Les quatre modèles d'affaires les plus courants pour les logiciels open source sont expliqués ci-après. D'autres aspects de ces modèles et d'autres encore sont exposés dans le guide BITKOM _[BITKOM2023]_. + +==== Services et produits fondés sur l'OSS + +Les entreprises peuvent proposer des services commerciaux tels que l'hébergement web ou le cloud computing sur la base de logiciels open source, ce qui serait nettement plus coûteux avec des logiciels propriétaires. C'est pourquoi la plupart des start-up, des portails en ligne et des fournisseurs de commerce électronique construisent aujourd'hui leurs plateformes sur des logiciels open source. D'autres entreprises technologiques, telles que les entreprises de télécommunications, les fournisseurs de streaming ou même les fabricants de logiciels propriétaires, intègrent des logiciels open source dans leurs produits logiciels et matériels ainsi que dans leurs services en ligne. Cela permet aux entreprises de continuer à proposer des solutions innovantes, difficilement réalisables avec des logiciels propriétaires. + +==== Services pour l'OSS + +Les fournisseurs open source fournissent des prestations pour des logiciels open source sélectionnés. Ils disposent de développeurs open source expérimentés et peuvent donc proposer du support, de la maintenance, de l'exploitation, du développement, du conseil, de la formation et d'autres prestations pour les logiciels open source. Celles-ci peuvent être obtenues auprès du fournisseur open source dans le cadre d'un mandat ou d'un contrat d'entreprise. De telles prestations pour logiciels open source peuvent faire l'objet d'appels d'offres publics, car il n'y a pas de vendor lock-in. Ce qui importe pour de tels appels d'offres, c'est la prise en compte de critères appropriés afin que les prestataires réellement compétents soient sélectionnés (voir chapitres 0 et 8, _[BITKOM2023]_ chapitre 3.3 et _[Gu2024]_). + +==== Abonnements + +Lorsque des prestations pour logiciels open source sont fournies sous une forme standardisée et récurrente, à la manière d'un service level agreement (SLA), on parle d'abonnements. Dans le cadre de tels abonnements, les entreprises garantissent par exemple des mises à jour de sécurité continues, un support par courriel ou par téléphone, la compatibilité avec d'autres produits logiciels et matériels au moyen de certifications, des prestations de maintenance à long terme et une protection contre les prétentions juridiques (droit d'auteur, brevets). En contrepartie, les clients paient des abonnements par poste de travail ou par CPU, à l'instar des redevances de licence ou d'utilisation pour les logiciels propriétaires. Contrairement aux logiciels propriétaires, les abonnements pour les logiciels open source ne constituent toutefois pas une condition d'utilisation du logiciel, mais simplement un moyen de rémunérer la valeur ajoutée des prestations fournies par le fournisseur open source. + +==== Double licence + +Si une entreprise détient la propriété intellectuelle d'une solution logicielle et que tous les composants open source intégrés sont placés sous une licence permissive, une double licence ou une licence multiple peut être appliquée. Cela permet à l'entreprise qui développe de publier le logiciel sous une licence open source copyleft et de le vendre en même temps sous une licence propriétaire. Cette version commerciale est souvent appelée version Enterprise et comprend généralement certaines fonctionnalités supplémentaires, telles que des intégrations d'interfaces exclusives ou l'autorisation pour les acheteurs d'intégrer le logiciel dans leurs propres produits propriétaires. Selon l'ampleur des restrictions de la version open source, la prudence est de mise lors de l'utilisation de logiciels sous double licence, car l'acquisition de la version Enterprise peut s'avérer inévitable, le vendor lock-in devenant alors aussi élevé qu'avec un logiciel propriétaire classique. +endif::[] + +ifeval::["{lang}" == "it"] +NOTE: Il presente documento è una bozza in continua evoluzione e fa parte degli strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Per maggiori informazioni si veda il {url-repo}/tree/main[README] principale. + +== 1. Utilizzo della presente guida + +Secondo l'articolo 9 della legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA), la Confederazione è tenuta a pubblicare il codice sorgente del software che sviluppa o fa sviluppare per adempiere i suoi compiti. footnote:[RS 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/it] Il settore TDT della Cancelleria federale ha dedotto da questo mandato legale obiettivi generali, esposti nelle Linee guida strategiche per il software open source. + +Il presente documento funge da guida pratica alle prescrizioni giuridiche e strategiche. Intende sostenere le unità amministrative della Confederazione nell'utilizzo, nell'acquisto e nella pubblicazione di software open source. Offre a tutte le persone interessate una panoramica completa del tema e rinvia a informazioni approfondite contenute negli altri strumenti. + +A seconda delle conoscenze pregresse e delle esigenze potete tuttavia leggere le guide in modo selettivo prima di passare agli altri strumenti. La panoramica seguente vi aiuta a individuare il punto di partenza adeguato. In caso di dubbio si raccomanda di leggere dapprima la guida. + +=== Intento / parti interessate + +Introduzione generale al software open source + +* Capitolo Definizioni +* Capitolo Potenziale e sfide +* Capitolo Reperibilità delle soluzioni OSS +* link:em002-5.pdf[Em002-5 Promemoria Strumenti OSS] +* link:em002-3.pdf[Em002-3 Guida alle licenze OSS] +* link:em002-6.pdf[Em002-6 FAQ sull'OSS] + +Introduzione generale alla LMeCA per i decisori + +* link:em002-5.pdf[Em002-5 Promemoria Strumenti OSS] +* link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale] + +Semplice acquisto di software destinato all'uso + +* Capitolo Livelli di maturità per l'OSS nell'Amministrazione federale +* Capitolo Utilizzo di software open source non modificato +* link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e OSS] +* Promemoria Acquisto di software e art. 9 LMeCA [KBB-MB] +* Direttive OSS negli acquisti [BBL-WL] + +Nuovo sviluppo informatico e pubblicazione + +* Capitolo Sviluppo con componenti open source e pubblicazione del codice sorgente +* Capitolo Collaborazione in progetti aperti (contribution) +* link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Lista di controllo Valutazione preliminare OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Lista di controllo Analisi e preparazione OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Lista di controllo Rilascio e pubblicazione OSS] +* link:em002-4.pdf[Em002-4 Guida alle community OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Lista di controllo Community OSS] + +Acquisto di software da realizzare (prestazione di servizi o appalto) + +* Capitolo Livelli di maturità per l'OSS nell'Amministrazione federale +* Capitolo Sviluppo con componenti open source e pubblicazione del codice sorgente +* Capitolo Collaborazione in progetti aperti (contribution) +* link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e OSS] +* Cassetta degli attrezzi dell'UFCL, comprese le direttive Open Source negli acquisti +* Piattaforma di apprendimento e modelli dell'amministrazione pubblica del CCAP (www.perimap.admin.ch), compreso Acquisto di software e art. 9 LMeCA [KBB-MB] +* Direttive OSS negli acquisti [BBL-WL] +* link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Lista di controllo Valutazione preliminare OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Lista di controllo Analisi e preparazione OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Lista di controllo Rilascio e pubblicazione OSS] +* link:em002-4.pdf[Em002-4 Guida alle community OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Lista di controllo Community OSS] + +Accertamenti giuridici in vista della pubblicazione + +* link:em002-6.pdf[Em002-6 Domande frequenti sulla pubblicazione di OSS (FAQ-OSS)] +* link:em002-3.pdf[Em002-3 Guida alle licenze OSS] + +Principi di lavoro per i capiprogetto + +* https://www.hermes.admin.ch/[Documenti HERMES] +* link:em002-5.pdf[Em002-5 Promemoria Strumenti OSS] + +Contributi di software a terzi e collaborazioni + +* link:em002-4.pdf[Em002-4 Guida alle community OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Lista di controllo Community OSS] +* link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e OSS] +* link:em002-3.pdf[Em002-3 Guida alle licenze OSS] + +Il grafico seguente offre una panoramica dei documenti rilevanti per l'OSS nell'Amministrazione federale. + +include::partials/document-map.it.adoc[] + +Figura 1: Panoramica degli strumenti OSS in relazione all'art. 9 LMeCA + +== Definizioni + +Software open source:: +Un software è considerato software open source (OSS) quando è pubblicato sotto una delle circa 80 licenze riconosciute dall'Open Source Initiative OSI _[OSI2024]_. Concretamente, la definizione di open source stabilisce dieci criteri che tutte le licenze open source devono soddisfare _[Pe1999]_. Essi possono essere sostanzialmente riassunti in quattro punti: ++ +. Il software può essere utilizzato per qualsiasi scopo. +. Il codice sorgente del software è liberamente accessibile. +. Il software può essere copiato e diffuso senza restrizioni. +. Il software può essere modificato e diffuso in forma modificata a determinate condizioni. + +Software libero:: +Prima del termine «open source», negli anni Ottanta la Free Software Foundation (FSF) ha introdotto il concetto di «software libero». Nella sostanza il software libero soddisfa le condizioni del software open source, ma mira a garantire che il software resti sempre liberamente accessibile e, per quanto possibile, non venga integrato in software proprietario. footnote:[https://it.wikipedia.org/wiki/Software_libero[Software libero -- Wikipedia]] + +Software proprietario:: +Nel caso del software proprietario un fornitore sviluppa il software e vende all'utente una licenza d'uso. Di regola l'utente non conosce il codice del software e non può né ridistribuirlo né modificarlo. Può utilizzare il software soltanto secondo le condizioni di licenza (p. es. End-User Licence Agreement, EULA) dietro pagamento di tasse di licenza. Il software può ad esempio essere autorizzato soltanto per un determinato numero di utenti o un determinato numero di processori. footnote:[https://it.wikipedia.org/wiki/Software_proprietario[Software proprietario -- Wikipedia]] In cambio delle spese di manutenzione, di regola annuali, il fornitore si impegna a correggere gli errori entro un termine adeguato e a sviluppare continuamente il software. + +Licenza:: +Una licenza è un documento che contiene prescrizioni vincolanti per l'utilizzo e la diffusione di un software. Nell'ambito open source si utilizzano di regola licenze conformi all'OSI. footnote:[https://opensource.org/[Open Source Initiative]] + +Community:: +Il concetto di community nel contesto del software open source è definito in senso ampio. Può trattarsi di un ecosistema informale o di una struttura dotata di governance che sviluppa il software. Il documento link:em002-4.pdf[Em002-4 Guida alle community OSS] tratta questo tema. I membri della community possono gestire congiuntamente il prodotto, svilupparlo, testarlo, tradurlo, fornire riscontri o semplicemente utilizzare il software. + +Diritti di terzi:: +Anche per il software open source possono esistere diritti di protezione (diritto d'autore, diritto dei marchi, diritto dei brevetti), che possono essere fatti valere da terzi, p. es. utilizzando codice sorgente creato da terzi. + +Eccezioni secondo la LMeCA:: +Le eccezioni secondo l'art. 9 cpv. 1 LMeCA sono i diritti di terzi e i motivi rilevanti per la sicurezza. Entrambi sono trattati nel capitolo 3 di link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +Codice sorgente:: +In informatica il codice sorgente (o testo sorgente) è il testo leggibile dall'essere umano di un programma per computer, redatto in un linguaggio di programmazione. footnote:[https://it.wikipedia.org/wiki/Codice_sorgente[Codice sorgente -- Wikipedia]] + +Pubblicazione:: +Per pubblicazione si intende in primo luogo la messa a disposizione del codice sorgente sotto una licenza aperta conforme all'OSI. Per ragioni pratiche essa comprende di regola anche la documentazione e le istruzioni automatizzate per costruire l'applicazione a partire dal codice sorgente. Anche i test automatizzati e i documenti di test ne fanno solitamente parte. Affinché una community possa svilupparsi si utilizza una piattaforma che assume poi diverse funzioni di una piattaforma di sviluppo (build, test, supporto). + +Sovranità digitale:: +Utilizziamo la definizione contenuta nel rapporto del DFAE sulla sovranità digitale [St2024]: «La sovranità digitale di uno Stato o di un'organizzazione comprende necessariamente il controllo completo dei dati memorizzati ed elaborati nonché la decisione autonoma su chi possa accedervi. Essa comprende inoltre la capacità di sviluppare, modificare, controllare e completare autonomamente componenti e sistemi tecnologici.» + +Repository:: +Un repository è un luogo di archiviazione utilizzato da uno strumento di gestione delle versioni per i file e i metadati relativi alla base di codice. I repository consentono a più collaboratori di lavorare sugli stessi file e di archiviare diverse versioni. La maggior parte consente inoltre l'issue tracking, la gestione delle release, le build automatizzate e la documentazione. + +Fork:: +Un fork footnote:[https://it.wikipedia.org/wiki/Fork_(sviluppo_software)[Fork (sviluppo software) -- Wikipedia]] di un progetto open source è il processo di avviare uno sviluppo indipendente del progetto originario. + +Contributor Licence Agreement (CLA):: +Un Contributor Licence Agreement footnote:[https://en.wikipedia.org/wiki/Contributor_License_Agreement[Contributor License Agreement -- Wikipedia]] è un documento che descrive le condizioni alle quali è possibile apportare proprietà intellettuale a un progetto o a un'iniziativa. + +Source code management (SCM):: +La gestione del codice sorgente footnote:[https://it.wikipedia.org/wiki/Controllo_versione[Controllo versione -- Wikipedia]], detta anche gestione delle versioni, è uno strumento che gestisce efficacemente modifiche e numeri di versione, in particolare nello sviluppo software. Si è affermato il software libero Git footnote:[https://it.wikipedia.org/wiki/Git[Git -- Wikipedia]] per la gestione di SCM distribuiti. + +Open source software development (OSSD):: +Nello sviluppo di software open source (OSSD) footnote:[https://en.wikipedia.org/wiki/Open-source_software_development[Open-source software development -- Wikipedia]], oltre alla pubblicazione del codice sorgente, l'intero processo di sviluppo si svolge pubblicamente. Tutto, dai requisiti (issue) al codice sorgente, è trasparente. L'OSSD è supportato da strumenti di comunicazione pubblici (mailing list, forum ecc.), da un sistema di gestione delle versioni (Git), da elenchi di errori e funzionalità, da una roadmap e da strumenti per sviluppatori. + +Software Package Data Exchange (SPDX):: +Software Package Data Exchange (SPDX) footnote:[https://en.wikipedia.org/wiki/Software_Package_Data_Exchange[Software Package Data Exchange -- Wikipedia]] descrive un formato standard per la Software Bill of Materials (SBOM), con l'obiettivo di agevolare la corretta gestione del software libero o open source. + +Effetto copyleft:: +Se un software è soggetto a una licenza con clausola di copyleft, ogni modifica o estensione del codice sorgente deve essere nuovamente pubblicata sotto la licenza del software open source modificato (cfr. anche link:em002-3.pdf[Em002-3 Guida alle licenze OSS]). + +== Potenziale e sfide + +Nell'odierno mondo informatico il software open source presenta un potenziale enorme. Al tempo stesso l'impiego di soluzioni open source comporta anche sfide. Questi due aspetti sono illustrati più in dettaglio nella sezione seguente. Le indicazioni si basano tra l'altro sui risultati dello Studio Open Source Svizzera 2018, 2021 e 2024 dell'Università di Berna, nel quale gli interpellati hanno fornito informazioni sui vantaggi e sugli svantaggi riconosciuti del software open source. + +=== Potenziale del software open source + +I punti seguenti descrivono il potenziale che può essere realizzato impiegando e pubblicando software open source. + +{empty}1. Sovranità digitale:: +Si tratta della capacità di utilizzare e controllare i servizi digitali. La sovranità digitale si estende all'intero ciclo di vita di un sistema digitale. Il software open source promuove la sovranità digitale, poiché garantisce intercambiabilità, libertà di configurazione e influenza. footnote:[Utilizziamo la definizione di _[St2024\]_: «La sovranità digitale di uno Stato o di un'organizzazione comprende necessariamente il controllo completo dei dati memorizzati ed elaborati nonché la decisione autonoma su chi possa accedervi. Essa comprende inoltre la capacità di sviluppare, modificare, controllare e completare autonomamente componenti e sistemi tecnologici.»] + +{empty}2. Nessuna tassa di licenza:: +Per l'utilizzo di software open source non sorgono costi di licenza. Nell'acquisire pacchetti standard open source complessi può tuttavia essere opportuno acquistare abbonamenti di supporto a pagamento. + +{empty}3. Risparmi grazie alla cooperazione con altri utenti:: +Poiché un software soggetto a una licenza open source può essere utilizzato e sviluppato senza restrizioni, i costi degli sviluppi ulteriori possono essere condivisi oppure è possibile riprendere sviluppi aggiuntivi esistenti di altre unità amministrative secondo il principio «sviluppare una volta — utilizzare più volte». Al tempo stesso si può beneficiare dell'esperienza e degli sviluppi altrui. + +{empty}4. Costituzione di community e condivisione delle conoscenze:: +Il software open source facilita la costituzione di community e la condivisione delle conoscenze, per esempio tra i diversi livelli federali in Svizzera. Il software può essere sviluppato congiuntamente, gli errori possono essere corretti e le esperienze individuali condivise. L'accresciuto scambio di conoscenze tra diverse unità amministrative porta a una migliore comprensione di ciò a cui lavorano gli altri, così da evitare doppioni e permettere alle soluzioni migliori di diffondersi. + +{empty}5. Minore dipendenza dai fabbricanti:: +Il vendor lock-in (dipendenza dai fornitori di software) è considerato molto elevato in informatica. L'impiego di software soggetto a licenza open source riduce il vendor lock-in, poiché esercizio, manutenzione, supporto, sviluppo ulteriore e altre prestazioni per il software open source possono essere messi a concorso pubblicamente. Invece di riacquistare integralmente un intero sistema a causa di un vendor lock-in, è possibile mettere a concorso separatamente anche estensioni o prestazioni del ciclo di vita per una soluzione OSS. Ciò consente di risparmiare notevoli costi di migrazione. + +{empty}6. Standard aperti e interoperabilità:: +Con il software open source la compatibilità con altre soluzioni software e sistemi informatici (interoperabilità) è di regola maggiore rispetto al software proprietario. Le soluzioni open source utilizzano inoltre quasi esclusivamente formati di dati aperti, per cui possono essere facilmente scambiate con altri sistemi. + +{empty}7. Trasparenza sulla struttura del software:: +Poiché il software è disponibile anche sotto forma di codice sorgente, la sua qualità può essere verificata, per esempio mediante revisioni esterne. Inoltre, sulla base del codice sorgente è possibile creare documentazione (p. es. in vista di nuovi bandi per prestazioni di sviluppo o della sostituzione di software open source al termine della sua vita utile). + +{empty}8. Sicurezza e fiducia grazie alla trasparenza:: +Data l'apertura del codice sorgente, la sicurezza del software open source può essere superiore a quella del software proprietario. È inoltre molto più difficile inserire backdoor e altre falle nel software open source, il che accresce la fiducia nel software. + +{empty}9. Maggiore qualità e modularità del codice:: +La qualità del software open source può essere superiore a quella del software proprietario, poiché la motivazione a scrivere codice di qualità è verosimilmente maggiore quando gli sviluppatori sanno che il loro codice sorgente sarà pubblicato. Inoltre le soluzioni open source tendono a essere fortemente modulari, per cui singoli moduli possono essere facilmente sostituiti e i restanti continuare a essere utilizzati. footnote:[Un ulteriore aspetto di sicurezza è che le librerie utilizzate (comprese le dipendenze) sono più facili da documentare rispetto al software proprietario. Ciò significa a sua volta che, quando emergono vulnerabilità, esse possono essere individuate e corrette rapidamente (cfr. anche SBOM).] + +{empty}10. Adattamento semplice:: +L'accesso al codice sorgente consente agli utenti di effettuare sviluppi ulteriori autonomamente o tramite fornitori esterni. Il software può così essere adattato rapidamente alle proprie esigenze. + +{empty}11. Innovazione e integrazione rapide:: +Il software open source viene sviluppato rapidamente e continuamente dalla community. Nuove tecnologie e nuovi standard di dati vengono per esempio spesso pubblicati come librerie di programmazione open source. Ciò consente la rapida realizzazione di soluzioni software innovative. + +{empty}12. Attrattiva del datore di lavoro:: +L'impiego di moderne tecnologie open source e la collaborazione informale con community internazionali favoriscono la motivazione dei collaboratori e accrescono così l'attrattiva del datore di lavoro, il che agevola a sua volta il reclutamento di giovani professionisti qualificati. + +=== Sfide nella gestione dell'OSS + +Di seguito sono descritte le sfide tipiche che si incontrano nella pratica con il software open source e sono delineate alcune possibili soluzioni. Non trattiamo in questa sede le sfide generali che riguardano tutti i software (p. es. la necessità di verificare la cibersicurezza e di assicurare un supporto adeguato per il software critico). + +{empty}1. Elevati costi di passaggio dovuti a dipendenze esistenti:: +La sostituzione di software proprietario con soluzioni open source può risultare molto onerosa se l'applicazione è strettamente integrata nel sistema informatico esistente mediante interfacce o altre dipendenze. Questi costi di passaggio fanno sì che l'introduzione di software open source sia spesso conveniente soltanto al termine del ciclo di vita del software proprietario. + +{empty}2. Funzionalità mancanti o assenza di una soluzione open source adeguata:: +Nell'acquisto di software standard può accadere che non esista alcuna alternativa open source alla soluzione proprietaria (precedente), oppure soltanto una funzionalmente insufficiente. Come possibile soluzione vi è la facoltà di sviluppare le funzionalità mancanti insieme ad altri utenti del software open source e di aggiungerle al progetto open source. footnote:[Per tali nuove funzionalità sono competenti i responsabili di progetto o di applicazione. Le modalità precise sono stabilite dal progetto. Em002-2 ed Em002-4 aiutano nelle decisioni di dettaglio. A seconda dell'entità della funzionalità può non essere opportuno percorrere integralmente le istruzioni. Vanno osservati gli aspetti del diritto degli acquisti pubblici relativi alle risorse.] + +{empty}3. Maggiori costi d'integrazione:: +I risparmi a breve termine derivanti dalle licenze non dovute nell'impiego di software open source sono spesso compensati da maggiori costi d'integrazione. È quindi importante riconoscere che l'impiego professionale di software open source non è «gratuito», ma genera effettivamente costi interni o esterni. + +{empty}4. Responsabilità e supporto poco chiari:: +Il software open source è spesso criticato per la mancanza di supporto e manutenzione da parte di imprese esterne. Esiste tuttavia ormai una molteplicità di fornitori che offrono prestazioni commerciali (supporto a lungo termine, manutenzione continua, sviluppo ulteriore, responsabilità e garanzia ecc.) per le soluzioni open source. I diversi modelli di business con il software open source sono illustrati nell'allegato D e i diversi modelli di supporto nel capitolo 8. Una panoramica aggiornata dei fornitori di servizi open source e delle loro prestazioni figura nell'Open Source Directory (https://www.ossdirectory.com) o nello Studio OSS 2024 footnote:[https://www.oss-studie.ch/[Studio OSS]] _[OSS2024]_. + +{empty}5. Mercato ristretto con pochi fornitori:: +Poiché determinate applicazioni open source, come quelle desktop, richiedono di regola poco o nessun supporto e manutenzione, il mercato dei fornitori open source di supporto e manutenzione può essere ristretto. In tal caso un bando per prestazioni di servizi relative a software open source può contribuire a creare un mercato che accresca la concorrenza tra i fornitori. L'esistenza di un'ampia community di sviluppo per il software in questione e la qualità della documentazione di sviluppo rivestono importanza pratica nel mettere a concorso tali prestazioni. + +{empty}6. Scarsa visibilità:: +Le community dei progetti open source si concentrano soprattutto sullo sviluppo del prodotto e raramente sul marketing. Per contro i fabbricanti di software proprietario investono massicciamente nella commercializzazione e nella vendita dei loro prodotti. Questa mancanza di pubblicità per il software open source crea spesso la falsa impressione che non esistano alternative ai prodotti proprietari. Vi sono però piattaforme come alternativeTo footnote:[https://alternativeto.net/] che offrono una panoramica delle soluzioni per compiti specifici (maggiori informazioni sulle alternative OSS nel capitolo «Reperibilità delle soluzioni OSS»). + +{empty}7. Mancanza di accettazione da parte degli utenti finali:: +A causa di interfacce utente differenti, funzioni mancanti, scarsa facilità d'uso e poca pubblicità per il software open source, determinati prodotti open source soffrono di una mancanza di accettazione da parte degli utenti finali. Adeguate offerte di comunicazione, documentazione e formazione possono contrastare questa sfida. Anche il fatto che il software open source possa essere sviluppato secondo le esigenze degli utenti può portare a una maggiore accettazione. + +{empty}8. Competenze interne scarse o inesistenti:: +Le soluzioni open source evolvono rapidamente e richiedono al tempo stesso una profonda comprensione tecnica. Può quindi accadere che i collaboratori interni dispongano di poche o nessuna competenza su determinati software open source. Il know-how OSS interno può essere sviluppato mediante il perfezionamento e possibilità di autoapprendimento tramite fonti online, la creazione di wiki interni ecc. + +{empty}9. Difficile valutazione del futuro:: +Per chi è esterno a una community open source è spesso difficile riconoscere come il progetto si svilupperà in futuro. È quindi importante poter valutare realisticamente lo sviluppo futuro di una soluzione open source. Il capitolo «Open Hub» presenta a tal fine la piattaforma Open Hub, che consente di valutare l'attività e l'eterogeneità della community di sviluppo. Ciò permette di apprezzare meglio lo sviluppo futuro di un progetto open source. + +{empty}10. Incertezze giuridiche:: +La molteplicità di licenze open source diverse e il numero finora esiguo di sentenze giudiziarie su questioni interpretative possono talvolta generare incertezze giuridiche con il software open source. La presente guida pratica intende offrire una panoramica delle principali licenze open source nonché delle loro caratteristiche e compatibilità. Fonti per risposte approfondite a questioni giuridiche figurano nei documenti link:em002-3.pdf[Em002-3 Guida alle licenze OSS] e link:em002-6.pdf[Em002-6 FAQ sull'OSS e l'art. 9 LMeCA]. + +{empty}11. Offerta troppo ampia di software open source:: +Il numero di prodotti software open source è fortemente aumentato negli ultimi anni. I potenziali utenti di software open source lamentano pertanto la molteplicità di soluzioni open source presenti sul mercato. Per questo motivo il capitolo «Reperibilità di…» presenta due piattaforme, alternativeTo e Open Hub, che consentono di confrontare le soluzioni open source. + +{empty}12. Onere di coordinamento nello sviluppo congiunto:: +Quando l'Amministrazione federale partecipa a progetti comuni e vi contribuisce, ne deriva un onere di coordinamento all'interno di tali collaborazioni, ma anche quando occorre coinvolgere una community. Idealmente questo onere supplementare dovrebbe comunque risultare conveniente grazie a una soluzione migliore, a una maggiore accettazione o a una partecipazione accresciuta di terzi. + +== Costellazioni per l'utilizzo e il lavoro con l'OSS + +=== Livelli di maturità per l'OSS nell'Amministrazione federale + +Nell'impiego e nello sviluppo di OSS nell'Amministrazione federale esistono diverse costellazioni riguardo agli obblighi connessi alle licenze open source. Un tipico modello di maturità footnote:[Modello di maturità ispirato a https://todogroup.org/resources/guides/a-guide-to-outbound-open-source-software/#maturity-levels] per l'introduzione dell'open source nelle organizzazioni può presentarsi così: + +. Denial — nessun impiego di software open source, o impiego inconsapevole +. Consumption — impiego passivo di software open source +. Participation — impegno nelle community open source +. Contribution — contributi pragmatici a progetti open source +. Leadership — impegno strategico con l'open source per creare valore footnote:[La creazione non è menzionata, poiché l'art. 9 LMeCA la esige direttamente.] + +[options="header",cols="1,2a"] +|=== +|Costellazione |Conseguenza + +|Il semplice *utilizzo* di software open source esistente (senza modifica del codice). +|Non sussiste *alcun obbligo* di condividere il codice sorgente. + +|Lo *sviluppo interamente nuovo* di software destinato a essere pubblicato sotto una licenza open source. +|*In tal caso sussiste piena libertà quanto alla licenza sotto la quale il software viene pubblicato.* Per la Confederazione va consultato il documento link:em002-3.pdf[Em002-3 Guida alle licenze OSS]. Vanno osservati i documenti link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +|*Sviluppo ulteriore* (interno o esterno) con componenti open source esistenti (con o senza effetto copyleft footnote:[Spiegazione del termine «copyleft» in link:em002-3.pdf[Em002-3 Guida alle licenze OSS]]), fintanto che il software è utilizzato *esclusivamente all'interno della stessa organizzazione* e non è ridistribuito. +|I componenti OSS possono essere combinati a piacimento con componenti di terzi. Dalla licenza non deriva in linea di principio alcun obbligo di pubblicazione, fintanto che il software è utilizzato esclusivamente all'interno della stessa organizzazione e non è diffuso (eccezione: AGPL). Poiché non è giuridicamente chiarito in modo definitivo fin dove si estenda il concetto di «diffusione all'interno della stessa organizzazione», questo scenario si applica ai componenti OSS con effetto copyleft soltanto in casi eccezionali. In tali casi consultate il servizio giuridico della vostra organizzazione. Cfr. link:em002-3.pdf[Em002-3 Guida alle licenze OSS] ed link:em002-6.pdf[Em002-6 FAQ sull'OSS e l'art. 9 LMeCA]. Vanno osservati i documenti link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS]. *Poiché secondo l'art. 9 LMeCA sussiste un obbligo di pubblicazione, le modifiche devono essere nuovamente pubblicate. Il modo più semplice è farlo come modifiche al progetto open source esistente.* + +|*Sviluppo ulteriore* (interno o esterno) *esclusivamente con* componenti open source esistenti *senza effetto copyleft*, se il software deve essere diffuso all'esterno (p. es. ai Cantoni). +|I componenti OSS possono essere combinati a piacimento con componenti di terzi e dalle licenze non deriva alcun obbligo di pubblicazione (cfr. anche link:em002-3.pdf[Em002-3 Guida alle licenze OSS]). *Nel quadro dell'art. 9 LMeCA la pubblicazione è tuttavia obbligatoria. Idealmente essa dovrebbe avvenire tramite il progetto esistente (nessun fork).* Vanno osservati i documenti link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +|*Sviluppo ulteriore* (interno o esterno) con componenti open source esistenti *con effetto copyleft*, se il software deve essere diffuso all'esterno (p. es. ai Cantoni). +|*Sussiste un obbligo di pubblicazione* in virtù della licenza copyleft (cfr. anche link:em002-3.pdf[Em002-3 Guida alle licenze OSS] riguardo all'effetto copyleft). Vanno osservati i documenti link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +|*Contributo* a un progetto open source esistente. +|*Secondo la LMeCA sussiste di regola un obbligo di pubblicazione. Si applicano la governance e la licenza del progetto.* Vanno osservati i documenti link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +|*Sviluppo congiunto* di un progetto nuovo o esistente con una community e ripartizione dei costi. +|*Secondo la LMeCA sussiste di regola un obbligo di pubblicazione.* I documenti link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS], link:em002-3.pdf[Em002-3 Guida alle licenze OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS] servono *a impostare il progetto e la sua governance.* + +|*Tutte le varianti di sviluppo o di sviluppo ulteriore* sono realizzate *tramite un fornitore o terzi incaricati.* +|*Secondo la LMeCA sussiste di regola un obbligo di pubblicazione.* Sulla base di link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS], link:em002-3.pdf[Em002-3 Guida alle licenze OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS]. Se possibile, i presupposti per la pubblicazione andrebbero creati già nel processo d'acquisto e, se necessario, i requisiti per il rilascio del software andrebbero comunicati al fornitore o ai terzi. +|=== + +=== Utilizzo di software open source non modificato + +Nell'utilizzo di software open source non è in linea di principio determinante sapere sotto quale licenza open source esso sia pubblicato, poiché tutte le licenze open source (cfr. capitolo 2 «Definizioni») consentono l'uso illimitato del software open source, indipendentemente dal numero di postazioni di lavoro, di utenti collegati simultaneamente, di server e processori ecc. su cui il software è impiegato. + +Nell'utilizzo di software open source non modificato non sorge *alcun obbligo di pubblicazione*, nemmeno per i programmi soggetti a una licenza con effetto copyleft rigoroso (eccezione: licenza AGPL, Affero General Public Licence). + +Fintanto che il software open source è introdotto ed esercito da fornitori di prestazioni interni alla Confederazione, ciò può avvenire *senza procedura di acquisto pubblico*, poiché «la sola licenza OSS di regola non costa nulla al servizio acquirente e non è quindi di per sé rilevante sotto il profilo degli acquisti pubblici». + +Se per la manutenzione, il supporto e altre prestazioni relative al software open source è incaricato un fornitore esterno, vanno osservate le prescrizioni del diritto degli acquisti pubblici. Diverse varianti di supporto sono descritte nel capitolo 9. È inoltre importante utilizzare criteri di idoneità e di aggiudicazione adeguati nell'acquisto di software open source. Le basi al riguardo sono illustrate nel capitolo 8. + +=== Sviluppo con componenti open source e pubblicazione del codice sorgente + +Con l'obbligo di pubblicazione secondo l'art. 9 LMeCA occorre qui seguire la procedura descritta in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS]. +Se necessario vanno consultati anche i documenti link:em002-3.pdf[Em002-3 Guida alle licenze OSS] ed link:em002-4.pdf[Em002-4 Guida alle community OSS]. L'obiettivo è pubblicare il progetto in modo controllato sulla base delle tre liste di controllo _link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1], link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2], link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3]_. + +=== Collaborazione in progetti aperti (contribution) + +Le possibili riflessioni sul contributo dell'Amministrazione federale a progetti aperti già esistenti sono esposte nel capitolo 4.2 della guida BITKOM _[BITKOM2024]_. footnote:[Cfr. https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html, capitolo 4.2.] A seconda dell'importanza del progetto per l'Amministrazione federale occorre valutare quanta responsabilità il rispettivo ufficio intenda e possa assumere. + +La collaborazione in progetti aperti e lo sviluppo diretto in progetti aperti possono parimenti avvenire sulla base dei documenti per la pubblicazione. Al centro figurano link:em002-4.pdf[Em002-4 Guida alle community OSS] e la relativa lista di controllo _link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]_. + +== Caratteristiche e scelta delle licenze open source + +Le caratteristiche e la scelta delle licenze open source sono descritte nel documento link:em002-3.pdf[Em002-3 Guida alle licenze OSS]. + +== Acquisto di OSS + +Le questioni strategiche relative agli acquisti e all'OSS sono trattate in link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e del software open source]. + +Il Centro di competenza per gli acquisti pubblici della Confederazione (CCAP) ha pubblicato un nuovo promemoria intitolato _Acquisto di software e art. 9 LMeCA https://perimap.admin.ch/goto_perimap_file_46835_download.html[[KBB-MB]]_ nonché due documenti «Criteri tipo — acquisto LMeCA e open source» e «Testi contrattuali tipo — sviluppo software». + +Ulteriore sostegno è disponibile sull'https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[intranet dell'UFCL] (accessibile soltanto dalla rete federale) con le https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[_direttive Open Source negli acquisti_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[BBL-WL]]_ e la https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[_lista di controllo per l'eccezione forfettaria secondo l'art. 9 LMeCA_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[BBL-CL]]_. + +L'idoneità dell'open source all'uso aziendale è trattata nel documento _Selection Criteria for Enterprise-Ready Open Source Software [Gu2024]_ footnote:[Cfr. _[Gu2024\]_] o nella guida Bitkom. footnote:[Cfr. https://www.bitkom.org/Bitkom/Publikationen/Praxisempfehlungen-fuer-Open-Source-Software[Raccomandazioni pratiche per il software open source | Guida 2025 | Bitkom e. V.], capitolo 3.3] + +== Reperibilità delle soluzioni OSS + +Diverse piattaforme consentono alle organizzazioni interessate di trovare e analizzare software open source prima dell'utilizzo o dell'acquisto. I dati così ottenuti costituiscono una base per decidere in merito all'impiego o all'acquisto di software open source. + +Una raccolta di requisiti minimi e, se del caso, un'analisi di mercato dovrebbero in ogni caso essere d'ausilio. + +=== Catalogo OSS + +Le autorità federali sono tenute a pubblicare il codice sorgente del software che sviluppano o fanno sviluppare per adempiere i loro compiti. Il catalogo OSS footnote:[https://www.opensource.admin.ch/] elenca tutto il software sviluppato dalle autorità federali dal 1° gennaio 2024 e pubblicato come open source. Offre una panoramica del software disponibile e agevola il reperimento e il riutilizzo di soluzioni open source. + +Se viene creato un nuovo repository o una nuova organizzazione, ciò va segnalato per l'inserimento nel catalogo OSS all'indirizzo e-mail opensource@bk.admin.ch. + +Catalogo OSS: https://www.opensource.admin.ch + +=== OSS Directory + +L'OSS Directory gestito da CH Open footnote:[https://www.ossdirectory.com/it/home] agevola il reperimento di fornitori qualificati che offrono supporto professionale per il software open source. + +I fornitori open source mostrano, mediante casi di successo, quali utenti (clienti) hanno aiutato a introdurre determinati prodotti open source. +Il Directory propone inoltre notizie open source aggiornate provenienti da piattaforme esistenti, notizie di rilievo selezionate, eventi, community, offerte di lavoro e articoli per la condivisione delle conoscenze. L'OSS Directory è disponibile in tedesco, inglese, francese e italiano. Tutte le voci possono essere aggiunte e aggiornate direttamente dagli utenti registrati. + +OSS Directory: https://www.ossdirectory.com + +=== alternativeTo + +Uno strumento pratico per trovare alternative a un software è «alternativeTo - Crowdsourced software recommendations». footnote:[https://alternativeto.net/] Come suggerisce il nome, le alternative e le relative valutazioni sono nate tramite crowdsourcing, ossia grazie ai contributi di molti singoli utenti. alternativeTo distingue quattro tipi di soluzioni software, di cui soltanto il primo è considerato software open source ai sensi dell'art. 9 LMeCA: + +Free open source:: +Software pubblicato sotto una licenza open source. + +Free:: +Software gratuito (freeware) il cui codice sorgente non è però liberamente disponibile e non può essere modificato. + +Freemium:: +Tale software offre una versione gratuita e una premium, con tutte le funzionalità importanti già disponibili nella versione gratuita. Non rientra in questa categoria il software che può essere testato gratuitamente per un periodo determinato (p. es. una versione di prova di 30 giorni), che ricade nella categoria «Commercial». + +Commercial:: +Si tratta di software proprietario per il cui utilizzo sono riscosse tasse di licenza. + +=== Repository open source + +Attualmente la piattaforma di sviluppo open source più popolare al mondo, con oltre 30 milioni di utenti e oltre 100 milioni di repository di codice sorgente, è GitHub. footnote:[https://octoverse.github.com] Oggi praticamente tutte le imprese informatiche, in particolare i fabbricanti di software proprietario, nonché molti altri tipi di imprese e organizzazioni sono presenti su GitHub. Sempre più autorità pubbliche — una dozzina circa dalla Svizzera footnote:[https://government.github.com/community/#switzerland] — pubblicano inoltre il proprio software open source su «GitHub and Government» all'indirizzo https://government.github.com. Questa procedura può essere svolta anche con altri repository. + +Esempi di altri repository sono: + +* GitLab +* Bitbucket +* SourceForge +* LaunchPad + +Su GitHub Insights è possibile consultare numerose statistiche rilevanti di un progetto open source su GitHub: + +Pulse:: +Panoramica delle attività recenti di un progetto open source su GitHub: sintesi delle informazioni principali su intensità di sviluppo, eterogeneità della community, segnalazioni aperte, miglioramenti (pull request) ecc. + +Contributors:: +Indicazione di quali sviluppatori sono stati attivi e quando. È un indicatore importante per sapere se tutto dipende da una sola persona o se dietro vi è una community più ampia. + +Commits:: +Indicazione di quali contributi sono stati apportati a questo progetto open source e in quale periodo. + +Code frequency:: +Visualizzazione di quanto codice sorgente è stato aggiunto o rimosso e quando. + +Dependency graph:: +Dipendenze del progetto open source da altro software open source (p. es. rilevante per individuare vulnerabilità di sicurezza e aggiornamenti). + +Network:: +Indicazione di quando quale sviluppatore ha contribuito a quale ramo di sviluppo. + +Forks:: +Elenco di tutte le copie del progetto open source su GitHub. Indicatore della popolarità e della diffusione del software open source. + +=== Open Hub + +Se occorre raccogliere informazioni su una soluzione open source che non è necessariamente sviluppata su GitHub, Open Hub di Black Duck rappresenta una buona opzione. footnote:[https://www.openhub.net/] Per circa mezzo milione di progetti open source vengono riassunte in modo chiaro numerose informazioni importanti: + +Project Summary:: +Una breve descrizione del progetto open source. + +In a Nutshell:: +I fatti più importanti su un progetto open source, quali il numero di commit, di collaboratori e di righe di codice, nonché il linguaggio di programmazione più utilizzato, la data del primo commit e dell'ultima modifica. È inoltre indicata una valutazione della base di codice e delle dimensioni del team di sviluppo (p. es. «Mozilla Firefox has a well-established, mature codebase maintained by a very large development team with stable Y-O-Y commits»). + +Quick Reference:: +Contiene informazioni sull'organizzazione, collegamenti al progetto e al codice nonché rinvii a progetti analoghi. + +Licences:: +Indica sotto quale licenza o quali licenze il progetto open source è licenziato e quali conseguenze ne derivano. + +Project Security:: +Fornisce indicazioni sulla sicurezza e sulle vulnerabilità del progetto open source. + +Code:: +Un grafico che mostra il numero di righe di codice nel tempo, suddiviso per linguaggio di programmazione. + +Activity:: +Un grafico che mostra il numero di commit al mese. È inoltre fornita una sintesi degli ultimi 30 giorni e 12 mesi. + +Community:: +Un grafico che mostra il numero di collaboratori attivi al mese. È inoltre visualizzata una valutazione del progetto su una scala a cinque stelle. + +Open Hub consente anche di confrontare diversi progetti open source. footnote:[https://www.openhub.net/p/_compare] Ciò fornisce rapidamente una panoramica di quale progetto abbia la community più attiva, il tempo di sviluppo più lungo o la licenza più adeguata. + +=== Repository di codice particolari + +Le organizzazioni di maggiori dimensioni dispongono di propri repository di codice. Merita menzione in particolare il repository tedesco per le autorità opencode.de. footnote:[https://opencode.de/en/home] Rivestono qui particolare interesse i repository di altre amministrazioni pubbliche. + +== Modelli di supporto per l'utilizzo dell'OSS + +Il software open source già disponibile sul mercato può essere utilizzato fondamentalmente in tre modi: + +. Utilizzo senza supporto professionale +. Utilizzo con supporto interno +. Utilizzo con supporto di un fornitore esterno. + +Questi tre tipi di utilizzo e i relativi vantaggi e svantaggi sono illustrati brevemente qui di seguito. Quale di questi scenari sia il più opportuno in un caso concreto va deciso caso per caso. Il modello di supporto adeguato dipende dalla rilevanza strategica del software open source, dall'integrazione tecnica e dalle risorse di personale disponibili. + +Per il software critico il supporto deve in ogni caso essere fornito in modo professionale, internamente o esternamente. Anche il ciclo di vita previsto dovrebbe avere un ruolo nella pianificazione del supporto. Può anche darsi che il supporto sia ottenuto da più fornitori. + +=== Utilizzo senza supporto professionale + +Il software open source è disponibile su Internet per essere scaricato, installato e utilizzato gratuitamente. + +Vantaggi:: +* Costi contenuti +* Attuazione rapida + +Svantaggi:: +* Nessun supporto garantito +* Nessuna pretesa di responsabilità + +Rischio e copertura:: +Rischio elevato: non esistono contratti di supporto né garanzie e nell'organizzazione vi sono poche o nessuna competenza di sviluppo. + +Ambito d'applicazione tipico:: +Software open source standard che può essere aggiornato indipendentemente da altri sistemi. + +=== Utilizzo con supporto interno + +Un'impresa o un'organizzazione dell'ente pubblico sviluppa competenze e risorse su determinate soluzioni open source per un utilizzo a lungo termine. Questo approccio è particolarmente diffuso negli ambiti critici per l'attività. + +Vantaggi:: +* Elevata flessibilità grazie al know-how interno +* Nessun lock-in del fornitore + +Svantaggi:: +* Elevato investimento e tempo necessari per sviluppare le competenze +* Maggiori costi fissi interni per il personale + +Rischio e copertura:: +Rischio medio: il supporto dipende dal know-how e dalla disponibilità dell'informatica interna. + +Ambito d'applicazione tipico:: +Sviluppi propri, software open source impiegato strategicamente e per il quale è disponibile un know-how approfondito. + +=== Utilizzo con supporto di un fornitore esterno + +Viene coinvolto un fornitore open source esterno per accompagnare professionalmente l'introduzione e la manutenzione del software open source. Questo approccio è impiegato soprattutto negli ambiti critici per l'attività, in cui un know-how approfondito del software deve essere immediatamente disponibile. Ciò può comprendere anche parti della pubblicazione o l'intera pubblicazione. + +Vantaggi:: +* Accesso diretto al know-how degli sviluppatori open source +* Correzioni ed estensioni su base contrattuale +* Scelta tra diversi fornitori open source +* Vincolatività, copertura contro i rischi di conformità + +Svantaggi:: +* Costi esterni dovuti ai fornitori open source +* Dipendenza dal know-how del fornitore open source + +Rischio e copertura:: +Rischio ridotto: la garanzia è prestata secondo il capitolato d'oneri o il service level agreement + +Ambito d'applicazione tipico:: +Software open source critico per l'attività, per il quale sono disponibili poche o nessuna competenza interna di sviluppo + +== Punto di contatto + +Nell'Amministrazione federale non esiste un punto di contatto unico che funga da Open Source Programme Office. In linea di principio gli uffici federali sono responsabili essi stessi dell'attuazione. + +Le richieste generali relative agli strumenti OSS della serie di documenti Em002 possono essere rivolte al settore TDT della Cancelleria federale: opensource@bk.admin.ch. + +== Allegati + +=== Modifiche rispetto alla versione precedente + +* Capitolo 4.1: aggiunti i livelli di maturità +* Capitolo 6: acquisto di OSS completato e adeguato con i nuovi documenti dell'UFCL +* Capitolo 7.1: nuovo catalogo OSS della Confederazione (opensource.admin.ch) +* Ulteriori modifiche e miglioramenti redazionali minori + +=== Riferimenti + +I riferimenti alla serie di documenti Em002 figurano nelle link:em002.pdf[Em002 Linee guida strategiche]. + +=== Abbreviazioni + +Un elenco delle abbreviazioni figura nel documento principale Em002. +Un glossario figura nel documento «link:em002-6.pdf[Em002-6 Domande frequenti sulla pubblicazione di OSS (FAQ-OSS)]». + +=== Modelli di business con l'OSS + +Il software open source non è di per sé un modello di business perché, diversamente dal software proprietario, non è possibile vendere un software soggetto a licenza open source. Esistono nondimeno diverse possibilità per le imprese di gestire modelli di business fondati sul software open source. Se ad esempio occorre ottenere un supporto esterno professionale per una soluzione open source, è necessario acquistare le corrispondenti prestazioni commerciali. I quattro modelli di business più diffusi per il software open source sono illustrati qui di seguito. Ulteriori aspetti di questi e di altri modelli di business sono esposti nella guida BITKOM _[BITKOM2023]_. + +==== Servizi e prodotti basati sull'OSS + +Le imprese possono offrire servizi commerciali quali il web hosting o il cloud computing sulla base di software open source, che con software proprietario sarebbero molto più costosi. Per questo motivo la maggior parte delle start-up, dei portali online e dei fornitori di commercio elettronico costruisce oggi le proprie piattaforme su software open source. Altre imprese tecnologiche, come le imprese di telecomunicazione, i fornitori di streaming o persino i fabbricanti di software proprietario, integrano software open source nei loro prodotti software e hardware nonché nei servizi online. Ciò consente alle imprese di continuare a offrire soluzioni innovative, difficilmente realizzabili con software proprietario. + +==== Servizi per l'OSS + +I fornitori open source erogano prestazioni per software open source selezionati. Dispongono di sviluppatori open source esperti e possono quindi offrire supporto, manutenzione, esercizio, sviluppo, consulenza, formazione e altre prestazioni per il software open source. Esse possono essere ottenute dal fornitore open source su mandato o nel quadro di un contratto d'appalto. Tali prestazioni per software open source possono essere messe a concorso pubblicamente, poiché non sussiste alcun vendor lock-in. Ciò che conta in tali bandi è la considerazione di criteri adeguati, affinché siano selezionati fornitori di prestazioni effettivamente competenti (cfr. capitoli 0 e 8, _[BITKOM2023]_ capitolo 3.3 e _[Gu2024]_). + +==== Abbonamenti + +Quando le prestazioni per software open source sono fornite in forma standardizzata e ricorrente, alla stregua di un service level agreement (SLA), si parla di abbonamenti. Nel quadro di tali abbonamenti le imprese garantiscono per esempio aggiornamenti di sicurezza continui, supporto via e-mail o telefono, compatibilità con altri prodotti software e hardware mediante certificazioni, prestazioni di manutenzione a lungo termine e coperture contro pretese giuridiche (diritto d'autore, brevetti). In cambio i clienti pagano abbonamenti per postazione di lavoro o per CPU, analogamente alle tasse di licenza o d'uso del software proprietario. Diversamente dal software proprietario, gli abbonamenti per il software open source non costituiscono tuttavia un presupposto per l'utilizzo del software, bensì soltanto un modo di remunerare il valore aggiunto delle prestazioni fornite dal fornitore open source. + +==== Doppia licenza + +Se un'impresa detiene la proprietà intellettuale di una soluzione software e tutti i componenti open source integrati sono soggetti a una licenza permissiva, è possibile applicare una doppia o multipla licenza. Ciò consente all'impresa che sviluppa di pubblicare il software sotto una licenza open source copyleft e al contempo di venderlo sotto una licenza proprietaria. Questa versione commerciale è spesso chiamata versione Enterprise e comprende tipicamente determinate funzionalità supplementari, quali integrazioni di interfacce esclusive o l'autorizzazione per gli acquirenti a integrare il software nei propri prodotti proprietari. A seconda dell'entità delle restrizioni della versione open source, è consigliabile prudenza nell'impiego di software a doppia licenza, poiché l'acquisto della versione Enterprise può risultare inevitabile, con un vendor lock-in pari a quello del tipico software proprietario. +endif::[] + +ifeval::["{lang}" == "rm"] +NOTE: Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source. Ulteriuras infurmaziuns chattais Vus en il {url-repo}/tree/main[README] principal. + +== 1. Utilisaziun da questa guida + +Tenor l'artitgel 9 da la lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG) è la Confederaziun obligada da publitgar il code da funtauna dal software ch'ella sviluppa u fa sviluppar per ademplir sias incumbensas. footnote:[CS 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/rm] Il sectur TDT da la Chanzlia federala ha deducì da quest'incumbensa legala finamiras surordinadas en las Directivas strategicas per software open source. + +Quest document serva sco guida pratica per las prescripziuns giuridicas e strategicas. El duai sustegnair las unitads administrativas da la Confederaziun en l'utilisaziun, l'acquist e la relaschada da software open source. El porscha a tut ils interessads ina survista cumplessiva dal tema e renviescha ad infurmaziuns supplementaras en ils auters meds. + +Tut tenor la savida preliminara ed il basegn pudais Vus dentant era leger las guidas selectivamain, avant che passar als auters meds. La survista suandanta As gida da chattar l'access adattà. Sche Vus n'essas betg segirs, è recumandabel da leger l'emprima giada la guida. + +=== Intenziun / gruppas d'interess + +Introducziun generala en il software open source + +* Chapitel Concepts +* Chapitel Potenzial e sfidas +* Chapitel Chattabladad da soluziuns OSS +* link:em002-5.pdf[Em002-5 Fegl d'infurmaziun Meds OSS] +* link:em002-3.pdf[Em002-3 Guida da licenzas OSS] +* link:em002-6.pdf[Em002-6 FAQ davart OSS] + +Introducziun generala en l'EMBAG per persunas che prendan decisiuns + +* link:em002-5.pdf[Em002-5 Fegl d'infurmaziun Meds OSS] +* link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala] + +Mo acquist da software da utilisar + +* Chapitel Grads da madirezza per OSS en l'administraziun federala +* Chapitel Utilisaziun da software open source nunmidà +* link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist ed OSS] +* Fegl d'infurmaziun Acquist da software ed art. 9 EMBAG [KBB-MB] +* Directiva OSS en l'acquist [BBL-WL] + +Nov svilup d'informatica e relaschada + +* Chapitel Svilup cun cumponentas open source e relaschada dal code da funtauna +* Chapitel Collavuraziun en projects averts (contribution) +* link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Glista da controlla Evaluaziun preliminara OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Glista da controlla Analisa e preparaziun OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Glista da controlla Relaschada e publicaziun OSS] +* link:em002-4.pdf[Em002-4 Guida da communitads OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Glista da controlla Communitad OSS] + +Acquist da software da crear (prestaziun u ovra) + +* Chapitel Grads da madirezza per OSS en l'administraziun federala +* Chapitel Svilup cun cumponentas open source e relaschada dal code da funtauna +* Chapitel Collavuraziun en projects averts (contribution) +* link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist ed OSS] +* Chascha d'utensilis dal UFCL, inclusiv la directiva Open Source en l'acquist +* Plattafurma d'emprender e da models da l'administraziun publica dal CCA (www.perimap.admin.ch) inclusiv Acquist da software ed art. 9 EMBAG [KBB-MB] +* Directiva OSS en l'acquist [BBL-WL] +* link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Glista da controlla Evaluaziun preliminara OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Glista da controlla Analisa e preparaziun OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Glista da controlla Relaschada e publicaziun OSS] +* link:em002-4.pdf[Em002-4 Guida da communitads OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Glista da controlla Communitad OSS] + +Scleridas giuridicas per la relaschada + +* link:em002-6.pdf[Em002-6 Dumondas frequentas davart la publicaziun da l'OSS (OSS-FAQ)] +* link:em002-3.pdf[Em002-3 Guida da licenzas OSS] + +Princips da lavur per manadras e manaders da project + +* https://www.hermes.admin.ch/[Documents HERMES] +* link:em002-5.pdf[Em002-5 Fegl d'infurmaziun Meds OSS] + +Contribuziuns da software a terzas persunas e collavuraziuns + +* link:em002-4.pdf[Em002-4 Guida da communitads OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Glista da controlla Communitad OSS] +* link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist ed OSS] +* link:em002-3.pdf[Em002-3 Guida da licenzas OSS] + +La grafica suandanta dat ina survista dals documents relevants per l'OSS en l'administraziun federala. + +include::partials/document-map.rm.adoc[] + +Illustraziun 1: Survista dals meds OSS en connex cun l'art. 9 EMBAG + +== Concepts + +Software open source:: +In software vala sco software open source (OSS), sch'el vegn publitgà sut ina da las var 80 licenzas renconuschidas da l'Open Source Initiative OSI _[OSI2024]_. Concretamain fixescha la definiziun d'open source diesch criteris che tuttas licenzas open source ston ademplir _[Pe1999]_. Quels sa laschan resumar en il fund en quatter puncts: ++ +. Il software dastga vegnir utilisà per mintga intent. +. Il code da funtauna dal software è accessibel libramain. +. Il software dastga vegnir copià e derasà senza restricziuns. +. Il software dastga vegnir midà e derasà en furma midada sut tschertas cundiziuns. + +Software liber:: +Avant il term «open source» ha la Free Software Foundation (FSF) introducì en ils onns 1980 il concept dal «software liber». En il fund adempla il software liber las cundiziuns dal software open source, ma mira a quai che il software restia adina accessibel libramain e na vegnia, sche pussaivel, betg integrà en software proprietar. footnote:[https://de.wikipedia.org/wiki/Freie_Software[Freie Software -- Wikipedia]] + +Software proprietar:: +Tar il software proprietar sviluppa in purschider il software e venda a l'utilisader ina licenza d'utilisaziun. Per ordinari na conuscha l'utilisader betg il code dal software e na dastga ni il derasar vinavant ni il midar. El po utilisar il software mo tenor las cundiziuns da licenza (p.ex. End-User Licence Agreement, EULA) cunter pajament da taxas da licenza. Il software po per exempel esser permess mo per in tschert dumber d'utilisaders u per in tschert dumber da processurs. footnote:[https://de.wikipedia.org/wiki/Proprietäre_Software[Proprietäre Software -- Wikipedia]] En cuntrachamb per las taxas da mantenziun, per ordinari annualas, s'oblighescha il purschider da reparar sbagls entaifer in termin adequat e da sviluppar cuntinuadamain il software. + +Licenza:: +Ina licenza è in document che cuntegna prescripziuns liantas per l'utilisaziun e la derasaziun dal software. Tar l'open source vegnan per ordinari utilisadas licenzas che correspundan a l'OSI. footnote:[https://opensource.org/[Open Source Initiative]] + +Communitad:: +Ina communitad en il context dal software open source è definida amplamain. I po sa tractar d'in ecosistem liber u d'ina structura cun governanza che sviluppa il software. Il document link:em002-4.pdf[Em002-4 Guida da communitads OSS] tracta quest tema. Ils commembers da la communitad pon manar cuminaivlamain il product, il sviluppar, il testar, il translatar, dar resuns u simplamain utilisar il software. + +Dretgs da terzas persunas:: +Era tar software open source pon exister dretgs da protecziun (dretg d'autur, dretg da marcas, dretg da patents) che pon vegnir fatgs valair da terzas persunas, p.ex. tar l'utilisaziun da code da funtauna creà da terzas persunas. + +Excepziuns tenor l'EMBAG:: +Excepziuns tenor l'art. 9 al. 1 EMBAG èn dretgs da terzas persunas e motivs relevants per la segirezza. Omadus vegnan tractads en il chapitel 3 da link:em002-2.pdf[Em002-2 Instrucziuns per publitgar software open source]. + +Code da funtauna:: +En l'informatica è il code da funtauna (u text da funtauna) il text ch'è legibel per umans d'in program da computer, scrit en ina lingua da programmaziun. footnote:[https://de.wikipedia.org/wiki/Quelltext[Quelltext -- Wikipedia]] + +Publicaziun:: +Publicaziun designescha en emprima lingia la relaschada dal code da funtauna sut ina licenza averta tenor l'OSI. Per motivs pratics appartegnan a quai per ordinari era la documentaziun ed instrucziuns automatisadas per crear l'applicaziun a partir dal code da funtauna. Tests automatisads e documents da test èn usitadamain era cuntegnids. Per che ina communitad possia sa sviluppar, vegn duvrada ina plattafurma che surpiglia lura pliras funcziuns d'ina plattafurma da svilup (build, test, support). + +Suveranitad digitala:: +Nus utilisain la definiziun dal rapport davart la suveranitad digitala dal DFAE [St2024]: «La suveranitad digitala d'in stadi u d'ina organisaziun cumpiglia obligatoriamain la controlla cumpletta davart datas memorisadas ed elavuradas sco er la decisiun autonoma davart tgi che dastga acceder a quellas. Ella cumpiglia vinavant la abilitad da sviluppar, midar, controllar e cumplettar autonomamain cumponentas e sistems tecnologics.» + +Repositori:: +In repositori è in lieu da memorisaziun ch'in utensil da gestiun da versiuns utilisescha per datotecas e metadatas davart la basa dal code. Repositoris permettan a plirs collavuraturs da lavurar a las medemas datotecas e da memorisar differentas versiuns. La gronda part permetta ultra da quai l'issue-tracking, il management da releases, builds automatisads e la documentaziun. + +Fork:: +In fork footnote:[https://de.wikipedia.org/wiki/Abspaltung_(Softwareentwicklung)[Abspaltung (Softwareentwicklung) -- Wikipedia]] d'in project open source è il process da construir in svilup independent dal project original. + +Contributor Licence Agreement (CLA):: +In Contributor Licence Agreement footnote:[https://en.wikipedia.org/wiki/Contributor_License_Agreement[Contributor License Agreement -- Wikipedia]] è in document che descriva las cundiziuns, sut las qualas proprietad intellectuala po vegnir contribuida ad in project u ad in'interpresa. + +Source Code Management (SCM):: +Il source code management footnote:[https://de.wikipedia.org/wiki/Versionsverwaltung[Versionsverwaltung -- Wikipedia]], numnà era gestiun da versiuns, è in utensil che administrescha effizientamain midadas e numers da versiun, en spezial en il svilup da software. S'ha imponì il software liber Git footnote:[https://de.wikipedia.org/wiki/Git[Git -- Wikipedia]] per administrar SCM distribuids. + +Open Source Software Development (OSSD):: +Tar il svilup da software open source (OSSD) footnote:[https://en.wikipedia.org/wiki/Open-source_software_development[Open-source software development -- Wikipedia]] vegn, supplementarmain a la publicaziun dal code da funtauna, l'entir process da svilup exequì publicamain. Tut, da las pretensiuns (issues) fin al code da funtauna, è transparent. L'OSSD vegn sustegnì tras utensilis da communicaziun publics (glistas da mail, forums etc.), in sistem da gestiun da versiuns (Git), glistas da sbagls e da funcziuns, ina roadmap ed utensilis per sviluppaders. + +Software Package Data Exchange (SPDX):: +Software Package Data Exchange (SPDX) footnote:[https://en.wikipedia.org/wiki/Software_Package_Data_Exchange[Software Package Data Exchange -- Wikipedia]] descriva in format standard per la Software Bill of Materials (SBOM) cun la finamira da facilitar il tractament correct da software liber u da software open source. + +Effect copyleft:: +Sch'in software stat sut ina licenza cun ina disposiziun copyleft, sto mintga midada u extensiun dal code da funtauna vegnir relaschada puspè sut la licenza dal software open source midà (vesair era link:em002-3.pdf[Em002-3 Guida da licenzas OSS]). + +== Potenzial e sfidas + +En il mund informatic dad oz exista in potenzial enorm per software open source. Al medem temp porta l'utilisaziun da soluziuns open source era sfidas. Questas duas varts vegnan explitgadas pli detagliadamain en la secziun suandanta. Las indicaziuns sa basan tranter auter sin ils resultats dal Studi Open Source Svizra 2018, 2021 e 2024 da l'Universitad da Berna, en il qual las persunas interrogadas han dà infurmaziuns davart ils avantatgs ed ils dischavantatgs renconuschids dal software open source. + +=== Potenzial dal software open source + +Ils puncts suandants descrivan il potenzial che sa lascha realisar tar l'utilisaziun e la relaschada da software open source. + +{empty}1. Suveranitad digitala:: +Qua sa tracti da la abilitad d'utilisar e da controllar servetschs digitals. La suveranitad digitala s'extenda sur l'entir ciclus da vita d'in sistem digital. Software open source promova la suveranitad digitala, perquai ch'el garantescha la substituibilitad, la libertad da configuraziun e l'influenza. footnote:[Nus utilisain la definiziun da _[St2024\]_: «La suveranitad digitala d'in stadi u d'ina organisaziun cumpiglia obligatoriamain la controlla cumpletta davart datas memorisadas ed elavuradas sco er la decisiun autonoma davart tgi che dastga acceder a quellas. Ella cumpiglia vinavant la abilitad da sviluppar, midar, controllar e cumplettar autonomamain cumponentas e sistems tecnologics.»] + +{empty}2. Naginas taxas da licenza:: +Per l'utilisaziun da software open source na resultan nagins custs da licenza. Tar l'obtegniment da pachets da software standard open source cumplexs po dentant esser raschunaivel da cumprar abunaments da support cun custs. + +{empty}3. Spargnas da custs tras la collavuraziun cun auters utilisaders:: +Perquai che software sut ina licenza open source dastga vegnir utilisà e sviluppà vinavant senza restricziuns, pon ils custs da svilups vinavant vegnir dividids u pon svilups supplementars existents d'autras unitads administrativas vegnir surpigliads tenor il princip «sviluppar ina giada – utilisar pliras giadas». Al medem temp exista la pussaivladad da profitar da las experientschas e dals svilups dad auters. + +{empty}4. Construcziun da communitads e barat da savida:: +Software open source facilitescha la construcziun da communitads ed il barat da savida, per exempel tranter ils differents nivels federals en Svizra. Software po vegnir sviluppà vinavant cuminaivlamain, sbagls pon vegnir reparads ed experientschas individualas vegnir cundivididas. Il barat augmentà da savida tranter differentas unitads administrativas maina ad ina meglra chapientscha da quai ch'ils auters fan, uschia ch'i vegn evità dubladuras e che las meglras soluziuns pon sa derasar. + +{empty}5. Pli pitschna dependenza dals fabricants:: +Il vendor lock-in (dependenza da furniturs da software) vala en l'informatica sco fitg aut. L'utilisaziun da software sut ina licenza open source reducescha il vendor lock-in, perquai che manaschi, mantenziun, support, svilup vinavant ed ulteriuras prestaziuns per software open source pon vegnir mess a concurs avertamain. Empè da acquistar da nov in entir sistem pervia d'in vendor lock-in, pon extensiuns u prestaziuns dal ciclus da vita per ina soluziun OSS era vegnir messas a concurs separadamain. Uschia sa laschan spargnar custs da migraziun considerabels. + +{empty}6. Standards averts ed interoperabilitad:: +Tar software open source è la cumpatibilitad cun autras soluziuns da software e sistems informatics (interoperabilitad) per ordinari pli auta che tar software proprietar. Soluziuns open source utiliseschan ultra da quai bunamain exclusivamain formats da datas averts, perquai sa laschan ellas barattar simplamain cun auters sistems. + +{empty}7. Transparenza davart la construcziun dal software:: +Perquai che il software è era avant maun en furma dal code da funtauna, po sia qualitad vegnir controllada, per exempel tras reviews externas. Ultra da quai sa lascha crear documentaziun sin la basa dal code da funtauna (p.ex. en vista a novs concurs per prestaziuns da svilup u a la remplazzada da software open source a la fin da sia durada d'utilisaziun). + +{empty}8. Segirezza e fidanza tras la transparenza:: +Pervia da l'avertadad dal code da funtauna po la segirezza dal software open source esser pli auta che quella dal software proprietar. Ultra da quai è quai bler pli difficil da construir portas davos e autras largias en software open source, quai che maina a dapli fidanza en il software. + +{empty}9. Pli auta qualitad e modularitad dal code:: +La qualitad dal software open source po esser pli auta che quella dal software proprietar, perquai che la motivaziun da scriver bun code è probablamain pli gronda, sche las sviluppadras ed ils sviluppaders san che lur code da funtauna vegn publitgà. Ultra da quai èn las soluziuns open source tendenzialmain fitg modularas, uschia che moduls singuls sa laschan remplazzar simplamain ed ils ulteriurs moduls pon vegnir utilisads vinavant. footnote:[In ulteriur aspect da segirezza è che las bibliotecas utilisadas (inclusiv las dependenzas) sa laschan documentar pli simplamain che tar software proprietar. Quai munta puspè che debilitads pon vegnir renconuschidas e reparadas svelt, sch'ellas cumparan (vesair era SBOM).] + +{empty}10. Adattaziun simpla:: +L'access al code da funtauna permetta als utilisaders da far svilups vinavant sezs u tras furniturs externs. Uschia po il software vegnir adattà svelt als agens basegns. + +{empty}11. Innovaziun ed integraziun spertas:: +Software open source vegn sviluppà vinavant svelt e cuntinuadamain da la communitad. Uschia vegnan novas tecnologias e novs standards da datas publitgads savens sco bibliotecas da programmaziun open source. Quai pussibilitescha la realisaziun sperta da soluziuns da software innovativas. + +{empty}12. Attractivitad dal patrun:: +L'utilisaziun da tecnologias open source modernas e la collavuraziun informala cun communitads internaziunalas promovan la motivaziun dals collaboraturs ed augmentan uschia l'attractivitad dal patrun, quai che facilitescha puspè la reclutaziun da giuvens professiunals qualifitgads. + +=== Sfidas en il tractament da l'OSS + +Sutvart vegnan descrittas las sfidas tipicas ch'i dat en la pratica cun software open source e vegnan schizzadas intginas pussaivladads da soluziun. Sfidas generalas che pertutgan tut il software n'anfain nus betg a quest lieu (p.ex. la necessitad da controllar la cybersegirezza e la necessitad da garantir in support adequat per software critic). + +{empty}1. Auts custs da midada pervia da dependenzas existentas:: +La remplazzada da software proprietar cun soluziuns open source po esser fitg custaivla, sche l'applicaziun è integrada stretgamain en il sistem informatic existent tras interfatschas u autras dependenzas. Quests custs da midada mainan a quai che l'introducziun da software open source paja savens pir a la fin dal ciclus da vita dal software proprietar. + +{empty}2. Funcziuns mancantas u nagina soluziun open source adattada:: +Tar l'acquist da software standard po capitar ch'i na dettia nagina alternativa open source a la soluziun proprietara (fin qua), u mo ina insuffizienta dal puntg da vista funcziunal. Sco pussaivladad da soluziun exista la pussaivladad da sviluppar las funcziuns mancantas ensemen cun auters utilisaders dal software open source e da las agiuntar al project open source. footnote:[Per talas novas funcziuns èn responsabels ils responsabels dal project u da l'applicaziun. Co quai capita exactamain, determinescha il project. Em002-2 ed Em002-4 gidan tar decisiuns detagliadas. Tut tenor l'extensiun da la funcziun po esser nunraschunaivel da percurrer cumplettamain las instrucziuns. Aspects dal dretg d'acquist per resursas ston vegnir resguardads.] + +{empty}3. Custs d'integraziun pli auts:: +Spargnas da custs a curt termin pervia da licenzas che croda davent tar l'utilisaziun da software open source vegnan savens cumpensadas tras custs d'integraziun pli auts. Perquai è impurtant da renconuscher che l'utilisaziun professiunala da software open source n'è betg «gratuita», mabain chaschuna effectivamain custs interns u externs. + +{empty}4. Responsabladads e support nunclers:: +Software open source vegn savens criticà per il manient da support e da mantenziun tras interpresas externas. I dat dentant ozendi ina multiplitad da purschiders che porschan prestaziuns commerzialas (long-term-support, mantenziun currenta, svilup vinavant, responsabladad e garanzia etc.) per soluziuns open source. Ils differents models da fatschenta cun software open source vegnan explitgads en l'agiunta D ed ils differents models da support en il chapitel 8. Ina survista actuala dals purschiders da prestaziuns open source e da lur prestaziuns sa chatta en l'Open Source Directory (https://www.ossdirectory.com) u en il Studi OSS 2024 footnote:[https://www.oss-studie.ch/[Studi OSS]] _[OSS2024]_. + +{empty}5. Pitschen martgà cun paucs purschiders:: +Perquai che tschertas applicaziuns open source, sco applicaziuns desktop, dovran per ordinari pauc u nagin support e nagina mantenziun, po il martgà per purschiders open source da support e mantenziun esser pitschen. En quest cas po in concurs per prestaziuns da software open source contribuir a crear in martgà ch'augmenta la concurrenza tranter ils purschiders. L'existenza d'ina vasta communitad da svilup per il software respectiv e la qualitad da la documentaziun da svilup èn d'impurtanza pratica tar il concurs da talas prestaziuns. + +{empty}6. Pitschna visibladad:: +Las communitads da projects open source sa concentreschan surtut sin il svilup dal product e mo darar sin il marketing. Fabricants da software proprietar investeschan percunter ferm en la commercialisaziun ed en la vendita da lur products. Questa publicitad mancanta per software open source dat savens la fallida impressiun ch'i na dettia nagina alternativa als products proprietars. I dat dentant plattafurmas sco alternativeTo footnote:[https://alternativeto.net/] che porschan ina survista da soluziuns per incumbensas specificas (dapli davart alternativas OSS en il chapitel «Chattabladad da soluziuns OSS»). + +{empty}7. Acceptanza mancanta tar ils utilisaders finals:: +Pervia da differentas interfatschas d'utilisader, funcziuns mancantas, ina pitschna facilitad d'utilisaziun e pauca publicitad per software open source manca tar tscherts products open source l'acceptanza dals utilisaders finals. Purschidas adequatas da communicaziun, documentaziun e scolaziun pon cuntrastar questa sfida. Era il fatg che software open source po vegnir sviluppà vinavant tenor ils basegns dals utilisaders po manar ad ina pli gronda acceptanza. + +{empty}8. Pauca u nagina cumpetenza interna:: +Soluziuns open source sa sviluppan svelt vinavant e pretendan al medem temp ina chapientscha tecnica profunda. Uschia po capitar che collaboraturs interns hajan pauca u nagina cumpetenza davart tscherts software open source. La savida interna davart l'OSS sa lascha construir tras la furmaziun supplementara e pussaivladads da studi autonom via funtaunas online sco er tras la construcziun da wikis interns etc. + +{empty}9. Evaluaziun difficila dal futur:: +Per persunas ordaifer ina communitad open source è savens difficil da renconuscher, co che il project sa sviluppa en il futur. Perquai è impurtant da pudair evaluar realisticamain il svilup futur d'ina soluziun open source. Il chapitel «Open Hub» preschenta a quest reguard la plattafurma Open Hub che permetta d'evaluar l'activitad e l'eterogeneitad da la communitad da sviluppaders. Uschia sa lascha giuditgar meglier il svilup futur d'in project open source. + +{empty}10. Inscuritads giuridicas:: +La multiplitad da differentas licenzas open source ed il dumber fin ussa pitschen da sentenzias giudizialas davart dumondas d'interpretaziun pon manar a temps ad inscuritads giuridicas tar software open source. Questa guida pratica duai dar ina survista da las licenzas open source las pli impurtantas sco er da lur caracteristicas e cumpatibilitads. Funtaunas per respostas profundas a dumondas giuridicas sa chattan en ils documents link:em002-3.pdf[Em002-3 Guida da licenzas OSS] ed link:em002-6.pdf[Em002-6 FAQ davart OSS e l'art. 9 EMBAG]. + +{empty}11. Purschida memia vasta da software open source:: +Il dumber dals products da software open source è creschì ferm en ils ultims onns. Utilisaders potenzials da software open source sa lamentan perquai davart la multiplitad da soluziuns open source existentas sin il martgà. Perquai preschenta il chapitel «Chattabladad da …» duas plattafurmas, alternativeTo ed Open Hub, che pussibiliteschan ina cumparegliaziun da soluziuns open source. + +{empty}12. Lavur da coordinaziun tar il svilup cuminaivel:: +Sche l'administraziun federala sa participescha a projects cuminaivels e contribuescha ad els, resulta entaifer questas collavuraziuns ina lavur da coordinaziun, ma era, sch'ina communitad sto vegnir integrada. Idealmain paja questa lavur supplementara tuttina grazia ad ina soluziun meglierada, ina pli gronda acceptanza u ina participaziun augmentada da terzas persunas. + +== Constellaziuns per l'utilisaziun da e la lavur cun l'OSS + +=== Grads da madirezza per OSS en l'administraziun federala + +Tar l'utilisaziun ed il svilup da l'OSS en l'administraziun federala existan differentas constellaziuns areguard las obligaziuns en connex cun licenzas open source. In model da madirezza tipic footnote:[Model da madirezza en adherenza a https://todogroup.org/resources/guides/a-guide-to-outbound-open-source-software/#maturity-levels] per l'introducziun da l'open source en organisaziuns po vesair or uschia: + +. Denial -- nagina u inconscienta utilisaziun da software open source +. Consumption -- utilisaziun passiva da software open source +. Participation -- engaschament en communitads open source +. Contribution -- contribuziuns pragmaticas a projects open source +. Leadership -- engaschament strategic cun l'open source per augmentar il valur da fatschenta footnote:[Creation na vegn betg menziunà, perquai che l'art. 9 EMBAG pretenda quai directamain.] + +[options="header",cols="1,2a"] +|=== +|Constellaziun |Consequenza + +|La pura *utilisaziun* da software open source existent (senza midar il code). +|I n'exista *nagina obligaziun* da cundivider il code da funtauna. + +|Il *svilup cumplettamain nov* da software che duai vegnir publitgà sut ina licenza open source. +|*En quest cas exista ina libertad cumpletta areguard la licenza, sut la quala il software vegn publitgà.* Per la Confederaziun sto vegnir consultà il document link:em002-3.pdf[Em002-3 Guida da licenzas OSS]. Ils documents link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS] ston vegnir resguardads. + +|*Svilup vinavant* (intern u extern) cun cumponentas open source existentas (cun u senza effect copyleft footnote:[Explicaziun dal term «copyleft» en link:em002-3.pdf[Em002-3 Guida da licenzas OSS]]), uschè ditg che il software vegn utilisà *exclusivamain entaifer la medema organisaziun* e betg derasà vinavant. +|Las cumponentas OSS pon vegnir cumbinadas a giavisch cun cumponentas da terzas persunas. Da la licenza na resulta fundamentalmain nagina obligaziun da publicaziun, uschè ditg che il software vegn utilisà exclusivamain entaifer la medema organisaziun e betg derasà (excepziun: AGPL). Perquai ch'i n'è betg scleri definitivamain dal puntg da vista giuridic, quant lunsch ch'il concept da la «derasaziun entaifer la medema organisaziun» va, vala quest scenari per cumponentas OSS cun effect copyleft mo en cas excepziunals. Consultai en quests cas il servetsch giuridic da Vossa organisaziun. Vesair link:em002-3.pdf[Em002-3 Guida da licenzas OSS] ed link:em002-6.pdf[Em002-6 FAQ davart OSS e l'art. 9 EMBAG]. Ils documents link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS] ston vegnir resguardads. *Perquai ch'i exista tenor l'art. 9 EMBAG in'obligaziun da publicaziun, ston las midadas vegnir relaschadas danovamain. Il pli simpel è quai sco midadas al project open source existent.* + +|*Svilup vinavant* (intern u extern) *exclusivamain cun* cumponentas open source existentas *senza effect copyleft*, sche il software duai vegnir derasà externamain (p.ex. als chantuns). +|Las cumponentas OSS pon vegnir cumbinadas a giavisch cun cumponentas da terzas persunas, e da las licenzas na resulta nagina obligaziun da publicaziun (vesair era link:em002-3.pdf[Em002-3 Guida da licenzas OSS]). *En il rom da l'art. 9 EMBAG è la relaschada dentant obligatorica. Idealmain ha la relaschada lieu via il project existent (nagin fork).* Ils documents link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS] ston vegnir resguardads. + +|*Svilup vinavant* (intern u extern) cun cumponentas open source existentas *cun effect copyleft*, sche il software duai vegnir derasà externamain (p.ex. als chantuns). +|*Pervia da la licenza copyleft exista in'obligaziun da publicaziun* (vesair era link:em002-3.pdf[Em002-3 Guida da licenzas OSS] concernent l'effect copyleft). Ils documents link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS] ston vegnir resguardads. + +|*Contribuziun* ad in project open source existent. +|*Tenor l'EMBAG exista fundamentalmain in'obligaziun da publicaziun. I valan la governanza e la licenza dal project.* Ils documents link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS] ston vegnir resguardads. + +|*Svilup cuminaivel* d'in project nov u existent cun ina communitad e partiziun dals custs. +|*Tenor l'EMBAG exista fundamentalmain in'obligaziun da publicaziun.* Ils documents link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS], link:em002-3.pdf[Em002-3 Guida da licenzas OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS] servan *a la construcziun dal project e da sia governanza.* + +|*Tuttas variantas dal svilup u dal svilup vinavant* han lieu *via in furnitur u terzas persunas incumbensadas.* +|*Tenor l'EMBAG exista fundamentalmain in'obligaziun da publicaziun.* Sin la basa da link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS], link:em002-3.pdf[Em002-3 Guida da licenzas OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS]. Sche pussaivel duessan las premissas per la publicaziun vegnir creadas gia en il process d'acquist e duessan las pretensiuns per la relaschada dal software vegnir communitgadas sche necessari al furnitur resp. a las terzas persunas. +|=== + +=== Utilisaziun da software open source nunmidà + +Tar l'utilisaziun da software open source n'è fundamentalmain betg relevant, sut tge licenza open source ch'el vegn publitgà, perquai che tuttas licenzas open source (vesair chapitel 2 «Concepts») permettan l'utilisaziun illimitada da software open source, independentamain da quants plazzas da lavur, quants utilisaders annunziads a medem temp, quants servers e processurs etc. che il software vegn duvrà. + +Tar l'utilisaziun da software open source nunmidà na resultan *naginas obligaziuns da publicaziun*, era betg tar programs che stattan sut ina licenza cun in effect copyleft strict (excepziun: licenza AGPL, Affero General Public Licence). + +Uschè ditg che software open source vegn introducì e manà tras purschiders da prestaziuns interns da la Confederaziun, po quai capitar *senza in process d'acquist public*, perquai che «la licenza OSS sula na custa per ordinari nagut al post d'acquist e n'è perquai per sasezza betg relevanta per l'acquist». + +Sch'in purschider da prestaziuns extern vegn incumbensà cun la mantenziun, il support ed ulteriuras prestaziuns per il software open source, ston vegnir resguardadas las prescripziuns dal dretg d'acquist public. Differentas variantas da support vegnan descrittas en il chapitel 9. Impurtant è ultra da quai da duvrar criteris d'aptitude e d'attribuziun adattads tar l'acquist da software open source. Las basas per quai vegnan explitgadas en il chapitel 8. + +=== Svilup cun cumponentas open source e relaschada dal code da funtauna + +Cun l'obligaziun da publicaziun tenor l'art. 9 EMBAG sto vegnir suandà qua il proceder descrit en link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS]. +Ils documents link:em002-3.pdf[Em002-3 Guida da licenzas OSS] ed link:em002-4.pdf[Em002-4 Guida da communitads OSS] ston sche necessari era vegnir consultads. La finamira è da relaschar il project en moda controllada cun agid da las trais glistas da controlla _link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1], link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2], link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3]_. + +=== Collavuraziun en projects averts (contribution) + +Reflexiuns pussaivlas davart la contribuziun da l'administraziun federala a projects averts gia existents èn inditgadas en la guida BITKOM _[BITKOM2024]_ chapitel 4.2. footnote:[Vesair https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html, chapitel 4.2.] Tut tenor l'impurtanza dal project per l'administraziun federala sto vegnir examinà, quanta responsabladad che l'uffizi respectiv vul e po surpigliar. + +La collavuraziun en projects averts ed il svilup direct en projects averts pon era avair lieu cun agid dals documents per la relaschada. En il center stattan link:em002-4.pdf[Em002-4 Guida da communitads OSS] e la glista da controlla appartegnenta _link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]_. + +== Caracteristicas e tscherna da licenzas open source + +Las caracteristicas e la tscherna da licenzas open source vegnan descrittas en il document link:em002-3.pdf[Em002-3 Guida da licenzas OSS]. + +== Acquist da l'OSS + +Dumondas strategicas davart l'acquist e l'OSS vegnan tractadas en link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist e dal software open source]. + +Il Center da cumpetenza per l'acquist public da la Confederaziun (CCA) ha publitgà in nov fegl d'infurmaziun cun il titel _Acquist da software ed art. 9 EMBAG https://perimap.admin.ch/goto_perimap_file_46835_download.html[[KBB-MB]]_ sco er dus documents «Criteris models – acquist EMBAG ed open source» e «Texts da contract models – svilup da software». + +Ulteriur sustegn stat a disposiziun sin l'https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[intranet da l'UFCL] (accessibel mo en la rait da la Confederaziun) cun la https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[_directiva Open Source en l'acquist_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[BBL-WL]]_ e la https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[_glista da controlla excepziun integrala art. 9 EMBAG_] _[https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[BBL-CL]]_. + +L'aptitude da l'open source per l'utilisaziun en interpresas sa chatta en il document _Selection Criteria for Enterprise-Ready Open Source Software [Gu2024]_ footnote:[Vesair _[Gu2024\]_] u en la guida Bitkom. footnote:[Vesair https://www.bitkom.org/Bitkom/Publikationen/Praxisempfehlungen-fuer-Open-Source-Software[Recumandaziuns praticas per software open source | Guida 2025 | Bitkom e. V.], chapitel 3.3] + +== Chattabladad da soluziuns OSS + +Differentas plattafurmas permettan ad organisaziuns interessadas da chattar e d'analisar software open source avant l'utilisaziun u l'acquist. Las datas uschia obtegnidas furman ina basa per la decisiun davart l'utilisaziun u l'acquist da software open source. + +Ina cumpilaziun da pretensiuns minimalas ed eventualmain in'analisa dal martgà duessan en mintga cas servir. + +=== Catalog OSS + +Las autoritads federalas èn obligadas da publitgar il code da funtauna dal software ch'ellas sviluppan u fan sviluppar per ademplir lur incumbensas. Il catalog OSS footnote:[https://www.opensource.admin.ch/] renumbra tut il software sviluppà da las autoritads federalas dapi il 1. da schaner 2024 e relaschà sco open source. El porscha ina survista dal software disponibel e facilitescha il chattar ed il reutilisar da soluziuns open source. + +Sch'in nov repositori u ina nova organisaziun vegn creà, sto quai vegnir annunzià per l'admissiun en il catalog OSS per e-mail a opensource@bk.admin.ch. + +Catalog OSS: https://www.opensource.admin.ch + +=== OSS Directory + +L'OSS Directory manà da CH Open footnote:[https://www.ossdirectory.com/de/home] facilitescha il chattar da purschiders qualifitgads che porschan in support professiunal per software open source. + +Purschiders open source mussan cun agid da istorgias da success, a tge utilisaders (clients) ch'els han gidà tar l'introducziun da tscherts products open source. +Il Directory porscha ultra da quai novitads open source actualas da plattafurmas existentas, top-novitads tschernidas, occurrenzas, communitads, offertas da lavur ed artitgels per il barat da savida. L'OSS Directory è disponibel per tudestg, englais, franzos e talian. Tuttas endataziuns pon vegnir agiuntadas ed actualisadas directamain dals utilisaders registrads. + +OSS Directory: https://www.ossdirectory.com + +=== alternativeTo + +In utensil pratic per chattar alternativas a software è «alternativeTo - Crowdsourced software recommendations». footnote:[https://alternativeto.net/] Sco che il num inditgescha, èn las alternativas e lur valitaziuns naschidas tras crowdsourcing, pia tras las endataziuns da blers utilisaders singuls. alternativeTo distingua quatter geners da soluziuns da software, dals quals mo il emprim vala sco software open source en il senn da l'art. 9 EMBAG: + +Free open source:: +Software che vegn publitgà sut ina licenza open source. + +Free:: +Software gratuit (freeware), dal qual il code da funtauna n'è dentant betg disponibel libramain e na dastga betg vegnir midà. + +Freemium:: +Tal software porscha ina versiun gratuita ed ina versiun premium, per che tuttas funcziuns impurtantas èn gia disponiblas en la versiun gratuita. Betg en questa categoria appartegna software che po vegnir testà gratuitamain durant in tschert temp (p.ex. ina versiun da test da 30 dis); quel croda en la categoria «Commercial». + +Commercial:: +Qua sa tracti da software proprietar, per il qual vegnan incassadas taxas da licenza tar l'utilisaziun. + +=== Repositoris open source + +La plattafurma da svilup open source actualmain la pli populara dal mund cun passa 30 milliuns d'utilisaders e passa 100 milliuns da repositoris da code da funtauna è GitHub. footnote:[https://octoverse.github.com] Oz han bunamain tuttas interpresas informaticas, en spezial fabricants da software proprietar, sco er bleras autras sorts d'interpresas ed organisaziuns ina preschientscha sin GitHub. Adina dapli autoritads publicas – var ina dutscheina da la Svizra footnote:[https://government.github.com/community/#switzerland] – publitgeschan ultra da quai lur agen software open source sin «GitHub and Government» sut https://government.github.com. Quest process sa lascha era exequir cun auters repositoris. + +Exempels dad auters repositoris èn: + +* GitLab +* Bitbucket +* SourceForge +* LaunchPad + +Sin GitHub Insights sa laschan leger numerusas statisticas relevantas d'in project open source sin GitHub: + +Pulse:: +Survista da las activitads las pli novas d'in project open source sin GitHub: resumaziun da las infurmaziuns las pli impurtantas davart l'intensitad da svilup, l'eterogeneitad da la communitad, annunzias avertas, meglieraziuns (pull requests) etc. + +Contributors:: +Preschentaziun da las sviluppadras e dals sviluppaders ch'èn stads activs e cura. Quai è in indizi impurtant, sche tut dependa d'ina persuna u sch'i stat ina pli gronda communitad davos. + +Commits:: +Preschentaziun da las contribuziuns ch'èn vegnidas fatgas a quest project open source ed en tge perioda. + +Code frequency:: +Visualisaziun da quant code da funtauna ch'è vegnì agiuntà u allontanà e cura. + +Dependency graph:: +Dependenzas dal project open source dad auter software open source (p.ex. relevant per renconuscher largias da segirezza ed actualisaziuns). + +Network:: +Preschentaziun da cura che tge sviluppadra u sviluppader ha contribuì a tge branca da svilup. + +Forks:: +Glista da tuttas copias dal project open source sin GitHub. Indicatur per la popularitad e la derasaziun dal software open source. + +=== Open Hub + +Sch'i duain vegnir rimnadas infurmaziuns davart ina soluziun open source che na vegn betg necessariamain sviluppada sin GitHub, s'offra Open Hub da Black Duck. footnote:[https://www.openhub.net/] Per var mez milliun projects open source vegnan resumadas cleramain numerusas infurmaziuns impurtantas: + +Project Summary:: +Ina curta descripziun dal project open source. + +In a Nutshell:: +Ils fatgs ils pli impurtants davart in project open source, sco il dumber dals commits, dals collavuraturs e da las lingias da code sco er la lingua da programmaziun la pli duvrada, il mument dal emprim commit e da l'ultima midada. Ultra da quai vegn inditgada ina valitaziun da la basa dal code e da la grondezza dal team da svilup (p.ex. «Mozilla Firefox has a well-established, mature codebase maintained by a very large development team with stable Y-O-Y commits»). + +Quick Reference:: +Cuntegna infurmaziuns davart l'organisaziun, links al project ed al code sco er indicaziuns davart projects sumegliants. + +Licences:: +Inditgescha, sut tge licenza u licenzas che il project open source è licenzià e tge consequenzas ch'èn colliadas cun quai. + +Project Security:: +Furnescha indicaziuns davart la segirezza e las debilitads dal project open source. + +Code:: +Ina grafica che mussa il dumber da las lingias da code en il decurs dal temp, repartì tenor lingua da programmaziun. + +Activity:: +Ina grafica che mussa il dumber dals commits per mais. Supplementarmain vegn messa a disposiziun ina resumaziun dals ultims 30 dis e 12 mais. + +Community:: +Ina grafica che mussa il dumber dals collavuraturs activs per mais. Ultra da quai vegn mussada ina valitaziun dal project sin ina scala da tschintg stailas. + +Open Hub permetta era da cumparegliar differents projects open source. footnote:[https://www.openhub.net/p/_compare] Quai dat svelt ina survista, tge project ch'ha la communitad la pli activa, il temp da svilup il pli lung u la licenza la pli adattada. + +=== Repositoris da code particulars + +Organisaziuns pli grondas disponan d'agens repositoris da code. Spezialmain da menziunar è per exempel il repositori tudestg per autoritads opencode.de. footnote:[https://opencode.de/en/home] Da spezial interess èn qua repositoris d'autras administraziuns publicas. + +== Models da support per l'utilisaziun da l'OSS + +Software open source gia disponibel sin il martgà po vegnir utilisà fundamentalmain en trais moda: + +. Utilisaziun senza support professiunal +. Utilisaziun cun support intern +. Utilisaziun cun support d'in furnitur extern. + +Quests trais geners d'utilisaziun e lur avantatgs e dischavantatgs vegnan explitgads curtamain sutvart. Tge da quests scenaris ch'è il pli raschunaivel en il cas concret, sto vegnir decidì da cas a cas. Tge model da support ch'è adattà, dependa da la relevanza strategica dal software open source, da l'integraziun tecnica e da las resursas da persunal disponiblas. + +Tar software critic sto il support vegnir furnì en mintga cas professiunalmain, saja quai internamain u externamain. Era il ciclus da vita planisà duess giugar in rol en la planisaziun dal support. I po era esser che il support vegnia obtegnì da plirs purschiders. + +=== Utilisaziun senza support professiunal + +Software open source stat a disposiziun en l'internet per telechargiar, installar ed utilisar gratuitamain. + +Avantatgs:: +* Custs bass +* Realisaziun sperta + +Dischavantatgs:: +* Nagin support garantì +* Naginas pretensiuns da responsabladad + +Ristg ed assicuranza:: +Aut ristg: I n'existan nagins contracts da support u garanzias ed en l'organisaziun è pauca u nagina savida da sviluppaders avant maun. + +Sectur d'applicaziun tipic:: +Software standard open source che po vegnir actualisà independentamain dad auters sistems. + +=== Utilisaziun cun support intern + +In'interpresa u in'organisaziun dal maun public construescha per l'utilisaziun a lunga vista savida e resursas davart tschertas soluziuns open source. Quest access è derasà en spezial en secturs critics per la fatschenta. + +Avantatgs:: +* Auta flexibilitad grazia a la savida interna +* Nagin lock-in dal furnitur + +Dischavantatgs:: +* Auta investiziun e grond temp per construir la savida +* Custs fixs interns pli auts per il persunal + +Ristg ed assicuranza:: +Ristg mesaun: Il support dependa da la savida e da la disponibladad da l'informatica interna. + +Sectur d'applicaziun tipic:: +Svilups agens, software open source duvrà strategicamain, per il qual è avant maun ina savida profunda. + +=== Utilisaziun cun support d'in furnitur extern + +In purschider open source extern vegn integrà per accumpagnar professiunalmain l'introducziun e la mantenziun dal software open source. Quest access vegn duvrà surtut en secturs critics per la fatschenta, nua ch'ina savida profunda dal software sto esser disponibla immediatamain. Quai po era cumpigliar parts da la relaschada u l'entira relaschada. + +Avantatgs:: +* Access direct a la savida da las sviluppadras e dals sviluppaders open source +* Reparaziuns ed extensiuns sin basa contractuala +* Tscherna tranter differents furniturs open source +* Obligatoriadad, assicuranza cunter ristgs da conformitad + +Dischavantatgs:: +* Custs externs tras furniturs open source +* Dependenza da savida dal furnitur open source + +Ristg ed assicuranza:: +Pitschen ristg: La garanzia vegn furnida tenor il pflichtenheft u il service level agreement + +Sectur d'applicaziun tipic:: +Software open source critic per la fatschenta, per il qual è avant maun pauca u nagina savida interna da svilup + +== Post da contact + +En l'administraziun federala n'exista nagin post da contact central che funcziunass sco Open Source Programme Office. Fundamentalmain èn ils uffizis federals sezs responsabels per la realisaziun. + +Dumondas generalas davart ils meds OSS da la seria da documents Em002 pon vegnir drizzadas al sectur TDT da la Chanzlia federala: opensource@bk.admin.ch. + +== Agiuntas + +=== Midadas envers la versiun precedenta + +* Chapitel 4.1: Grads da madirezza agiuntads +* Chapitel 6: Acquist da l'OSS cumplettà ed adattà cun ils novs documents da l'UFCL +* Chapitel 7.1: Nov catalog OSS da la Confederaziun (opensource.admin.ch) +* Ulteriuras midadas e meglieraziuns redacziunalas pitschnas + +=== Referenzas + +Las referenzas a la seria da documents Em002 sa chattan en las link:em002.pdf[Em002 Directivas strategicas]. + +=== Abreviaziuns + +Ina glista d'abreviaziuns sa chatta en il document principal Em002. +In glossari sa chatta en il document «link:em002-6.pdf[Em002-6 Dumondas frequentas davart la publicaziun da l'OSS (FAQ-OSS)]». + +=== Models da fatschenta cun l'OSS + +Software open source n'è per sasez nagin model da fatschenta, perquai ch'igl è – cuntrari al software proprietar – betg pussaivel da vender software sut ina licenza open source. Tuttina existan per interpresas differentas pussaivladads da manar models da fatschenta sin la basa da software open source. Sch'i duai per exempel vegnir obtegnì in support extern professiunal per ina soluziun open source, è l'acquist da las prestaziuns commerzialas correspundentas necessari. Ils quatter models da fatschenta ils pli frequents per software open source vegnan explitgads sutvart. Ulteriurs aspects da quests e dad auters models da fatschenta vegnan explitgads en la guida BITKOM _[BITKOM2023]_. + +==== Prestaziuns e products sin la basa da l'OSS + +Interpresas pon purscher prestaziuns commerzialas sco webhosting u cloud computing sin la basa da software open source, che fissan bler pli custaivlas cun software proprietar. Perquai construeschan la gronda part da las start-ups, dals portals online e dals purschiders d'e-commerce oz lur plattafurmas sin software open source. Autras interpresas da tecnologia sco interpresas da telecommunicaziun, purschiders da streaming u schizunt fabricants da software proprietar integreschan software open source en lur products da software e da hardware sco er en servetschs online. Quai permetta a las interpresas da purscher vinavant soluziuns innovativas che fissan grev da realisar cun software proprietar. + +==== Prestaziuns per l'OSS + +Purschiders open source furneschan prestaziuns per software open source tschernì. Els disponan da sviluppadras e sviluppaders open source experimentads e pon perquai purscher support, mantenziun, manaschi, svilup, cussegliaziun, scolaziun ed ulteriuras prestaziuns per software open source. Quellas pon vegnir obtegnidas tar il furnitur open source en incumbensa u en il rom d'in contract d'ovra. Talas prestaziuns per software open source pon vegnir messas a concurs publicamain, perquai ch'i n'exista nagin vendor lock-in. Impurtant tar tals concurs è il resguard da criteris adattads, per che vegnian tschernids purschiders da prestaziuns effectivamain cumpetents (vesair chapitels 0 ed 8, _[BITKOM2023]_ chapitel 3.3 e _[Gu2024]_). + +==== Abunaments + +Sche prestaziuns per software open source vegnan furnidas en furma standardisada e repetitiva sco ina sort service level agreement (SLA), discurra ins dad abunaments. En il rom da tals abunaments garanteschan las interpresas per exempel actualisaziuns da segirezza currentas, support per e-mail u telefon, cumpatibilitad cun auters products da software e hardware tras certificaziuns, prestaziuns da mantenziun a lunga vista ed assicuranzas cunter pretensiuns giuridicas (dretg d'autur, patents). En cuntrachamb pajan las clientas ed ils clients abunaments per plazza da lavur u per CPU, sumegliant sco taxas da licenza u d'utilisaziun per software proprietar. Cuntrari al software proprietar n'èn abunaments per software open source dentant nagina premissa per l'utilisaziun dal software, mabain mo ina pussaivladad da recumpensar il plivalur da las prestaziuns furnidas dal furnitur open source. + +==== Licenziaziun duala + +Sch'ina interpresa posseda la proprietad intellectuala d'ina soluziun da software e sche tuttas cumponentas open source integradas stattan sut ina licenza permissiva, po vegnir applitgada ina licenziaziun duala u multipla. Quai permetta a l'interpresa che sviluppa da publitgar il software sut ina licenza open source copyleft e da la vender al medem temp sut ina licenza proprietara. Questa versiun commerziala vegn savens numnada versiun Enterprise e cuntegna tipicamain tschertas funcziuns supplementaras, sco integraziuns d'interfatschas exclusivas u il permiss per las cumpraduras ed ils cumpraders d'integrar il software en lur agens products proprietars. Tut tenor l'extensiun da las restricziuns da la versiun open source è precauziun da recumandar tar l'utilisaziun da software cun licenza duala, perquai che l'obtegniment da la versiun Enterprise po esser inevitabel, cun quai che il vendor lock-in è uschè aut sco tar in software proprietar tipic. +endif::[] diff --git a/docs/em002-2-1-checklist-oss-preliminary-assessment.adoc b/docs/em002-2-1-checklist-oss-preliminary-assessment.adoc new file mode 100644 index 0000000..0465b29 --- /dev/null +++ b/docs/em002-2-1-checklist-oss-preliminary-assessment.adoc @@ -0,0 +1,751 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-2.1 OSS Preliminary Assessment Checklist +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-2.1 Checkliste OSS-Vorabklärung +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-2.1 Liste de contrôle Évaluation préalable OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-2.1 Lista di controllo Valutazione preliminare OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-2.1 Glista da controlla Evaluaziun preliminara OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +This checklist is part of the document _Em002-2 Instructions for Publishing Open Source Software_. It should be completed at the start of a project or when clarifying whether software does not need to be published. + +The description of the checklist can be found in _[Em002-2]_, Section 3. + +This checklist can also be used to define whether development will be as open development directly on a public repository. + +For legacy code (developed before EMOTA came into force on 1.1.2024), additional questions are provided. + +Important: If software is not to be released as OSS, this checklist also serves as justification for such a decision. + +== Subject matter + +=== Name and brief description of the software + +Enter the name of the software. + +This name should be identical in all subsequent OSS checklists to ensure correct allocation. + +field::[rows=1] + +Describe the goal and purpose of the software as well as the scope. + +If a URL link exists, please also provide this. + +field::[rows=4] + +=== Contact person and review + +Name the federal authority (organisational unit), contact person and the persons responsible for the legal review (e.g. ISBO/DSBO) who have verified compliance with the publication requirements. + +field::[rows=3] + +== Checklist + +*New software or legacy* + +Is this new software or an existing project (see [Em002-2] Section 3.1). + +[%interactive] +* [ ] Legacy (further development) +* [ ] New software +* [ ] Legacyfootnote:[Not required by EMOTA, but it is also possible to release existing software.] or further development of legacy software +* [ ] Existing third-party project (Complete _Em002-4.1 OSS Community Checklist_) + +field::[rows=1] + +*Life cycle* + +In what stage of the life cycle is the software currently (see [Em002-2] Section 3.1).footnote:[Replacement of existing software should be noted here as 'planned'.] + +[%interactive] +* [ ] Planned +* [ ] In development +* [ ] In operation +* [ ] End of life +* [ ] Archive + +field::[rows=1] + +*Users* + +Are there potential or known individuals or organisations using the software? Are there potential customers for the software? Possible and known users can be named in the textbox. + +[%interactive] +* [ ] None conceivable +* [ ] Potential users +* [ ] Known users + +field::[rows=2] + +*In-house development, joint development or third-party project* + +What is the basic structure? Is this an in-house development by the Confederation, a collaboration, or is it based on a third-party project? + +The structure of co-development and third-party project can be listed in the textbox + +(see [Em002-2] Section 3.1). + +[%interactive] +* [ ] In-house development +* [ ] Joint development (_Em002-4.1 OSS Community Checklist_ to be completed) +* [ ] Third-party project (_Em002-4.1 OSS Community Checklist_ to be completed) + +field::[rows=2] + +*Who is publishing the software?* + +[%interactive] +* [ ] Federal authority +* [ ] Service provider +* [ ] Supplier +* [ ] Third party + +field::[rows=1] + +*Depth of release* + +Outcome from _Em002-4.1 OSS Community Checklist_. + +[%interactive] +* [ ] Minimal publication: Publication of the source code and other artefacts +* [ ] Issue tracking: Errors can be reported and will be handled. +* [ ] Community + +field::[rows=1] + +[%interactive] +* [ ] There is no violation of third-party rights (e.g. patent rights, intellectual property, trademark or design protection). + +Reviews according to [Em002-2] Section 3.2 have been carried out. The ownership of the software lies with the Confederation, or it is being developed by employees of the Confederation (internal or external). Justification must be given, especially if this is not the case. It must also be explained why the rights do not lie with the Confederation and what checks were made regarding proprietary parts, as well as what was done regarding possible obstacles (e.g. patent protection), or how far investigations went. + +field::[rows=4] + +[%interactive] +* [ ] There are no security-relevant reasons preventing publication. + +Reviews according to [Em002-2] Section 3.3 have been carried out. + +field::[rows=2] + +[%interactive] +* [ ] There is agreement in principle and feasibility exists for publishing the application as open source. + +Reference to minutes or decision-making body with date. + +field::[rows=1] + +== Concluding remarks + +Comments and references to other relevant documents. + +If a Contributor Licence Agreement (CLA) is used, this should be noted here (see _Em002-3 OSS Licensing Guidelines_ Section 8.9). + +field::[rows=4] + +*Filing of form* + +Please file this form with the project documentation and/or in accordance with the specifications of your authority (organisational unit). + +*Licence of the checklist template: CC0 1.0 Universal* + +This document is published under the CC0 licence. It may be freely used, modified and distributed, including for commercial purposes and in any format. +endif::[] + +ifeval::["{lang}" == "de"] +Diese Checkliste ist Teil des Dokuments _Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software_. Sie ist zu Beginn eines Projekts auszufüllen oder bei der Abklärung, ob Software nicht veröffentlicht werden muss. + +Die Beschreibung der Checkliste findet sich in _[Em002-2]_, Kapitel 3. + +Mit dieser Checkliste kann auch festgelegt werden, ob die Entwicklung als Open Development direkt auf einem öffentlichen Repository erfolgt. + +Für Legacy-Code (entwickelt vor dem Inkrafttreten des EMBAG am 1.1.2024) stehen zusätzliche Fragen zur Verfügung. + +Wichtig: Soll Software nicht als OSS freigegeben werden, dient diese Checkliste auch als Begründung für einen solchen Entscheid. + +== Gegenstand + +=== Name und Kurzbeschreibung der Software + +Tragen Sie den Namen der Software ein. + +Dieser Name sollte in allen nachfolgenden OSS-Checklisten identisch sein, damit die Zuordnung stimmt. + +field::[rows=1] + +Beschreiben Sie Ziel und Zweck der Software sowie den Umfang. + +Falls ein URL-Link besteht, geben Sie diesen bitte ebenfalls an. + +field::[rows=4] + +=== Ansprechperson und Prüfung + +Nennen Sie die Bundesbehörde (Organisationseinheit), die Ansprechperson sowie die für die rechtliche Prüfung verantwortlichen Personen (z. B. ISBO/DSBO), welche die Einhaltung der Veröffentlichungsvorgaben geprüft haben. + +field::[rows=3] + +== Checkliste + +*Neue Software oder Legacy* + +Handelt es sich um neue Software oder um ein bestehendes Projekt (siehe [Em002-2] Kapitel 3.1). + +[%interactive] +* [ ] Legacy (Weiterentwicklung) +* [ ] Neue Software +* [ ] Legacyfootnote:[Vom EMBAG nicht gefordert, es ist aber auch möglich, bestehende Software freizugeben.] oder Weiterentwicklung von Legacy-Software +* [ ] Bestehendes Drittprojekt (_Em002-4.1 Checkliste OSS-Community_ ausfüllen) + +field::[rows=1] + +*Lebenszyklus* + +In welcher Phase des Lebenszyklus befindet sich die Software aktuell (siehe [Em002-2] Kapitel 3.1).footnote:[Die Ablösung bestehender Software sollte hier als «geplant» vermerkt werden.] + +[%interactive] +* [ ] Geplant +* [ ] In Entwicklung +* [ ] Im Betrieb +* [ ] End of Life +* [ ] Archiv + +field::[rows=1] + +*Nutzende* + +Gibt es potenzielle oder bekannte Personen oder Organisationen, welche die Software nutzen? Gibt es potenzielle Abnehmer für die Software? Mögliche und bekannte Nutzende können im Textfeld genannt werden. + +[%interactive] +* [ ] Keine denkbar +* [ ] Potenzielle Nutzende +* [ ] Bekannte Nutzende + +field::[rows=2] + +*Eigenentwicklung, gemeinsame Entwicklung oder Drittprojekt* + +Wie sieht die Grundstruktur aus? Handelt es sich um eine Eigenentwicklung des Bundes, um eine Zusammenarbeit, oder baut sie auf einem Drittprojekt auf? + +Die Struktur von Co-Entwicklung und Drittprojekt kann im Textfeld aufgeführt werden + +(siehe [Em002-2] Kapitel 3.1). + +[%interactive] +* [ ] Eigenentwicklung +* [ ] Gemeinsame Entwicklung (_Em002-4.1 Checkliste OSS-Community_ auszufüllen) +* [ ] Drittprojekt (_Em002-4.1 Checkliste OSS-Community_ auszufüllen) + +field::[rows=2] + +*Wer veröffentlicht die Software?* + +[%interactive] +* [ ] Bundesbehörde +* [ ] Leistungserbringer +* [ ] Lieferant +* [ ] Dritte + +field::[rows=1] + +*Tiefe der Freigabe* + +Ergebnis aus _Em002-4.1 Checkliste OSS-Community_. + +[%interactive] +* [ ] Minimale Veröffentlichung: Veröffentlichung des Quellcodes und weiterer Artefakte +* [ ] Issue-Tracking: Fehler können gemeldet werden und werden bearbeitet. +* [ ] Community + +field::[rows=1] + +[%interactive] +* [ ] Es liegt keine Verletzung von Rechten Dritter vor (z. B. Patentrechte, geistiges Eigentum, Marken- oder Designschutz). + +Die Prüfungen gemäss [Em002-2] Kapitel 3.2 wurden durchgeführt. Die Rechte an der Software liegen beim Bund, oder sie wird von Mitarbeitenden des Bundes (intern oder extern) entwickelt. Eine Begründung ist insbesondere dann erforderlich, wenn dies nicht der Fall ist. Es ist zudem darzulegen, weshalb die Rechte nicht beim Bund liegen, welche Abklärungen zu proprietären Teilen getroffen wurden sowie was bezüglich möglicher Hindernisse (z. B. Patentschutz) unternommen wurde beziehungsweise wie weit die Abklärungen gingen. + +field::[rows=4] + +[%interactive] +* [ ] Es bestehen keine sicherheitsrelevanten Gründe, die einer Veröffentlichung entgegenstehen. + +Die Prüfungen gemäss [Em002-2] Kapitel 3.3 wurden durchgeführt. + +field::[rows=2] + +[%interactive] +* [ ] Es besteht grundsätzliches Einverständnis und Machbarkeit, die Anwendung als Open Source zu veröffentlichen. + +Verweis auf Protokoll oder Entscheidgremium mit Datum. + +field::[rows=1] + +== Schlussbemerkungen + +Bemerkungen und Verweise auf weitere relevante Dokumente. + +Wird ein Contributor Licence Agreement (CLA) verwendet, so sollte dies hier vermerkt werden (siehe _Em002-3 Leitfaden OSS-Lizenzierung_ Kapitel 8.9). + +field::[rows=4] + +*Ablage des Formulars* + +Legen Sie dieses Formular bei der Projektdokumentation und/oder gemäss den Vorgaben Ihrer Behörde (Organisationseinheit) ab. + +*Lizenz der Checklisten-Vorlage: CC0 1.0 Universal* + +Dieses Dokument wird unter der CC0-Lizenz veröffentlicht. Es darf frei genutzt, verändert und verbreitet werden, auch zu kommerziellen Zwecken und in jedem Format. +endif::[] + +ifeval::["{lang}" == "fr"] +Cette liste de contrôle fait partie du document _Em002-2 Instructions pour la publication de logiciels open source_. Elle doit être remplie au début d'un projet ou lors de l'examen visant à déterminer si un logiciel ne doit pas être publié. + +La description de la liste de contrôle figure dans _[Em002-2]_, chapitre 3. + +Cette liste de contrôle permet également de définir si le développement se fera en open development directement sur un dépôt public. + +Pour le code existant (développé avant l'entrée en vigueur de la LMETA le 1.1.2024), des questions supplémentaires sont prévues. + +Important : si un logiciel ne doit pas être publié en OSS, cette liste de contrôle sert également de justification à une telle décision. + +== Objet + +=== Nom et brève description du logiciel + +Indiquez le nom du logiciel. + +Ce nom devrait être identique dans toutes les listes de contrôle OSS suivantes afin d'assurer une attribution correcte. + +field::[rows=1] + +Décrivez l'objectif et la finalité du logiciel ainsi que son périmètre. + +Si un lien URL existe, veuillez également l'indiquer. + +field::[rows=4] + +=== Personne de contact et examen + +Indiquez l'autorité fédérale (unité d'organisation), la personne de contact ainsi que les personnes responsables de l'examen juridique (p. ex. ISBO/DSBO) qui ont vérifié le respect des exigences de publication. + +field::[rows=3] + +== Liste de contrôle + +*Nouveau logiciel ou logiciel existant* + +S'agit-il d'un nouveau logiciel ou d'un projet existant (voir [Em002-2] chapitre 3.1) ? + +[%interactive] +* [ ] Logiciel existant (développement ultérieur) +* [ ] Nouveau logiciel +* [ ] Logiciel existantfootnote:[Non exigé par la LMETA, mais il est également possible de publier un logiciel existant.] ou développement ultérieur d'un logiciel existant +* [ ] Projet de tiers existant (remplir la _liste de contrôle Em002-4.1 Communauté OSS_) + +field::[rows=1] + +*Cycle de vie* + +À quelle étape du cycle de vie le logiciel se trouve-t-il actuellement (voir [Em002-2] chapitre 3.1) ?footnote:[Le remplacement d'un logiciel existant devrait être indiqué ici comme « planifié ».] + +[%interactive] +* [ ] Planifié +* [ ] En développement +* [ ] En exploitation +* [ ] Fin de vie +* [ ] Archive + +field::[rows=1] + +*Utilisateurs* + +Existe-t-il des personnes ou des organisations, potentielles ou connues, qui utilisent le logiciel ? Existe-t-il des clients potentiels pour le logiciel ? Les utilisateurs possibles et connus peuvent être nommés dans le champ de texte. + +[%interactive] +* [ ] Aucun envisageable +* [ ] Utilisateurs potentiels +* [ ] Utilisateurs connus + +field::[rows=2] + +*Développement propre, développement commun ou projet de tiers* + +Quelle est la structure de base ? S'agit-il d'un développement propre de la Confédération, d'une collaboration, ou le logiciel repose-t-il sur un projet de tiers ? + +La structure du codéveloppement et du projet de tiers peut être précisée dans le champ de texte + +(voir [Em002-2] chapitre 3.1). + +[%interactive] +* [ ] Développement propre +* [ ] Développement commun (_liste de contrôle Em002-4.1 Communauté OSS_ à remplir) +* [ ] Projet de tiers (_liste de contrôle Em002-4.1 Communauté OSS_ à remplir) + +field::[rows=2] + +*Qui publie le logiciel ?* + +[%interactive] +* [ ] Autorité fédérale +* [ ] Prestataire +* [ ] Fournisseur +* [ ] Tiers + +field::[rows=1] + +*Profondeur de la publication* + +Résultat de la _liste de contrôle Em002-4.1 Communauté OSS_. + +[%interactive] +* [ ] Publication minimale : publication du code source et des autres artefacts +* [ ] Suivi des problèmes : les erreurs peuvent être signalées et sont traitées. +* [ ] Communauté + +field::[rows=1] + +[%interactive] +* [ ] Il n'y a aucune violation de droits de tiers (p. ex. droits de brevet, propriété intellectuelle, protection des marques ou des designs). + +Les examens prévus au chapitre 3.2 de [Em002-2] ont été effectués. Les droits sur le logiciel appartiennent à la Confédération, ou celui-ci est développé par des collaborateurs de la Confédération (internes ou externes). Une justification est nécessaire en particulier si tel n'est pas le cas. Il convient également d'exposer pourquoi les droits n'appartiennent pas à la Confédération, quelles vérifications ont été effectuées concernant les parties propriétaires, ainsi que ce qui a été entrepris au sujet d'obstacles éventuels (p. ex. protection par brevet) ou jusqu'où les investigations sont allées. + +field::[rows=4] + +[%interactive] +* [ ] Aucun motif relevant de la sécurité ne s'oppose à la publication. + +Les examens prévus au chapitre 3.3 de [Em002-2] ont été effectués. + +field::[rows=2] + +[%interactive] +* [ ] Il existe un accord de principe et la faisabilité est donnée pour publier l'application en open source. + +Renvoi au procès-verbal ou à l'organe de décision, avec la date. + +field::[rows=1] + +== Remarques finales + +Remarques et renvois à d'autres documents pertinents. + +Si un Contributor Licence Agreement (CLA) est utilisé, cela devrait être indiqué ici (voir _Em002-3 Guide de licences OSS_ chapitre 8.9). + +field::[rows=4] + +*Classement du formulaire* + +Veuillez classer ce formulaire avec la documentation de projet et/ou conformément aux prescriptions de votre autorité (unité d'organisation). + +*Licence du modèle de liste de contrôle : CC0 1.0 Universal* + +Ce document est publié sous licence CC0. Il peut être librement utilisé, modifié et diffusé, y compris à des fins commerciales et dans tout format. +endif::[] + +ifeval::["{lang}" == "it"] +La presente lista di controllo fa parte del documento _Em002-2 Istruzioni per la pubblicazione di software open source_. Va compilata all'inizio di un progetto o in sede di chiarimento se non sia necessario pubblicare un software. + +La descrizione della lista di controllo figura in _[Em002-2]_, capitolo 3. + +Questa lista di controllo consente anche di stabilire se lo sviluppo avverrà come open development direttamente su un repository pubblico. + +Per il codice preesistente (sviluppato prima dell'entrata in vigore della LMeCA il 1.1.2024) sono previste domande supplementari. + +Importante: se un software non deve essere pubblicato come OSS, questa lista di controllo funge anche da motivazione di tale decisione. + +== Oggetto + +=== Nome e breve descrizione del software + +Indicate il nome del software. + +Tale nome dovrebbe essere identico in tutte le liste di controllo OSS successive, affinché l'attribuzione sia corretta. + +field::[rows=1] + +Descrivete l'obiettivo e lo scopo del software nonché la sua portata. + +Se esiste un collegamento URL, indicatelo anch'esso. + +field::[rows=4] + +=== Persona di contatto ed esame + +Indicate l'autorità federale (unità organizzativa), la persona di contatto nonché le persone responsabili dell'esame giuridico (p. es. ISBO/DSBO) che hanno verificato il rispetto delle prescrizioni di pubblicazione. + +field::[rows=3] + +== Lista di controllo + +*Software nuovo o preesistente* + +Si tratta di un software nuovo o di un progetto esistente (cfr. [Em002-2] capitolo 3.1)? + +[%interactive] +* [ ] Software preesistente (ulteriore sviluppo) +* [ ] Software nuovo +* [ ] Software preesistentefootnote:[Non richiesto dalla LMeCA, ma è comunque possibile pubblicare software esistente.] o ulteriore sviluppo di software preesistente +* [ ] Progetto di terzi esistente (compilare la _lista di controllo Em002-4.1 Community OSS_) + +field::[rows=1] + +*Ciclo di vita* + +In quale fase del ciclo di vita si trova attualmente il software (cfr. [Em002-2] capitolo 3.1)?footnote:[La sostituzione di software esistente dovrebbe essere indicata qui come «pianificata».] + +[%interactive] +* [ ] Pianificato +* [ ] In sviluppo +* [ ] In esercizio +* [ ] Fine del ciclo di vita +* [ ] Archivio + +field::[rows=1] + +*Utenti* + +Vi sono persone o organizzazioni, potenziali o note, che utilizzano il software? Vi sono potenziali acquirenti del software? Gli utenti possibili e noti possono essere indicati nel campo di testo. + +[%interactive] +* [ ] Nessuno ipotizzabile +* [ ] Utenti potenziali +* [ ] Utenti noti + +field::[rows=2] + +*Sviluppo proprio, sviluppo congiunto o progetto di terzi* + +Qual è la struttura di base? Si tratta di uno sviluppo proprio della Confederazione, di una collaborazione, oppure il software si basa su un progetto di terzi? + +La struttura dello sviluppo congiunto e del progetto di terzi può essere indicata nel campo di testo + +(cfr. [Em002-2] capitolo 3.1). + +[%interactive] +* [ ] Sviluppo proprio +* [ ] Sviluppo congiunto (compilare la _lista di controllo Em002-4.1 Community OSS_) +* [ ] Progetto di terzi (compilare la _lista di controllo Em002-4.1 Community OSS_) + +field::[rows=2] + +*Chi pubblica il software?* + +[%interactive] +* [ ] Autorità federale +* [ ] Fornitore di prestazioni +* [ ] Fornitore +* [ ] Terzi + +field::[rows=1] + +*Profondità della pubblicazione* + +Risultato della _lista di controllo Em002-4.1 Community OSS_. + +[%interactive] +* [ ] Pubblicazione minima: pubblicazione del codice sorgente e di altri artefatti +* [ ] Issue tracking: gli errori possono essere segnalati e vengono trattati. +* [ ] Community + +field::[rows=1] + +[%interactive] +* [ ] Non sussiste alcuna violazione di diritti di terzi (p. es. diritti di brevetto, proprietà intellettuale, protezione dei marchi o dei design). + +Gli esami di cui al capitolo 3.2 di [Em002-2] sono stati svolti. I diritti sul software spettano alla Confederazione, oppure il software è sviluppato da collaboratori della Confederazione (interni o esterni). Una motivazione è necessaria in particolare se così non è. Occorre inoltre esporre perché i diritti non spettano alla Confederazione, quali verifiche sono state effettuate riguardo alle parti proprietarie nonché che cosa è stato intrapreso in relazione a possibili ostacoli (p. es. protezione brevettuale) o fin dove sono giunti gli accertamenti. + +field::[rows=4] + +[%interactive] +* [ ] Non sussistono motivi rilevanti per la sicurezza che ostino alla pubblicazione. + +Gli esami di cui al capitolo 3.3 di [Em002-2] sono stati svolti. + +field::[rows=2] + +[%interactive] +* [ ] Sussistono l'accordo di principio e la fattibilità per pubblicare l'applicazione come open source. + +Rinvio al verbale o all'organo decisionale, con data. + +field::[rows=1] + +== Osservazioni conclusive + +Osservazioni e rinvii ad altri documenti rilevanti. + +Se viene utilizzato un Contributor Licence Agreement (CLA), dovrebbe essere indicato qui (cfr. _Em002-3 Guida alle licenze OSS_ capitolo 8.9). + +field::[rows=4] + +*Archiviazione del modulo* + +Archiviate questo modulo insieme alla documentazione di progetto e/o conformemente alle prescrizioni della vostra autorità (unità organizzativa). + +*Licenza del modello di lista di controllo: CC0 1.0 Universal* + +Il presente documento è pubblicato sotto licenza CC0. Può essere liberamente utilizzato, modificato e diffuso, anche a scopi commerciali e in qualsiasi formato. +endif::[] + +ifeval::["{lang}" == "rm"] +Questa glista da controlla fa part dal document _Em002-2 Instrucziuns per publitgar software open source_. Ella sto vegnir emplenida al cumenzament d'in project u en cas da sclerir, sch'in software na sto betg vegnir publitgà. + +La descripziun da la glista da controlla sa chatta en _[Em002-2]_, chapitel 3. + +Cun questa glista da controlla po era vegnir fixà, sche il svilup ha lieu sco open development directamain sin in repositori public. + +Per code existent (sviluppà avant l'entrada en vigur da l'EMBAG ils 1.1.2024) stattan a disposiziun dumondas supplementaras. + +Impurtant: Sch'in software na duai betg vegnir relaschà sco OSS, serva questa glista da controlla era sco motivaziun per ina tala decisiun. + +== Object + +=== Num e curta descripziun dal software + +Endatai il num dal software. + +Quest num duess esser identic en tuttas glistas da controlla OSS suandantas, per che l'attribuziun saja correcta. + +field::[rows=1] + +Descrivai la finamira e il intent dal software sco er l'extensiun. + +Sch'i dat in link URL, inditgai era quel. + +field::[rows=4] + +=== Persuna da contact e controlla + +Numnai l'autoritad federala (unitad d'organisaziun), la persuna da contact sco er las persunas responsablas per la controlla giuridica (p.ex. ISBO/DSBO) che han verifitgà l'observaziun da las prescripziuns da publicaziun. + +field::[rows=3] + +== Glista da controlla + +*Software nov u existent* + +Sa tracti d'in software nov u d'in project existent (vesair [Em002-2] chapitel 3.1)? + +[%interactive] +* [ ] Software existent (svilup vinavant) +* [ ] Software nov +* [ ] Software existentfootnote:[Betg pretendì da l'EMBAG, ma igl è era pussaivel da relaschar software existent.] u svilup vinavant da software existent +* [ ] Project da terzas persunas existent (emplenir la _glista da controlla Em002-4.1 Communitad OSS_) + +field::[rows=1] + +*Ciclus da vita* + +En tge fasa dal ciclus da vita sa chatta il software actualmain (vesair [Em002-2] chapitel 3.1)?footnote:[La remplazzada da software existent duess vegnir notada qua sco «planisada».] + +[%interactive] +* [ ] Planisà +* [ ] En svilup +* [ ] En funcziun +* [ ] Fin da la vita +* [ ] Archiv + +field::[rows=1] + +*Utilisaders* + +Dattia persunas u organisaziuns, potenzialas u enconuschentas, ch'utiliseschan il software? Dattia potenzials cumpraders per il software? Utilisaders pussaivels ed enconuschents pon vegnir numnads en il champ da text. + +[%interactive] +* [ ] Nagins imaginabels +* [ ] Utilisaders potenzials +* [ ] Utilisaders enconuschents + +field::[rows=2] + +*Svilup agen, svilup cuminaivel u project da terzas persunas* + +Co ha la structura fundamentala ora? Sa tracti d'in svilup agen da la Confederaziun, d'ina collavuraziun, u basa el sin in project da terzas persunas? + +La structura dal co-svilup e dal project da terzas persunas po vegnir inditgada en il champ da text + +(vesair [Em002-2] chapitel 3.1). + +[%interactive] +* [ ] Svilup agen +* [ ] Svilup cuminaivel (emplenir la _glista da controlla Em002-4.1 Communitad OSS_) +* [ ] Project da terzas persunas (emplenir la _glista da controlla Em002-4.1 Communitad OSS_) + +field::[rows=2] + +*Tgi publitgescha il software?* + +[%interactive] +* [ ] Autoritad federala +* [ ] Purschider da prestaziuns +* [ ] Furnitur +* [ ] Terzas persunas + +field::[rows=1] + +*Profunditad da la relaschada* + +Resultat da la _glista da controlla Em002-4.1 Communitad OSS_. + +[%interactive] +* [ ] Publicaziun minimala: publicaziun dal code da funtauna e d'ulteriurs artefacts +* [ ] Issue-tracking: sbagls pon vegnir annunziads e vegnan tractads. +* [ ] Communitad + +field::[rows=1] + +[%interactive] +* [ ] I n'exista nagina violaziun da dretgs da terzas persunas (p.ex. dretgs da patent, proprietad intellectuala, protecziun da marcas u da designs). + +Las controllas tenor [Em002-2] chapitel 3.2 èn vegnidas fatgas. Ils dretgs sin il software appartegnan a la Confederaziun, u el vegn sviluppà da collaboraturs da la Confederaziun (intern u extern). Ina motivaziun è necessaria en spezial, sche quai n'è betg il cas. I sto ultra da quai vegnir exponì, pertge ch'ils dretgs n'appartegnan betg a la Confederaziun, tge scleridas ch'èn vegnidas fatgas concernent parts proprietaras sco er tge ch'è vegnì entreprendì concernent impedaments pussaivels (p.ex. protecziun da patent) respectivamain quant lunsch che las scleridas èn ì. + +field::[rows=4] + +[%interactive] +* [ ] I n'existan nagins motivs relevants per la segirezza che s'opponan a la publicaziun. + +Las controllas tenor [Em002-2] chapitel 3.3 èn vegnidas fatgas. + +field::[rows=2] + +[%interactive] +* [ ] I exista in consentiment fundamental e la realisabladad da publitgar l'applicaziun sco open source. + +Renviament al protocol u al gremi da decisiun cun data. + +field::[rows=1] + +== Remartgas finalas + +Remartgas e renviaments ad ulteriurs documents relevants. + +Sch'in Contributor Licence Agreement (CLA) vegn utilisà, duess quai vegnir notà qua (vesair _Em002-3 Guida da licenzas OSS_ chapitel 8.9). + +field::[rows=4] + +*Archivaziun dal formular* + +Archivai quest formular tar la documentaziun dal project e/u tenor las prescripziuns da Vossa autoritad (unitad d'organisaziun). + +*Licenza dal model da la glista da controlla: CC0 1.0 Universal* + +Quest document vegn publitgà sut la licenza CC0. El dastga vegnir utilisà, midà e derasà liberamain, era per intents commerzials ed en mintga format. +endif::[] diff --git a/docs/em002-2-2-checklist-oss-analysis-and-preparation.adoc b/docs/em002-2-2-checklist-oss-analysis-and-preparation.adoc new file mode 100644 index 0000000..19a15ad --- /dev/null +++ b/docs/em002-2-2-checklist-oss-analysis-and-preparation.adoc @@ -0,0 +1,656 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-2.2 OSS Analysis and Preparation Checklist +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-2.2 Liste de contrôle Analyse et préparation OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-2.2 Lista di controllo Analisi e preparazione OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-2.2 Glista da controlla Analisa e preparaziun OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +This checklist is part of _Em002-2 Instructions for Publishing Open Source Software_ and is intended for ICT professionals. + +It serves to review the documentation and source code of a project. In doing so, it helps ensure that the quality level of the documentation is sufficient to publish an application as open source. It can also be used to verify that the source code and all third-party components used by the project do not pose any legal risks. These measures minimise security risks. + +Information about this checklist can be found in _[Em002-2]_ in Section 4. + +Furthermore, this checklist ensures that the project documentation addresses both end users and technical professionals equally. + +== Subject matter + +=== Name and brief description of the software + +Enter the name of the software. + +field::[rows=1] + +=== Contact person and review + +Name the organisation, contact person from the specialist office and the persons responsible (e.g. ISBO/DSBO) who have verified compliance with the publication requirements. + +field::[rows=3] + +== Checklist + +[%interactive] +* [ ] _Em002-2.1 OSS Preliminary Assessment Checklist_ has been completed and no problematic points were identified. + +[%interactive] +* [ ] The source code to be published has been analysed. +** Review how the existing code quality and guidelines have been implemented. +** Ensure no sensitive (test) data is included, e.g. data based on real people or cases. +** Current documentation (see [Em002-2] Annexes D.1. and D.2.) +** Delete unnecessary files or outdated documents. +** Check code for secrets/credentials.footnote:[https://www.ncsc.admin.ch/ncsc/en/home/aktuell/im-fokus/2022/git.html] +** Conduct targeted security tests and subsequently establish a (public) bug bounty programme.footnote:[https://www.ncsc.admin.ch/ncsc/en/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +** Review all libraries used to ensure licences are present and corresponding lists (attributions) have been created. +** Description of the deployment (CI/CD pipelinefootnote:[https://en.wikipedia.org/wiki/CI/CD]) and possibly setup of a demo instance. + +field::[rows=1] + +[%interactive] +* [ ] Licence selection +** Check for any dependencies on existing licences. +** For third-party code, check terms of use for compatibility with intended licence and replace code if necessary. +** Select the appropriate licence using the guide 'Em002-3 OSS Licensing Guidelines' (primary recommendations are AGPL for copyleft and MIT for permissive). + +Selected licence and justification + +field::[rows=1] + +[%interactive] +* [ ] The documentation is stored with the source code (see [Em002-2] Annex D.1.) + +Justification/storage location + +field::[rows=1] + +[%interactive] +* [ ] The documentation addresses both end users and technical professionals. + +List of the central documentation + +field::[rows=1] + +[%interactive] +* [ ] Detailed documentation of the source code (OSS specific) + +Important standard documentation (README, LICENSE, CONTRIBUTING, etc.) is available. + +field::[rows=1] + +[%interactive] +* [ ] The source code, including history, contains no sensitive, protected or confidential personal data. Or the history has been completely deleted. (see [Em002-2] Annex E.2.) + +Explanation of review (if not filed as separate document) + +field::[rows=1] + +[%interactive] +* [ ] It has been clarified with the supplier and all involved developers within the Federal Administration whether author information (names, email addresses) may be published. + +Alternatively, the source code including history has been cleaned/anonymised. + +field::[rows=1] + +[%interactive] +* [ ] The libraries used by the project are compatible with the project's licence. + +Explanation of review (if not filed as separate document) + +field::[rows=1] + +[%interactive] +* [ ] The project uses a package manager to manage its dependencies. + +[%interactive] +* [ ] The project declares its licence in the corresponding descriptor of the package manager. Creation of a Software Bill of Materials (SBOM), which lists all open source components used. + +[%interactive] +* [ ] The source code contains a _THIRD-PARTY-LICENSES.md_ file listing for each library used: the project name of the library, the homepage of the library, the SPDX identifier of the library's licence, and a link to the library's licence. + +field::[rows=1] + +[%interactive] +* [ ] For applications, an 'About' dialogue is available that references the _THIRD-PARTY-LICENSES.md_ file. + +[%interactive] +* [ ] As part of the code review process, it is ensured that the _THIRD-PARTY-LICENSES.md_ file is updated with every change to the libraries. + +== Concluding remarks + +Comments and references to other relevant documents + +field::[rows=4] + +*Filing of form* + +Please file this form with the project documentation and/or in accordance with the specifications of your authority (organisational unit). + +*Licence of the checklist template: CC0 1.0 Universal* + +This document is published under the https://creativecommons.org/publicdomain/zero/1.0/[_CC0 licence_]. It may be freely used, modified and distributed, including for commercial purposes and in any format. +endif::[] + +ifeval::["{lang}" == "de"] +Diese Checkliste ist Teil von _Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software_ und richtet sich an IKT-Fachpersonen. + +Sie dient der Überprüfung der Dokumentation und des Quellcodes eines Projekts. Damit hilft sie sicherzustellen, dass die Qualität der Dokumentation ausreicht, um eine Anwendung als Open Source zu veröffentlichen. Zudem lässt sich damit prüfen, ob der Quellcode und alle vom Projekt verwendeten Drittkomponenten keine rechtlichen Risiken bergen. Diese Massnahmen minimieren Sicherheitsrisiken. + +Informationen zu dieser Checkliste finden sich in _[Em002-2]_ in Kapitel 4. + +Darüber hinaus stellt diese Checkliste sicher, dass die Projektdokumentation Endnutzende und technische Fachpersonen gleichermassen anspricht. + +== Gegenstand + +=== Name und Kurzbeschreibung der Software + +Tragen Sie den Namen der Software ein. + +field::[rows=1] + +=== Ansprechperson und Prüfung + +Nennen Sie die Organisation, die Ansprechperson der Fachstelle sowie die verantwortlichen Personen (z. B. ISBO/DSBO), welche die Einhaltung der Veröffentlichungsvorgaben geprüft haben. + +field::[rows=3] + +== Checkliste + +[%interactive] +* [ ] Die _Em002-2.1 Checkliste OSS-Vorabklärung_ wurde ausgefüllt und es wurden keine problematischen Punkte festgestellt. + +[%interactive] +* [ ] Der zu veröffentlichende Quellcode wurde analysiert. +** Prüfen, wie die bestehende Codequalität und die Richtlinien umgesetzt wurden. +** Sicherstellen, dass keine sensiblen (Test-)Daten enthalten sind, z. B. Daten, die auf realen Personen oder Fällen beruhen. +** Aktuelle Dokumentation (siehe [Em002-2] Anhänge D.1. und D.2.) +** Unnötige Dateien oder veraltete Dokumente löschen. +** Code auf Secrets/Zugangsdaten prüfen.footnote:[https://www.ncsc.admin.ch/ncsc/de/home/aktuell/im-fokus/2022/git.html] +** Gezielte Sicherheitstests durchführen und anschliessend ein (öffentliches) Bug-Bounty-Programm einrichten.footnote:[https://www.ncsc.admin.ch/ncsc/de/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +** Alle verwendeten Bibliotheken prüfen, ob die Lizenzen vorliegen und entsprechende Listen (Attributionen) erstellt wurden. +** Beschreibung des Deployments (CI/CD-Pipelinefootnote:[https://de.wikipedia.org/wiki/CI/CD]) und gegebenenfalls Aufbau einer Demo-Instanz. + +field::[rows=1] + +[%interactive] +* [ ] Lizenzwahl +** Allfällige Abhängigkeiten von bestehenden Lizenzen prüfen. +** Bei Drittcode die Nutzungsbedingungen auf Kompatibilität mit der vorgesehenen Lizenz prüfen und den Code nötigenfalls ersetzen. +** Die passende Lizenz anhand des Leitfadens «Em002-3 Leitfaden OSS-Lizenzierung» auswählen (primäre Empfehlungen sind AGPL für Copyleft und MIT für permissiv). + +Gewählte Lizenz und Begründung + +field::[rows=1] + +[%interactive] +* [ ] Die Dokumentation wird zusammen mit dem Quellcode abgelegt (siehe [Em002-2] Anhang D.1.) + +Begründung/Ablageort + +field::[rows=1] + +[%interactive] +* [ ] Die Dokumentation spricht sowohl Endnutzende als auch technische Fachpersonen an. + +Liste der zentralen Dokumentation + +field::[rows=1] + +[%interactive] +* [ ] Ausführliche Dokumentation des Quellcodes (OSS-spezifisch) + +Wichtige Standarddokumentation (README, LICENSE, CONTRIBUTING usw.) ist vorhanden. + +field::[rows=1] + +[%interactive] +* [ ] Der Quellcode enthält einschliesslich Historie keine sensiblen, geschützten oder vertraulichen Personendaten. Oder die Historie wurde vollständig gelöscht. (siehe [Em002-2] Anhang E.2.) + +Erläuterung der Prüfung (falls nicht als separates Dokument abgelegt) + +field::[rows=1] + +[%interactive] +* [ ] Mit dem Lieferanten und allen beteiligten Entwicklerinnen und Entwicklern innerhalb der Bundesverwaltung wurde geklärt, ob Autorenangaben (Namen, E-Mail-Adressen) veröffentlicht werden dürfen. + +Alternativ wurde der Quellcode einschliesslich Historie bereinigt/anonymisiert. + +field::[rows=1] + +[%interactive] +* [ ] Die vom Projekt verwendeten Bibliotheken sind mit der Lizenz des Projekts kompatibel. + +Erläuterung der Prüfung (falls nicht als separates Dokument abgelegt) + +field::[rows=1] + +[%interactive] +* [ ] Das Projekt verwendet einen Paketmanager zur Verwaltung seiner Abhängigkeiten. + +[%interactive] +* [ ] Das Projekt deklariert seine Lizenz im entsprechenden Deskriptor des Paketmanagers. Erstellung einer Software Bill of Materials (SBOM), die alle verwendeten Open-Source-Komponenten auflistet. + +[%interactive] +* [ ] Der Quellcode enthält eine Datei _THIRD-PARTY-LICENSES.md_, die für jede verwendete Bibliothek aufführt: den Projektnamen der Bibliothek, die Homepage der Bibliothek, den SPDX-Identifikator der Lizenz der Bibliothek sowie einen Link auf die Lizenz der Bibliothek. + +field::[rows=1] + +[%interactive] +* [ ] Bei Anwendungen steht ein «Über»-Dialog zur Verfügung, der auf die Datei _THIRD-PARTY-LICENSES.md_ verweist. + +[%interactive] +* [ ] Im Rahmen des Code-Review-Prozesses wird sichergestellt, dass die Datei _THIRD-PARTY-LICENSES.md_ bei jeder Änderung an den Bibliotheken nachgeführt wird. + +== Schlussbemerkungen + +Bemerkungen und Verweise auf weitere relevante Dokumente + +field::[rows=4] + +*Ablage des Formulars* + +Legen Sie dieses Formular bei der Projektdokumentation und/oder gemäss den Vorgaben Ihrer Behörde (Organisationseinheit) ab. + +*Lizenz der Checklisten-Vorlage: CC0 1.0 Universal* + +Dieses Dokument wird unter der https://creativecommons.org/publicdomain/zero/1.0/[_CC0-Lizenz_] veröffentlicht. Es darf frei genutzt, verändert und verbreitet werden, auch zu kommerziellen Zwecken und in jedem Format. +endif::[] + +ifeval::["{lang}" == "fr"] +Cette liste de contrôle fait partie du document _Em002-2 Instructions pour la publication de logiciels open source_ et s'adresse aux spécialistes TIC. + +Elle sert à examiner la documentation et le code source d'un projet. Elle contribue ainsi à garantir que le niveau de qualité de la documentation est suffisant pour publier une application en open source. Elle permet également de vérifier que le code source et tous les composants tiers utilisés par le projet ne présentent aucun risque juridique. Ces mesures réduisent les risques de sécurité. + +Les informations relatives à cette liste de contrôle figurent dans _[Em002-2]_, chapitre 4. + +Cette liste de contrôle garantit en outre que la documentation du projet s'adresse aussi bien aux utilisateurs finaux qu'aux spécialistes techniques. + +== Objet + +=== Nom et brève description du logiciel + +Indiquez le nom du logiciel. + +field::[rows=1] + +=== Personne de contact et examen + +Indiquez l'organisation, la personne de contact du service spécialisé ainsi que les personnes responsables (p. ex. ISBO/DSBO) qui ont vérifié le respect des exigences de publication. + +field::[rows=3] + +== Liste de contrôle + +[%interactive] +* [ ] La _liste de contrôle Em002-2.1 Évaluation préalable OSS_ a été remplie et aucun point problématique n'a été constaté. + +[%interactive] +* [ ] Le code source à publier a été analysé. +** Vérifier comment la qualité du code existante et les directives ont été mises en œuvre. +** S'assurer qu'aucune donnée (de test) sensible n'est incluse, p. ex. des données fondées sur des personnes ou des cas réels. +** Documentation à jour (voir [Em002-2] annexes D.1. et D.2.) +** Supprimer les fichiers inutiles ou les documents obsolètes. +** Vérifier le code à la recherche de secrets ou d'identifiants.footnote:[https://www.ncsc.admin.ch/ncsc/fr/home/aktuell/im-fokus/2022/git.html] +** Effectuer des tests de sécurité ciblés et mettre ensuite en place un programme de bug bounty (public).footnote:[https://www.ncsc.admin.ch/ncsc/fr/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +** Examiner toutes les bibliothèques utilisées afin de s'assurer que les licences sont disponibles et que les listes correspondantes (attributions) ont été établies. +** Description du déploiement (pipeline CI/CDfootnote:[https://fr.wikipedia.org/wiki/CI/CD]) et, le cas échéant, mise en place d'une instance de démonstration. + +field::[rows=1] + +[%interactive] +* [ ] Choix de la licence +** Vérifier les éventuelles dépendances à des licences existantes. +** Pour le code de tiers, vérifier la compatibilité des conditions d'utilisation avec la licence prévue et remplacer le code si nécessaire. +** Choisir la licence appropriée à l'aide du guide « Em002-3 Guide de licences OSS » (les recommandations principales sont l'AGPL pour le copyleft et la MIT pour les licences permissives). + +Licence choisie et justification + +field::[rows=1] + +[%interactive] +* [ ] La documentation est conservée avec le code source (voir [Em002-2] annexe D.1.) + +Justification / lieu de conservation + +field::[rows=1] + +[%interactive] +* [ ] La documentation s'adresse aussi bien aux utilisateurs finaux qu'aux spécialistes techniques. + +Liste de la documentation centrale + +field::[rows=1] + +[%interactive] +* [ ] Documentation détaillée du code source (spécifique à l'OSS) + +La documentation standard importante (README, LICENSE, CONTRIBUTING, etc.) est disponible. + +field::[rows=1] + +[%interactive] +* [ ] Le code source, historique compris, ne contient aucune donnée personnelle sensible, protégée ou confidentielle. Ou l'historique a été entièrement supprimé. (voir [Em002-2] annexe E.2.) + +Explication de l'examen (s'il n'est pas classé comme document distinct) + +field::[rows=1] + +[%interactive] +* [ ] Il a été clarifié avec le fournisseur et tous les développeurs concernés au sein de l'administration fédérale si les informations sur les auteurs (noms, adresses électroniques) peuvent être publiées. + +À défaut, le code source, historique compris, a été nettoyé ou anonymisé. + +field::[rows=1] + +[%interactive] +* [ ] Les bibliothèques utilisées par le projet sont compatibles avec la licence du projet. + +Explication de l'examen (s'il n'est pas classé comme document distinct) + +field::[rows=1] + +[%interactive] +* [ ] Le projet utilise un gestionnaire de paquets pour gérer ses dépendances. + +[%interactive] +* [ ] Le projet déclare sa licence dans le descripteur correspondant du gestionnaire de paquets. Établissement d'une Software Bill of Materials (SBOM) recensant tous les composants open source utilisés. + +[%interactive] +* [ ] Le code source contient un fichier _THIRD-PARTY-LICENSES.md_ indiquant pour chaque bibliothèque utilisée : le nom du projet de la bibliothèque, sa page d'accueil, l'identifiant SPDX de sa licence et un lien vers celle-ci. + +field::[rows=1] + +[%interactive] +* [ ] Pour les applications, une boîte de dialogue « À propos » renvoyant au fichier _THIRD-PARTY-LICENSES.md_ est disponible. + +[%interactive] +* [ ] Dans le cadre du processus de revue de code, il est garanti que le fichier _THIRD-PARTY-LICENSES.md_ est mis à jour à chaque modification des bibliothèques. + +== Remarques finales + +Remarques et renvois à d'autres documents pertinents + +field::[rows=4] + +*Classement du formulaire* + +Veuillez classer ce formulaire avec la documentation de projet et/ou conformément aux prescriptions de votre autorité (unité d'organisation). + +*Licence du modèle de liste de contrôle : CC0 1.0 Universal* + +Ce document est publié sous la https://creativecommons.org/publicdomain/zero/1.0/[_licence CC0_]. Il peut être librement utilisé, modifié et diffusé, y compris à des fins commerciales et dans tout format. +endif::[] + +ifeval::["{lang}" == "it"] +La presente lista di controllo fa parte del documento _Em002-2 Istruzioni per la pubblicazione di software open source_ ed è destinata agli specialisti TIC. + +Serve a esaminare la documentazione e il codice sorgente di un progetto. Contribuisce così a garantire che il livello qualitativo della documentazione sia sufficiente per pubblicare un'applicazione come open source. Consente inoltre di verificare che il codice sorgente e tutti i componenti di terzi utilizzati dal progetto non comportino rischi giuridici. Queste misure riducono al minimo i rischi per la sicurezza. + +Le informazioni su questa lista di controllo figurano in _[Em002-2]_, capitolo 4. + +Questa lista di controllo garantisce inoltre che la documentazione di progetto si rivolga in egual misura agli utenti finali e agli specialisti tecnici. + +== Oggetto + +=== Nome e breve descrizione del software + +Indicate il nome del software. + +field::[rows=1] + +=== Persona di contatto ed esame + +Indicate l'organizzazione, la persona di contatto del servizio specializzato nonché le persone responsabili (p. es. ISBO/DSBO) che hanno verificato il rispetto delle prescrizioni di pubblicazione. + +field::[rows=3] + +== Lista di controllo + +[%interactive] +* [ ] La _lista di controllo Em002-2.1 Valutazione preliminare OSS_ è stata compilata e non sono stati rilevati punti problematici. + +[%interactive] +* [ ] Il codice sorgente da pubblicare è stato analizzato. +** Verificare come sono state attuate la qualità del codice esistente e le direttive. +** Assicurarsi che non siano contenuti dati (di test) sensibili, p. es. dati basati su persone o casi reali. +** Documentazione aggiornata (cfr. [Em002-2] allegati D.1. e D.2.) +** Cancellare i file superflui o i documenti obsoleti. +** Verificare il codice alla ricerca di segreti o credenziali.footnote:[https://www.ncsc.admin.ch/ncsc/it/home/aktuell/im-fokus/2022/git.html] +** Svolgere test di sicurezza mirati e istituire in seguito un programma di bug bounty (pubblico).footnote:[https://www.ncsc.admin.ch/ncsc/it/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +** Esaminare tutte le librerie utilizzate per accertare che le licenze siano disponibili e che siano stati redatti i relativi elenchi (attribuzioni). +** Descrizione del deployment (pipeline CI/CDfootnote:[https://it.wikipedia.org/wiki/CI/CD]) ed eventualmente allestimento di un'istanza dimostrativa. + +field::[rows=1] + +[%interactive] +* [ ] Scelta della licenza +** Verificare eventuali dipendenze da licenze esistenti. +** Per il codice di terzi, verificare la compatibilità delle condizioni d'uso con la licenza prevista e, se necessario, sostituire il codice. +** Scegliere la licenza adeguata sulla base della guida «Em002-3 Guida alle licenze OSS» (le raccomandazioni principali sono l'AGPL per il copyleft e la MIT per le licenze permissive). + +Licenza scelta e motivazione + +field::[rows=1] + +[%interactive] +* [ ] La documentazione è archiviata insieme al codice sorgente (cfr. [Em002-2] allegato D.1.) + +Motivazione / luogo di archiviazione + +field::[rows=1] + +[%interactive] +* [ ] La documentazione si rivolge sia agli utenti finali sia agli specialisti tecnici. + +Elenco della documentazione centrale + +field::[rows=1] + +[%interactive] +* [ ] Documentazione dettagliata del codice sorgente (specifica per l'OSS) + +La documentazione standard importante (README, LICENSE, CONTRIBUTING ecc.) è disponibile. + +field::[rows=1] + +[%interactive] +* [ ] Il codice sorgente, cronologia compresa, non contiene dati personali sensibili, protetti o confidenziali. Oppure la cronologia è stata cancellata completamente. (cfr. [Em002-2] allegato E.2.) + +Spiegazione dell'esame (se non archiviata come documento separato) + +field::[rows=1] + +[%interactive] +* [ ] Con il fornitore e con tutti gli sviluppatori coinvolti in seno all'Amministrazione federale è stato chiarito se le indicazioni sugli autori (nomi, indirizzi e-mail) possono essere pubblicate. + +In alternativa il codice sorgente, cronologia compresa, è stato ripulito o anonimizzato. + +field::[rows=1] + +[%interactive] +* [ ] Le librerie utilizzate dal progetto sono compatibili con la licenza del progetto. + +Spiegazione dell'esame (se non archiviata come documento separato) + +field::[rows=1] + +[%interactive] +* [ ] Il progetto utilizza un gestore di pacchetti per gestire le proprie dipendenze. + +[%interactive] +* [ ] Il progetto dichiara la propria licenza nel corrispondente descrittore del gestore di pacchetti. Allestimento di una Software Bill of Materials (SBOM) che elenca tutti i componenti open source utilizzati. + +[%interactive] +* [ ] Il codice sorgente contiene un file _THIRD-PARTY-LICENSES.md_ che indica per ogni libreria utilizzata: il nome del progetto della libreria, la sua homepage, l'identificatore SPDX della sua licenza e un collegamento alla stessa. + +field::[rows=1] + +[%interactive] +* [ ] Per le applicazioni è disponibile una finestra di dialogo «Informazioni su» che rinvia al file _THIRD-PARTY-LICENSES.md_. + +[%interactive] +* [ ] Nell'ambito del processo di code review si garantisce che il file _THIRD-PARTY-LICENSES.md_ venga aggiornato a ogni modifica delle librerie. + +== Osservazioni conclusive + +Osservazioni e rinvii ad altri documenti rilevanti + +field::[rows=4] + +*Archiviazione del modulo* + +Archiviate questo modulo insieme alla documentazione di progetto e/o conformemente alle prescrizioni della vostra autorità (unità organizzativa). + +*Licenza del modello di lista di controllo: CC0 1.0 Universal* + +Il presente documento è pubblicato sotto la https://creativecommons.org/publicdomain/zero/1.0/[_licenza CC0_]. Può essere liberamente utilizzato, modificato e diffuso, anche a scopi commerciali e in qualsiasi formato. +endif::[] + +ifeval::["{lang}" == "rm"] +Questa glista da controlla fa part da _Em002-2 Instrucziuns per publitgar software open source_ e s'adressa a persunas spezialisadas en TIC. + +Ella serva a controllar la documentaziun ed il code da funtauna d'in project. Uschia gida ella a garantir che la qualitad da la documentaziun tanschia per publitgar in'applicaziun sco open source. Ultra da quai po vegnir controllà, sche il code da funtauna e tut las cumponentas da terzas persunas utilisadas dal project na cumportan nagins ristgs giuridics. Questas mesiras reduceschan ils ristgs da segirezza. + +Infurmaziuns davart questa glista da controlla sa chattan en _[Em002-2]_ en il chapitel 4. + +Ultra da quai garantescha questa glista da controlla che la documentaziun dal project s'adressia tant als utilisaders finals sco er a las persunas spezialisadas tecnicas. + +== Object + +=== Num e curta descripziun dal software + +Endatai il num dal software. + +field::[rows=1] + +=== Persuna da contact e controlla + +Numnai l'organisaziun, la persuna da contact dal post spezialisà sco er las persunas responsablas (p.ex. ISBO/DSBO) che han verifitgà l'observaziun da las prescripziuns da publicaziun. + +field::[rows=3] + +== Glista da controlla + +[%interactive] +* [ ] La _glista da controlla Em002-2.1 Evaluaziun preliminara OSS_ è vegnida emplenida e i n'èn vegnids constatads nagins puncts problematics. + +[%interactive] +* [ ] Il code da funtauna da publitgar è vegnì analisà. +** Controllar, co che la qualitad dal code existenta e las directivas èn vegnidas realisadas. +** Garantir che naginas datas (da test) sensiblas na sajan cuntegnidas, p.ex. datas che sa basan sin persunas u cas reals. +** Documentaziun actuala (vesair [Em002-2] agiuntas D.1. e D.2.) +** Stizzar datotecas nunnecessarias u documents antiquads. +** Controllar il code concernent secrets/datas d'access.footnote:[https://www.ncsc.admin.ch/ncsc/de/home/aktuell/im-fokus/2022/git.html] +** Exequir tests da segirezza mirads ed installar suenter in program da bug bounty (public).footnote:[https://www.ncsc.admin.ch/ncsc/de/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +** Controllar tuttas bibliotecas utilisadas, sche las licenzas èn avant maun e sche las glistas correspundentas (attribuziuns) èn vegnidas fatgas. +** Descripziun dal deployment (pipeline CI/CDfootnote:[https://de.wikipedia.org/wiki/CI/CD]) ed eventualmain construcziun d'ina instanza da demonstraziun. + +field::[rows=1] + +[%interactive] +* [ ] Tscherna da la licenza +** Controllar eventualas dependenzas da licenzas existentas. +** Per code da terzas persunas controllar las cundiziuns d'utilisaziun concernent la cumpatibilitad cun la licenza previsa e remplazzar il code sche necessari. +** Tscherner la licenza adattada cun agid da la guida «Em002-3 Guida da licenzas OSS» (las recumandaziuns principalas èn l'AGPL per copyleft e la MIT per permissiv). + +Licenza tschernida e motivaziun + +field::[rows=1] + +[%interactive] +* [ ] La documentaziun vegn archivada ensemen cun il code da funtauna (vesair [Em002-2] agiunta D.1.) + +Motivaziun/lieu d'archivaziun + +field::[rows=1] + +[%interactive] +* [ ] La documentaziun s'adressa tant als utilisaders finals sco er a las persunas spezialisadas tecnicas. + +Glista da la documentaziun centrala + +field::[rows=1] + +[%interactive] +* [ ] Documentaziun detagliada dal code da funtauna (specifica per OSS) + +La documentaziun standard impurtanta (README, LICENSE, CONTRIBUTING etc.) è avant maun. + +field::[rows=1] + +[%interactive] +* [ ] Il code da funtauna na cuntegna, inclusiv la cronologia, naginas datas persunalas sensiblas, protegidas u confidenzialas. U la cronologia è vegnida stizzada cumplettamain. (vesair [Em002-2] agiunta E.2.) + +Explicaziun da la controlla (sche betg archivada sco document separà) + +field::[rows=1] + +[%interactive] +* [ ] Cun il furnitur e cun tut ils sviluppaders participads entaifer l'administraziun federala è vegnì scleri, sche las indicaziuns davart ils auturs (nums, adressas d'e-mail) dastgan vegnir publitgadas. + +Alternativamain è il code da funtauna, inclusiv la cronologia, vegnì rundà/anonimisà. + +field::[rows=1] + +[%interactive] +* [ ] Las bibliotecas utilisadas dal project èn cumpatiblas cun la licenza dal project. + +Explicaziun da la controlla (sche betg archivada sco document separà) + +field::[rows=1] + +[%interactive] +* [ ] Il project utilisescha in manager da pachets per administrar sias dependenzas. + +[%interactive] +* [ ] Il project declerescha sia licenza en il descriptur correspundent dal manager da pachets. Elavuraziun d'ina Software Bill of Materials (SBOM) che renumbra tuttas cumponentas open source utilisadas. + +[%interactive] +* [ ] Il code da funtauna cuntegna ina datoteca _THIRD-PARTY-LICENSES.md_ che inditgescha per mintga biblioteca utilisada: il num dal project da la biblioteca, sia pagina d'internet, l'identificatur SPDX da sia licenza ed in link sin quella. + +field::[rows=1] + +[%interactive] +* [ ] Tar applicaziuns stat a disposiziun in dialog «Davart» che renviescha a la datoteca _THIRD-PARTY-LICENSES.md_. + +[%interactive] +* [ ] En il rom dal process da code review vegn garantì che la datoteca _THIRD-PARTY-LICENSES.md_ vegnia actualisada tar mintga midada da las bibliotecas. + +== Remartgas finalas + +Remartgas e renviaments ad ulteriurs documents relevants + +field::[rows=4] + +*Archivaziun dal formular* + +Archivai quest formular tar la documentaziun dal project e/u tenor las prescripziuns da Vossa autoritad (unitad d'organisaziun). + +*Licenza dal model da la glista da controlla: CC0 1.0 Universal* + +Quest document vegn publitgà sut la https://creativecommons.org/publicdomain/zero/1.0/[_licenza CC0_]. El dastga vegnir utilisà, midà e derasà liberamain, era per intents commerzials ed en mintga format. +endif::[] diff --git a/docs/em002-2-3-checklist-oss-release-and-publication.adoc b/docs/em002-2-3-checklist-oss-release-and-publication.adoc new file mode 100644 index 0000000..8f0a94d --- /dev/null +++ b/docs/em002-2-3-checklist-oss-release-and-publication.adoc @@ -0,0 +1,576 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-2.3 OSS Release and Publication Checklist +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-2.3 Liste de contrôle Validation et publication OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-2.3 Lista di controllo Rilascio e pubblicazione OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-2.3 Glista da controlla Relaschada e publicaziun OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +This checklist is part of the document 'Em002-2 Instructions for Publishing Open Source Software'. + +It concludes the instructions and results in release of the software under an open source licence. The description of the checklist can be found in [Em002-2] Annex D. + +== Subject matter + +=== Name and brief description of the software + +Enter the name of the software. + +field::[rows=1] + +=== Contact person and review + +Name the organisation, contact person from the specialist office and the persons responsible (e.g. ISBO/DSBO) who have verified compliance with the publication requirements. + +field::[rows=3] + +=== Repository names and developer permissions + +State the planned repository names of the software to be published and the chosen publication platform.footnote:[A repository under the GitHub organisation of the Federal Chancellery (http://github.com/swiss) can be requested from opensource@bk.admin.ch.] + +field::[rows=3] + +Specify who (GitHub username, name, position, function) is working on the repository. If this is in a repository of an office, it must be stated who authorised the person. That person is then also responsible for the solution if the first person leaves the organisation or changes their position. It should also be specified whether individuals are acting as private persons or as part of the office. Name the GitHub user account that should be assigned the role of Repository Administrator. There can be several administrators. + +field::[rows=4] + +== Checklist + +The checklist is to be completed before actual publication. + +[%interactive] +* [ ] 'Em002-2.1 OSS Preliminary Assessment Checklist' has been completed and no problematic points were identified. + +[%interactive] +* [ ] 'Em002-2.2 OSS Analysis and Preparation Checklist' has been completed and no problematic points were identified. + +[%interactive] +* [ ] Licence has been selected. + +Selected licence and justification + +field::[rows=2] + +[%interactive] +* [ ] ISDS concept has been created. + +The relevant reviews have been carried out. Refer to documents/reviews. It is defined how security-relevant reports by third parties will be handled. + +If applicable, the software will be subject to a bug bounty programme. + +There may also be OSS checks in the repositories. + +The relevant configuration is described and the person responsible is named. + +field::[rows=1] + +[%interactive] +* [ ] Community and support is regulated (via 'Em002-4.1 OSS Community Checklist') + +The checklist is attached. The key points are included here. + +field::[rows=1] + +[%interactive] +* [ ] Level and method of support have been clarified. + +Indication of how this has been regulated. + +field::[rows=1] + +[%interactive] +* [ ] A *publiccode.yml* was created for the publication. + +The metadata standard https://yml.publiccode.tools/ describes the software. The defined format makes the publication easier to find and reuse. + +This must be saved in the main directory of the repository. + +If a new repository or organisation is created, this can be reported via opensource@bk.admin.ch for inclusion in the OSS Catalogue. + +[%interactive] +* [ ] Transferred responsibilities + +Indication of whether responsibility for release was transferred to a third party (supplier, support, association) during procurement or subsequently. + +field::[rows=2] + +[%interactive] +* [ ] Green light for open sourcing from the application and budget managers + +Names and date + +field::[rows=2] + +== Concluding remarks + +Comments and references to other relevant documents + +field::[rows=4] + +*Filing of form* + +Please file this form with the project documentation and/or in accordance with the specifications of your authority (organisational unit). + +*Licence of the checklist template: CC0 1.0 Universal* + +This document is published under the https://creativecommons.org/publicdomain/zero/1.0/[_CC0 licence_]. It may be freely used, modified and distributed, including for commercial purposes and in any format. +endif::[] + +ifeval::["{lang}" == "de"] +Diese Checkliste ist Teil des Dokuments «Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software». + +Sie schliesst die Anleitung ab und führt zur Freigabe der Software unter einer Open-Source-Lizenz. Die Beschreibung der Checkliste findet sich in [Em002-2] Anhang D. + +== Gegenstand + +=== Name und Kurzbeschreibung der Software + +Tragen Sie den Namen der Software ein. + +field::[rows=1] + +=== Ansprechperson und Prüfung + +Nennen Sie die Organisation, die Ansprechperson der Fachstelle sowie die verantwortlichen Personen (z. B. ISBO/DSBO), welche die Einhaltung der Veröffentlichungsvorgaben geprüft haben. + +field::[rows=3] + +=== Repository-Namen und Entwicklerberechtigungen + +Geben Sie die geplanten Repository-Namen der zu veröffentlichenden Software sowie die gewählte Veröffentlichungsplattform an.footnote:[Ein Repository unter der GitHub-Organisation der Bundeskanzlei (http://github.com/swiss) kann bei opensource@bk.admin.ch beantragt werden.] + +field::[rows=3] + +Geben Sie an, wer (GitHub-Benutzername, Name, Stelle, Funktion) am Repository arbeitet. Befindet sich dieses in einem Repository eines Amtes, so ist anzugeben, wer die Person autorisiert hat. Diese Person ist anschliessend auch für die Lösung verantwortlich, falls die erste Person die Organisation verlässt oder ihre Stelle wechselt. Zudem sollte angegeben werden, ob Personen als Privatpersonen oder als Teil des Amtes handeln. Nennen Sie das GitHub-Benutzerkonto, dem die Rolle Repository-Administrator zugewiesen werden soll. Es kann mehrere Administratorinnen und Administratoren geben. + +field::[rows=4] + +== Checkliste + +Die Checkliste ist vor der eigentlichen Veröffentlichung auszufüllen. + +[%interactive] +* [ ] Die «Em002-2.1 Checkliste OSS-Vorabklärung» wurde ausgefüllt und es wurden keine problematischen Punkte festgestellt. + +[%interactive] +* [ ] Die «Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung» wurde ausgefüllt und es wurden keine problematischen Punkte festgestellt. + +[%interactive] +* [ ] Die Lizenz wurde ausgewählt. + +Gewählte Lizenz und Begründung + +field::[rows=2] + +[%interactive] +* [ ] Das ISDS-Konzept wurde erstellt. + +Die einschlägigen Prüfungen wurden durchgeführt. Verweisen Sie auf Dokumente/Prüfungen. Es ist festgelegt, wie mit sicherheitsrelevanten Meldungen Dritter umgegangen wird. + +Gegebenenfalls untersteht die Software einem Bug-Bounty-Programm. + +Es kann zudem OSS-Prüfungen in den Repositories geben. + +Die entsprechende Konfiguration ist beschrieben und die verantwortliche Person ist benannt. + +field::[rows=1] + +[%interactive] +* [ ] Community und Support sind geregelt (über «Em002-4.1 Checkliste OSS-Community») + +Die Checkliste liegt bei. Die wichtigsten Punkte sind hier aufgeführt. + +field::[rows=1] + +[%interactive] +* [ ] Umfang und Art des Supports wurden geklärt. + +Angabe, wie dies geregelt wurde. + +field::[rows=1] + +[%interactive] +* [ ] Für die Veröffentlichung wurde eine *publiccode.yml* erstellt. + +Der Metadatenstandard https://yml.publiccode.tools/ beschreibt die Software. Das festgelegte Format macht die Veröffentlichung besser auffindbar und wiederverwendbar. + +Diese ist im Hauptverzeichnis des Repositorys abzulegen. + +Wird ein neues Repository oder eine neue Organisation erstellt, so kann dies über opensource@bk.admin.ch zur Aufnahme in den OSS-Katalog gemeldet werden. + +[%interactive] +* [ ] Übertragene Verantwortlichkeiten + +Angabe, ob die Verantwortung für die Freigabe bei der Beschaffung oder nachträglich an Dritte (Lieferant, Support, Verein) übertragen wurde. + +field::[rows=2] + +[%interactive] +* [ ] Grünes Licht für das Open Sourcing durch die Applikations- und Budgetverantwortlichen + +Namen und Datum + +field::[rows=2] + +== Schlussbemerkungen + +Bemerkungen und Verweise auf weitere relevante Dokumente + +field::[rows=4] + +*Ablage des Formulars* + +Legen Sie dieses Formular bei der Projektdokumentation und/oder gemäss den Vorgaben Ihrer Behörde (Organisationseinheit) ab. + +*Lizenz der Checklisten-Vorlage: CC0 1.0 Universal* + +Dieses Dokument wird unter der https://creativecommons.org/publicdomain/zero/1.0/[_CC0-Lizenz_] veröffentlicht. Es darf frei genutzt, verändert und verbreitet werden, auch zu kommerziellen Zwecken und in jedem Format. +endif::[] + +ifeval::["{lang}" == "fr"] +Cette liste de contrôle fait partie du document « Em002-2 Instructions pour la publication de logiciels open source ». + +Elle conclut les instructions et aboutit à la publication du logiciel sous une licence open source. La description de la liste de contrôle figure dans [Em002-2] annexe D. + +== Objet + +=== Nom et brève description du logiciel + +Indiquez le nom du logiciel. + +field::[rows=1] + +=== Personne de contact et examen + +Indiquez l'organisation, la personne de contact du service spécialisé ainsi que les personnes responsables (p. ex. ISBO/DSBO) qui ont vérifié le respect des exigences de publication. + +field::[rows=3] + +=== Noms des dépôts et autorisations des développeurs + +Indiquez les noms de dépôt prévus pour le logiciel à publier ainsi que la plateforme de publication choisie.footnote:[Un dépôt au sein de l'organisation GitHub de la Chancellerie fédérale (http://github.com/swiss) peut être demandé à opensource@bk.admin.ch.] + +field::[rows=3] + +Indiquez qui (nom d'utilisateur GitHub, nom, poste, fonction) travaille sur le dépôt. Si celui-ci se trouve dans un dépôt d'un office, il faut préciser qui a autorisé la personne. Cette personne est alors également responsable de la solution si la première quitte l'organisation ou change de poste. Il convient également de préciser si les personnes agissent à titre privé ou en tant que membres de l'office. Indiquez le compte utilisateur GitHub auquel doit être attribué le rôle d'administrateur du dépôt. Il peut y avoir plusieurs administrateurs. + +field::[rows=4] + +== Liste de contrôle + +La liste de contrôle doit être remplie avant la publication proprement dite. + +[%interactive] +* [ ] La « liste de contrôle Em002-2.1 Évaluation préalable OSS » a été remplie et aucun point problématique n'a été constaté. + +[%interactive] +* [ ] La « liste de contrôle Em002-2.2 Analyse et préparation OSS » a été remplie et aucun point problématique n'a été constaté. + +[%interactive] +* [ ] La licence a été choisie. + +Licence choisie et justification + +field::[rows=2] + +[%interactive] +* [ ] Le concept SIPD a été établi. + +Les examens pertinents ont été effectués. Renvoyez aux documents et aux examens. Il est défini comment les signalements de tiers relevant de la sécurité seront traités. + +Le cas échéant, le logiciel est soumis à un programme de bug bounty. + +Des contrôles OSS peuvent en outre exister dans les dépôts. + +La configuration correspondante est décrite et la personne responsable est désignée. + +field::[rows=1] + +[%interactive] +* [ ] La communauté et le support sont réglés (via la « liste de contrôle Em002-4.1 Communauté OSS ») + +La liste de contrôle est jointe. Les points essentiels figurent ici. + +field::[rows=1] + +[%interactive] +* [ ] L'étendue et la forme du support ont été clarifiées. + +Indication de la manière dont cela a été réglé. + +field::[rows=1] + +[%interactive] +* [ ] Un fichier *publiccode.yml* a été créé pour la publication. + +Le standard de métadonnées https://yml.publiccode.tools/ décrit le logiciel. Le format défini rend la publication plus facile à trouver et à réutiliser. + +Ce fichier doit être enregistré dans le répertoire principal du dépôt. + +Si un nouveau dépôt ou une nouvelle organisation est créé, cela peut être annoncé à opensource@bk.admin.ch en vue de l'inscription au catalogue OSS. + +[%interactive] +* [ ] Responsabilités transférées + +Indication précisant si la responsabilité de la publication a été transférée à des tiers (fournisseur, support, association) lors de l'acquisition ou ultérieurement. + +field::[rows=2] + +[%interactive] +* [ ] Feu vert pour l'open sourcing de la part des responsables de l'application et du budget + +Noms et date + +field::[rows=2] + +== Remarques finales + +Remarques et renvois à d'autres documents pertinents + +field::[rows=4] + +*Classement du formulaire* + +Veuillez classer ce formulaire avec la documentation de projet et/ou conformément aux prescriptions de votre autorité (unité d'organisation). + +*Licence du modèle de liste de contrôle : CC0 1.0 Universal* + +Ce document est publié sous la https://creativecommons.org/publicdomain/zero/1.0/[_licence CC0_]. Il peut être librement utilisé, modifié et diffusé, y compris à des fins commerciales et dans tout format. +endif::[] + +ifeval::["{lang}" == "it"] +La presente lista di controllo fa parte del documento «Em002-2 Istruzioni per la pubblicazione di software open source». + +Essa conclude le istruzioni e porta al rilascio del software sotto una licenza open source. La descrizione della lista di controllo figura in [Em002-2] allegato D. + +== Oggetto + +=== Nome e breve descrizione del software + +Indicate il nome del software. + +field::[rows=1] + +=== Persona di contatto ed esame + +Indicate l'organizzazione, la persona di contatto del servizio specializzato nonché le persone responsabili (p. es. ISBO/DSBO) che hanno verificato il rispetto delle prescrizioni di pubblicazione. + +field::[rows=3] + +=== Nomi dei repository e autorizzazioni degli sviluppatori + +Indicate i nomi di repository previsti per il software da pubblicare nonché la piattaforma di pubblicazione scelta.footnote:[Un repository nell'organizzazione GitHub della Cancelleria federale (http://github.com/swiss) può essere richiesto a opensource@bk.admin.ch.] + +field::[rows=3] + +Indicate chi (nome utente GitHub, nome, posizione, funzione) lavora al repository. Se questo si trova in un repository di un ufficio, occorre indicare chi ha autorizzato la persona. Tale persona è poi responsabile anche della soluzione qualora la prima lasci l'organizzazione o cambi posizione. Andrebbe inoltre precisato se le persone agiscono a titolo privato o in quanto parte dell'ufficio. Indicate l'account utente GitHub al quale deve essere attribuito il ruolo di amministratore del repository. Vi possono essere più amministratori. + +field::[rows=4] + +== Lista di controllo + +La lista di controllo va compilata prima della pubblicazione vera e propria. + +[%interactive] +* [ ] La «lista di controllo Em002-2.1 Valutazione preliminare OSS» è stata compilata e non sono stati rilevati punti problematici. + +[%interactive] +* [ ] La «lista di controllo Em002-2.2 Analisi e preparazione OSS» è stata compilata e non sono stati rilevati punti problematici. + +[%interactive] +* [ ] La licenza è stata scelta. + +Licenza scelta e motivazione + +field::[rows=2] + +[%interactive] +* [ ] Il concetto SIPD è stato allestito. + +Gli esami pertinenti sono stati svolti. Rinviate ai documenti e agli esami. È stabilito come vengono trattate le segnalazioni di terzi rilevanti per la sicurezza. + +Se del caso, il software è sottoposto a un programma di bug bounty. + +Nei repository possono inoltre essere previsti controlli OSS. + +La relativa configurazione è descritta e la persona responsabile è designata. + +field::[rows=1] + +[%interactive] +* [ ] Community e supporto sono disciplinati (mediante la «lista di controllo Em002-4.1 Community OSS») + +La lista di controllo è allegata. I punti essenziali figurano qui. + +field::[rows=1] + +[%interactive] +* [ ] L'entità e la modalità del supporto sono state chiarite. + +Indicazione di come ciò è stato disciplinato. + +field::[rows=1] + +[%interactive] +* [ ] Per la pubblicazione è stato creato un file *publiccode.yml*. + +Lo standard di metadati https://yml.publiccode.tools/ descrive il software. Il formato definito rende la pubblicazione più facilmente reperibile e riutilizzabile. + +Il file va salvato nella directory principale del repository. + +Se viene creato un nuovo repository o una nuova organizzazione, ciò può essere segnalato a opensource@bk.admin.ch per l'inserimento nel catalogo OSS. + +[%interactive] +* [ ] Responsabilità trasferite + +Indicazione se la responsabilità della pubblicazione è stata trasferita a terzi (fornitore, supporto, associazione) al momento dell'acquisto o successivamente. + +field::[rows=2] + +[%interactive] +* [ ] Via libera all'open sourcing da parte dei responsabili dell'applicazione e del budget + +Nomi e data + +field::[rows=2] + +== Osservazioni conclusive + +Osservazioni e rinvii ad altri documenti rilevanti + +field::[rows=4] + +*Archiviazione del modulo* + +Archiviate questo modulo insieme alla documentazione di progetto e/o conformemente alle prescrizioni della vostra autorità (unità organizzativa). + +*Licenza del modello di lista di controllo: CC0 1.0 Universal* + +Il presente documento è pubblicato sotto la https://creativecommons.org/publicdomain/zero/1.0/[_licenza CC0_]. Può essere liberamente utilizzato, modificato e diffuso, anche a scopi commerciali e in qualsiasi formato. +endif::[] + +ifeval::["{lang}" == "rm"] +Questa glista da controlla fa part dal document «Em002-2 Instrucziuns per publitgar software open source». + +Ella conclura las instrucziuns e maina a la relaschada dal software sut ina licenza open source. La descripziun da la glista da controlla sa chatta en [Em002-2] agiunta D. + +== Object + +=== Num e curta descripziun dal software + +Endatai il num dal software. + +field::[rows=1] + +=== Persuna da contact e controlla + +Numnai l'organisaziun, la persuna da contact dal post spezialisà sco er las persunas responsablas (p.ex. ISBO/DSBO) che han verifitgà l'observaziun da las prescripziuns da publicaziun. + +field::[rows=3] + +=== Nums dals repositoris ed autorisaziuns dals sviluppaders + +Inditgai ils nums da repositori planisads dal software da publitgar sco er la plattafurma da publicaziun tschernida.footnote:[In repositori sut l'organisaziun GitHub da la Chanzlia federala (http://github.com/swiss) po vegnir dumandà tar opensource@bk.admin.ch.] + +field::[rows=3] + +Inditgai, tgi (num d'utilisader GitHub, num, post, funcziun) che lavura al repositori. Sche quel sa chatta en in repositori d'in uffizi, sto vegnir inditgà, tgi che ha autorisà la persuna. Questa persuna è lura era responsabla per la soluziun, sche l'emprima persuna banduna l'organisaziun u mida ses post. I duess ultra da quai vegnir inditgà, sche las persunas agischeschan sco persunas privatas u sco part da l'uffizi. Numnai il conto d'utilisader GitHub al qual duai vegnir attribuì il rol d'administratur dal repositori. I pon dar plirs administraturs. + +field::[rows=4] + +== Glista da controlla + +La glista da controlla sto vegnir emplenida avant la publicaziun propria. + +[%interactive] +* [ ] La «glista da controlla Em002-2.1 Evaluaziun preliminara OSS» è vegnida emplenida e i n'èn vegnids constatads nagins puncts problematics. + +[%interactive] +* [ ] La «glista da controlla Em002-2.2 Analisa e preparaziun OSS» è vegnida emplenida e i n'èn vegnids constatads nagins puncts problematics. + +[%interactive] +* [ ] La licenza è vegnida tschernida. + +Licenza tschernida e motivaziun + +field::[rows=2] + +[%interactive] +* [ ] Il concept ISDS è vegnì elavurà. + +Las controllas relevantas èn vegnidas fatgas. Renviai als documents ed a las controllas. I è fixà, co ch'i vegn tractà cun annunzias da terzas persunas relevantas per la segirezza. + +Eventualmain è il software suttamess ad in program da bug bounty. + +I pon ultra da quai dar controllas OSS en ils repositoris. + +La configuraziun correspundenta è descritta e la persuna responsabla è numnada. + +field::[rows=1] + +[%interactive] +* [ ] Communitad e support èn reglads (via la «glista da controlla Em002-4.1 Communitad OSS») + +La glista da controlla è agiuntada. Ils puncts ils pli impurtants èn inditgads qua. + +field::[rows=1] + +[%interactive] +* [ ] L'extensiun e la moda dal support èn vegnidas scleridas. + +Indicaziun, co che quai è vegnì reglà. + +field::[rows=1] + +[%interactive] +* [ ] Per la publicaziun è vegnida creada ina *publiccode.yml*. + +Il standard da metadatas https://yml.publiccode.tools/ descriva il software. Il format fixà renda la publicaziun pli facil da chattar e da reutilisar. + +Quella sto vegnir archivada en l'ordinatur principal dal repositori. + +Sch'in nov repositori u ina nova organisaziun vegn creà, po quai vegnir annunzià via opensource@bk.admin.ch per l'admissiun en il catalog OSS. + +[%interactive] +* [ ] Responsabladads transferidas + +Indicaziun, sche la responsabladad per la relaschada è vegnida transferida a terzas persunas (furnitur, support, associaziun) tar l'acquist u pli tard. + +field::[rows=2] + +[%interactive] +* [ ] Glisch verda per l'open sourcing da vart dals responsabels da l'applicaziun e dal budget + +Nums e data + +field::[rows=2] + +== Remartgas finalas + +Remartgas e renviaments ad ulteriurs documents relevants + +field::[rows=4] + +*Archivaziun dal formular* + +Archivai quest formular tar la documentaziun dal project e/u tenor las prescripziuns da Vossa autoritad (unitad d'organisaziun). + +*Licenza dal model da la glista da controlla: CC0 1.0 Universal* + +Quest document vegn publitgà sut la https://creativecommons.org/publicdomain/zero/1.0/[_licenza CC0_]. El dastga vegnir utilisà, midà e derasà liberamain, era per intents commerzials ed en mintga format. +endif::[] diff --git a/docs/em002-2.adoc b/docs/em002-2.adoc new file mode 100644 index 0000000..404d142 --- /dev/null +++ b/docs/em002-2.adoc @@ -0,0 +1,3620 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-2 Instructions for Publishing OSS +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-2 Anleitung zur Veröffentlichung von OSS +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-2 Instructions pour la publication d'OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-2 Istruzioni per la pubblicazione di OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-2 Instrucziuns per publitgar OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +*Disclaimer:* This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code.footnote:[Recommendation for Federal Administration IT in accordance with ++[++P035++]++ _Section 4.6_]footnote:[For definitions of the INTERNAL and CONFIDENTIAL classifications, see the _Ordinance of 8 November 2023 on Information Security in the Federal Administration and Armed Forces (InfoSecO; SR 128.1)_]footnote:[See footnote 1]footnote:[Planning areas in accordance with the _Federal Administration IT Strategy 2020-2023 of 3 April 2020 (SB000)_] For more information, see the main {url-repo}/tree/main[README]. + +''''' + +== Management summary + +These instructions describe the procedure for disclosing source code of software that federal authorities develop or commission for the fulfilment of their duties in accordance with Art. 9 EMOTA.footnote:[Federal Act _++[++EMOTA2023++]++_] Exceptions are made if third-party rights or security-relevant grounds preclude or restrict such disclosure. Publication means that anyone may use, further develop and distribute the software. No licence fees are charged. + +These instructions are intended for individuals responsible for and implementing the publication of source code. + +[mermaid,align="center",alt="Overview of the OSS publication process"] +.... +flowchart TD + S(["Start"]) + A["Preliminary assessment"] + B["Analysis and preparation"] + C["Publication"] + S --> A + A --> B + B --> C +.... + +The subject matter is divided into three main parts: + +* The first part (Section 3) covers *preliminary assessments* and exceptions according to EMOTA. +* The second part (Section 4), *Analysis and preparation*, examines source code and prepares it as needed. Furthermore, the choice of licence is made. +* The third part (Section 5), *Publication and announcement*, describes the actual publication and further measures such as communication and building a suitable community. + +*Three checklists* accompany and document the process. + +Technical additions are listed in the annex. + +== Introduction + +When releasing open source software, a distinction must be made between *contributing source code and documentation to existing open source software* and *publishing it as an independent open source project*. + +The former typically involves bug fixes and feature enhancements. Depending on the licence type and software deployment, the source code must or can be released under the existing licence of the open source project. A release agreement may have to be followed. + +In the second case, starting a new open source project, governance and licence can generally be freely chosen. The only consideration is the licence under which any software elements integrated into the new project are published. Further details on licence selection can be found in the document link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]. If value can be generated for the Federal Administration from a community or if the Federal Administration wants to create an ecosystem, link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist] should also be completed according to link:em002-4.pdf[Em002-4 OSS Community Guidelines]. + +The release of open source software is more than just a technical measure. It also means establishing an appropriately open culture and getting people on board. A successful open source culture is a mixture of openness, technical excellence, strong social interaction and a shared commitment. + +The following diagram describes the instructions and different characteristics. + +[mermaid,align="center",alt="Decision tree for software release"] +.... +flowchart TD + Start(["Start
developed from 1.1.2024"]) + subgraph B1["1. Preliminary assessment"] + T{"Type of software"} + end + subgraph B2["2. Analysis and preparation"] + I{"Are third parties
interested in the software?"} + GJ["Clarify governance and
collaboration [Em002-4.1]"] + GT["Clarify governance and
collaboration [Em002-4.1]"] + O{"Open source software
development?"} + end + subgraph B3["3. Publication"] + M["Perform minimal release"] + P["Publication of the software"] + D["Open source software
development"] + C["Building and maintaining
a community [Em002-4]"] + end + Start --> T + T -->|"In-house development"| I + T -->|"Joint development"| GJ + T -->|"Third-party project"| GT + I -->|"No"| M + I -->|"Yes, or conceivable"| O + GJ --> O + GT --> D + O -->|"No"| P + O -->|"Yes"| D + P --> C + D --> C + M --> E1(["End"]) + C --> E2(["End"]) +.... + +Figure 1 – Decision tree for software release + +== Preliminary assessment process + +*Objective:* Understand the advantages and possible consequences of publishing the software. Decide whether the software can be published and if so, whether building an active community is worthwhile. NB: link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] should be completed as early as possible in the project, as this can influence the way the software is developed. + +=== Release under EMOTA + +According to Art. 9 of the Federal Act of 17 March 2023 ++[++EMOTA2023++]++ on the Use of Electronic Means to Carry Out Official Tasks (EMOTA), the Federal Administration (specifically Art. 2 para. 1) must disclose the source code of software that it develops or commissions for the fulfilment of its duties. Exceptions apply when third-party rights or security-relevant grounds preclude or restrict this. + +For custom software created on behalf of the Confederation, the General Terms and Conditions of the Confederation ++[++BBL-AGB++]++ generally apply. Under clause 25.1, these stipulate that ownership of source code and documentation transfers to the service procurer (the Confederation). If the software was procured jointly by several organisations or other institutions, it must be checked who has the rights to the code. For example, ownership may lie with an association founded for this purpose. + +The mere use of standard software is not covered by Art. 9 EMOTA, and release would generally not be possible anyway, as the rights to standard software often remain with the vendor (GTC Confederation for Standard Software Procurement). However, custom extensions to standard software are certainly suitable for publication. Normally, these are owned by the Confederation. Mere configuration adjustments are less suitable for publication. The topic is dealt with in link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and Open Source Software] and the documents ++[++KBB-MB++]++ and ++[++BBL-WL++]++. In principle, extensions are always subject to Art. 9 EMOTA. + +==== Software in relation to EMOTA + +The current ISO/IEC Standard 24765 contains three definitions for software: + +. a program or set of programs used to operate computers +. programs and their associated documentation +. programs and, where applicable, associated documentation and other data necessary for computer operation. + +Based on this definition, smaller scripts, macros or Infrastructure as Code (IaC) are also classified as software. EMOTA refers to source code in Article 9 paragraph 1. Under this interpretation, publication according to definition 1 would suffice. However, publishing without associated documentation is of little value, as the software cannot be used according to definition 2. + +To achieve synergies with third parties, definition 3 must be taken as a basis. Regarding data, this specifically means master data and basic configurations (for example, enumeration values and basic data that should also be made available as open source). + +Smaller projects, scripts or code examples may also be published together in one repository if deemed appropriate by the federal authority. In this case, these instructions and the corresponding checklists can be completed once. + +Proportionality and effort should be considered when deciding what to publish and how. + +==== Type of software + +As shown in Figure 1, a distinction is made between in-house development, joint development and third-party projects. Each constellation has different implications. Regardless of how the software is developed, it falls under Art. 9 EMOTA. + +With in-house development, the Confederation creates the software itself or commissions it accordingly. It chooses the governance and retains the rights to the source code. + +In joint development, the Confederation creates the software with other organisations. The governance and rights to the software must be regulated through the chosen form of organisation. + +If the Confederation contributes directly to third-party software, this source code also falls under Art. 9 EMOTA. It must be ensured that this is done in accordance with federal authorities' interests, that participation meets the project requirements, and that the Federal Administration adheres to the governance. + +This is done using link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] and link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist]. + +==== Legacy code + +For old software (*legacy software*), the retrospective effort for publication is higher than if release was planned from the beginning. For legacy software, it only makes sense to make this effort if a potential user wants to use the software. Regardless, link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] should be completed to document relevant decisions. + +Applications which federal authorities began to develop on or after 1 January 2024 or which are being developed on behalf of the Confederation based on a contract concluded after 1 January 2024 are not considered legacy and in, any case, fall under the publication requirement according to Art. 9 para. 1 EMOTA. + +The publication requirement under EMOTA is not dependent on the benefit to third parties. + +==== Libraries, plug-ins and add-ons + +In some cases, the software may not be a standalone application but only parts thereof. EMOTA and the ordinance do not further define source code. The instructions also apply to decoupled libraries, plugins and add-ons, and these fall under EMOTA. + +*Tasks:* + +* Gather information from link:em002-5.pdf[Em002-5 OSS Tools information sheet]. This describes both general information about open source software and specific information about applying EMOTA. +* Check whether the requirements under EMOTA are met. +* Complete link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist]. As a rule, it makes sense to directly involve the contact persons from the software supplier/developer. +* If needed, complete link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist]. + +*Decision:* Does the software have to be published and how should this be done? + +=== Exception: Third-party rights + +Publication must be avoided if doing so would violate third-party rights. If the software was developed by federal employees, the rights belong to the employer.footnote:[Art. 332 CO in conjunction with. Art. 6 para. 2 FPA] In contracts for staff leasing and IT services, the rights are usually transferred to the Confederation and should be claimed. + +If the software was or is being developed on the basis of the General Terms and Conditions of the Swiss Confederation (as of 2024),footnote:[General Terms and Conditions of the Swiss Confederation, in particular Section 25.1 - https://www.bkb.admin.ch/bkb/de/home/themen/agb.html#accordion_21321111141713247349255] the intellectual property rights belong to the client, unless contractually agreed otherwise. + +An application typically consists of numerous individual components and parts. With some types, it becomes problematic if they themselves are not open source or cannot be published under an open source licence as part of the application. + +*Libraries* + +Depending on the programming language, libraries are either directly compiled with the application, linked, or delivered as packages. They form an integral part of the application. + +If the application contains proprietary or licence-requiring libraries, then open sourcing becomes more difficult. In principle, the source code of the rest of the application can be published, but potential users or developers would need to purchase the relevant library before the application becomes usable or extensible. + +If ownership of the problematic library lies with the application supplier, it is worth seeking legal clarification as to whether the Confederation has transferable rights to these libraries. + +Where possible, proprietary and licence-requiring libraries should be avoided with in-house developments or replaced if possible before release. Considering the objective of Article 9 EMOTA, as much functionality as possible used by public administrations should be published. Therefore, individual libraries that prevent code publication represent a technical debt that should be documented and, where appropriate, eliminated when the opportunity arises. + +*Databases and other data storage* + +If the application uses proprietary, licence-requiring data storage such as Microsoft SQL Server, this is not an obstacle to open source publication. + +However, it should be examined whether additional open databases such as PostgreSQL can be supported. This can save operating costs and lower the entry barriers for potential users. + +*Application servers and operating systems* + +If the application requires licensed operating systems or application servers (e.g. Microsoft Windows Server or RedHat JBoss), this is not an obstacle to open source publication. + +We recommend asking the software vendor whether licensed third-party libraries are used as components of the application and, if so, which ones. + +If the software creation was jointly procured by multiple organisations or other institutions, ownership usually lies with an association or other legal entity established for this purpose. + +*Other intellectual property* + +Third-party rights include not only copyrights but also other intellectual property (trademarks, patents). Patents do not fundamentally prevent software from being published as open source, but they may prevent it from being used or enhanced. While patents are rather uncommon in Switzerland, it is usually worth making a brief enquiry to the software vendor about whether an examination has already taken place. + +*Acquisition of necessary rights* + +To fulfil the legal requirements of EMOTA, the federal authority has the option as the contracting authority to secure the rights to the work results. This prerequisite for publication can be defined as a criterion during procurement. Acquiring necessary rights to the software afterwards can become more complex. + +If the federal authority does not want to publish the software itself, it can delegate this task to the contractor, for example, or transfer the publication rights accordingly. In this case, it will transfer the necessary rights (and obligations) to the supplier and/or third parties and commission them with publication. This means that the right is effectively transferred to a third party under the condition of release/support of the corresponding software. + +Here too, ++[++KBB-MB++]++ contains important information. + +*Procedure* + +[mermaid,align="center",alt="Process for handling third-party rights exceptions"] +.... +flowchart TD + S(["Start"]) + Q1{"Purchase of a licence or of an
existing solution as a central
procurement item?"} + Q2{"Further developments
definable?"} + Q3{"Do the rights belong
to the Confederation?"} + Q4{"Is the acquisition of
third-party rights necessary?"} + Q5{"Can a part with rights held by the
Confederation be demarcated
in a targeted manner?"} + R1["Reasonable exception:
third-party rights"] + R2["Partial release by
the Confederation"] + R3["Release by the Confederation"] + S --> Q1 + Q1 -->|"No"| Q3 + Q1 -->|"Yes"| Q2 + Q2 -->|"Yes"| Q3 + Q2 -->|"No"| R1 + Q3 -->|"Yes"| R3 + Q3 -->|"No"| Q4 + Q4 -->|"Yes"| R3 + Q4 -->|"No"| Q5 + Q5 -->|"Yes"| R2 + Q5 -->|"No"| R1 +.... + +Figure 2 - Exception: Third-party rights (always also take into account ++[++KBB-MB++]++ and link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and Open Source Software]) + +A reasonable exception for third-party rights arises not only from the procurement of licences or existing software, but also from software development on existing, licensed software. + +A partial release is possible in the following constellation: the software contains proprietary or protected parts; those parts can be differentiated from further development; other intellectual property is involved. + +*Tasks:* + +* Check whether the organisation owns the relevant protective rights to the software. +* Check whether the rights can be acquired. +* If necessary, obtain written permission from the rights holders. +* Verify that the application contains no proprietary or protected parts. +* Check that there are no obstacles due to patent protection (as far as possible and reasonable). +* Check whether the release is to be carried out by a third party. +* Check whether development should be based on open source software development (using the link:em002-4.pdf[Em002-4 OSS Community Guidelines]. + +*Decision:* Can the software be published without violating third-party rights? + +=== Exception: Security-relevant reasons + +Software that cannot be published on security-relevant grounds is exempt from publication. + +The actual data of software is not affected by source code publication. This data is usually sensitive and is not published. However, it may be that besides the content data, certain algorithms and procedures visible in the source code should not become public (e.g. offensive cyber capabilities, details of fraud detection). Security can relate to confidentiality, integrity, availability or traceability. + +*Recommendation:* + +Software should be deliberately developed so that no additional risk arises even when the source code is published. The assumption that non-publication protects against successful attacks is deceptive ('security through obscurity'). + +*Procedure:* + +[NOTE] +==== +It is always the software that is relevant and not the purpose of the software. The processing of critical data is not a priori a security-relevant aspect. +==== + +[mermaid,align="center",alt="Process for handling security-relevant reasons exceptions"] +.... +flowchart TD + S(["Start"]) + Q1{"Security-relevant
grounds?"} + Q2{"Can the security-relevant
software be decoupled?"} + Q3{"Temporary grounds?"} + M["Publication measures"] + R1["Release part of
the software"] + R2["Exception:
security-relevant grounds"] + R3["Temporary exception"] + R4["Release"] + S --> Q1 + Q1 -->|"One or more points apply"| Q2 + Q1 -->|"Not applicable"| Q3 + Q2 -->|"Yes"| R1 + Q2 -->|"No"| R2 + Q3 -->|"One or more points apply"| R3 + Q3 -->|"No temporary grounds"| M + M --> R4 +.... + +Figure 3 - Exception: Security-relevant reasons + +The following grounds can be considered security-relevant for each project: + +* Publication of the software would substantially increase an information security risk.footnote:[Information Security Act, ISA. Art 6 Information security. https://www.fedlex.admin.ch/eli/cc/2022/232/de#art_6] +* For fraud prevention algorithms and similar algorithms, publication may be waived where appropriate. +* Particularly sensitive cybersecurity technologies. +* Core software for operating critical infrastructure. +* When publication would violate other legal foundations. + +The following temporary grounds may still prevent publication. However, publication will be enabled later through appropriate measures. + +* Legacy code could not yet be cleaned up and may contain security-relevant issues. +* Security audits of the code have not yet been conducted. +* The development process is not mature enough to enable secure publication. If the development process is not sufficiently established, it is possible that parts intended not for third parties might be published. For example, code commenting guidelines and test data generation must be adapted to the new publication scenario and function reliably. + +Through the following measures, software can be published despite security-relevant grounds: + +* Separate configurations (e.g. type of encryption used) from the software. +* Outsource technically sensitive information (e.g. processes, calculations) that is not public into configurations or settings. +* Plan, implement and regularly practise suitable organisational, personnel and technical measures. +* Plan and carry out appropriate quality activities during publication. See the following section 'Analysis and preparation'. + +*Tasks:* + +* Check the software for security-relevant grounds that would prevent publication. +* Estimate effort required to resolve temporary grounds. +* Plan measures to separate security-relevant information from the software's source code. +* Ensure that the application contains no procedures that must not become public. + +*Decision:* + +Are there compelling security-relevant grounds that make publication impossible? + +=== Clarification of publication + +This step clarifies who will publish the software. If the software was created by an external vendor, the publication can also be commissioned to that vendor. In this step, it is important to determine where the source code will be published and to establish appropriate governance accordingly. + +If the software was developed internally at the Confederation and the Confederation cannot or does not wish to publish it itself, a publication order can be placed with a supplier or the rights can be assigned (transfer of obligations to a third party). + +*Minimum release and support* + +EMOTA does not specify any requirements regarding publication. A minimum release of the source code fulfils the legal requirement. No further activities are required. The question of whether and to what extent support is offered and how actively the project is maintained can be answered using link:em002-4.pdf[Em002-4 OSS Community Guidelines.] + +*Open source software development (OSSD)* + +With open source software development (OSSD), in addition to publishing the source code, the entire development process is conducted 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. Through this transparent working method, the entire community benefits and enables collaboration across organisational boundaries. With this approach, no further publication activity is necessary upon project completion, as this was already considered at the project's start. + +*Tasks* + +* Create a rough effort estimation for the analysis phase. Depending on the size and complexity of the application, the effort ranges between three days and two weeks. +* Release resources for further steps, particularly for analysis. +* Agree in principle to publish the application as open source. + +*Decision:* + +Basic agreement and feasibility for publishing the application as open source is given. + +=== Minimising effort + +The checklists and instructions are structured to minimise the effort required for releases. Consistent advance planning of the release at project start and development designed for release minimises effort. Some administrative effort and costs will inevitably arise ++[++Le2023++]++. These can potentially be recovered through communities with shared development costs (see link:em002-4.pdf[Em002-4 OSS Community Guidelines]). + +=== Choice of publication language + +The choice of language must consider both the potential target audience and the team's working methods. Fortunately, translations are much easier with the aid of new tools. The official languages of the Confederationfootnote:[https://www.fedlex.admin.ch/eli/cc/1999/404/en#art_70] and English are possible options. + +If the project is internationally relevant, English should be the target language. For subsequent publication, it naturally makes little sense to change the language. + +At minimum, the README.md should be available in multiple languages so that interested parties can immediately see if the project is relevant to them. + +Public communication should primarily consider the target audience. It should also be considered that this is public communication from the Confederation. + +*Note*: With publication, the Federal Administration enters a new channel of public communication. If this is not done carefully and professionally, the public image of the Confederation can quickly suffer. + +== Analysis and preparation + +*Objective:* The work required for open source publication is completed. Decisions regarding licence and type of community have been made. This is done using link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Analysis and Preparation Checklist]. + +=== Source code analysis + +The source code to be published and other related documents are analysed prior to publication. This analysis ensures that no confidential information is published. + +If extensive source code is planned for publication, it is recommended to use appropriate automated tools for the following activities. + +The details are defined in Section E. + +*Tasks* + +* Check how existing code quality and guidelines have been implemented (e.g. ISO/IEC 25010:2023footnote:[ISO/IEC 25010:2023 - Systems and software Quality Requirements and Evaluation (SQuaRE) https://www.iso.org/standard/78176.html]). +* Ensure that no sensitive (test) data is included, e.g. data based on real people or cases. +* Update software documentation (see annex). +* Delete unnecessary files or outdated documents and data. +* Check source code for secrets/credentials.footnote:[https://www.ncsc.admin.ch/ncsc/en/home/aktuell/im-fokus/2022/git.html] +* Conduct targeted security tests and subsequently establish a (public) bug bounty programme.footnote:[https://www.ncsc.admin.ch/ncsc/en/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +* Check all used libraries regarding licences and that the corresponding lists (attributions) are created. If a library is available under several licences, this should be indicated accordingly in the lists. +* Describe deployment (CI/CD pipeline) and possibly set up a demo instance. + +These activities are independent of publication but are prerequisites for good software quality and ensuring compliance. Observing these measures simplifies collaboration, increases the quality of external contributions, and enhances the image of the software or the authority. + +=== Licence selection + +*Refer to link:em002-3.pdf[Em002-3 OSS Licensing Guidelines].* + +Internationally established licence texts should be used where possible and appropriate. Liability claims by licensees should be excluded to the extent legally possible. + +*Tasks* + +* Check any dependencies on existing licences. +* For third-party code, check terms of use for compatibility with intended licence and replace code if necessary.footnote:[See Em002-3 regarding selection of third-party code/libraries for a technology stack and regarding compatibility of the licence.] +* Select appropriate licence. + +Licence compatibility can be checked using tools such as ORT Toolkit,footnote:[https://oss-review-toolkit.org/] Black Duck,footnote:[https://www.blackducksoftware.com] FOSSAfootnote:[https://www.fossa.com] or FOSSology.footnote:[https://www.fossology.org] The ToDO Group footnote:[https://landscape.todogroup.org/] provides an up-to-date overview of tools. + +*Decision:* + +* Determine and document under which the licence the software will be published. + +=== Open source documentation + +A minimum set of documentation is expected with publication. Several documents have become established in the open-source ecosystem. This gives visitors a quick insight into the software including licensing. + +The following documents are expected: + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Document* |*Description / Content:* +|README(.md) |Serves as an entry document and provides a quick overview of the project's purpose,scope, status, licence and target groups. +|LICENSE |Description of the chosen licence in the project +|CONTRIBUTING(.md) |Describes the process of how to contribute to the project. +|CODE++_++OF++_++CONDUCT(.md) |The Code of Conduct establishes expected social norms within the project. +|CHANGELOG(.md) |Maintains a list of changes in software versions. +|THIRD-PARTY-LICENSES(.md) |Description of third-party licences or used components. +|Getting started |Brief guide on how to install and use the software. +|Create Gitignore |Describes documents that will not be published, e.g. configurations, test data or generated content. Protected and sensitive information should be managed outside the project in appropriate designated tools and storage. +|publiccode.yml |Structured metadata for describing the software, based on the standard https://yml.publiccode.tools/. The defined format makes the publication easier to find and reuse. Further information in Annex F. +|=== + +Table 1 – Open source documents + +Further technical details of these documents are described in the annex. + +*Tasks* + +* Create standard documentation. +* Include copyright, licence notices, and disclaimer in all files. +* Depending on the publication platform, additional descriptions can be made. + +*Decision:* + +* Final decision to publish the application as open source. + +== Publication and announcement + +*Objective:* The application is published as open source and easily findable by third parties. All components are ready for publication and the community is built or established. This is done using link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist]. To a certain extent, it involves recapitulating decisions already made. + +=== Choice of platform + +There are several ways to publish source code. The following table provides an overview of possible source code management (SCM) systems and platforms. + +The suitable platform must be selected prior to actual publication. Some federal authorities are already represented on GitHub.footnote:[The website https://ossbenchmark.com gives an overview of organisations and authorities that are active on GitHub.] In this case, it makes sense to use platforms already established. + +*Recommendation:* + +We currently recommend setting up an organisation on GitHub per federal authority for publishing source code. Within this organisation, corresponding projects (repositories) can be created and users with appropriate permissions managed. In the future, a central federal platform should be established. To maintain optimal user management and preserve the reputation of the Swiss Confederation, it is important to use fewer, but better-managed repositories. + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Platform* |*Properties* +|GitHubfootnote:[https://github.com/about/] |Microsoft’s online platform with wide distribution. A large amount of open source software is hosted on GitHub. Offers many additional tools besides SCM.Available in both Free and Enterprise versions (subscription). +|GitLabfootnote:[https://about.gitlab.com/] |Online platform from the company of the same name GitLab, which is itself published under an open source licence. Offers many additional tools besides SCM. Can also be operated locally, thus providing a degree of sovereignty. Available in both Free and Enterprise versions (subscription). +|Bitbucketfootnote:[https://bitbucket.org/product/en] |Atlassian’s online platform, specifically integrated into its ecosystem. Available in both Free and Enterprise versions (subscription). +|Internal SCM system |If own SCM platform is provided, it can also publish and make certain repo/projects available. Operation must be ensured. +|Federal platform |There is currently no central federal platform for publishing software. A measure to this effect is proposed in link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration]. +|Website, public FTP server, etc. |EMOTA does not define how software should be published. A minimum releasefootnote:[A minimum publication only includes the publication of the source code and other minimal artefacts. This type of publication fulfils EMOTA requirements. However, no added value is achieved through the publication.] can also be done on a website or other publicly accessible resources. However, this is not suitable for sustainable collaboration in the sense of open source. +|=== + +Table 2 – Platforms for publishing open source software + +If the software is published jointly with an external partner or organisation, care must be taken to ensure that appropriate permissions and access to the source code are available. + +*Tasks* + +* Evaluate suitable platform, including corresponding organisation/project. +* If not yet clarified, determine project/repository naming. +* Define and check permissions on the repo. +* Ensure appropriate governance and any replication of source code. + +*Decision:* + +* Platform for publication has been appropriately chosen. + +=== Software publication + +When the prerequisites are clarified, the software can be published. + +*Tasks* + +* Check prerequisites against the link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist]. +* Access to platform is available and governance clarified. +* Publication of source code and documentation by the developer. + +=== Communications + +After actual publication, further communication activities can be initiated by and within the federal authority concerned. These help with distribution and bring the desired added value from publication. + +*Tasks* + +* Description in repo hosting, security settings, etc. +* Internal and, if applicable, external communication +* Write a message to the community. +* Make the application known within the organisation and in specialist committees, promote its use and contributions. +* Create a publiccode.ymlfootnote:[The metadata standard https://yml.publiccode.tools/ describes the software. The defined format makes the publication easier to find and reuse. Further information in Annex F.] file in the repository for the Federal Administration’s OSS Catalogue.footnote:[OSS Catalogue: https://www.opensource.admin.ch] + +=== Community building and maintenance + +When publishing software, a community can develop that can contribute to the software through contributions (pull requests), questions, documentation suggestions, etc. To have an active community, considerable effort is required for both building and continuous maintenance. A well-functioning community minimises unwanted forks of the software. The goal here is to activate the added value of the community through targeted activities. Even with minimum publication, handling feedback and questions about the software should be defined. + +*Tasks* + +* Clarify who potential users or interested parties are. +* Determine the appropriate form for the specific application using the link:em002-4.pdf[Em002-4 OSS Community Guidelines]. +* Build the community. +* Community building activities. + +== Annex + +=== Changes from previous version + +* Sections 4.3 and 5.3: Publication supplemented with publicode.yml +* Annex F 'Public Code' was added +* Various minor editorial changes and improvements + +=== References + +See _Em002 Strategic Guidelines for Open Source Software in the Federal Administration_. + +=== Abbreviations + +See link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration] and link:em002-6.pdf[Em002-6 FAQ about OSS]. + +=== Accompanying documentation link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist] – Documentation + +=== Source code documentation + +The documentation should be part of the project's source code to ensure that changes to the documentation are stored in a revision-secure manner and the documentation is versioned alongside the project. This automatically ensures that the documentation, if properly maintained, does not diverge from the project's development status, and documentation for older versions of the project can be retrieved at any time. + +Furthermore, this gives third parties the opportunity to easily contribute changes to the documentation. + +Markdown should be used as the markup language for the text formatting as it is easy to write, widely used, and machine-readable. Additionally, markdown documents are displayed in a well-readable target format by all common platforms. Markdown documents can be rendered into any target format independent of the platform used, using static site generators such as Jekyll, MkDocs, Gatsby, or Sphinx, for example, with the corporate identity specifications of an administration. + +=== Documentation recipients and structure + +The project documentation should address both end users and technical professionals, thus not focusing solely on technology. For language selection, see Section 3.6. This supports the software's distribution. + +A README.md file serves as the entry document. Files with this name are recognised and displayed as the entry point to the documentation by all common platforms.footnote:[For more information on creating a readme file: https://www.makeareadme.com/] + +README.md should provide a quick overview of the project's purpose, scope, status, licence and target groups. Specifically, README.md should include the following points: + +* Software name +* Brief description of the software's purpose and function. Scope and possible limitations +* Installation guidelines +* How to use the software +* Reference to any demo instance +* Support and contact details +* How to contribute to open source software (Contributing) +* Licence used (Licence) +* Project status / development status + +=== Emphasising open source and licence storage + +Directly after the mission statement, it should be clearly and unambiguously stated that the project is open source software. The licence used by the project should be specified with the corresponding SPDX identifierfootnote:[SPDX identifier - https://spdx.org/about] and linked to the specific licence text in the LICENSE file. Licence templates typically include a variable part (e.g. project name, copyright year, author's name) that must be adapted in the LICENSE file. + +Most platforms recognise licences in a LICENSE file and offer clear information about the licence, e.g. a brief summary of the licence terms. + +It is recommended to add a minimum licence and copyright header to each source file that is created. Existing headers in existing files should not be changed. If contributing to a project that has clear standards for headers, these should be followed. + +For more details see: Producing Open Source Software: State That the Project is Free.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Current development status + +To quickly show the project's state, the current development status should be documented in README.md. It is important for readers to know whether the project is in a mature state or at the beginning of development, whether it is actively maintained, and how frequently new versions are published. + +This section can describe what type of third-party support is currently most important for the project. This could be, for example, a developer with specific technological knowledge or someone to revise the project's documentation. + +For further details, see Producing Open Source Software: Development Status.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Demo instance + +For applications, it is recommended to provide a demo instance so that the application can be tried without installation effort. Depending on the type of application, the demo instance can be the productive installation or a test stage. It is important that readers can access the corresponding instance as independently and directly as possible. + +As an alternative, many open source projects provide tools for easily starting the application. This can be done using containers, portable applications or install scripts, for example. + +=== Subject matter expert and project owner + +The README.md file should name the primary subject matter expert so that other interested administrations and organisations can make contact as directly as possible. + +Personal email addresses should not be used. + +The README.md file should also briefly describe which organisation is the project owner, especially if an association has been formed for the project. + +== Installation documentation + +For applications, README.md should reference installation documentation that describes hardware and software requirements, which infrastructure components (for example, databases) are used, and how the application can be installed and operated. + +=== Developer Guidelines + +The entry point for the Developer Guidelines should be stored in a markdown file CONTRIBUTING.md, which is linked in README.md. The Developer Guidelines are part of the extended documentation for developers who want to contribute to the project and primarily focus on collaboration and communication within the project rather than on technology. + +The Developer Guidelines should include the following points and reference the corresponding documents where appropriate: + +* A reference to the project's Code of Conduct. The Code of Conduct establishes expected social norms within the project. +* It is recommended to choose or build upon the Contributor Covenant Code of Conduct licensed under CC-BY-4.0footnote:[https://creativecommons.org/licenses/by/4.0/] as the Code of Conduct.footnote:[https://www.contributor-covenant.org/version/1/4/code-of-conduct.html] +* A note that the project conducts code reviews in the form of GitHub pull requests, with a reference to the GitHub pull request documentation. + +Finally, reference should be made to the Developer Documentation. + +=== Developer Documentation + +While the Developer Guidelines describe the collaboration and social norms of the project, the Developer Documentation focuses on the technical aspects of participating in the development of the project. It should describe at least the following points: + +* What technical dependencies the project has and which tools are necessary for project development. +* What formal rules apply to the project's source code, for example regarding source code formatting. +* How the project's source code is organised and how functions can be technically tested. +* An architecture sketch with a rough description of the architecture, preferably including context demarcation and rough component view.footnote:[Architecture framework MMB (Bund Modelling Method) or arc42. http://arc42.org/] +* For applications: How the application can be started for development or debugging purposes and what infrastructure components are necessary for this. + +== Accompanying documentation for link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist] – Source code + +=== Source code history + +A project's source code is usually stored in a source code management (SCM) system such as GitHub. These systems store not only the current state of the source code but also changes that have been made to the source code over time. In particular, this includes deletions from the source code, including deleted files. + +In addition, the SCM contains meta-information about changes to the source code, such as the author's name and email, or PGP signatures for signed commits and tags. + +=== Sensitive, proprietary or confidential data + +The source code and source code history of the project may contain publicly available data, such as a postcode directory, randomly generated data or synthetic data. + +The source code and source code history must not contain any sensitive or confidential (personal) data or information as defined by the Federal Act on Data Protection (FADP) and the Information Security Act (ISA). This includes, in particular: + +* User names and passwords or other secrets such as private keys, access tokens or certificates. +* Internal DNS names, URLs, host names, IP addresses, network structures or drive names. +* Names, addresses, pictures or similar personal data without the consent of the person concerned +* Anonymised or pseudonymised data (because it is possible to undo anonymisation or pseudonymisation) + +Even if the current state of the source code is free of sensitive, proprietary or confidential data or information, such data or information may still be retrieved from the SCM system history if it was ever part of the source code or SCM meta-information in the past. Cleaning up the current source code state will not completely remove this information.footnote:[One possibility to clean up a repo is offered by the tool https://rtyley.github.io/bfg-repo-cleaner/[BFG Repo-Cleaner]] + +Therefore, if in doubt, it is recommended to completely remove the source history after cleaning up the source code, before publishing the source code. + +The names and email addresses of the authors of the source code are usually available directly in the source code or in the SCM metadata, for example in GitHub commits or annotated GitHub tags. From a legal point of view, this is not a problem, as the developer company is responsible for regulating the publication of such information. However, it is recommended that the developer company or internal federal employees are made aware that the names and email addresses of the source code authors may be disclosed when the software is published. + +=== Removing author information + +The history of the software can be changed to hide author information. Toolsfootnote:[https://www.adamdehaven.com/blog/update-commit-history-author-information-for-git-repository/] can automate this step to a large extent. + +Removing author information removes attribution, traceability, and contact information. The effort involved should not be underestimated, depending on the volume of source code. For these reasons, author removal is not recommended. Names may be published if a) consent has been obtained from the persons concerned and b) there are no security-relevant reasons for not doing so. + +=== Consideration of library licences + +Virtually every project uses third-party libraries (software libraries, dependencies) to access commonly used functions without having to code them. These libraries usually depend on other libraries, resulting in multi-level dependencies (transitive dependencies). Depending on the programming language, even small projects can have hundreds of dependencies. + +The results of this clarification must be considered when choosing a licence in accordance with link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] and in link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist]. + +For each of these dependencies, ensure that its licence is compatible with the project licence. Dependencies that are not under an open source licence or which have not declared a licence or use a viral licence that does not match the project licence are particularly problematic. Some libraries are licensed under more than one licence and allow the user to choose one. + +* In all major programming languages, the dependencies of the project (including transitive dependencies) and the licences of the dependencies can be automatically listed. These include: +* The Project Info Reports plugin for the Apache Maven package manager for Java projects, which uses the dependency report to generate an HTML output of all used libraries, including the declared licence.footnote:[Plugin info https://maven.apache.org/plugins/maven-project-info-reports-plugin/plugin-info.html] +* The NPM Licence Checker for the NPM Package Manager for JavaScript projects, which can output all libraries used, including the declared licence, in various formats, e.g. CSV.footnote:[NPM Licence Checker https://github.com/davglass/license-checker] +* Pivotal's Licence Finder, which supports various package managers and programming languages, including Ruby Gems, Python Eggs and Godeps.footnote:[Licence Finder from Pivotal https://github.com/pivotal/LicenseFinder] + +== Use of libraries with proprietary licences + +Libraries under a proprietary licence are generally problematic in open source projects and usually cannot be used, especially if the source code has been published under a viral licence such as the AGPL. + +Please contact the vendor and the legal department of the relevant office to check whether and under what conditions the proprietary library can be used in your project. + +=== Using package managers + +Virtually all popular programming languages provide package managers for managing their dependencies, such as Apache Maven for Java projects, NPM for JavaScript projects or NuGet for .NET projects. + +When using a package manager, the dependencies used by the project are no longer directly part of the project's source code, for example by copying the dependency's source code into the project or by copying the dependencies into the project in binary form. Instead, the project obtains all its dependencies via the package manager's declarations. + +This allows all dependencies to be listed and referenced correctly. It also prevents unintentional modification of dependency code. If changes are necessary, they must be made directly at the source of the dependency. + +=== Project licence declaration in the package manager descriptor + +The project should declare its licence in the appropriate package manager descriptor, using the SPDX identifierfootnote:[SPDX identifier - https://spdx.org/] so that the project licence can be issued by the package manager. This is particularly important for libraries so that users of the library can automatically query their licence via the package manager. + +=== Attribution and copyright notices + +Many libraries are subject to a licence that requires the library user to give an original copyright notice or attribution. + +These include the following licences (excerpt): + +Apache 2.0, ASL 1.1 (Apache 1.1), BSD, BSD 3-Clause, Creative Commons 'Attribution' (CC BY), MIT, ISC + +For others, see the list of OSI-accredited licences.footnote:[Open source licences are licences that comply with the Open Source Definition – in brief, they allow software to be freely used, modified, and shared. https://opensource.org/licenses] + +In practice, this concerns almost all libraries used. As the number of libraries used in small projects is already very high, a legally correct copyright notice or the necessary attribution is only possible with a great deal of effort. + +It is therefore recommended to proceed as follows: + +* Make a list of the libraries used, using the Package Manager's mechanisms or tools such as the NPM Licence Checker or Pivotal's Licence Finder. +* Prepare the list manually so that it contains the following information: official name of the library project, website of the library project, licence used for the library as SPDX identifier with a link to the licence text. +* Place the list in the project's source code, e.g. in a file THIRD-PARTY-LICENSES.md. +* For applications: Include a link pointing to THIRD-PARTY-LICENSES.md in an 'About' or 'About this application' dialogue. +* The 'About' dialogue is widely used for this purpose, for example in Google Chrome (in the 'About Chrome' dialogue). +* For Libraries: Refer to README.md under THIRD-PARTY-LICENSES.md. +* As part of the code review process, ensure that changes to the libraries are added to THIRD-PARTY-LICENSES.md. + +== Example Codeblock THIRD-PARTY-LICENSES.md + +This project uses open source software: + +* Spring Boot, http://projects.spring.io/spring-boot/[projects.spring.io/spring-boot] licensed under http://www.apache.org/licenses/LICENSE-2.0[Apache-2.0] +* caniuse-db, https://github.com/Fyrd/caniuse[github.com/Fyrd/caniuse] licensed under https://creativecommons.org/licenses/by/4.0/[CC-BY-4.0] + +=== Accompanying documentation for Em002-2.3 OSS Release and Publication Checklist + +==== Publication with publiccode.yml + +Publiccode.yml is a metadata standard for software repositories that contain software developed or acquired by public administrations. The aim is to make this software easier to find and reuse. The metadata standard is internationally established and publicly described at https://yml.publiccode.tools/. A publiccode.yml file typically contains information such as title and description (possible in several languages), development status, contact details, licence information, etc. Country-specific extensions are planned for Switzerland. + +A yml file must be created in the main directory of the repository for each software. If the solution consists of several (auxiliary) repo, one file is sufficient, as this describes the use case of the solution. + +Using the structured data in publiccode.yml files, an https://www.opensource.admin.ch/[OSS Catalogue] (https://www.opensource.admin.ch[opensource.admin.ch]) is generated for the entire Federal Administration. The Catalogue provides an overview of published software and makes it easier to find and reuse existing solutions. + +If a new repository or organisation is created, it should be reported for inclusion in the OSS Catalogue by email to opensource@bk.admin.ch. + +In addition to the OSS Catalogue, a graphical editor and validator for publiccode.yml files is also available. + +OSS Catalogue and Editor: https://www.opensource.admin.ch/ + +=== Further sources and licence + +The checklist, the accompanying documentation and related templates are based in part on the following sources: + +* Google Open Source Docs by Google LLC, licensed under CC-BY-4.0footnote:[Google Open Source Docs – https://opensource.google.com/docs/] +* Producing Open Source Software, How to Run a Successful Free Software Project by http://www.red-bean.com/kfogel C-BY-SA-4.0footnote:[Producing Open Source Software, How to run a Successful Free Software Project - https://producingoss.com/] +* GitHub Healthy Contributionsfootnote:[https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions[GitHub Healthy Contributions]] +* Standard for Public Codefootnote:[Standard for Public Code – https://standard.publiccode.net/] +endif::[] + +ifeval::["{lang}" == "de"] +*Haftungsausschluss:* Dieses Dokument ist ein laufend weiterentwickelter Entwurf und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen.footnote:[Empfehlung für die Informatik der Bundesverwaltung gemäss ++[++P035++]++ _Kapitel 4.6_]footnote:[Zu den Definitionen der Klassifizierungen INTERN und VERTRAULICH siehe die _Verordnung vom 8. November 2023 über die Informationssicherheit bei Bund und Armee (ISV; SR 128.1)_]footnote:[Siehe Fussnote 1]footnote:[Planungsbereiche gemäss der _IKT-Strategie des Bundes 2020–2023 vom 3. April 2020 (SB000)_] Weitere Informationen finden Sie im {url-repo}/tree/main[README]. + +''''' + +== Management Summary + +Diese Anleitung beschreibt das Vorgehen für die Offenlegung von Quellcode von Software, die Bundesbehörden zur Erfüllung ihrer Aufgaben entwickeln oder entwickeln lassen, gemäss Art. 9 EMBAG.footnote:[Bundesgesetz _++[++EMOTA2023++]++_] Ausnahmen bestehen, wenn Rechte Dritter oder sicherheitsrelevante Gründe die Offenlegung ausschliessen oder einschränken. Veröffentlichung bedeutet, dass alle die Software nutzen, weiterentwickeln und verbreiten dürfen. Es werden keine Lizenzgebühren erhoben. + +Diese Anleitung richtet sich an Personen, die für die Veröffentlichung von Quellcode verantwortlich sind und diese umsetzen. + +[mermaid,align="center",alt="Übersicht über den OSS-Veröffentlichungsprozess"] +.... +flowchart TD + S(["Start"]) + A["Vorabklärung"] + B["Analyse und Vorbereitung"] + C["Veröffentlichung"] + S --> A + A --> B + B --> C +.... + +Der Gegenstand gliedert sich in drei Hauptteile: + +* Der erste Teil (Kapitel 3) behandelt die *Vorabklärungen* und die Ausnahmen nach EMBAG. +* Der zweite Teil (Kapitel 4), *Analyse und Vorbereitung*, untersucht den Quellcode und bereitet ihn nach Bedarf auf. Zudem wird die Lizenzwahl getroffen. +* Der dritte Teil (Kapitel 5), *Veröffentlichung und Bekanntmachung*, beschreibt die eigentliche Veröffentlichung und weitere Massnahmen wie Kommunikation und Aufbau einer geeigneten Community. + +*Drei Checklisten* begleiten und dokumentieren den Prozess. + +Technische Ergänzungen sind im Anhang aufgeführt. + +== Einleitung + +Bei der Freigabe von Open-Source-Software ist zu unterscheiden zwischen dem *Beitragen von Quellcode und Dokumentation zu bestehender Open-Source-Software* und der *Veröffentlichung als eigenständiges Open-Source-Projekt*. + +Ersteres umfasst typischerweise Fehlerbehebungen und Funktionserweiterungen. Je nach Lizenztyp und Softwareeinsatz muss oder kann der Quellcode unter der bestehenden Lizenz des Open-Source-Projekts freigegeben werden. Möglicherweise ist eine Freigabevereinbarung einzuhalten. + +Im zweiten Fall, dem Start eines neuen Open-Source-Projekts, können Governance und Lizenz grundsätzlich frei gewählt werden. Zu berücksichtigen ist einzig die Lizenz, unter der allfällige in das neue Projekt integrierte Softwareelemente veröffentlicht sind. Weitere Einzelheiten zur Lizenzwahl finden sich im Dokument link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung]. Lässt sich für die Bundesverwaltung aus einer Community ein Mehrwert erzielen oder will die Bundesverwaltung ein Ökosystem schaffen, so ist zusätzlich die link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] gemäss link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] auszufüllen. + +Die Freigabe von Open-Source-Software ist mehr als eine rein technische Massnahme. Sie bedeutet auch, eine entsprechend offene Kultur zu etablieren und die Menschen mitzunehmen. Eine erfolgreiche Open-Source-Kultur ist eine Mischung aus Offenheit, technischer Exzellenz, starker sozialer Interaktion und gemeinsamem Engagement. + +Die folgende Grafik beschreibt die Anleitung und die verschiedenen Ausprägungen. + +[mermaid,align="center",alt="Entscheidungsbaum für die Softwarefreigabe"] +.... +flowchart TD + Start(["Start
entwickelt ab 1.1.2024"]) + subgraph B1["1. Vorabklärung"] + T{"Art der Software"} + end + subgraph B2["2. Analyse und Vorbereitung"] + I{"Besteht Interesse
Dritter an der Software?"} + GJ["Governance und Zusammenarbeit
klären [Em002-4.1]"] + GT["Governance und Zusammenarbeit
klären [Em002-4.1]"] + O{"Open-Source-
Softwareentwicklung?"} + end + subgraph B3["3. Veröffentlichung"] + M["Minimale Freigabe durchführen"] + P["Veröffentlichung der Software"] + D["Open-Source-
Softwareentwicklung"] + C["Community aufbauen
und pflegen [Em002-4]"] + end + Start --> T + T -->|"Eigenentwicklung"| I + T -->|"Gemeinsame Entwicklung"| GJ + T -->|"Drittprojekt"| GT + I -->|"Nein"| M + I -->|"Ja, oder denkbar"| O + GJ --> O + GT --> D + O -->|"Nein"| P + O -->|"Ja"| D + P --> C + D --> C + M --> E1(["Ende"]) + C --> E2(["Ende"]) +.... + +Abbildung 1 – Entscheidungsbaum für die Softwarefreigabe + +== Prozess der Vorabklärung + +*Ziel:* Die Vorteile und möglichen Folgen einer Veröffentlichung der Software verstehen. Entscheiden, ob die Software veröffentlicht werden kann und, falls ja, ob sich der Aufbau einer aktiven Community lohnt. Hinweis: Die link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] sollte möglichst früh im Projekt ausgefüllt werden, da dies die Art der Softwareentwicklung beeinflussen kann. + +=== Freigabe nach EMBAG + +Nach Art. 9 des Bundesgesetzes vom 17. März 2023 ++[++EMOTA2023++]++ über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG) muss die Bundesverwaltung (konkret Art. 2 Abs. 1) den Quellcode von Software offenlegen, die sie zur Erfüllung ihrer Aufgaben entwickelt oder entwickeln lässt. Ausnahmen gelten, wenn Rechte Dritter oder sicherheitsrelevante Gründe dies ausschliessen oder einschränken. + +Für im Auftrag des Bundes erstellte Individualsoftware gelten grundsätzlich die Allgemeinen Geschäftsbedingungen des Bundes ++[++BBL-AGB++]++. Nach Ziffer 25.1 sehen diese vor, dass das Eigentum an Quellcode und Dokumentation an den Leistungsbezüger (den Bund) übergeht. Wurde die Software gemeinsam von mehreren Organisationen oder anderen Institutionen beschafft, so ist zu prüfen, wer die Rechte am Code hat. Beispielsweise kann das Eigentum bei einem zu diesem Zweck gegründeten Verein liegen. + +Die blosse Nutzung von Standardsoftware fällt nicht unter Art. 9 EMBAG, und eine Freigabe wäre in der Regel ohnehin nicht möglich, da die Rechte an Standardsoftware häufig beim Anbieter verbleiben (AGB Bund für die Beschaffung von Standardsoftware). Individuelle Erweiterungen von Standardsoftware eignen sich hingegen durchaus für eine Veröffentlichung. Normalerweise stehen diese im Eigentum des Bundes. Reine Konfigurationsanpassungen eignen sich weniger für eine Veröffentlichung. Das Thema wird in link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und Open-Source-Software] sowie in den Dokumenten ++[++KBB-MB++]++ und ++[++BBL-WL++]++ behandelt. Grundsätzlich unterstehen Erweiterungen stets Art. 9 EMBAG. + +==== Software im Verhältnis zum EMBAG + +Die aktuelle Norm ISO/IEC 24765 enthält drei Definitionen für Software: + +. ein Programm oder eine Menge von Programmen zum Betrieb von Computern +. Programme und die zugehörige Dokumentation +. Programme und, sofern zutreffend, zugehörige Dokumentation sowie weitere für den Computerbetrieb notwendige Daten. + +Auf Basis dieser Definition gelten auch kleinere Skripte, Makros oder Infrastructure as Code (IaC) als Software. Das EMBAG bezieht sich in Artikel 9 Absatz 1 auf den Quellcode. Nach dieser Auslegung würde eine Veröffentlichung nach Definition 1 genügen. Eine Veröffentlichung ohne zugehörige Dokumentation ist jedoch von geringem Wert, da die Software nach Definition 2 nicht genutzt werden kann. + +Um Synergien mit Dritten zu erzielen, ist Definition 3 zugrunde zu legen. Bezüglich Daten bedeutet dies konkret Stammdaten und Grundkonfigurationen (beispielsweise Aufzählungswerte und Grunddaten, die ebenfalls als Open Source verfügbar gemacht werden sollten). + +Kleinere Projekte, Skripte oder Codebeispiele können auch gemeinsam in einem Repository veröffentlicht werden, wenn die Bundesbehörde dies als sinnvoll erachtet. In diesem Fall können diese Anleitung und die entsprechenden Checklisten einmalig ausgefüllt werden. + +Bei der Entscheidung, was und wie veröffentlicht wird, sind Verhältnismässigkeit und Aufwand zu berücksichtigen. + +==== Art der Software + +Wie in Abbildung 1 dargestellt, wird zwischen Eigenentwicklung, gemeinsamer Entwicklung und Drittprojekten unterschieden. Jede Konstellation hat andere Auswirkungen. Unabhängig davon, wie die Software entwickelt wird, fällt sie unter Art. 9 EMBAG. + +Bei der Eigenentwicklung erstellt der Bund die Software selbst oder lässt sie entsprechend erstellen. Er wählt die Governance und behält die Rechte am Quellcode. + +Bei der gemeinsamen Entwicklung erstellt der Bund die Software zusammen mit anderen Organisationen. Governance und Rechte an der Software sind über die gewählte Organisationsform zu regeln. + +Trägt der Bund direkt zu Drittsoftware bei, so fällt auch dieser Quellcode unter Art. 9 EMBAG. Es ist sicherzustellen, dass dies im Interesse der Bundesbehörden geschieht, dass die Beteiligung den Projektanforderungen entspricht und dass sich die Bundesverwaltung an die Governance hält. + +Dies erfolgt anhand der link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] und der link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community]. + +==== Legacy-Code + +Bei alter Software (*Legacy-Software*) ist der nachträgliche Aufwand für eine Veröffentlichung höher, als wenn die Freigabe von Anfang an geplant war. Bei Legacy-Software lohnt sich dieser Aufwand nur, wenn eine potenzielle Nutzerin oder ein potenzieller Nutzer die Software einsetzen will. Unabhängig davon sollte die link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] ausgefüllt werden, um die massgebenden Entscheide zu dokumentieren. + +Anwendungen, mit deren Entwicklung Bundesbehörden am oder nach dem 1. Januar 2024 begonnen haben oder die im Auftrag des Bundes auf der Grundlage eines nach dem 1. Januar 2024 abgeschlossenen Vertrags entwickelt werden, gelten nicht als Legacy und unterstehen in jedem Fall der Veröffentlichungspflicht nach Art. 9 Abs. 1 EMBAG. + +Die Veröffentlichungspflicht nach EMBAG hängt nicht vom Nutzen für Dritte ab. + +==== Bibliotheken, Plug-ins und Add-ons + +In manchen Fällen handelt es sich bei der Software nicht um eine eigenständige Anwendung, sondern nur um Teile davon. Das EMBAG und die Verordnung definieren den Quellcode nicht näher. Die Anleitung gilt auch für entkoppelte Bibliotheken, Plug-ins und Add-ons; diese fallen unter das EMBAG. + +*Aufgaben:* + +* Informationen aus link:em002-5.pdf[Em002-5 Merkblatt OSS-Hilfsmittel] beschaffen. Dieses beschreibt sowohl allgemeine Informationen zu Open-Source-Software als auch spezifische Informationen zur Anwendung des EMBAG. +* Prüfen, ob die Voraussetzungen nach EMBAG erfüllt sind. +* Die link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] ausfüllen. In der Regel ist es sinnvoll, die Ansprechpersonen des Softwarelieferanten bzw. der Entwicklung direkt beizuziehen. +* Bei Bedarf die link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] ausfüllen. + +*Entscheid:* Muss die Software veröffentlicht werden und wie soll dies geschehen? + +=== Ausnahme: Rechte Dritter + +Auf eine Veröffentlichung ist zu verzichten, wenn dadurch Rechte Dritter verletzt würden. Wurde die Software von Bundesangestellten entwickelt, so stehen die Rechte der Arbeitgeberin zu.footnote:[Art. 332 OR i. V. m. Art. 6 Abs. 2 BPG] In Verträgen über Personalverleih und IT-Dienstleistungen werden die Rechte üblicherweise an den Bund übertragen und sollten geltend gemacht werden. + +Wurde oder wird die Software auf der Grundlage der Allgemeinen Geschäftsbedingungen des Bundes (Stand 2024) entwickelt,footnote:[Allgemeine Geschäftsbedingungen des Bundes, insbesondere Ziffer 25.1 – https://www.bkb.admin.ch/bkb/de/home/themen/agb.html#accordion_21321111141713247349255] so stehen die Immaterialgüterrechte dem Auftraggeber zu, sofern vertraglich nichts anderes vereinbart wurde. + +Eine Anwendung besteht typischerweise aus zahlreichen Einzelkomponenten und -teilen. Bei manchen Arten wird es problematisch, wenn diese selbst nicht Open Source sind oder nicht als Teil der Anwendung unter einer Open-Source-Lizenz veröffentlicht werden können. + +*Bibliotheken* + +Je nach Programmiersprache werden Bibliotheken entweder direkt mit der Anwendung kompiliert, gelinkt oder als Pakete ausgeliefert. Sie bilden einen integralen Bestandteil der Anwendung. + +Enthält die Anwendung proprietäre oder lizenzpflichtige Bibliotheken, so wird das Open Sourcing schwieriger. Grundsätzlich kann der Quellcode des übrigen Teils der Anwendung veröffentlicht werden, doch müssten potenzielle Nutzende oder Entwickelnde die betreffende Bibliothek erwerben, bevor die Anwendung nutzbar oder erweiterbar wird. + +Liegt das Eigentum an der problematischen Bibliothek beim Softwarelieferanten, so lohnt sich eine rechtliche Abklärung, ob der Bund übertragbare Rechte an diesen Bibliotheken hat. + +Wo möglich sollten proprietäre und lizenzpflichtige Bibliotheken bei Eigenentwicklungen vermieden oder vor der Freigabe nach Möglichkeit ersetzt werden. Mit Blick auf das Ziel von Artikel 9 EMBAG sollte möglichst viel von der öffentlichen Verwaltung genutzte Funktionalität veröffentlicht werden. Einzelne Bibliotheken, welche die Veröffentlichung des Codes verhindern, stellen daher technische Schulden dar, die dokumentiert und bei Gelegenheit beseitigt werden sollten. + +*Datenbanken und andere Datenspeicher* + +Nutzt die Anwendung proprietäre, lizenzpflichtige Datenspeicher wie Microsoft SQL Server, so steht dies einer Open-Source-Veröffentlichung nicht entgegen. + +Es sollte jedoch geprüft werden, ob zusätzlich offene Datenbanken wie PostgreSQL unterstützt werden können. Dies kann Betriebskosten sparen und die Einstiegshürden für potenzielle Nutzende senken. + +*Applikationsserver und Betriebssysteme* + +Benötigt die Anwendung lizenzierte Betriebssysteme oder Applikationsserver (z. B. Microsoft Windows Server oder RedHat JBoss), so steht dies einer Open-Source-Veröffentlichung nicht entgegen. + +Wir empfehlen, beim Softwareanbieter nachzufragen, ob und gegebenenfalls welche lizenzierten Drittbibliotheken als Komponenten der Anwendung verwendet werden. + +Wurde die Softwareerstellung gemeinsam von mehreren Organisationen oder anderen Institutionen beschafft, so liegt das Eigentum in der Regel bei einem zu diesem Zweck gegründeten Verein oder einer anderen juristischen Person. + +*Weiteres geistiges Eigentum* + +Zu den Rechten Dritter zählen nicht nur Urheberrechte, sondern auch weiteres geistiges Eigentum (Marken, Patente). Patente verhindern grundsätzlich nicht, dass Software als Open Source veröffentlicht wird, können aber deren Nutzung oder Erweiterung verhindern. Patente sind in der Schweiz zwar eher unüblich, doch lohnt sich in der Regel eine kurze Nachfrage beim Softwareanbieter, ob bereits eine Prüfung stattgefunden hat. + +*Erwerb der erforderlichen Rechte* + +Um die gesetzlichen Vorgaben des EMBAG zu erfüllen, hat die Bundesbehörde als Auftraggeberin die Möglichkeit, sich die Rechte an den Arbeitsergebnissen zu sichern. Diese Voraussetzung für eine Veröffentlichung kann bei der Beschaffung als Kriterium festgelegt werden. Der nachträgliche Erwerb notwendiger Rechte an der Software kann aufwendiger werden. + +Will die Bundesbehörde die Software nicht selbst veröffentlichen, so kann sie diese Aufgabe beispielsweise an den Auftragnehmer delegieren oder die Veröffentlichungsrechte entsprechend übertragen. In diesem Fall überträgt sie die notwendigen Rechte (und Pflichten) an den Lieferanten und/oder Dritte und beauftragt sie mit der Veröffentlichung. Damit wird das Recht faktisch unter der Bedingung der Freigabe bzw. des Supports der entsprechenden Software an Dritte übertragen. + +Auch hier enthält ++[++KBB-MB++]++ wichtige Hinweise. + +*Vorgehen* + +[mermaid,align="center",alt="Prozess für den Umgang mit der Ausnahme Rechte Dritter"] +.... +flowchart TD + S(["Start"]) + Q1{"Beschaffung einer Lizenz oder
einer bestehenden Lösung als
zentraler Beschaffungsgegenstand?"} + Q2{"Weiterentwicklungen
definierbar?"} + Q3{"Liegen die Rechte
beim Bund?"} + Q4{"Ist der Erwerb von Rechten
Dritter notwendig?"} + Q5{"Kann ein Teil mit Rechten beim
Bund gezielt abgegrenzt werden?"} + R1["Begründete Ausnahme:
Rechte Dritter"] + R2["Teilweise Freigabe
durch den Bund"] + R3["Freigabe durch den Bund"] + S --> Q1 + Q1 -->|"Nein"| Q3 + Q1 -->|"Ja"| Q2 + Q2 -->|"Ja"| Q3 + Q2 -->|"Nein"| R1 + Q3 -->|"Ja"| R3 + Q3 -->|"Nein"| Q4 + Q4 -->|"Ja"| R3 + Q4 -->|"Nein"| Q5 + Q5 -->|"Ja"| R2 + Q5 -->|"Nein"| R1 +.... + +Abbildung 2 – Ausnahme: Rechte Dritter (stets auch ++[++KBB-MB++]++ und link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und Open-Source-Software] berücksichtigen) + +Eine begründete Ausnahme wegen Rechten Dritter ergibt sich nicht nur aus der Beschaffung von Lizenzen oder bestehender Software, sondern auch aus der Softwareentwicklung auf bestehender, lizenzierter Software. + +Eine teilweise Freigabe ist in folgender Konstellation möglich: Die Software enthält proprietäre oder geschützte Teile; diese lassen sich von der Weiterentwicklung abgrenzen; es ist anderes geistiges Eigentum betroffen. + +*Aufgaben:* + +* Prüfen, ob die Organisation die massgebenden Schutzrechte an der Software besitzt. +* Prüfen, ob die Rechte erworben werden können. +* Nötigenfalls die schriftliche Erlaubnis der Rechteinhaber einholen. +* Sicherstellen, dass die Anwendung keine proprietären oder geschützten Teile enthält. +* Prüfen, dass keine Hindernisse aufgrund von Patentschutz bestehen (soweit möglich und zumutbar). +* Prüfen, ob die Freigabe durch Dritte erfolgen soll. +* Prüfen, ob die Entwicklung auf Open-Source-Softwareentwicklung beruhen soll (anhand des link:em002-4.pdf[Em002-4 Leitfadens OSS-Community]). + +*Entscheid:* Kann die Software veröffentlicht werden, ohne Rechte Dritter zu verletzen? + +=== Ausnahme: Sicherheitsrelevante Gründe + +Software, die aus sicherheitsrelevanten Gründen nicht veröffentlicht werden kann, ist von der Veröffentlichung ausgenommen. + +Die eigentlichen Daten einer Software sind von der Veröffentlichung des Quellcodes nicht betroffen. Diese Daten sind in der Regel sensibel und werden nicht veröffentlicht. Es kann jedoch sein, dass neben den Inhaltsdaten bestimmte im Quellcode sichtbare Algorithmen und Verfahren nicht öffentlich werden sollen (z. B. offensive Cyberfähigkeiten, Einzelheiten der Betrugserkennung). Sicherheit kann sich auf Vertraulichkeit, Integrität, Verfügbarkeit oder Nachvollziehbarkeit beziehen. + +*Empfehlung:* + +Software sollte bewusst so entwickelt werden, dass auch bei einer Veröffentlichung des Quellcodes kein zusätzliches Risiko entsteht. Die Annahme, eine Nichtveröffentlichung schütze vor erfolgreichen Angriffen, ist trügerisch («security through obscurity»). + +*Vorgehen:* + +[NOTE] +==== +Massgebend ist stets die Software und nicht der Zweck der Software. Die Bearbeitung kritischer Daten ist nicht a priori ein sicherheitsrelevanter Aspekt. +==== + +[mermaid,align="center",alt="Prozess für den Umgang mit der Ausnahme sicherheitsrelevante Gründe"] +.... +flowchart TD + S(["Start"]) + Q1{"Sicherheitsrelevante
Gründe?"} + Q2{"Kann die sicherheitsrelevante
Software entkoppelt werden?"} + Q3{"Vorübergehende Gründe?"} + M["Massnahmen für
die Veröffentlichung"] + R1["Teil der Software
freigeben"] + R2["Ausnahme:
sicherheitsrelevante Gründe"] + R3["Vorübergehende Ausnahme"] + R4["Freigeben"] + S --> Q1 + Q1 -->|"Ein oder mehrere Punkte treffen zu"| Q2 + Q1 -->|"Nicht zutreffend"| Q3 + Q2 -->|"Ja"| R1 + Q2 -->|"Nein"| R2 + Q3 -->|"Ein oder mehrere Punkte treffen zu"| R3 + Q3 -->|"Keine vorübergehenden Gründe"| M + M --> R4 +.... + +Abbildung 3 – Ausnahme: Sicherheitsrelevante Gründe + +Folgende Gründe können je Projekt als sicherheitsrelevant gelten: + +* Die Veröffentlichung der Software würde ein Informationssicherheitsrisiko wesentlich erhöhen.footnote:[Informationssicherheitsgesetz, ISG. Art. 6 Informationssicherheit. https://www.fedlex.admin.ch/eli/cc/2022/232/de#art_6] +* Bei Algorithmen zur Betrugsprävention und ähnlichen Algorithmen kann gegebenenfalls auf eine Veröffentlichung verzichtet werden. +* Besonders sensible Cybersicherheitstechnologien. +* Kernsoftware für den Betrieb kritischer Infrastrukturen. +* Wenn die Veröffentlichung andere Rechtsgrundlagen verletzen würde. + +Die folgenden vorübergehenden Gründe können eine Veröffentlichung noch verhindern. Eine Veröffentlichung wird jedoch später durch geeignete Massnahmen ermöglicht. + +* Legacy-Code konnte noch nicht bereinigt werden und enthält möglicherweise sicherheitsrelevante Probleme. +* Sicherheitsaudits des Codes wurden noch nicht durchgeführt. +* Der Entwicklungsprozess ist noch nicht reif genug für eine sichere Veröffentlichung. Ist der Entwicklungsprozess nicht ausreichend etabliert, so besteht die Möglichkeit, dass Teile veröffentlicht werden, die nicht für Dritte bestimmt sind. Beispielsweise müssen Richtlinien zur Codekommentierung und die Erzeugung von Testdaten an das neue Veröffentlichungsszenario angepasst werden und zuverlässig funktionieren. + +Durch folgende Massnahmen kann Software trotz sicherheitsrelevanter Gründe veröffentlicht werden: + +* Konfigurationen (z. B. Art der verwendeten Verschlüsselung) von der Software trennen. +* Fachlich sensible, nicht öffentliche Informationen (z. B. Abläufe, Berechnungen) in Konfigurationen oder Einstellungen auslagern. +* Geeignete organisatorische, personelle und technische Massnahmen planen, umsetzen und regelmässig üben. +* Geeignete Qualitätsaktivitäten bei der Veröffentlichung planen und durchführen. Siehe folgendes Kapitel «Analyse und Vorbereitung». + +*Aufgaben:* + +* Die Software auf sicherheitsrelevante Gründe prüfen, die einer Veröffentlichung entgegenstehen. +* Den Aufwand für die Behebung vorübergehender Gründe abschätzen. +* Massnahmen planen, um sicherheitsrelevante Informationen vom Quellcode der Software zu trennen. +* Sicherstellen, dass die Anwendung keine Verfahren enthält, die nicht öffentlich werden dürfen. + +*Entscheid:* + +Bestehen zwingende sicherheitsrelevante Gründe, die eine Veröffentlichung verunmöglichen? + +=== Klärung der Veröffentlichung + +In diesem Schritt wird geklärt, wer die Software veröffentlicht. Wurde die Software von einem externen Anbieter erstellt, so kann die Veröffentlichung auch diesem Anbieter übertragen werden. In diesem Schritt ist zu bestimmen, wo der Quellcode veröffentlicht wird, und eine entsprechende Governance festzulegen. + +Wurde die Software bundesintern entwickelt und kann oder will der Bund sie nicht selbst veröffentlichen, so kann ein Veröffentlichungsauftrag an einen Lieferanten erteilt oder können die Rechte abgetreten werden (Übertragung der Pflichten an Dritte). + +*Minimale Freigabe und Support* + +Das EMBAG macht keine Vorgaben zur Veröffentlichung. Eine minimale Freigabe des Quellcodes erfüllt die gesetzliche Vorgabe. Weitere Aktivitäten sind nicht erforderlich. Die Frage, ob und in welchem Umfang Support angeboten wird und wie aktiv das Projekt gepflegt wird, lässt sich anhand des link:em002-4.pdf[Em002-4 Leitfadens OSS-Community] beantworten. + +*Open-Source-Softwareentwicklung (OSSD)* + +Bei der Open-Source-Softwareentwicklung (OSSD) wird zusätzlich zur Veröffentlichung des Quellcodes der gesamte Entwicklungsprozess öffentlich durchgeführt. Alles von den Anforderungen (Issues) bis zum Quellcode ist transparent. OSSD wird unterstützt durch öffentliche Kommunikationswerkzeuge (Mailinglisten, Foren usw.), ein Versionsverwaltungssystem (Git), Fehler- und Funktionslisten, eine Roadmap und Entwicklerwerkzeuge. Durch diese transparente Arbeitsweise profitiert die gesamte Community und die Zusammenarbeit über Organisationsgrenzen hinweg wird ermöglicht. Bei diesem Ansatz ist bei Projektabschluss keine weitere Veröffentlichungsaktivität nötig, da dies bereits zu Projektbeginn berücksichtigt wurde. + +*Aufgaben* + +* Eine grobe Aufwandschätzung für die Analysephase erstellen. Je nach Grösse und Komplexität der Anwendung liegt der Aufwand zwischen drei Tagen und zwei Wochen. +* Ressourcen für weitere Schritte, insbesondere für die Analyse, freigeben. +* Grundsätzlich zustimmen, die Anwendung als Open Source zu veröffentlichen. + +*Entscheid:* + +Grundsätzliches Einverständnis und Machbarkeit für die Veröffentlichung der Anwendung als Open Source sind gegeben. + +=== Aufwand minimieren + +Die Checklisten und die Anleitung sind so aufgebaut, dass der Aufwand für Freigaben möglichst gering bleibt. Eine konsequente vorausschauende Planung der Freigabe zu Projektbeginn und eine auf die Freigabe ausgerichtete Entwicklung minimieren den Aufwand. Ein gewisser administrativer Aufwand und gewisse Kosten fallen zwangsläufig an ++[++Le2023++]++. Diese lassen sich unter Umständen über Communities mit geteilten Entwicklungskosten zurückgewinnen (siehe link:em002-4.pdf[Em002-4 Leitfaden OSS-Community]). + +=== Wahl der Veröffentlichungssprache + +Bei der Sprachwahl sind sowohl das potenzielle Zielpublikum als auch die Arbeitsweise des Teams zu berücksichtigen. Erfreulicherweise sind Übersetzungen mit neuen Werkzeugen deutlich einfacher geworden. Als Optionen kommen die Amtssprachen des Bundesfootnote:[https://www.fedlex.admin.ch/eli/cc/1999/404/de#art_70] und Englisch in Frage. + +Ist das Projekt international relevant, so sollte Englisch die Zielsprache sein. Für eine nachträgliche Veröffentlichung ist ein Sprachwechsel naturgemäss wenig sinnvoll. + +Mindestens die README.md sollte in mehreren Sprachen vorliegen, damit Interessierte sofort erkennen, ob das Projekt für sie relevant ist. + +Die öffentliche Kommunikation sollte in erster Linie das Zielpublikum berücksichtigen. Zu beachten ist zudem, dass es sich um öffentliche Kommunikation des Bundes handelt. + +*Hinweis*: Mit der Veröffentlichung betritt die Bundesverwaltung einen neuen Kanal der öffentlichen Kommunikation. Geschieht dies nicht sorgfältig und professionell, so kann das öffentliche Ansehen des Bundes rasch leiden. + +== Analyse und Vorbereitung + +*Ziel:* Die für eine Open-Source-Veröffentlichung erforderlichen Arbeiten sind abgeschlossen. Die Entscheide zu Lizenz und Art der Community sind gefällt. Dies erfolgt anhand der link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung]. + +=== Quellcodeanalyse + +Der zu veröffentlichende Quellcode und weitere zugehörige Dokumente werden vor der Veröffentlichung analysiert. Diese Analyse stellt sicher, dass keine vertraulichen Informationen veröffentlicht werden. + +Ist umfangreicher Quellcode zur Veröffentlichung vorgesehen, so empfiehlt sich der Einsatz geeigneter automatisierter Werkzeuge für die folgenden Tätigkeiten. + +Die Einzelheiten sind in Abschnitt E festgelegt. + +*Aufgaben* + +* Prüfen, wie die bestehende Codequalität und die Richtlinien umgesetzt wurden (z. B. ISO/IEC 25010:2023footnote:[ISO/IEC 25010:2023 – Systems and software Quality Requirements and Evaluation (SQuaRE) https://www.iso.org/standard/78176.html]). +* Sicherstellen, dass keine sensiblen (Test-)Daten enthalten sind, z. B. Daten, die auf realen Personen oder Fällen beruhen. +* Die Softwaredokumentation aktualisieren (siehe Anhang). +* Unnötige Dateien oder veraltete Dokumente und Daten löschen. +* Den Quellcode auf Secrets/Zugangsdaten prüfen.footnote:[https://www.ncsc.admin.ch/ncsc/de/home/aktuell/im-fokus/2022/git.html] +* Gezielte Sicherheitstests durchführen und anschliessend ein (öffentliches) Bug-Bounty-Programm einrichten.footnote:[https://www.ncsc.admin.ch/ncsc/de/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +* Alle verwendeten Bibliotheken bezüglich Lizenzen prüfen und die entsprechenden Listen (Attributionen) erstellen. Ist eine Bibliothek unter mehreren Lizenzen verfügbar, so ist dies in den Listen entsprechend anzugeben. +* Das Deployment beschreiben (CI/CD-Pipeline) und allenfalls eine Demo-Instanz einrichten. + +Diese Tätigkeiten sind unabhängig von der Veröffentlichung, bilden jedoch Voraussetzungen für eine gute Softwarequalität und die Sicherstellung der Compliance. Die Beachtung dieser Massnahmen vereinfacht die Zusammenarbeit, erhöht die Qualität externer Beiträge und verbessert das Image der Software bzw. der Behörde. + +=== Lizenzwahl + +*Siehe link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung].* + +International etablierte Lizenztexte sollten verwendet werden, wo dies möglich und sinnvoll ist. Haftungsansprüche von Lizenznehmern sind so weit rechtlich möglich auszuschliessen. + +*Aufgaben* + +* Allfällige Abhängigkeiten von bestehenden Lizenzen prüfen. +* Bei Drittcode die Nutzungsbedingungen auf Kompatibilität mit der vorgesehenen Lizenz prüfen und den Code nötigenfalls ersetzen.footnote:[Siehe Em002-3 zur Auswahl von Drittcode bzw. Bibliotheken für einen Technologie-Stack und zur Kompatibilität der Lizenz.] +* Die geeignete Lizenz auswählen. + +Die Lizenzkompatibilität lässt sich mit Werkzeugen wie ORT Toolkit,footnote:[https://oss-review-toolkit.org/] Black Duck,footnote:[https://www.blackducksoftware.com] FOSSAfootnote:[https://www.fossa.com] oder FOSSologyfootnote:[https://www.fossology.org] prüfen. Die ToDo Group footnote:[https://landscape.todogroup.org/] bietet eine aktuelle Übersicht über Werkzeuge. + +*Entscheid:* + +* Festlegen und dokumentieren, unter welcher Lizenz die Software veröffentlicht wird. + +=== Open-Source-Dokumentation + +Mit der Veröffentlichung wird ein Mindestmass an Dokumentation erwartet. Im Open-Source-Ökosystem haben sich mehrere Dokumente etabliert. Diese geben Besuchenden rasch Einblick in die Software einschliesslich der Lizenzierung. + +Folgende Dokumente werden erwartet: + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Dokument* |*Beschreibung / Inhalt:* +|README(.md) |Dient als Einstiegsdokument und gibt einen raschen Überblick über Zweck, Umfang, Status, Lizenz und Zielgruppen des Projekts. +|LICENSE |Beschreibung der im Projekt gewählten Lizenz +|CONTRIBUTING(.md) |Beschreibt den Prozess, wie man zum Projekt beitragen kann. +|CODE++_++OF++_++CONDUCT(.md) |Der Code of Conduct legt die erwarteten sozialen Normen innerhalb des Projekts fest. +|CHANGELOG(.md) |Führt eine Liste der Änderungen in den Softwareversionen. +|THIRD-PARTY-LICENSES(.md) |Beschreibung der Drittlizenzen bzw. der verwendeten Komponenten. +|Getting started |Kurzanleitung zur Installation und Nutzung der Software. +|Create Gitignore |Beschreibt Dokumente, die nicht veröffentlicht werden, z. B. Konfigurationen, Testdaten oder generierte Inhalte. Geschützte und sensible Informationen sollten ausserhalb des Projekts in geeigneten, dafür vorgesehenen Werkzeugen und Speichern verwaltet werden. +|publiccode.yml |Strukturierte Metadaten zur Beschreibung der Software auf Basis des Standards https://yml.publiccode.tools/. Das festgelegte Format macht die Veröffentlichung besser auffindbar und wiederverwendbar. Weitere Informationen in Anhang F. +|=== + +Tabelle 1 – Open-Source-Dokumente + +Weitere technische Einzelheiten zu diesen Dokumenten sind im Anhang beschrieben. + +*Aufgaben* + +* Standarddokumentation erstellen. +* Copyright, Lizenzhinweise und Haftungsausschluss in allen Dateien aufführen. +* Je nach Veröffentlichungsplattform können zusätzliche Beschreibungen erstellt werden. + +*Entscheid:* + +* Definitiver Entscheid, die Anwendung als Open Source zu veröffentlichen. + +== Veröffentlichung und Bekanntmachung + +*Ziel:* Die Anwendung ist als Open Source veröffentlicht und für Dritte leicht auffindbar. Alle Komponenten sind für die Veröffentlichung bereit und die Community ist aufgebaut oder etabliert. Dies erfolgt anhand der link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung]. In gewissem Umfang werden dabei bereits gefällte Entscheide rekapituliert. + +=== Wahl der Plattform + +Es gibt mehrere Möglichkeiten, Quellcode zu veröffentlichen. Die folgende Tabelle gibt einen Überblick über mögliche Source-Code-Management-Systeme (SCM) und Plattformen. + +Die geeignete Plattform ist vor der eigentlichen Veröffentlichung auszuwählen. Einige Bundesbehörden sind bereits auf GitHub vertreten.footnote:[Die Website https://ossbenchmark.com gibt einen Überblick über Organisationen und Behörden, die auf GitHub aktiv sind.] In diesem Fall ist es sinnvoll, bereits etablierte Plattformen zu nutzen. + +*Empfehlung:* + +Wir empfehlen derzeit, für die Veröffentlichung von Quellcode pro Bundesbehörde eine Organisation auf GitHub einzurichten. Innerhalb dieser Organisation können entsprechende Projekte (Repositories) angelegt und Nutzende mit passenden Berechtigungen verwaltet werden. Künftig sollte eine zentrale Bundesplattform aufgebaut werden. Um eine optimale Benutzerverwaltung zu gewährleisten und das Ansehen der Schweizerischen Eidgenossenschaft zu wahren, ist es wichtig, weniger, dafür besser verwaltete Repositories zu nutzen. + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Plattform* |*Eigenschaften* +|GitHubfootnote:[https://github.com/about/] |Online-Plattform von Microsoft mit grosser Verbreitung. Eine grosse Menge an Open-Source-Software wird auf GitHub gehostet. Bietet neben SCM viele zusätzliche Werkzeuge. Verfügbar in einer Free- und einer Enterprise-Version (Subskription). +|GitLabfootnote:[https://about.gitlab.com/] |Online-Plattform des gleichnamigen Unternehmens GitLab, die selbst unter einer Open-Source-Lizenz veröffentlicht ist. Bietet neben SCM viele zusätzliche Werkzeuge. Kann auch lokal betrieben werden und bietet damit ein gewisses Mass an Souveränität. Verfügbar in einer Free- und einer Enterprise-Version (Subskription). +|Bitbucketfootnote:[https://bitbucket.org/product/en] |Online-Plattform von Atlassian, speziell in dessen Ökosystem integriert. Verfügbar in einer Free- und einer Enterprise-Version (Subskription). +|Internes SCM-System |Wird eine eigene SCM-Plattform bereitgestellt, so kann diese ebenfalls veröffentlichen und bestimmte Repos/Projekte verfügbar machen. Der Betrieb muss sichergestellt sein. +|Bundesplattform |Derzeit gibt es keine zentrale Bundesplattform für die Veröffentlichung von Software. Eine entsprechende Massnahme wird in link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung] vorgeschlagen. +|Website, öffentlicher FTP-Server usw. |Das EMBAG legt nicht fest, wie Software zu veröffentlichen ist. Eine minimale Freigabefootnote:[Eine minimale Veröffentlichung umfasst nur die Veröffentlichung des Quellcodes und weiterer minimaler Artefakte. Diese Art der Veröffentlichung erfüllt die Vorgaben des EMBAG. Ein Mehrwert wird durch die Veröffentlichung jedoch nicht erzielt.] kann auch auf einer Website oder anderen öffentlich zugänglichen Ressourcen erfolgen. Für eine nachhaltige Zusammenarbeit im Sinne von Open Source ist dies jedoch nicht geeignet. +|=== + +Tabelle 2 – Plattformen für die Veröffentlichung von Open-Source-Software + +Wird die Software gemeinsam mit einem externen Partner oder einer externen Organisation veröffentlicht, so ist darauf zu achten, dass entsprechende Berechtigungen und Zugriffe auf den Quellcode vorhanden sind. + +*Aufgaben* + +* Geeignete Plattform einschliesslich entsprechender Organisation/Projekt evaluieren. +* Sofern noch nicht geklärt, die Benennung von Projekt/Repository festlegen. +* Berechtigungen am Repo festlegen und prüfen. +* Angemessene Governance und eine allfällige Replikation des Quellcodes sicherstellen. + +*Entscheid:* + +* Die Plattform für die Veröffentlichung wurde sachgerecht gewählt. + +=== Veröffentlichung der Software + +Sind die Voraussetzungen geklärt, so kann die Software veröffentlicht werden. + +*Aufgaben* + +* Die Voraussetzungen anhand der link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] prüfen. +* Der Zugang zur Plattform besteht und die Governance ist geklärt. +* Veröffentlichung von Quellcode und Dokumentation durch die Entwicklung. + +=== Kommunikation + +Nach der eigentlichen Veröffentlichung können durch und innerhalb der betroffenen Bundesbehörde weitere Kommunikationsaktivitäten angestossen werden. Diese unterstützen die Verbreitung und bringen den gewünschten Mehrwert aus der Veröffentlichung. + +*Aufgaben* + +* Beschreibung im Repo-Hosting, Sicherheitseinstellungen usw. +* Interne und gegebenenfalls externe Kommunikation +* Eine Mitteilung an die Community verfassen. +* Die Anwendung innerhalb der Organisation und in Fachgremien bekannt machen, deren Nutzung und Beiträge fördern. +* Eine publiccode.yml-Dateifootnote:[Der Metadatenstandard https://yml.publiccode.tools/ beschreibt die Software. Das festgelegte Format macht die Veröffentlichung besser auffindbar und wiederverwendbar. Weitere Informationen in Anhang F.] im Repository für den OSS-Katalog der Bundesverwaltung erstellen.footnote:[OSS-Katalog: https://www.opensource.admin.ch] + +=== Aufbau und Pflege der Community + +Bei der Veröffentlichung von Software kann eine Community entstehen, die durch Beiträge (Pull Requests), Fragen, Dokumentationsvorschläge usw. zur Software beitragen kann. Für eine aktive Community ist erheblicher Aufwand sowohl für den Aufbau als auch für die laufende Pflege erforderlich. Eine gut funktionierende Community minimiert unerwünschte Forks der Software. Ziel ist es, den Mehrwert der Community durch gezielte Aktivitäten zu aktivieren. Auch bei einer minimalen Veröffentlichung sollte der Umgang mit Rückmeldungen und Fragen zur Software festgelegt werden. + +*Aufgaben* + +* Klären, wer potenzielle Nutzende oder Interessierte sind. +* Die geeignete Form für die konkrete Anwendung anhand des link:em002-4.pdf[Em002-4 Leitfadens OSS-Community] bestimmen. +* Die Community aufbauen. +* Aktivitäten zum Community-Aufbau. + +== Anhang + +=== Änderungen gegenüber der Vorversion + +* Kapitel 4.3 und 5.3: Veröffentlichung mit publiccode.yml ergänzt +* Anhang F «Public Code» wurde ergänzt +* Verschiedene kleinere redaktionelle Änderungen und Verbesserungen + +=== Referenzen + +Siehe _Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung_. + +=== Abkürzungen + +Siehe link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung] und link:em002-6.pdf[Em002-6 FAQ zu OSS]. + +=== Begleitdokumentation link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] – Dokumentation + +=== Quellcodedokumentation + +Die Dokumentation sollte Teil des Quellcodes des Projekts sein, damit Änderungen an der Dokumentation revisionssicher abgelegt werden und die Dokumentation parallel zum Projekt versioniert wird. Damit ist automatisch sichergestellt, dass die Dokumentation bei sachgerechter Pflege nicht vom Entwicklungsstand des Projekts abweicht und dass die Dokumentation zu älteren Versionen des Projekts jederzeit abgerufen werden kann. + +Zudem erhalten Dritte damit die Möglichkeit, auf einfache Weise Änderungen an der Dokumentation beizutragen. + +Als Auszeichnungssprache für die Textformatierung sollte Markdown verwendet werden, da es einfach zu schreiben, weit verbreitet und maschinenlesbar ist. Zudem werden Markdown-Dokumente von allen gängigen Plattformen in einem gut lesbaren Zielformat dargestellt. Markdown-Dokumente lassen sich unabhängig von der eingesetzten Plattform mit statischen Website-Generatoren wie beispielsweise Jekyll, MkDocs, Gatsby oder Sphinx in jedes Zielformat rendern, etwa mit den Corporate-Identity-Vorgaben einer Verwaltung. + +=== Adressaten und Aufbau der Dokumentation + +Die Projektdokumentation sollte sowohl Endnutzende als auch technische Fachpersonen ansprechen und sich somit nicht ausschliesslich auf die Technik konzentrieren. Zur Sprachwahl siehe Kapitel 3.6. Dies unterstützt die Verbreitung der Software. + +Eine Datei README.md dient als Einstiegsdokument. Dateien mit diesem Namen werden von allen gängigen Plattformen erkannt und als Einstiegspunkt in die Dokumentation angezeigt.footnote:[Weitere Informationen zum Erstellen einer Readme-Datei: https://www.makeareadme.com/] + +README.md sollte einen raschen Überblick über Zweck, Umfang, Status, Lizenz und Zielgruppen des Projekts geben. Konkret sollte README.md die folgenden Punkte enthalten: + +* Name der Software +* Kurzbeschreibung von Zweck und Funktion der Software. Umfang und mögliche Einschränkungen +* Installationsanleitung +* Nutzung der Software +* Hinweis auf eine allfällige Demo-Instanz +* Support- und Kontaktangaben +* Wie man zur Open-Source-Software beiträgt (Contributing) +* Verwendete Lizenz (Licence) +* Projektstatus / Entwicklungsstand + +=== Open Source hervorheben und Lizenz ablegen + +Direkt nach dem Leitbild sollte klar und unmissverständlich festgehalten werden, dass es sich beim Projekt um Open-Source-Software handelt. Die vom Projekt verwendete Lizenz sollte mit dem entsprechenden SPDX-Identifikatorfootnote:[SPDX-Identifikator – https://spdx.org/about] angegeben und mit dem konkreten Lizenztext in der Datei LICENSE verlinkt werden. Lizenzvorlagen enthalten typischerweise einen variablen Teil (z. B. Projektname, Copyright-Jahr, Name der Autorin oder des Autors), der in der Datei LICENSE anzupassen ist. + +Die meisten Plattformen erkennen Lizenzen in einer Datei LICENSE und bieten übersichtliche Informationen zur Lizenz, z. B. eine kurze Zusammenfassung der Lizenzbedingungen. + +Es wird empfohlen, jeder neu erstellten Quelldatei einen minimalen Lizenz- und Copyright-Header hinzuzufügen. Bestehende Header in bestehenden Dateien sollten nicht verändert werden. Wird zu einem Projekt beigetragen, das klare Vorgaben für Header hat, so sind diese einzuhalten. + +Weitere Einzelheiten siehe: Producing Open Source Software: State That the Project is Free.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Aktueller Entwicklungsstand + +Um den Zustand des Projekts rasch aufzuzeigen, sollte der aktuelle Entwicklungsstand in README.md dokumentiert werden. Für Lesende ist es wichtig zu wissen, ob sich das Projekt in einem reifen Zustand oder am Anfang der Entwicklung befindet, ob es aktiv gepflegt wird und wie häufig neue Versionen veröffentlicht werden. + +In diesem Abschnitt kann beschrieben werden, welche Art von Unterstützung durch Dritte für das Projekt derzeit am wichtigsten ist. Dies könnte beispielsweise eine Entwicklerin oder ein Entwickler mit spezifischem Technologiewissen sein oder jemand, der die Projektdokumentation überarbeitet. + +Weitere Einzelheiten siehe Producing Open Source Software: Development Status.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Demo-Instanz + +Bei Anwendungen empfiehlt es sich, eine Demo-Instanz bereitzustellen, damit die Anwendung ohne Installationsaufwand ausprobiert werden kann. Je nach Art der Anwendung kann die Demo-Instanz die produktive Installation oder eine Teststufe sein. Wichtig ist, dass Lesende möglichst eigenständig und direkt auf die entsprechende Instanz zugreifen können. + +Als Alternative stellen viele Open-Source-Projekte Werkzeuge bereit, um die Anwendung einfach zu starten. Dies kann beispielsweise mit Containern, portablen Anwendungen oder Installationsskripten erfolgen. + +=== Fachliche Ansprechperson und Projekteignerschaft + +In der Datei README.md sollte die wichtigste fachliche Ansprechperson genannt werden, damit andere interessierte Verwaltungen und Organisationen möglichst direkt Kontakt aufnehmen können. + +Persönliche E-Mail-Adressen sollten nicht verwendet werden. + +In der Datei README.md sollte zudem kurz beschrieben werden, welche Organisation Projekteignerin ist, insbesondere wenn für das Projekt ein Verein gegründet wurde. + +== Installationsdokumentation + +Bei Anwendungen sollte README.md auf eine Installationsdokumentation verweisen, die Hardware- und Softwareanforderungen beschreibt, welche Infrastrukturkomponenten (beispielsweise Datenbanken) verwendet werden und wie die Anwendung installiert und betrieben werden kann. + +=== Developer Guidelines + +Der Einstiegspunkt für die Developer Guidelines sollte in einer Markdown-Datei CONTRIBUTING.md abgelegt werden, die in README.md verlinkt ist. Die Developer Guidelines sind Teil der erweiterten Dokumentation für Entwickelnde, die zum Projekt beitragen möchten, und konzentrieren sich in erster Linie auf die Zusammenarbeit und Kommunikation im Projekt und nicht auf die Technik. + +Die Developer Guidelines sollten die folgenden Punkte enthalten und gegebenenfalls auf die entsprechenden Dokumente verweisen: + +* Einen Verweis auf den Code of Conduct des Projekts. Der Code of Conduct legt die erwarteten sozialen Normen innerhalb des Projekts fest. +* Es wird empfohlen, als Code of Conduct den unter CC-BY-4.0footnote:[https://creativecommons.org/licenses/by/4.0/] lizenzierten Contributor Covenant Code of Conduct zu wählen oder darauf aufzubauen.footnote:[https://www.contributor-covenant.org/version/1/4/code-of-conduct.html] +* Einen Hinweis, dass das Projekt Code-Reviews in Form von GitHub-Pull-Requests durchführt, mit einem Verweis auf die GitHub-Pull-Request-Dokumentation. + +Abschliessend sollte auf die Developer Documentation verwiesen werden. + +=== Developer Documentation + +Während die Developer Guidelines die Zusammenarbeit und die sozialen Normen des Projekts beschreiben, konzentriert sich die Developer Documentation auf die technischen Aspekte der Mitwirkung an der Entwicklung des Projekts. Sie sollte mindestens die folgenden Punkte beschreiben: + +* Welche technischen Abhängigkeiten das Projekt hat und welche Werkzeuge für die Projektentwicklung nötig sind. +* Welche formalen Regeln für den Quellcode des Projekts gelten, beispielsweise zur Quellcodeformatierung. +* Wie der Quellcode des Projekts organisiert ist und wie Funktionen technisch getestet werden können. +* Eine Architekturskizze mit einer groben Beschreibung der Architektur, vorzugsweise einschliesslich Kontextabgrenzung und grober Komponentensicht.footnote:[Architekturrahmen MMB (Modellierungsmethode Bund) oder arc42. http://arc42.org/] +* Bei Anwendungen: Wie die Anwendung zu Entwicklungs- oder Debugging-Zwecken gestartet werden kann und welche Infrastrukturkomponenten hierfür nötig sind. + +== Begleitdokumentation zur link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] – Quellcode + +=== Quellcodehistorie + +Der Quellcode eines Projekts wird üblicherweise in einem Source-Code-Management-System (SCM) wie GitHub abgelegt. Diese Systeme speichern nicht nur den aktuellen Stand des Quellcodes, sondern auch Änderungen, die im Lauf der Zeit am Quellcode vorgenommen wurden. Dazu gehören insbesondere Löschungen im Quellcode einschliesslich gelöschter Dateien. + +Zudem enthält das SCM Metainformationen zu Änderungen am Quellcode, etwa Name und E-Mail der Autorin oder des Autors oder PGP-Signaturen für signierte Commits und Tags. + +=== Sensible, geschützte oder vertrauliche Daten + +Der Quellcode und die Quellcodehistorie des Projekts können öffentlich verfügbare Daten enthalten, etwa ein Postleitzahlenverzeichnis, zufällig erzeugte Daten oder synthetische Daten. + +Der Quellcode und die Quellcodehistorie dürfen keine sensiblen oder vertraulichen (Personen-)Daten oder Informationen im Sinne des Datenschutzgesetzes (DSG) und des Informationssicherheitsgesetzes (ISG) enthalten. Dazu gehören insbesondere: + +* Benutzernamen und Passwörter oder andere Geheimnisse wie private Schlüssel, Zugangstoken oder Zertifikate. +* Interne DNS-Namen, URLs, Hostnamen, IP-Adressen, Netzstrukturen oder Laufwerksnamen. +* Namen, Adressen, Bilder oder ähnliche Personendaten ohne Einwilligung der betroffenen Person +* Anonymisierte oder pseudonymisierte Daten (weil Anonymisierung oder Pseudonymisierung rückgängig gemacht werden können) + +Auch wenn der aktuelle Stand des Quellcodes frei von sensiblen, geschützten oder vertraulichen Daten oder Informationen ist, können solche Daten oder Informationen weiterhin aus der Historie des SCM-Systems abgerufen werden, wenn sie in der Vergangenheit je Teil des Quellcodes oder der SCM-Metainformationen waren. Eine Bereinigung des aktuellen Quellcodestands entfernt diese Informationen nicht vollständig.footnote:[Eine Möglichkeit zur Bereinigung eines Repos bietet das Werkzeug https://rtyley.github.io/bfg-repo-cleaner/[BFG Repo-Cleaner]] + +Im Zweifelsfall wird daher empfohlen, die Quellhistorie nach der Bereinigung des Quellcodes vor dessen Veröffentlichung vollständig zu entfernen. + +Namen und E-Mail-Adressen der Autorinnen und Autoren des Quellcodes sind üblicherweise direkt im Quellcode oder in den SCM-Metadaten verfügbar, beispielsweise in GitHub-Commits oder annotierten GitHub-Tags. Rechtlich ist dies unproblematisch, da das entwickelnde Unternehmen die Veröffentlichung solcher Informationen zu regeln hat. Es wird jedoch empfohlen, das entwickelnde Unternehmen bzw. bundesinterne Mitarbeitende darauf hinzuweisen, dass Namen und E-Mail-Adressen der Quellcode-Autorinnen und -Autoren bei der Veröffentlichung der Software offengelegt werden können. + +=== Entfernen von Autorenangaben + +Die Historie der Software kann geändert werden, um Autorenangaben zu verbergen. Werkzeugefootnote:[https://www.adamdehaven.com/blog/update-commit-history-author-information-for-git-repository/] können diesen Schritt weitgehend automatisieren. + +Das Entfernen von Autorenangaben beseitigt Attribution, Nachvollziehbarkeit und Kontaktinformationen. Der damit verbundene Aufwand ist je nach Umfang des Quellcodes nicht zu unterschätzen. Aus diesen Gründen wird das Entfernen von Autorenangaben nicht empfohlen. Namen dürfen veröffentlicht werden, wenn a) die Einwilligung der betroffenen Personen vorliegt und b) keine sicherheitsrelevanten Gründe dagegensprechen. + +=== Berücksichtigung von Bibliothekslizenzen + +Praktisch jedes Projekt nutzt Drittbibliotheken (Softwarebibliotheken, Abhängigkeiten), um auf häufig verwendete Funktionen zuzugreifen, ohne sie selbst programmieren zu müssen. Diese Bibliotheken hängen üblicherweise von weiteren Bibliotheken ab, woraus mehrstufige Abhängigkeiten entstehen (transitive Abhängigkeiten). Je nach Programmiersprache können selbst kleine Projekte Hunderte von Abhängigkeiten aufweisen. + +Die Ergebnisse dieser Abklärung sind bei der Lizenzwahl nach link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] und in der link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] zu berücksichtigen. + +Für jede dieser Abhängigkeiten ist sicherzustellen, dass ihre Lizenz mit der Projektlizenz kompatibel ist. Besonders problematisch sind Abhängigkeiten, die nicht unter einer Open-Source-Lizenz stehen, die keine Lizenz deklariert haben oder die eine virale Lizenz verwenden, die nicht zur Projektlizenz passt. Manche Bibliotheken sind unter mehr als einer Lizenz lizenziert und erlauben es den Nutzenden, eine auszuwählen. + +* In allen wichtigen Programmiersprachen lassen sich die Abhängigkeiten des Projekts (einschliesslich transitiver Abhängigkeiten) und deren Lizenzen automatisch auflisten. Dazu gehören: +* Das Project-Info-Reports-Plugin für den Paketmanager Apache Maven für Java-Projekte, das mit dem Dependency-Report eine HTML-Ausgabe aller verwendeten Bibliotheken einschliesslich der deklarierten Lizenz erzeugt.footnote:[Plugin-Info https://maven.apache.org/plugins/maven-project-info-reports-plugin/plugin-info.html] +* Der NPM Licence Checker für den Paketmanager NPM für JavaScript-Projekte, der alle verwendeten Bibliotheken einschliesslich der deklarierten Lizenz in verschiedenen Formaten ausgeben kann, z. B. CSV.footnote:[NPM Licence Checker https://github.com/davglass/license-checker] +* Der Licence Finder von Pivotal, der verschiedene Paketmanager und Programmiersprachen unterstützt, darunter Ruby Gems, Python Eggs und Godeps.footnote:[Licence Finder von Pivotal https://github.com/pivotal/LicenseFinder] + +== Verwendung von Bibliotheken mit proprietären Lizenzen + +Bibliotheken unter einer proprietären Lizenz sind in Open-Source-Projekten grundsätzlich problematisch und können in der Regel nicht verwendet werden, insbesondere wenn der Quellcode unter einer viralen Lizenz wie der AGPL veröffentlicht wurde. + +Bitte wenden Sie sich an den Anbieter und den Rechtsdienst des betreffenden Amtes, um zu prüfen, ob und unter welchen Bedingungen die proprietäre Bibliothek in Ihrem Projekt verwendet werden kann. + +=== Verwendung von Paketmanagern + +Praktisch alle verbreiteten Programmiersprachen stellen Paketmanager zur Verwaltung ihrer Abhängigkeiten bereit, etwa Apache Maven für Java-Projekte, NPM für JavaScript-Projekte oder NuGet für .NET-Projekte. + +Bei Verwendung eines Paketmanagers sind die vom Projekt genutzten Abhängigkeiten nicht mehr direkt Teil des Quellcodes des Projekts, etwa durch Kopieren des Quellcodes der Abhängigkeit in das Projekt oder durch Kopieren der Abhängigkeiten in binärer Form in das Projekt. Stattdessen bezieht das Projekt alle Abhängigkeiten über die Deklarationen des Paketmanagers. + +Dies erlaubt es, alle Abhängigkeiten aufzulisten und korrekt zu referenzieren. Zudem verhindert es die unbeabsichtigte Veränderung von Abhängigkeitscode. Sind Änderungen nötig, so müssen sie direkt an der Quelle der Abhängigkeit vorgenommen werden. + +=== Deklaration der Projektlizenz im Paketmanager-Deskriptor + +Das Projekt sollte seine Lizenz im entsprechenden Paketmanager-Deskriptor deklarieren, unter Verwendung des SPDX-Identifikators,footnote:[SPDX-Identifikator – https://spdx.org/] damit die Projektlizenz vom Paketmanager ausgegeben werden kann. Dies ist besonders bei Bibliotheken wichtig, damit Nutzende der Bibliothek deren Lizenz automatisch über den Paketmanager abfragen können. + +=== Attribution und Copyright-Hinweise + +Viele Bibliotheken unterstehen einer Lizenz, die von den Nutzenden der Bibliothek einen ursprünglichen Copyright-Hinweis oder eine Attribution verlangt. + +Dazu gehören die folgenden Lizenzen (Auszug): + +Apache 2.0, ASL 1.1 (Apache 1.1), BSD, BSD 3-Clause, Creative Commons «Attribution» (CC BY), MIT, ISC + +Für weitere siehe die Liste der von der OSI anerkannten Lizenzen.footnote:[Open-Source-Lizenzen sind Lizenzen, die der Open Source Definition entsprechen – kurz gesagt erlauben sie, Software frei zu nutzen, zu verändern und zu teilen. https://opensource.org/licenses] + +In der Praxis betrifft dies nahezu alle verwendeten Bibliotheken. Da die Zahl der in kleinen Projekten verwendeten Bibliotheken bereits sehr hoch ist, ist ein rechtlich korrekter Copyright-Hinweis bzw. die nötige Attribution nur mit grossem Aufwand möglich. + +Es wird daher empfohlen, wie folgt vorzugehen: + +* Eine Liste der verwendeten Bibliotheken erstellen, mit den Mechanismen des Paketmanagers oder mit Werkzeugen wie dem NPM Licence Checker oder dem Licence Finder von Pivotal. +* Die Liste manuell aufbereiten, sodass sie die folgenden Angaben enthält: offizieller Name des Bibliotheksprojekts, Website des Bibliotheksprojekts, für die Bibliothek verwendete Lizenz als SPDX-Identifikator mit Link auf den Lizenztext. +* Die Liste im Quellcode des Projekts ablegen, z. B. in einer Datei THIRD-PARTY-LICENSES.md. +* Bei Anwendungen: Einen Link auf THIRD-PARTY-LICENSES.md in einem Dialog «Über» oder «Über diese Anwendung» aufnehmen. +* Der Dialog «Über» ist für diesen Zweck weit verbreitet, beispielsweise in Google Chrome (im Dialog «Über Chrome»). +* Bei Bibliotheken: In README.md unter THIRD-PARTY-LICENSES.md verweisen. +* Im Rahmen des Code-Review-Prozesses sicherstellen, dass Änderungen an den Bibliotheken in THIRD-PARTY-LICENSES.md nachgeführt werden. + +== Beispiel Codeblock THIRD-PARTY-LICENSES.md + +Dieses Projekt verwendet Open-Source-Software: + +* Spring Boot, http://projects.spring.io/spring-boot/[projects.spring.io/spring-boot] lizenziert unter http://www.apache.org/licenses/LICENSE-2.0[Apache-2.0] +* caniuse-db, https://github.com/Fyrd/caniuse[github.com/Fyrd/caniuse] lizenziert unter https://creativecommons.org/licenses/by/4.0/[CC-BY-4.0] + +=== Begleitdokumentation zur Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung + +==== Veröffentlichung mit publiccode.yml + +Publiccode.yml ist ein Metadatenstandard für Software-Repositories, die von öffentlichen Verwaltungen entwickelte oder beschaffte Software enthalten. Ziel ist es, diese Software besser auffindbar und wiederverwendbar zu machen. Der Metadatenstandard ist international etabliert und öffentlich unter https://yml.publiccode.tools/ beschrieben. Eine Datei publiccode.yml enthält typischerweise Angaben wie Titel und Beschreibung (in mehreren Sprachen möglich), Entwicklungsstand, Kontaktangaben, Lizenzinformationen usw. Für die Schweiz sind länderspezifische Erweiterungen geplant. + +Für jede Software ist im Hauptverzeichnis des Repositorys eine yml-Datei zu erstellen. Besteht die Lösung aus mehreren (Hilfs-)Repos, so genügt eine Datei, da diese den Anwendungsfall der Lösung beschreibt. + +Anhand der strukturierten Daten in den publiccode.yml-Dateien wird für die gesamte Bundesverwaltung ein https://www.opensource.admin.ch/[OSS-Katalog] (https://www.opensource.admin.ch[opensource.admin.ch]) erzeugt. Der Katalog bietet einen Überblick über veröffentlichte Software und erleichtert das Auffinden und die Wiederverwendung bestehender Lösungen. + +Wird ein neues Repository oder eine neue Organisation erstellt, so ist dies für die Aufnahme in den OSS-Katalog per E-Mail an opensource@bk.admin.ch zu melden. + +Neben dem OSS-Katalog steht auch ein grafischer Editor und Validator für publiccode.yml-Dateien zur Verfügung. + +OSS-Katalog und Editor: https://www.opensource.admin.ch/ + +=== Weitere Quellen und Lizenz + +Die Checkliste, die Begleitdokumentation und zugehörige Vorlagen beruhen teilweise auf den folgenden Quellen: + +* Google Open Source Docs von Google LLC, lizenziert unter CC-BY-4.0footnote:[Google Open Source Docs – https://opensource.google.com/docs/] +* Producing Open Source Software, How to Run a Successful Free Software Project von http://www.red-bean.com/kfogel C-BY-SA-4.0footnote:[Producing Open Source Software, How to run a Successful Free Software Project – https://producingoss.com/] +* GitHub Healthy Contributionsfootnote:[https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions[GitHub Healthy Contributions]] +* Standard for Public Codefootnote:[Standard for Public Code – https://standard.publiccode.net/] +endif::[] + +ifeval::["{lang}" == "fr"] +*Clause de non-responsabilité :* Le présent document est un projet en cours d'élaboration et fait partie des outils destinés à soutenir l'administration fédérale dans la publication de code open source.footnote:[Recommandation pour l'informatique de l'administration fédérale conformément à ++[++P035++]++ _chapitre 4.6_]footnote:[Pour les définitions des classifications INTERNE et CONFIDENTIEL, voir l'_ordonnance du 8 novembre 2023 sur la sécurité de l'information au sein de la Confédération et de l'armée (OSI ; RS 128.1)_]footnote:[Voir note de bas de page 1]footnote:[Domaines de planification conformément à la _stratégie informatique de la Confédération 2020-2023 du 3 avril 2020 (SB000)_] Pour de plus amples informations, voir le {url-repo}/tree/main[README] principal. + +''''' + +== Résumé à l'intention de la direction + +Les présentes instructions décrivent la procédure de publication du code source des logiciels que les autorités fédérales développent ou font développer pour accomplir leurs tâches, conformément à l'art. 9 LMETA.footnote:[Loi fédérale _++[++EMOTA2023++]++_] Des exceptions sont prévues lorsque des droits de tiers ou des motifs relevant de la sécurité excluent ou restreignent cette publication. Publier signifie que quiconque peut utiliser, développer et diffuser le logiciel. Aucune redevance de licence n'est perçue. + +Les présentes instructions s'adressent aux personnes responsables de la publication du code source et chargées de sa mise en œuvre. + +[mermaid,align="center",alt="Vue d'ensemble du processus de publication OSS"] +.... +flowchart TD + S(["Début"]) + A["Évaluation préalable"] + B["Analyse et préparation"] + C["Publication"] + S --> A + A --> B + B --> C +.... + +La matière est divisée en trois parties principales : + +* La première partie (chapitre 3) traite des *évaluations préalables* et des exceptions prévues par la LMETA. +* La deuxième partie (chapitre 4), *Analyse et préparation*, examine le code source et le prépare selon les besoins. Le choix de la licence y est également effectué. +* La troisième partie (chapitre 5), *Publication et annonce*, décrit la publication proprement dite ainsi que d'autres mesures telles que la communication et la constitution d'une communauté appropriée. + +*Trois listes de contrôle* accompagnent et documentent le processus. + +Des compléments techniques figurent en annexe. + +== Introduction + +Lors de la publication de logiciels open source, il convient de distinguer entre la *contribution de code source et de documentation à un logiciel open source existant* et la *publication en tant que projet open source indépendant*. + +Le premier cas comprend typiquement des corrections d'erreurs et des extensions fonctionnelles. Selon le type de licence et l'utilisation du logiciel, le code source doit ou peut être publié sous la licence existante du projet open source. Un accord de publication peut devoir être respecté. + +Dans le second cas, le lancement d'un nouveau projet open source, la gouvernance et la licence peuvent en principe être choisies librement. Le seul élément à prendre en compte est la licence sous laquelle sont publiés les éléments logiciels éventuellement intégrés au nouveau projet. De plus amples détails sur le choix de la licence figurent dans le document link:em002-3.pdf[Em002-3 Guide de licences OSS]. Si une plus-value peut être générée pour l'administration fédérale grâce à une communauté ou si l'administration fédérale souhaite créer un écosystème, la link:em002-4-1-checklist-oss-community.pdf[liste de contrôle Em002-4.1 Communauté OSS] doit également être remplie conformément au link:em002-4.pdf[Em002-4 Guide des communautés OSS]. + +La publication de logiciels open source est plus qu'une simple mesure technique. Elle suppose aussi d'établir une culture correspondante d'ouverture et d'embarquer les personnes concernées. Une culture open source réussie est un mélange d'ouverture, d'excellence technique, de forte interaction sociale et d'engagement partagé. + +Le schéma suivant décrit les instructions et les différentes configurations. + +[mermaid,align="center",alt="Arbre de décision pour la publication de logiciels"] +.... +flowchart TD + Start(["Début
développé à partir du 1.1.2024"]) + subgraph B1["1. Évaluation préalable"] + T{"Type de logiciel"} + end + subgraph B2["2. Analyse et préparation"] + I{"Des tiers sont-ils
intéressés par le logiciel ?"} + GJ["Clarifier la gouvernance et
la collaboration [Em002-4.1]"] + GT["Clarifier la gouvernance et
la collaboration [Em002-4.1]"] + O{"Développement de logiciels
open source ?"} + end + subgraph B3["3. Publication"] + M["Effectuer une publication minimale"] + P["Publication du logiciel"] + D["Développement de logiciels
open source"] + C["Constituer et entretenir
une communauté [Em002-4]"] + end + Start --> T + T -->|"Développement propre"| I + T -->|"Développement commun"| GJ + T -->|"Projet de tiers"| GT + I -->|"Non"| M + I -->|"Oui, ou envisageable"| O + GJ --> O + GT --> D + O -->|"Non"| P + O -->|"Oui"| D + P --> C + D --> C + M --> E1(["Fin"]) + C --> E2(["Fin"]) +.... + +Figure 1 – Arbre de décision pour la publication de logiciels + +== Processus d'évaluation préalable + +*Objectif :* comprendre les avantages et les conséquences possibles d'une publication du logiciel. Décider si le logiciel peut être publié et, dans l'affirmative, si la constitution d'une communauté active en vaut la peine. Remarque : la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[liste de contrôle Em002-2.1 Évaluation préalable OSS] devrait être remplie le plus tôt possible dans le projet, car cela peut influencer la manière dont le logiciel est développé. + +=== Publication selon la LMETA + +Conformément à l'art. 9 de la loi fédérale du 17 mars 2023 ++[++EMOTA2023++]++ sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA), l'administration fédérale (concrètement l'art. 2, al. 1) doit publier le code source des logiciels qu'elle développe ou fait développer pour accomplir ses tâches. Des exceptions s'appliquent lorsque des droits de tiers ou des motifs relevant de la sécurité l'excluent ou le restreignent. + +Pour les logiciels sur mesure créés sur mandat de la Confédération, les conditions générales de la Confédération ++[++BBL-AGB++]++ s'appliquent en principe. Selon leur chiffre 25.1, la propriété du code source et de la documentation passe au service acquéreur (la Confédération). Si le logiciel a été acquis conjointement par plusieurs organisations ou d'autres institutions, il faut vérifier qui détient les droits sur le code. La propriété peut par exemple appartenir à une association fondée à cet effet. + +La simple utilisation de logiciels standard n'entre pas dans le champ de l'art. 9 LMETA et une publication ne serait de toute façon généralement pas possible, les droits sur les logiciels standard restant souvent chez le fournisseur (CG de la Confédération pour l'acquisition de logiciels standard). Les extensions sur mesure de logiciels standard se prêtent en revanche tout à fait à une publication. Elles appartiennent normalement à la Confédération. De simples adaptations de configuration se prêtent moins à une publication. Le sujet est traité dans link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et des logiciels open source] ainsi que dans les documents ++[++KBB-MB++]++ et ++[++BBL-WL++]++. En principe, les extensions relèvent toujours de l'art. 9 LMETA. + +==== Le logiciel au regard de la LMETA + +La norme ISO/IEC 24765 actuelle contient trois définitions du logiciel : + +. un programme ou un ensemble de programmes servant à faire fonctionner des ordinateurs +. les programmes et la documentation qui s'y rapporte +. les programmes et, le cas échéant, la documentation associée ainsi que les autres données nécessaires au fonctionnement de l'ordinateur. + +Sur la base de cette définition, les scripts, macros ou Infrastructure as Code (IaC) de moindre importance sont également considérés comme des logiciels. La LMETA se réfère au code source à l'article 9, alinéa 1. Selon cette interprétation, une publication au sens de la définition 1 suffirait. Une publication sans la documentation associée n'a toutefois que peu de valeur, le logiciel ne pouvant pas être utilisé au sens de la définition 2. + +Pour réaliser des synergies avec des tiers, il faut se fonder sur la définition 3. S'agissant des données, cela signifie concrètement les données de base et les configurations de base (par exemple les valeurs d'énumération et les données de base qui devraient également être mises à disposition en open source). + +Les petits projets, scripts ou exemples de code peuvent aussi être publiés ensemble dans un seul dépôt si l'autorité fédérale le juge approprié. Dans ce cas, les présentes instructions et les listes de contrôle correspondantes peuvent être remplies une seule fois. + +La proportionnalité et la charge de travail doivent être prises en compte pour décider de ce qui est publié et comment. + +==== Type de logiciel + +Comme le montre la figure 1, on distingue entre développement propre, développement commun et projets de tiers. Chaque constellation a des implications différentes. Quelle que soit la manière dont le logiciel est développé, il relève de l'art. 9 LMETA. + +Dans le cas du développement propre, la Confédération crée elle-même le logiciel ou le fait créer en conséquence. Elle choisit la gouvernance et conserve les droits sur le code source. + +Dans le cas du développement commun, la Confédération crée le logiciel avec d'autres organisations. La gouvernance et les droits sur le logiciel doivent être réglés par la forme d'organisation choisie. + +Si la Confédération contribue directement à un logiciel de tiers, ce code source relève également de l'art. 9 LMETA. Il faut s'assurer que cela se fasse dans l'intérêt des autorités fédérales, que la participation réponde aux exigences du projet et que l'administration fédérale respecte la gouvernance. + +Cela se fait au moyen de la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[liste de contrôle Em002-2.1 Évaluation préalable OSS] et de la link:em002-4-1-checklist-oss-community.pdf[liste de contrôle Em002-4.1 Communauté OSS]. + +==== Code existant + +Pour les anciens logiciels (*logiciels existants*), la charge rétroactive liée à une publication est plus élevée que si celle-ci avait été planifiée dès le départ. Pour les logiciels existants, il ne vaut la peine de consentir cette charge que si un utilisateur potentiel souhaite utiliser le logiciel. Indépendamment de cela, la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[liste de contrôle Em002-2.1 Évaluation préalable OSS] devrait être remplie afin de documenter les décisions déterminantes. + +Les applications dont les autorités fédérales ont commencé le développement le 1er janvier 2024 ou après cette date, ou qui sont développées sur mandat de la Confédération sur la base d'un contrat conclu après le 1er janvier 2024, ne sont pas considérées comme existantes et relèvent dans tous les cas de l'obligation de publication prévue à l'art. 9, al. 1, LMETA. + +L'obligation de publication prévue par la LMETA ne dépend pas de l'utilité pour des tiers. + +==== Bibliothèques, plug-ins et add-ons + +Dans certains cas, le logiciel n'est pas une application autonome, mais seulement des parties de celle-ci. La LMETA et l'ordonnance ne définissent pas plus précisément le code source. Les instructions s'appliquent également aux bibliothèques, plug-ins et add-ons découplés, qui relèvent de la LMETA. + +*Tâches :* + +* Recueillir les informations figurant dans link:em002-5.pdf[Em002-5 Aide-mémoire Outils OSS]. Celui-ci décrit tant des informations générales sur les logiciels open source que des informations spécifiques sur l'application de la LMETA. +* Vérifier si les conditions prévues par la LMETA sont remplies. +* Remplir la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[liste de contrôle Em002-2.1 Évaluation préalable OSS]. En règle générale, il est judicieux d'associer directement les personnes de contact du fournisseur ou de l'équipe de développement. +* Au besoin, remplir la link:em002-4-1-checklist-oss-community.pdf[liste de contrôle Em002-4.1 Communauté OSS]. + +*Décision :* le logiciel doit-il être publié et comment cela doit-il se faire ? + +=== Exception : droits de tiers + +Il convient de renoncer à une publication si celle-ci violerait des droits de tiers. Si le logiciel a été développé par des employés de la Confédération, les droits appartiennent à l'employeur.footnote:[Art. 332 CO en relation avec l'art. 6, al. 2, LPers] Dans les contrats de location de services et de prestations informatiques, les droits sont généralement transférés à la Confédération et devraient être invoqués. + +Si le logiciel a été ou est développé sur la base des conditions générales de la Confédération suisse (état 2024),footnote:[Conditions générales de la Confédération suisse, en particulier le chiffre 25.1 – https://www.bkb.admin.ch/bkb/de/home/themen/agb.html#accordion_21321111141713247349255] les droits de propriété intellectuelle appartiennent au mandant, sauf convention contractuelle contraire. + +Une application se compose typiquement de nombreux composants et éléments individuels. Pour certains types, cela devient problématique lorsqu'ils ne sont eux-mêmes pas open source ou ne peuvent pas être publiés sous une licence open source dans le cadre de l'application. + +*Bibliothèques* + +Selon le langage de programmation, les bibliothèques sont soit compilées directement avec l'application, soit liées, soit livrées sous forme de paquets. Elles font partie intégrante de l'application. + +Si l'application contient des bibliothèques propriétaires ou soumises à licence, l'open sourcing devient plus difficile. En principe, le code source du reste de l'application peut être publié, mais les utilisateurs ou développeurs potentiels devraient acquérir la bibliothèque concernée avant que l'application ne devienne utilisable ou extensible. + +Si la propriété de la bibliothèque problématique appartient au fournisseur de l'application, il vaut la peine de demander une clarification juridique afin de déterminer si la Confédération dispose de droits transférables sur ces bibliothèques. + +Dans la mesure du possible, les bibliothèques propriétaires et soumises à licence devraient être évitées dans les développements propres ou remplacées si possible avant la publication. Au regard de l'objectif de l'article 9 LMETA, il convient de publier autant de fonctionnalités que possible utilisées par les administrations publiques. Les bibliothèques isolées qui empêchent la publication du code représentent donc une dette technique qui devrait être documentée et, le cas échéant, éliminée dès que l'occasion se présente. + +*Bases de données et autres systèmes de stockage* + +Si l'application utilise un système de stockage propriétaire et soumis à licence tel que Microsoft SQL Server, cela ne constitue pas un obstacle à une publication open source. + +Il convient toutefois d'examiner si des bases de données ouvertes supplémentaires telles que PostgreSQL peuvent être prises en charge. Cela peut réduire les coûts d'exploitation et abaisser les barrières à l'entrée pour les utilisateurs potentiels. + +*Serveurs d'applications et systèmes d'exploitation* + +Si l'application nécessite des systèmes d'exploitation ou des serveurs d'applications sous licence (p. ex. Microsoft Windows Server ou RedHat JBoss), cela ne constitue pas un obstacle à une publication open source. + +Nous recommandons de demander au fournisseur du logiciel si des bibliothèques tierces sous licence sont utilisées comme composants de l'application et, le cas échéant, lesquelles. + +Si la création du logiciel a été acquise conjointement par plusieurs organisations ou d'autres institutions, la propriété appartient généralement à une association ou à une autre personne morale constituée à cet effet. + +*Autre propriété intellectuelle* + +Les droits de tiers ne comprennent pas seulement les droits d'auteur, mais aussi d'autres droits de propriété intellectuelle (marques, brevets). Les brevets n'empêchent pas fondamentalement qu'un logiciel soit publié en open source, mais ils peuvent en empêcher l'utilisation ou l'extension. Bien que les brevets soient plutôt rares en Suisse, il vaut généralement la peine de demander brièvement au fournisseur du logiciel si un examen a déjà eu lieu. + +*Acquisition des droits nécessaires* + +Pour satisfaire aux exigences légales de la LMETA, l'autorité fédérale a, en tant qu'adjudicateur, la possibilité de s'assurer les droits sur les résultats des travaux. Cette condition d'une publication peut être définie comme critère lors de l'acquisition. L'acquisition ultérieure des droits nécessaires sur le logiciel peut s'avérer plus complexe. + +Si l'autorité fédérale ne souhaite pas publier elle-même le logiciel, elle peut par exemple déléguer cette tâche au mandataire ou transférer les droits de publication en conséquence. Dans ce cas, elle transfère les droits (et obligations) nécessaires au fournisseur ou à des tiers et les charge de la publication. Le droit est ainsi effectivement transféré à un tiers sous condition de publication ou de support du logiciel correspondant. + +Ici aussi, ++[++KBB-MB++]++ contient des indications importantes. + +*Procédure* + +[mermaid,align="center",alt="Processus de traitement de l'exception relative aux droits de tiers"] +.... +flowchart TD + S(["Début"]) + Q1{"Acquisition d'une licence ou d'une
solution existante en tant qu'objet
d'acquisition central ?"} + Q2{"Les développements ultérieurs
sont-ils définissables ?"} + Q3{"Les droits appartiennent-ils
à la Confédération ?"} + Q4{"L'acquisition de droits de
tiers est-elle nécessaire ?"} + Q5{"Une partie dont les droits appartiennent
à la Confédération peut-elle être
délimitée de manière ciblée ?"} + R1["Exception justifiée :
droits de tiers"] + R2["Publication partielle par
la Confédération"] + R3["Publication par la Confédération"] + S --> Q1 + Q1 -->|"Non"| Q3 + Q1 -->|"Oui"| Q2 + Q2 -->|"Oui"| Q3 + Q2 -->|"Non"| R1 + Q3 -->|"Oui"| R3 + Q3 -->|"Non"| Q4 + Q4 -->|"Oui"| R3 + Q4 -->|"Non"| Q5 + Q5 -->|"Oui"| R2 + Q5 -->|"Non"| R1 +.... + +Figure 2 – Exception : droits de tiers (toujours tenir compte également de ++[++KBB-MB++]++ et de link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et des logiciels open source]) + +Une exception justifiée au titre des droits de tiers résulte non seulement de l'acquisition de licences ou de logiciels existants, mais aussi du développement logiciel réalisé sur un logiciel existant sous licence. + +Une publication partielle est possible dans la constellation suivante : le logiciel contient des parties propriétaires ou protégées ; celles-ci peuvent être distinguées du développement ultérieur ; d'autres droits de propriété intellectuelle sont en jeu. + +*Tâches :* + +* Vérifier si l'organisation détient les droits de protection déterminants sur le logiciel. +* Vérifier si les droits peuvent être acquis. +* Au besoin, obtenir l'autorisation écrite des titulaires des droits. +* S'assurer que l'application ne contient aucune partie propriétaire ou protégée. +* Vérifier qu'aucun obstacle ne résulte d'une protection par brevet (dans la mesure du possible et du raisonnable). +* Vérifier si la publication doit être effectuée par un tiers. +* Vérifier si le développement doit reposer sur le développement de logiciels open source (au moyen du link:em002-4.pdf[Em002-4 Guide des communautés OSS]). + +*Décision :* le logiciel peut-il être publié sans violer de droits de tiers ? + +=== Exception : motifs relevant de la sécurité + +Les logiciels qui ne peuvent pas être publiés pour des motifs relevant de la sécurité sont exemptés de publication. + +Les données proprement dites d'un logiciel ne sont pas concernées par la publication du code source. Ces données sont généralement sensibles et ne sont pas publiées. Il se peut toutefois qu'outre les données de contenu, certains algorithmes et procédés visibles dans le code source ne doivent pas devenir publics (p. ex. capacités cyber offensives, détails de la détection des fraudes). La sécurité peut porter sur la confidentialité, l'intégrité, la disponibilité ou la traçabilité. + +*Recommandation :* + +Les logiciels devraient être délibérément développés de manière qu'aucun risque supplémentaire ne survienne même en cas de publication du code source. L'hypothèse selon laquelle la non-publication protège contre des attaques réussies est trompeuse (« security through obscurity »). + +*Procédure :* + +[NOTE] +==== +Ce qui est déterminant est toujours le logiciel et non sa finalité. Le traitement de données critiques ne constitue pas a priori un aspect relevant de la sécurité. +==== + +[mermaid,align="center",alt="Processus de traitement de l'exception relative aux motifs de sécurité"] +.... +flowchart TD + S(["Début"]) + Q1{"Motifs relevant
de la sécurité ?"} + Q2{"Le logiciel relevant de la
sécurité peut-il être découplé ?"} + Q3{"Motifs temporaires ?"} + M["Mesures pour
la publication"] + R1["Publier une partie
du logiciel"] + R2["Exception :
motifs relevant de la sécurité"] + R3["Exception temporaire"] + R4["Publier"] + S --> Q1 + Q1 -->|"Un ou plusieurs points s'appliquent"| Q2 + Q1 -->|"Non applicable"| Q3 + Q2 -->|"Oui"| R1 + Q2 -->|"Non"| R2 + Q3 -->|"Un ou plusieurs points s'appliquent"| R3 + Q3 -->|"Aucun motif temporaire"| M + M --> R4 +.... + +Figure 3 – Exception : motifs relevant de la sécurité + +Les motifs suivants peuvent être considérés comme relevant de la sécurité selon le projet : + +* La publication du logiciel augmenterait sensiblement un risque en matière de sécurité de l'information.footnote:[Loi sur la sécurité de l'information, LSI. Art. 6 Sécurité de l'information. https://www.fedlex.admin.ch/eli/cc/2022/232/de#art_6] +* Pour les algorithmes de prévention de la fraude et les algorithmes analogues, il peut le cas échéant être renoncé à une publication. +* Technologies de cybersécurité particulièrement sensibles. +* Logiciels essentiels à l'exploitation d'infrastructures critiques. +* Lorsque la publication violerait d'autres bases légales. + +Les motifs temporaires suivants peuvent encore empêcher une publication. Celle-ci sera toutefois rendue possible ultérieurement par des mesures appropriées. + +* Le code existant n'a pas encore pu être nettoyé et contient éventuellement des problèmes relevant de la sécurité. +* Les audits de sécurité du code n'ont pas encore été réalisés. +* Le processus de développement n'est pas encore assez mature pour permettre une publication sûre. Si le processus de développement n'est pas suffisamment établi, il est possible que des parties non destinées à des tiers soient publiées. Par exemple, les directives de commentaire du code et la génération de données de test doivent être adaptées au nouveau scénario de publication et fonctionner de manière fiable. + +Les mesures suivantes permettent de publier un logiciel malgré des motifs relevant de la sécurité : + +* Séparer du logiciel les configurations (p. ex. type de chiffrement utilisé). +* Externaliser dans des configurations ou des paramètres les informations techniquement sensibles et non publiques (p. ex. processus, calculs). +* Planifier, mettre en œuvre et exercer régulièrement des mesures organisationnelles, personnelles et techniques appropriées. +* Planifier et réaliser des activités de qualité appropriées lors de la publication. Voir le chapitre suivant « Analyse et préparation ». + +*Tâches :* + +* Examiner le logiciel quant aux motifs relevant de la sécurité qui empêcheraient une publication. +* Estimer la charge nécessaire pour éliminer les motifs temporaires. +* Planifier des mesures visant à séparer les informations relevant de la sécurité du code source du logiciel. +* S'assurer que l'application ne contient aucun procédé qui ne doit pas devenir public. + +*Décision :* + +Existe-t-il des motifs impératifs relevant de la sécurité qui rendent la publication impossible ? + +=== Clarification de la publication + +Cette étape permet de clarifier qui publiera le logiciel. Si le logiciel a été créé par un fournisseur externe, la publication peut aussi être confiée à ce fournisseur. Lors de cette étape, il importe de déterminer où le code source sera publié et d'établir une gouvernance correspondante. + +Si le logiciel a été développé en interne à la Confédération et que celle-ci ne peut ou ne souhaite pas le publier elle-même, un mandat de publication peut être confié à un fournisseur ou les droits peuvent être cédés (transfert des obligations à un tiers). + +*Publication minimale et support* + +La LMETA ne prévoit aucune exigence concernant la publication. Une publication minimale du code source satisfait à l'exigence légale. Aucune autre activité n'est requise. La question de savoir si et dans quelle mesure un support est offert et avec quelle intensité le projet est entretenu peut être traitée au moyen du link:em002-4.pdf[Em002-4 Guide des communautés OSS]. + +*Développement de logiciels open source (OSSD)* + +Dans le développement de logiciels open source (OSSD), outre la publication du code source, l'ensemble du processus de développement se déroule publiquement. Tout, des exigences (issues) au code source, est transparent. L'OSSD s'appuie sur des outils de communication publics (listes de diffusion, forums, etc.), un système de gestion de versions (git), des listes d'erreurs et de fonctionnalités, une feuille de route et des outils de développement. Grâce à cette méthode de travail transparente, toute la communauté en profite et la collaboration au-delà des frontières organisationnelles devient possible. Avec cette approche, aucune activité de publication supplémentaire n'est nécessaire à l'achèvement du projet, celle-ci ayant déjà été prise en compte à son démarrage. + +*Tâches* + +* Établir une estimation sommaire de la charge pour la phase d'analyse. Selon la taille et la complexité de l'application, la charge varie entre trois jours et deux semaines. +* Libérer des ressources pour les étapes suivantes, en particulier pour l'analyse. +* Donner un accord de principe pour publier l'application en open source. + +*Décision :* + +L'accord de principe et la faisabilité pour publier l'application en open source sont donnés. + +=== Minimiser la charge + +Les listes de contrôle et les instructions sont conçues de manière à réduire au minimum la charge liée aux publications. Une planification anticipée et cohérente de la publication dès le début du projet ainsi qu'un développement orienté vers la publication minimisent la charge. Une certaine charge administrative et certains coûts sont inévitables ++[++Le2023++]++. Ceux-ci peuvent le cas échéant être récupérés grâce à des communautés partageant les coûts de développement (voir link:em002-4.pdf[Em002-4 Guide des communautés OSS]). + +=== Choix de la langue de publication + +Le choix de la langue doit tenir compte à la fois du public cible potentiel et de la méthode de travail de l'équipe. Heureusement, les traductions sont devenues bien plus simples grâce aux nouveaux outils. Les langues officielles de la Confédérationfootnote:[https://www.fedlex.admin.ch/eli/cc/1999/404/fr#art_70] et l'anglais entrent en ligne de compte. + +Si le projet présente une pertinence internationale, l'anglais devrait être la langue cible. Pour une publication ultérieure, un changement de langue n'a naturellement guère de sens. + +Au minimum, le fichier README.md devrait être disponible en plusieurs langues afin que les personnes intéressées puissent voir immédiatement si le projet est pertinent pour elles. + +La communication publique devrait tenir compte en premier lieu du public cible. Il convient également de considérer qu'il s'agit d'une communication publique de la Confédération. + +*Remarque* : avec la publication, l'administration fédérale emprunte un nouveau canal de communication publique. Si cela n'est pas fait avec soin et professionnalisme, l'image publique de la Confédération peut rapidement en pâtir. + +== Analyse et préparation + +*Objectif :* les travaux nécessaires à une publication open source sont achevés. Les décisions relatives à la licence et au type de communauté ont été prises. Cela se fait au moyen de la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[liste de contrôle Em002-2.2 Analyse et préparation OSS]. + +=== Analyse du code source + +Le code source à publier et les autres documents qui s'y rapportent sont analysés avant la publication. Cette analyse garantit qu'aucune information confidentielle n'est publiée. + +Si un volume important de code source est prévu pour la publication, il est recommandé d'utiliser des outils automatisés appropriés pour les activités suivantes. + +Les détails sont définis à la section E. + +*Tâches* + +* Vérifier comment la qualité du code existante et les directives ont été mises en œuvre (p. ex. ISO/IEC 25010:2023footnote:[ISO/IEC 25010:2023 - Systems and software Quality Requirements and Evaluation (SQuaRE) https://www.iso.org/standard/78176.html]). +* S'assurer qu'aucune donnée (de test) sensible n'est incluse, p. ex. des données fondées sur des personnes ou des cas réels. +* Mettre à jour la documentation du logiciel (voir annexe). +* Supprimer les fichiers inutiles ou les documents et données obsolètes. +* Vérifier le code source à la recherche de secrets ou d'identifiants.footnote:[https://www.ncsc.admin.ch/ncsc/fr/home/aktuell/im-fokus/2022/git.html] +* Effectuer des tests de sécurité ciblés et mettre ensuite en place un programme de bug bounty (public).footnote:[https://www.ncsc.admin.ch/ncsc/fr/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +* Vérifier toutes les bibliothèques utilisées quant aux licences et établir les listes correspondantes (attributions). Si une bibliothèque est disponible sous plusieurs licences, cela doit être indiqué en conséquence dans les listes. +* Décrire le déploiement (pipeline CI/CD) et, le cas échéant, mettre en place une instance de démonstration. + +Ces activités sont indépendantes de la publication, mais constituent des conditions préalables à une bonne qualité logicielle et à la garantie de la conformité. Le respect de ces mesures simplifie la collaboration, accroît la qualité des contributions externes et améliore l'image du logiciel ou de l'autorité. + +=== Choix de la licence + +*Voir link:em002-3.pdf[Em002-3 Guide de licences OSS].* + +Des textes de licence établis à l'échelle internationale devraient être utilisés lorsque cela est possible et judicieux. Les prétentions en responsabilité des preneurs de licence doivent être exclues dans la mesure permise par le droit. + +*Tâches* + +* Vérifier les éventuelles dépendances à des licences existantes. +* Pour le code de tiers, vérifier la compatibilité des conditions d'utilisation avec la licence prévue et remplacer le code si nécessaire.footnote:[Voir Em002-3 concernant le choix de code ou de bibliothèques de tiers pour une pile technologique et concernant la compatibilité de la licence.] +* Choisir la licence appropriée. + +La compatibilité des licences peut être vérifiée au moyen d'outils tels qu'ORT Toolkit,footnote:[https://oss-review-toolkit.org/] Black Duck,footnote:[https://www.blackducksoftware.com] FOSSAfootnote:[https://www.fossa.com] ou FOSSology.footnote:[https://www.fossology.org] Le ToDo Group footnote:[https://landscape.todogroup.org/] propose une vue d'ensemble actualisée des outils. + +*Décision :* + +* Déterminer et documenter sous quelle licence le logiciel sera publié. + +=== Documentation open source + +Un minimum de documentation est attendu lors de la publication. Plusieurs documents se sont établis dans l'écosystème open source. Ils donnent aux visiteurs un aperçu rapide du logiciel, y compris de sa licence. + +Les documents suivants sont attendus : + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Document* |*Description / contenu :* +|README(.md) |Sert de document d'entrée et donne un aperçu rapide de l'objectif, du périmètre, du statut, de la licence et des groupes cibles du projet. +|LICENSE |Description de la licence choisie dans le projet +|CONTRIBUTING(.md) |Décrit le processus permettant de contribuer au projet. +|CODE++_++OF++_++CONDUCT(.md) |Le code de conduite fixe les normes sociales attendues au sein du projet. +|CHANGELOG(.md) |Tient une liste des modifications apportées aux versions du logiciel. +|THIRD-PARTY-LICENSES(.md) |Description des licences de tiers ou des composants utilisés. +|Getting started |Brève marche à suivre pour installer et utiliser le logiciel. +|Create Gitignore |Décrit les documents qui ne seront pas publiés, p. ex. configurations, données de test ou contenus générés. Les informations protégées et sensibles devraient être gérées en dehors du projet, dans des outils et des espaces de stockage appropriés et dédiés. +|publiccode.yml |Métadonnées structurées décrivant le logiciel, sur la base du standard https://yml.publiccode.tools/. Le format défini rend la publication plus facile à trouver et à réutiliser. De plus amples informations figurent à l'annexe F. +|=== + +Tableau 1 – Documents open source + +D'autres détails techniques sur ces documents sont décrits en annexe. + +*Tâches* + +* Créer la documentation standard. +* Faire figurer le copyright, les mentions de licence et la clause de non-responsabilité dans tous les fichiers. +* Selon la plateforme de publication, des descriptions supplémentaires peuvent être ajoutées. + +*Décision :* + +* Décision définitive de publier l'application en open source. + +== Publication et annonce + +*Objectif :* l'application est publiée en open source et facilement repérable par des tiers. Tous les composants sont prêts pour la publication et la communauté est constituée ou établie. Cela se fait au moyen de la link:em002-2-3-checklist-oss-release-and-publication.pdf[liste de contrôle Em002-2.3 Validation et publication OSS]. Dans une certaine mesure, il s'agit de récapituler des décisions déjà prises. + +=== Choix de la plateforme + +Il existe plusieurs manières de publier du code source. Le tableau suivant donne une vue d'ensemble des systèmes de gestion de code source (SCM) et des plateformes possibles. + +La plateforme appropriée doit être choisie avant la publication proprement dite. Certaines autorités fédérales sont déjà présentes sur GitHub.footnote:[Le site https://ossbenchmark.com donne un aperçu des organisations et autorités actives sur GitHub.] Dans ce cas, il est judicieux d'utiliser les plateformes déjà établies. + +*Recommandation :* + +Nous recommandons actuellement de mettre en place une organisation sur GitHub par autorité fédérale pour la publication du code source. Au sein de cette organisation, des projets (dépôts) correspondants peuvent être créés et les utilisateurs gérés avec les autorisations appropriées. À l'avenir, une plateforme fédérale centrale devrait être mise en place. Afin de garantir une gestion optimale des utilisateurs et de préserver la réputation de la Confédération suisse, il est important d'utiliser moins de dépôts, mais mieux gérés. + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Plateforme* |*Caractéristiques* +|GitHubfootnote:[https://github.com/about/] |Plateforme en ligne de Microsoft, très répandue. Une grande quantité de logiciels open source est hébergée sur GitHub. Offre de nombreux outils supplémentaires en plus du SCM. Disponible en version Free et Enterprise (abonnement). +|GitLabfootnote:[https://about.gitlab.com/] |Plateforme en ligne de l'entreprise du même nom GitLab, elle-même publiée sous une licence open source. Offre de nombreux outils supplémentaires en plus du SCM. Peut aussi être exploitée localement, offrant ainsi un certain degré de souveraineté. Disponible en version Free et Enterprise (abonnement). +|Bitbucketfootnote:[https://bitbucket.org/product/en] |Plateforme en ligne d'Atlassian, spécifiquement intégrée à son écosystème. Disponible en version Free et Enterprise (abonnement). +|Système SCM interne |Si une plateforme SCM propre est mise à disposition, elle peut aussi publier et rendre disponibles certains dépôts ou projets. L'exploitation doit être assurée. +|Plateforme fédérale |Il n'existe actuellement aucune plateforme fédérale centrale pour la publication de logiciels. Une mesure en ce sens est proposée dans link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale]. +|Site web, serveur FTP public, etc. |La LMETA ne définit pas comment un logiciel doit être publié. Une publication minimalefootnote:[Une publication minimale ne comprend que la publication du code source et d'autres artefacts minimaux. Ce type de publication satisfait aux exigences de la LMETA. Aucune plus-value n'est toutefois obtenue par cette publication.] peut aussi se faire sur un site web ou d'autres ressources accessibles au public. Cela ne convient toutefois pas à une collaboration durable au sens de l'open source. +|=== + +Tableau 2 – Plateformes de publication de logiciels open source + +Si le logiciel est publié conjointement avec un partenaire ou une organisation externe, il convient de veiller à ce que les autorisations et les accès appropriés au code source soient disponibles. + +*Tâches* + +* Évaluer la plateforme appropriée, y compris l'organisation ou le projet correspondant. +* Si ce n'est pas encore clarifié, déterminer la dénomination du projet ou du dépôt. +* Définir et vérifier les autorisations sur le dépôt. +* Assurer une gouvernance appropriée et une éventuelle réplication du code source. + +*Décision :* + +* La plateforme de publication a été choisie de manière appropriée. + +=== Publication du logiciel + +Lorsque les conditions sont clarifiées, le logiciel peut être publié. + +*Tâches* + +* Vérifier les conditions au moyen de la link:em002-2-3-checklist-oss-release-and-publication.pdf[liste de contrôle Em002-2.3 Validation et publication OSS]. +* L'accès à la plateforme est disponible et la gouvernance est clarifiée. +* Publication du code source et de la documentation par l'équipe de développement. + +=== Communication + +Après la publication proprement dite, d'autres activités de communication peuvent être lancées par et au sein de l'autorité fédérale concernée. Elles favorisent la diffusion et apportent la plus-value souhaitée de la publication. + +*Tâches* + +* Description dans l'hébergement du dépôt, paramètres de sécurité, etc. +* Communication interne et, le cas échéant, externe +* Rédiger un message à l'intention de la communauté. +* Faire connaître l'application au sein de l'organisation et dans les organes spécialisés, en promouvoir l'utilisation et les contributions. +* Créer un fichier publiccode.ymlfootnote:[Le standard de métadonnées https://yml.publiccode.tools/ décrit le logiciel. Le format défini rend la publication plus facile à trouver et à réutiliser. De plus amples informations figurent à l'annexe F.] dans le dépôt pour le catalogue OSS de l'administration fédérale.footnote:[Catalogue OSS : https://www.opensource.admin.ch] + +=== Constitution et entretien de la communauté + +Lors de la publication d'un logiciel, une communauté peut se développer et contribuer au logiciel par des contributions (pull requests), des questions, des propositions de documentation, etc. Pour disposer d'une communauté active, une charge considérable est nécessaire tant pour la constitution que pour l'entretien continu. Une communauté qui fonctionne bien réduit au minimum les forks indésirables du logiciel. L'objectif est ici d'activer la plus-value de la communauté par des activités ciblées. Même en cas de publication minimale, la manière de traiter les retours et les questions sur le logiciel devrait être définie. + +*Tâches* + +* Clarifier qui sont les utilisateurs potentiels ou les personnes intéressées. +* Déterminer la forme appropriée pour l'application concrète au moyen du link:em002-4.pdf[Em002-4 Guide des communautés OSS]. +* Constituer la communauté. +* Activités de constitution de la communauté. + +== Annexe + +=== Modifications par rapport à la version précédente + +* Chapitres 4.3 et 5.3 : publication complétée par publicode.yml +* L'annexe F « Public Code » a été ajoutée +* Diverses modifications et améliorations rédactionnelles mineures + +=== Références + +Voir _Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale_. + +=== Abréviations + +Voir link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale] et link:em002-6.pdf[Em002-6 FAQ sur l'OSS]. + +=== Documentation d'accompagnement link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Liste de contrôle Analyse et préparation OSS] – Documentation + +=== Documentation du code source + +La documentation devrait faire partie du code source du projet afin que les modifications de la documentation soient enregistrées de manière infalsifiable et que la documentation soit versionnée parallèlement au projet. Cela garantit automatiquement que la documentation, si elle est correctement entretenue, ne diverge pas de l'état de développement du projet et que la documentation des versions antérieures du projet peut être consultée à tout moment. + +En outre, cela donne à des tiers la possibilité de contribuer facilement à des modifications de la documentation. + +Markdown devrait être utilisé comme langage de balisage pour la mise en forme du texte, car il est facile à écrire, largement répandu et lisible par machine. De plus, les documents Markdown sont affichés dans un format cible bien lisible par toutes les plateformes courantes. Les documents Markdown peuvent être rendus dans n'importe quel format cible indépendamment de la plateforme utilisée, au moyen de générateurs de sites statiques tels que Jekyll, MkDocs, Gatsby ou Sphinx, par exemple avec les prescriptions d'identité visuelle d'une administration. + +=== Destinataires et structure de la documentation + +La documentation de projet devrait s'adresser tant aux utilisateurs finaux qu'aux spécialistes techniques et ne pas se concentrer uniquement sur la technique. Pour le choix de la langue, voir le chapitre 3.6. Cela favorise la diffusion du logiciel. + +Un fichier README.md sert de document d'entrée. Les fichiers portant ce nom sont reconnus par toutes les plateformes courantes et affichés comme point d'entrée de la documentation.footnote:[Pour plus d'informations sur la création d'un fichier readme : https://www.makeareadme.com/] + +README.md devrait donner un aperçu rapide de l'objectif, du périmètre, du statut, de la licence et des groupes cibles du projet. Concrètement, README.md devrait contenir les points suivants : + +* Nom du logiciel +* Brève description de l'objectif et de la fonction du logiciel. Périmètre et limites possibles +* Instructions d'installation +* Utilisation du logiciel +* Renvoi à une éventuelle instance de démonstration +* Coordonnées de support et de contact +* Comment contribuer au logiciel open source (Contributing) +* Licence utilisée (Licence) +* Statut du projet / état de développement + +=== Mettre en avant l'open source et déposer la licence + +Directement après l'énoncé de mission, il convient d'indiquer clairement et sans ambiguïté que le projet est un logiciel open source. La licence utilisée par le projet devrait être indiquée avec l'identifiant SPDX correspondantfootnote:[Identifiant SPDX – https://spdx.org/about] et liée au texte de licence concret figurant dans le fichier LICENSE. Les modèles de licence comportent généralement une partie variable (p. ex. nom du projet, année de copyright, nom de l'auteur) qui doit être adaptée dans le fichier LICENSE. + +La plupart des plateformes reconnaissent les licences figurant dans un fichier LICENSE et offrent des informations claires sur la licence, p. ex. un bref résumé des conditions de licence. + +Il est recommandé d'ajouter un en-tête minimal de licence et de copyright à chaque fichier source créé. Les en-têtes existants dans les fichiers existants ne devraient pas être modifiés. En cas de contribution à un projet disposant de règles claires sur les en-têtes, celles-ci doivent être respectées. + +Pour plus de détails, voir : Producing Open Source Software: State That the Project is Free.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== État de développement actuel + +Afin de montrer rapidement l'état du projet, l'état de développement actuel devrait être documenté dans README.md. Il est important pour les lecteurs de savoir si le projet est dans un état mature ou au début de son développement, s'il est activement entretenu et à quelle fréquence de nouvelles versions sont publiées. + +Cette section peut décrire quel type de soutien de tiers est actuellement le plus important pour le projet. Il pourrait s'agir par exemple d'un développeur disposant de connaissances technologiques spécifiques ou d'une personne chargée de remanier la documentation du projet. + +Pour plus de détails, voir Producing Open Source Software: Development Status.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Instance de démonstration + +Pour les applications, il est recommandé de mettre à disposition une instance de démonstration afin que l'application puisse être essayée sans effort d'installation. Selon le type d'application, l'instance de démonstration peut être l'installation productive ou un environnement de test. Il importe que les lecteurs puissent accéder à l'instance correspondante de la manière la plus autonome et la plus directe possible. + +En alternative, de nombreux projets open source fournissent des outils permettant de démarrer facilement l'application. Cela peut se faire par exemple au moyen de conteneurs, d'applications portables ou de scripts d'installation. + +=== Personne de contact spécialisée et propriété du projet + +Le fichier README.md devrait nommer la principale personne de contact spécialisée afin que d'autres administrations et organisations intéressées puissent prendre contact le plus directement possible. + +Les adresses électroniques personnelles ne devraient pas être utilisées. + +Le fichier README.md devrait aussi décrire brièvement quelle organisation est propriétaire du projet, en particulier si une association a été constituée pour celui-ci. + +== Documentation d'installation + +Pour les applications, README.md devrait renvoyer à une documentation d'installation décrivant les exigences matérielles et logicielles, les composants d'infrastructure utilisés (par exemple les bases de données) ainsi que la manière d'installer et d'exploiter l'application. + +=== Developer Guidelines + +Le point d'entrée des Developer Guidelines devrait être déposé dans un fichier Markdown CONTRIBUTING.md, lié dans README.md. Les Developer Guidelines font partie de la documentation étendue destinée aux développeurs qui souhaitent contribuer au projet et se concentrent avant tout sur la collaboration et la communication au sein du projet plutôt que sur la technique. + +Les Developer Guidelines devraient contenir les points suivants et renvoyer le cas échéant aux documents correspondants : + +* Un renvoi au code de conduite du projet. Le code de conduite fixe les normes sociales attendues au sein du projet. +* Il est recommandé de choisir comme code de conduite le Contributor Covenant Code of Conduct, placé sous licence CC-BY-4.0,footnote:[https://creativecommons.org/licenses/by/4.0/] ou de s'en inspirer.footnote:[https://www.contributor-covenant.org/version/1/4/code-of-conduct.html] +* Une indication précisant que le projet effectue des revues de code sous forme de pull requests GitHub, avec un renvoi à la documentation GitHub sur les pull requests. + +Enfin, il convient de renvoyer à la Developer Documentation. + +=== Developer Documentation + +Alors que les Developer Guidelines décrivent la collaboration et les normes sociales du projet, la Developer Documentation se concentre sur les aspects techniques de la participation au développement du projet. Elle devrait décrire au moins les points suivants : + +* Quelles dépendances techniques le projet présente et quels outils sont nécessaires à son développement. +* Quelles règles formelles s'appliquent au code source du projet, par exemple en matière de formatage du code source. +* Comment le code source du projet est organisé et comment les fonctions peuvent être testées techniquement. +* Une esquisse d'architecture avec une description sommaire de l'architecture, de préférence avec délimitation du contexte et vue sommaire des composants.footnote:[Cadre d'architecture MMB (méthode de modélisation de la Confédération) ou arc42. http://arc42.org/] +* Pour les applications : comment l'application peut être démarrée à des fins de développement ou de débogage et quels composants d'infrastructure sont nécessaires à cet effet. + +== Documentation d'accompagnement de la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[liste de contrôle Em002-2.2 Analyse et préparation OSS] – Code source + +=== Historique du code source + +Le code source d'un projet est généralement conservé dans un système de gestion de code source (SCM) tel que GitHub. Ces systèmes enregistrent non seulement l'état actuel du code source, mais aussi les modifications qui y ont été apportées au fil du temps. Cela comprend en particulier les suppressions dans le code source, y compris les fichiers supprimés. + +En outre, le SCM contient des métainformations sur les modifications du code source, telles que le nom et l'adresse électronique de l'auteur, ou des signatures PGP pour les commits et tags signés. + +=== Données sensibles, protégées ou confidentielles + +Le code source et son historique peuvent contenir des données accessibles au public, telles qu'un répertoire de codes postaux, des données générées aléatoirement ou des données synthétiques. + +Le code source et son historique ne doivent contenir aucune donnée ou information (personnelle) sensible ou confidentielle au sens de la loi fédérale sur la protection des données (LPD) et de la loi sur la sécurité de l'information (LSI). Cela comprend en particulier : + +* Les noms d'utilisateur et mots de passe ou autres secrets tels que clés privées, jetons d'accès ou certificats. +* Les noms DNS internes, URL, noms d'hôte, adresses IP, structures de réseau ou noms de lecteurs. +* Les noms, adresses, images ou données personnelles similaires sans le consentement de la personne concernée +* Les données anonymisées ou pseudonymisées (car il est possible d'annuler l'anonymisation ou la pseudonymisation) + +Même si l'état actuel du code source est exempt de données ou d'informations sensibles, protégées ou confidentielles, de telles données ou informations peuvent encore être extraites de l'historique du système SCM si elles ont un jour fait partie du code source ou des métainformations du SCM. Le nettoyage de l'état actuel du code source ne supprime pas complètement ces informations.footnote:[L'outil https://rtyley.github.io/bfg-repo-cleaner/[BFG Repo-Cleaner] offre une possibilité de nettoyer un dépôt] + +En cas de doute, il est donc recommandé de supprimer entièrement l'historique après le nettoyage du code source, avant de publier celui-ci. + +Les noms et adresses électroniques des auteurs du code source sont généralement disponibles directement dans le code source ou dans les métadonnées du SCM, par exemple dans les commits GitHub ou les tags GitHub annotés. D'un point de vue juridique, cela ne pose pas de problème, l'entreprise de développement étant chargée de régler la publication de telles informations. Il est toutefois recommandé de sensibiliser l'entreprise de développement ou les employés internes de la Confédération au fait que les noms et adresses électroniques des auteurs du code source peuvent être divulgués lors de la publication du logiciel. + +=== Suppression des informations sur les auteurs + +L'historique du logiciel peut être modifié afin de masquer les informations sur les auteurs. Des outilsfootnote:[https://www.adamdehaven.com/blog/update-commit-history-author-information-for-git-repository/] permettent d'automatiser cette étape dans une large mesure. + +La suppression des informations sur les auteurs supprime l'attribution, la traçabilité et les coordonnées de contact. La charge que cela représente ne doit pas être sous-estimée, selon le volume de code source. Pour ces raisons, la suppression des auteurs n'est pas recommandée. Les noms peuvent être publiés si a) le consentement des personnes concernées a été obtenu et b) aucun motif relevant de la sécurité ne s'y oppose. + +=== Prise en compte des licences des bibliothèques + +Pratiquement chaque projet utilise des bibliothèques de tiers (bibliothèques logicielles, dépendances) afin d'accéder à des fonctions couramment utilisées sans devoir les programmer. Ces bibliothèques dépendent généralement d'autres bibliothèques, ce qui engendre des dépendances à plusieurs niveaux (dépendances transitives). Selon le langage de programmation, même de petits projets peuvent compter des centaines de dépendances. + +Les résultats de cette clarification doivent être pris en compte lors du choix de la licence conformément au link:em002-3.pdf[Em002-3 Guide de licences OSS] et dans la link:em002-2-3-checklist-oss-release-and-publication.pdf[liste de contrôle Em002-2.3 Validation et publication OSS]. + +Pour chacune de ces dépendances, il convient de s'assurer que sa licence est compatible avec celle du projet. Sont particulièrement problématiques les dépendances qui ne sont pas sous licence open source, qui n'ont déclaré aucune licence ou qui utilisent une licence virale ne correspondant pas à celle du projet. Certaines bibliothèques sont placées sous plus d'une licence et laissent à l'utilisateur le choix de l'une d'elles. + +* Dans tous les principaux langages de programmation, les dépendances du projet (y compris les dépendances transitives) et leurs licences peuvent être listées automatiquement. Il s'agit notamment de : +* Le plugin Project Info Reports pour le gestionnaire de paquets Apache Maven pour les projets Java, qui génère au moyen du rapport de dépendances une sortie HTML de toutes les bibliothèques utilisées, y compris la licence déclarée.footnote:[Infos sur le plugin https://maven.apache.org/plugins/maven-project-info-reports-plugin/plugin-info.html] +* Le NPM Licence Checker pour le gestionnaire de paquets NPM pour les projets JavaScript, qui peut restituer toutes les bibliothèques utilisées, y compris la licence déclarée, dans différents formats, p. ex. CSV.footnote:[NPM Licence Checker https://github.com/davglass/license-checker] +* Le Licence Finder de Pivotal, qui prend en charge divers gestionnaires de paquets et langages de programmation, dont Ruby Gems, Python Eggs et Godeps.footnote:[Licence Finder de Pivotal https://github.com/pivotal/LicenseFinder] + +== Utilisation de bibliothèques sous licence propriétaire + +Les bibliothèques sous licence propriétaire sont en principe problématiques dans les projets open source et ne peuvent généralement pas être utilisées, en particulier si le code source a été publié sous une licence virale telle que l'AGPL. + +Veuillez vous adresser au fournisseur et au service juridique de l'office concerné afin de vérifier si et à quelles conditions la bibliothèque propriétaire peut être utilisée dans votre projet. + +=== Utilisation de gestionnaires de paquets + +Pratiquement tous les langages de programmation répandus proposent des gestionnaires de paquets pour gérer leurs dépendances, tels qu'Apache Maven pour les projets Java, NPM pour les projets JavaScript ou NuGet pour les projets .NET. + +Lors de l'utilisation d'un gestionnaire de paquets, les dépendances utilisées par le projet ne font plus directement partie du code source de celui-ci, par exemple par la copie du code source de la dépendance dans le projet ou par la copie des dépendances sous forme binaire. Le projet obtient au contraire toutes ses dépendances via les déclarations du gestionnaire de paquets. + +Cela permet de lister et de référencer correctement toutes les dépendances. Cela empêche en outre la modification involontaire du code des dépendances. Si des modifications sont nécessaires, elles doivent être effectuées directement à la source de la dépendance. + +=== Déclaration de la licence du projet dans le descripteur du gestionnaire de paquets + +Le projet devrait déclarer sa licence dans le descripteur approprié du gestionnaire de paquets, au moyen de l'identifiant SPDX,footnote:[Identifiant SPDX – https://spdx.org/] afin que la licence du projet puisse être restituée par le gestionnaire de paquets. Cela est particulièrement important pour les bibliothèques, afin que leurs utilisateurs puissent interroger automatiquement leur licence via le gestionnaire de paquets. + +=== Attribution et mentions de copyright + +De nombreuses bibliothèques sont soumises à une licence qui exige de leur utilisateur une mention de copyright d'origine ou une attribution. + +Il s'agit notamment des licences suivantes (extrait) : + +Apache 2.0, ASL 1.1 (Apache 1.1), BSD, BSD 3-Clause, Creative Commons « Attribution » (CC BY), MIT, ISC + +Pour les autres, voir la liste des licences reconnues par l'OSI.footnote:[Les licences open source sont des licences conformes à l'Open Source Definition — en bref, elles permettent d'utiliser, de modifier et de partager librement un logiciel. https://opensource.org/licenses] + +Dans la pratique, cela concerne presque toutes les bibliothèques utilisées. Comme le nombre de bibliothèques utilisées est déjà très élevé dans les petits projets, une mention de copyright juridiquement correcte ou l'attribution nécessaire n'est possible qu'au prix d'efforts considérables. + +Il est donc recommandé de procéder comme suit : + +* Établir une liste des bibliothèques utilisées, au moyen des mécanismes du gestionnaire de paquets ou d'outils tels que le NPM Licence Checker ou le Licence Finder de Pivotal. +* Préparer la liste manuellement afin qu'elle contienne les informations suivantes : nom officiel du projet de la bibliothèque, site web du projet de la bibliothèque, licence utilisée pour la bibliothèque sous forme d'identifiant SPDX avec un lien vers le texte de la licence. +* Déposer la liste dans le code source du projet, p. ex. dans un fichier THIRD-PARTY-LICENSES.md. +* Pour les applications : intégrer un lien pointant vers THIRD-PARTY-LICENSES.md dans une boîte de dialogue « À propos » ou « À propos de cette application ». +* La boîte de dialogue « À propos » est largement utilisée à cette fin, par exemple dans Google Chrome (dans la boîte de dialogue « À propos de Chrome »). +* Pour les bibliothèques : renvoyer dans README.md à THIRD-PARTY-LICENSES.md. +* Dans le cadre du processus de revue de code, s'assurer que les modifications des bibliothèques sont reportées dans THIRD-PARTY-LICENSES.md. + +== Exemple de bloc de code THIRD-PARTY-LICENSES.md + +Ce projet utilise des logiciels open source : + +* Spring Boot, http://projects.spring.io/spring-boot/[projects.spring.io/spring-boot] sous licence http://www.apache.org/licenses/LICENSE-2.0[Apache-2.0] +* caniuse-db, https://github.com/Fyrd/caniuse[github.com/Fyrd/caniuse] sous licence https://creativecommons.org/licenses/by/4.0/[CC-BY-4.0] + +=== Documentation d'accompagnement de la liste de contrôle Em002-2.3 Validation et publication OSS + +==== Publication avec publiccode.yml + +Publiccode.yml est un standard de métadonnées pour les dépôts de logiciels contenant des logiciels développés ou acquis par des administrations publiques. L'objectif est de rendre ces logiciels plus faciles à trouver et à réutiliser. Le standard de métadonnées est établi à l'échelle internationale et décrit publiquement à l'adresse https://yml.publiccode.tools/. Un fichier publiccode.yml contient typiquement des informations telles que le titre et la description (possible en plusieurs langues), l'état de développement, les coordonnées de contact, les informations de licence, etc. Des extensions spécifiques au pays sont prévues pour la Suisse. + +Un fichier yml doit être créé dans le répertoire principal du dépôt pour chaque logiciel. Si la solution se compose de plusieurs dépôts (auxiliaires), un seul fichier suffit, celui-ci décrivant le cas d'application de la solution. + +À partir des données structurées contenues dans les fichiers publiccode.yml, un https://www.opensource.admin.ch/[catalogue OSS] (https://www.opensource.admin.ch[opensource.admin.ch]) est généré pour l'ensemble de l'administration fédérale. Le catalogue offre une vue d'ensemble des logiciels publiés et facilite la recherche et la réutilisation de solutions existantes. + +Si un nouveau dépôt ou une nouvelle organisation est créé, cela doit être annoncé par courriel à opensource@bk.admin.ch en vue de l'inscription au catalogue OSS. + +Outre le catalogue OSS, un éditeur graphique et un validateur pour les fichiers publiccode.yml sont également disponibles. + +Catalogue OSS et éditeur : https://www.opensource.admin.ch/ + +=== Autres sources et licence + +La liste de contrôle, la documentation d'accompagnement et les modèles qui s'y rapportent se fondent en partie sur les sources suivantes : + +* Google Open Source Docs de Google LLC, sous licence CC-BY-4.0footnote:[Google Open Source Docs – https://opensource.google.com/docs/] +* Producing Open Source Software, How to Run a Successful Free Software Project de http://www.red-bean.com/kfogel C-BY-SA-4.0footnote:[Producing Open Source Software, How to run a Successful Free Software Project - https://producingoss.com/] +* GitHub Healthy Contributionsfootnote:[https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions[GitHub Healthy Contributions]] +* Standard for Public Codefootnote:[Standard for Public Code – https://standard.publiccode.net/] +endif::[] + +ifeval::["{lang}" == "it"] +*Avvertenza:* Il presente documento è una bozza in continua evoluzione e fa parte degli strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source.footnote:[Raccomandazione per l'informatica dell'Amministrazione federale secondo ++[++P035++]++ _capitolo 4.6_]footnote:[Per le definizioni delle classificazioni INTERNO e CONFIDENZIALE si veda l'_ordinanza dell'8 novembre 2023 sulla sicurezza delle informazioni in seno alla Confederazione e all'esercito (OSIC; RS 128.1)_]footnote:[Cfr. nota a piè di pagina 1]footnote:[Ambiti di pianificazione secondo la _strategia TIC della Confederazione 2020-2023 del 3 aprile 2020 (SB000)_] Per maggiori informazioni si veda il {url-repo}/tree/main[README] principale. + +''''' + +== Riassunto per la direzione + +Le presenti istruzioni descrivono la procedura per la pubblicazione del codice sorgente del software che le autorità federali sviluppano o fanno sviluppare per adempiere i loro compiti, conformemente all'art. 9 LMeCA.footnote:[Legge federale _++[++EMOTA2023++]++_] Sono previste eccezioni se diritti di terzi o motivi rilevanti per la sicurezza escludono o limitano tale pubblicazione. Pubblicare significa che chiunque può utilizzare, sviluppare e diffondere il software. Non sono riscosse tasse di licenza. + +Le presenti istruzioni si rivolgono alle persone responsabili della pubblicazione del codice sorgente e incaricate della sua attuazione. + +[mermaid,align="center",alt="Panoramica del processo di pubblicazione OSS"] +.... +flowchart TD + S(["Inizio"]) + A["Valutazione preliminare"] + B["Analisi e preparazione"] + C["Pubblicazione"] + S --> A + A --> B + B --> C +.... + +La materia è suddivisa in tre parti principali: + +* La prima parte (capitolo 3) tratta le *valutazioni preliminari* e le eccezioni secondo la LMeCA. +* La seconda parte (capitolo 4), *Analisi e preparazione*, esamina il codice sorgente e lo prepara secondo le necessità. Vi si effettua inoltre la scelta della licenza. +* La terza parte (capitolo 5), *Pubblicazione e annuncio*, descrive la pubblicazione vera e propria e ulteriori misure quali la comunicazione e la costituzione di una community adeguata. + +*Tre liste di controllo* accompagnano e documentano il processo. + +Complementi tecnici figurano nell'allegato. + +== Introduzione + +Nella pubblicazione di software open source occorre distinguere tra il *contributo di codice sorgente e documentazione a software open source esistente* e la *pubblicazione come progetto open source indipendente*. + +Il primo caso comprende tipicamente correzioni di errori ed estensioni funzionali. A seconda del tipo di licenza e dell'impiego del software, il codice sorgente deve o può essere pubblicato sotto la licenza esistente del progetto open source. Può essere necessario rispettare un accordo di pubblicazione. + +Nel secondo caso, l'avvio di un nuovo progetto open source, la governance e la licenza possono in linea di principio essere scelte liberamente. L'unico elemento da considerare è la licenza sotto la quale sono pubblicati gli eventuali elementi software integrati nel nuovo progetto. Ulteriori dettagli sulla scelta della licenza figurano nel documento link:em002-3.pdf[Em002-3 Guida alle licenze OSS]. Se da una community può derivare un valore aggiunto per l'Amministrazione federale o se questa intende creare un ecosistema, va inoltre compilata la link:em002-4-1-checklist-oss-community.pdf[lista di controllo Em002-4.1 Community OSS] conformemente alla link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +La pubblicazione di software open source è più di una semplice misura tecnica. Significa anche instaurare una cultura dell'apertura corrispondente e coinvolgere le persone. Una cultura open source di successo è una combinazione di apertura, eccellenza tecnica, forte interazione sociale e impegno condiviso. + +Il grafico seguente descrive le istruzioni e le diverse configurazioni. + +[mermaid,align="center",alt="Albero decisionale per la pubblicazione di software"] +.... +flowchart TD + Start(["Inizio
sviluppato dal 1.1.2024"]) + subgraph B1["1. Valutazione preliminare"] + T{"Tipo di software"} + end + subgraph B2["2. Analisi e preparazione"] + I{"I terzi sono
interessati al software?"} + GJ["Chiarire la governance e
la collaborazione [Em002-4.1]"] + GT["Chiarire la governance e
la collaborazione [Em002-4.1]"] + O{"Sviluppo di software
open source?"} + end + subgraph B3["3. Pubblicazione"] + M["Effettuare una pubblicazione minima"] + P["Pubblicazione del software"] + D["Sviluppo di software
open source"] + C["Costituire e curare
una community [Em002-4]"] + end + Start --> T + T -->|"Sviluppo proprio"| I + T -->|"Sviluppo congiunto"| GJ + T -->|"Progetto di terzi"| GT + I -->|"No"| M + I -->|"Sì, o ipotizzabile"| O + GJ --> O + GT --> D + O -->|"No"| P + O -->|"Sì"| D + P --> C + D --> C + M --> E1(["Fine"]) + C --> E2(["Fine"]) +.... + +Figura 1 – Albero decisionale per la pubblicazione di software + +== Processo di valutazione preliminare + +*Obiettivo:* comprendere i vantaggi e le possibili conseguenze di una pubblicazione del software. Decidere se il software può essere pubblicato e, in caso affermativo, se la costituzione di una community attiva ne vale la pena. Nota: la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[lista di controllo Em002-2.1 Valutazione preliminare OSS] dovrebbe essere compilata il prima possibile nel progetto, poiché ciò può influenzare il modo in cui il software viene sviluppato. + +=== Pubblicazione secondo la LMeCA + +Secondo l'art. 9 della legge federale del 17 marzo 2023 ++[++EMOTA2023++]++ sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA), l'Amministrazione federale (concretamente l'art. 2 cpv. 1) deve pubblicare il codice sorgente del software che sviluppa o fa sviluppare per adempiere i suoi compiti. Si applicano eccezioni se diritti di terzi o motivi rilevanti per la sicurezza lo escludono o lo limitano. + +Per il software su misura realizzato su mandato della Confederazione si applicano in linea di principio le condizioni generali della Confederazione ++[++BBL-AGB++]++. Secondo il loro numero 25.1, la proprietà del codice sorgente e della documentazione passa al servizio acquirente (la Confederazione). Se il software è stato acquistato congiuntamente da più organizzazioni o altre istituzioni, occorre verificare chi detiene i diritti sul codice. La proprietà può per esempio spettare a un'associazione costituita a tale scopo. + +Il semplice utilizzo di software standard non rientra nell'art. 9 LMeCA e una pubblicazione non sarebbe comunque di regola possibile, poiché i diritti sul software standard restano spesso al fornitore (CG della Confederazione per l'acquisto di software standard). Le estensioni su misura di software standard si prestano invece pienamente a una pubblicazione. Esse appartengono normalmente alla Confederazione. Meri adattamenti di configurazione si prestano meno a una pubblicazione. Il tema è trattato in link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e del software open source] nonché nei documenti ++[++KBB-MB++]++ e ++[++BBL-WL++]++. In linea di principio le estensioni sottostanno sempre all'art. 9 LMeCA. + +==== Il software in rapporto alla LMeCA + +L'attuale norma ISO/IEC 24765 contiene tre definizioni di software: + +. un programma o un insieme di programmi utilizzati per far funzionare i computer +. i programmi e la relativa documentazione +. i programmi e, ove applicabile, la documentazione associata nonché altri dati necessari al funzionamento del computer. + +Sulla base di questa definizione anche script, macro o Infrastructure as Code (IaC) di minore entità sono classificati come software. La LMeCA si riferisce al codice sorgente all'articolo 9 capoverso 1. Secondo tale interpretazione una pubblicazione ai sensi della definizione 1 sarebbe sufficiente. Una pubblicazione priva della documentazione associata ha tuttavia scarso valore, poiché il software non può essere utilizzato ai sensi della definizione 2. + +Per realizzare sinergie con terzi occorre basarsi sulla definizione 3. Riguardo ai dati ciò significa concretamente i dati di base e le configurazioni di base (per esempio valori di enumerazione e dati di base che dovrebbero parimenti essere resi disponibili come open source). + +Progetti, script o esempi di codice di minore entità possono anche essere pubblicati congiuntamente in un unico repository, se l'autorità federale lo ritiene opportuno. In tal caso le presenti istruzioni e le corrispondenti liste di controllo possono essere compilate una sola volta. + +Nel decidere che cosa pubblicare e come, occorre considerare la proporzionalità e l'onere. + +==== Tipo di software + +Come mostra la figura 1, si distingue tra sviluppo proprio, sviluppo congiunto e progetti di terzi. Ogni costellazione comporta implicazioni diverse. Indipendentemente da come il software viene sviluppato, esso rientra nell'art. 9 LMeCA. + +Nello sviluppo proprio la Confederazione crea essa stessa il software o lo fa creare di conseguenza. Sceglie la governance e conserva i diritti sul codice sorgente. + +Nello sviluppo congiunto la Confederazione crea il software insieme ad altre organizzazioni. La governance e i diritti sul software devono essere disciplinati mediante la forma organizzativa scelta. + +Se la Confederazione contribuisce direttamente a software di terzi, anche tale codice sorgente rientra nell'art. 9 LMeCA. Occorre assicurare che ciò avvenga nell'interesse delle autorità federali, che la partecipazione soddisfi i requisiti del progetto e che l'Amministrazione federale rispetti la governance. + +Ciò avviene mediante la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[lista di controllo Em002-2.1 Valutazione preliminare OSS] e la link:em002-4-1-checklist-oss-community.pdf[lista di controllo Em002-4.1 Community OSS]. + +==== Codice preesistente + +Per il software datato (*software preesistente*) l'onere successivo per una pubblicazione è maggiore rispetto al caso in cui essa fosse stata pianificata sin dall'inizio. Per il software preesistente vale la pena sostenere tale onere soltanto se un potenziale utente intende utilizzare il software. Indipendentemente da ciò, la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[lista di controllo Em002-2.1 Valutazione preliminare OSS] dovrebbe essere compilata per documentare le decisioni determinanti. + +Le applicazioni il cui sviluppo è stato avviato dalle autorità federali il 1° gennaio 2024 o dopo tale data, oppure che sono sviluppate su mandato della Confederazione sulla base di un contratto concluso dopo il 1° gennaio 2024, non sono considerate preesistenti e sottostanno in ogni caso all'obbligo di pubblicazione secondo l'art. 9 cpv. 1 LMeCA. + +L'obbligo di pubblicazione secondo la LMeCA non dipende dall'utilità per i terzi. + +==== Librerie, plug-in e add-on + +In taluni casi il software non è un'applicazione autonoma, bensì soltanto una parte di essa. La LMeCA e l'ordinanza non definiscono ulteriormente il codice sorgente. Le istruzioni si applicano anche a librerie, plug-in e add-on disaccoppiati, che rientrano nella LMeCA. + +*Compiti:* + +* Raccogliere le informazioni contenute in link:em002-5.pdf[Em002-5 Promemoria Strumenti OSS]. Esso descrive sia informazioni generali sul software open source sia informazioni specifiche sull'applicazione della LMeCA. +* Verificare se le condizioni previste dalla LMeCA sono soddisfatte. +* Compilare la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[lista di controllo Em002-2.1 Valutazione preliminare OSS]. Di regola è opportuno coinvolgere direttamente le persone di contatto del fornitore del software o del team di sviluppo. +* Se necessario, compilare la link:em002-4-1-checklist-oss-community.pdf[lista di controllo Em002-4.1 Community OSS]. + +*Decisione:* il software deve essere pubblicato e in che modo? + +=== Eccezione: diritti di terzi + +Occorre rinunciare a una pubblicazione se essa violerebbe diritti di terzi. Se il software è stato sviluppato da impiegati della Confederazione, i diritti spettano al datore di lavoro.footnote:[Art. 332 CO in combinato disposto con l'art. 6 cpv. 2 LPers] Nei contratti di fornitura di personale a prestito e di prestazioni informatiche i diritti sono di norma trasferiti alla Confederazione e dovrebbero essere fatti valere. + +Se il software è stato o viene sviluppato sulla base delle condizioni generali della Confederazione Svizzera (stato 2024),footnote:[Condizioni generali della Confederazione Svizzera, in particolare il numero 25.1 – https://www.bkb.admin.ch/bkb/de/home/themen/agb.html#accordion_21321111141713247349255] i diritti di proprietà intellettuale spettano al committente, salvo diversa pattuizione contrattuale. + +Un'applicazione è tipicamente composta da numerosi singoli componenti ed elementi. Per alcuni tipi ciò diventa problematico se essi stessi non sono open source o non possono essere pubblicati sotto una licenza open source nell'ambito dell'applicazione. + +*Librerie* + +A seconda del linguaggio di programmazione, le librerie sono compilate direttamente con l'applicazione, collegate oppure fornite come pacchetti. Esse costituiscono parte integrante dell'applicazione. + +Se l'applicazione contiene librerie proprietarie o soggette a licenza, l'open sourcing diventa più difficile. In linea di principio il codice sorgente del resto dell'applicazione può essere pubblicato, ma i potenziali utenti o sviluppatori dovrebbero acquistare la libreria in questione prima che l'applicazione diventi utilizzabile o estendibile. + +Se la proprietà della libreria problematica spetta al fornitore dell'applicazione, vale la pena chiedere un chiarimento giuridico per stabilire se la Confederazione disponga di diritti trasferibili su tali librerie. + +Ove possibile, le librerie proprietarie e soggette a licenza dovrebbero essere evitate negli sviluppi propri o sostituite se possibile prima della pubblicazione. Considerato l'obiettivo dell'articolo 9 LMeCA, occorre pubblicare il maggior numero possibile di funzionalità utilizzate dalle amministrazioni pubbliche. Singole librerie che impediscono la pubblicazione del codice rappresentano pertanto un debito tecnico che dovrebbe essere documentato e, all'occasione, eliminato. + +*Banche dati e altri sistemi di archiviazione* + +Se l'applicazione utilizza sistemi di archiviazione proprietari e soggetti a licenza quali Microsoft SQL Server, ciò non costituisce un ostacolo a una pubblicazione open source. + +Occorre tuttavia esaminare se possano essere supportate anche banche dati aperte quali PostgreSQL. Ciò può ridurre i costi d'esercizio e abbassare le barriere d'accesso per i potenziali utenti. + +*Server applicativi e sistemi operativi* + +Se l'applicazione richiede sistemi operativi o server applicativi sotto licenza (p. es. Microsoft Windows Server o RedHat JBoss), ciò non costituisce un ostacolo a una pubblicazione open source. + +Raccomandiamo di chiedere al fornitore del software se e quali librerie di terzi sotto licenza siano utilizzate come componenti dell'applicazione. + +Se la realizzazione del software è stata acquistata congiuntamente da più organizzazioni o altre istituzioni, la proprietà spetta di regola a un'associazione o a un'altra persona giuridica costituita a tale scopo. + +*Altra proprietà intellettuale* + +Tra i diritti di terzi rientrano non soltanto i diritti d'autore, ma anche altra proprietà intellettuale (marchi, brevetti). I brevetti non impediscono fondamentalmente che un software sia pubblicato come open source, ma possono impedirne l'utilizzo o l'estensione. Sebbene i brevetti siano piuttosto rari in Svizzera, di regola vale la pena chiedere brevemente al fornitore del software se sia già stato effettuato un esame. + +*Acquisizione dei diritti necessari* + +Per soddisfare le prescrizioni legali della LMeCA, l'autorità federale ha, in qualità di committente, la possibilità di assicurarsi i diritti sui risultati dei lavori. Tale presupposto per una pubblicazione può essere definito come criterio in sede di acquisto. L'acquisizione successiva dei diritti necessari sul software può risultare più complessa. + +Se l'autorità federale non intende pubblicare essa stessa il software, può per esempio delegare tale compito al mandatario o trasferire di conseguenza i diritti di pubblicazione. In tal caso essa trasferisce i diritti (e gli obblighi) necessari al fornitore e/o a terzi e li incarica della pubblicazione. Il diritto viene così di fatto trasferito a terzi a condizione della pubblicazione o del supporto del software corrispondente. + +Anche in questo caso ++[++KBB-MB++]++ contiene indicazioni importanti. + +*Procedura* + +[mermaid,align="center",alt="Processo di gestione dell'eccezione relativa ai diritti di terzi"] +.... +flowchart TD + S(["Inizio"]) + Q1{"Acquisto di una licenza o di una
soluzione esistente come oggetto
d'acquisto centrale?"} + Q2{"Gli sviluppi successivi
sono definibili?"} + Q3{"I diritti spettano
alla Confederazione?"} + Q4{"È necessaria l'acquisizione
di diritti di terzi?"} + Q5{"Una parte con diritti della
Confederazione può essere
delimitata in modo mirato?"} + R1["Eccezione giustificata:
diritti di terzi"] + R2["Pubblicazione parziale da
parte della Confederazione"] + R3["Pubblicazione da parte
della Confederazione"] + S --> Q1 + Q1 -->|"No"| Q3 + Q1 -->|"Sì"| Q2 + Q2 -->|"Sì"| Q3 + Q2 -->|"No"| R1 + Q3 -->|"Sì"| R3 + Q3 -->|"No"| Q4 + Q4 -->|"Sì"| R3 + Q4 -->|"No"| Q5 + Q5 -->|"Sì"| R2 + Q5 -->|"No"| R1 +.... + +Figura 2 – Eccezione: diritti di terzi (considerare sempre anche ++[++KBB-MB++]++ e link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e del software open source]) + +Un'eccezione giustificata per i diritti di terzi risulta non solo dall'acquisto di licenze o di software esistente, ma anche dallo sviluppo di software su software esistente sotto licenza. + +Una pubblicazione parziale è possibile nella costellazione seguente: il software contiene parti proprietarie o protette; queste possono essere distinte dallo sviluppo successivo; sono coinvolti altri diritti di proprietà intellettuale. + +*Compiti:* + +* Verificare se l'organizzazione detiene i diritti di protezione determinanti sul software. +* Verificare se i diritti possono essere acquisiti. +* Se necessario, ottenere l'autorizzazione scritta dei titolari dei diritti. +* Assicurarsi che l'applicazione non contenga parti proprietarie o protette. +* Verificare che non sussistano ostacoli dovuti alla protezione brevettuale (per quanto possibile e ragionevole). +* Verificare se la pubblicazione debba essere effettuata da terzi. +* Verificare se lo sviluppo debba basarsi sullo sviluppo di software open source (mediante la link:em002-4.pdf[Em002-4 Guida alle community OSS]). + +*Decisione:* il software può essere pubblicato senza violare diritti di terzi? + +=== Eccezione: motivi rilevanti per la sicurezza + +Il software che non può essere pubblicato per motivi rilevanti per la sicurezza è esentato dalla pubblicazione. + +I dati veri e propri di un software non sono interessati dalla pubblicazione del codice sorgente. Tali dati sono di regola sensibili e non vengono pubblicati. Può tuttavia accadere che, oltre ai dati di contenuto, determinati algoritmi e procedimenti visibili nel codice sorgente non debbano diventare pubblici (p. es. capacità cibernetiche offensive, dettagli del rilevamento delle frodi). La sicurezza può riferirsi alla riservatezza, all'integrità, alla disponibilità o alla tracciabilità. + +*Raccomandazione:* + +Il software dovrebbe essere sviluppato deliberatamente in modo che non sorga alcun rischio supplementare nemmeno in caso di pubblicazione del codice sorgente. L'ipotesi secondo cui la mancata pubblicazione protegge da attacchi riusciti è ingannevole («security through obscurity»). + +*Procedura:* + +[NOTE] +==== +Determinante è sempre il software e non la sua finalità. Il trattamento di dati critici non costituisce a priori un aspetto rilevante per la sicurezza. +==== + +[mermaid,align="center",alt="Processo di gestione dell'eccezione relativa ai motivi di sicurezza"] +.... +flowchart TD + S(["Inizio"]) + Q1{"Motivi rilevanti
per la sicurezza?"} + Q2{"Il software rilevante per la
sicurezza può essere disaccoppiato?"} + Q3{"Motivi temporanei?"} + M["Misure per
la pubblicazione"] + R1["Pubblicare una parte
del software"] + R2["Eccezione:
motivi rilevanti per la sicurezza"] + R3["Eccezione temporanea"] + R4["Pubblicare"] + S --> Q1 + Q1 -->|"Uno o più punti si applicano"| Q2 + Q1 -->|"Non applicabile"| Q3 + Q2 -->|"Sì"| R1 + Q2 -->|"No"| R2 + Q3 -->|"Uno o più punti si applicano"| R3 + Q3 -->|"Nessun motivo temporaneo"| M + M --> R4 +.... + +Figura 3 – Eccezione: motivi rilevanti per la sicurezza + +I motivi seguenti possono essere considerati rilevanti per la sicurezza a seconda del progetto: + +* La pubblicazione del software aumenterebbe sensibilmente un rischio per la sicurezza delle informazioni.footnote:[Legge sulla sicurezza delle informazioni, LSIn. Art. 6 Sicurezza delle informazioni. https://www.fedlex.admin.ch/eli/cc/2022/232/de#art_6] +* Per gli algoritmi di prevenzione delle frodi e analoghi si può se del caso rinunciare a una pubblicazione. +* Tecnologie di cibersicurezza particolarmente sensibili. +* Software essenziale per l'esercizio di infrastrutture critiche. +* Quando la pubblicazione violerebbe altre basi legali. + +I seguenti motivi temporanei possono ancora impedire una pubblicazione. Quest'ultima sarà tuttavia resa possibile in seguito mediante misure adeguate. + +* Il codice preesistente non ha ancora potuto essere ripulito e contiene eventualmente problemi rilevanti per la sicurezza. +* Gli audit di sicurezza del codice non sono ancora stati svolti. +* Il processo di sviluppo non è ancora sufficientemente maturo per consentire una pubblicazione sicura. Se il processo di sviluppo non è sufficientemente consolidato, è possibile che vengano pubblicate parti non destinate a terzi. Per esempio le direttive sui commenti al codice e la generazione dei dati di test devono essere adattate al nuovo scenario di pubblicazione e funzionare in modo affidabile. + +Mediante le misure seguenti il software può essere pubblicato nonostante i motivi rilevanti per la sicurezza: + +* Separare dal software le configurazioni (p. es. tipo di cifratura utilizzata). +* Esternalizzare in configurazioni o impostazioni le informazioni tecnicamente sensibili e non pubbliche (p. es. processi, calcoli). +* Pianificare, attuare ed esercitare regolarmente misure organizzative, personali e tecniche adeguate. +* Pianificare e svolgere attività di qualità adeguate al momento della pubblicazione. Cfr. il capitolo seguente «Analisi e preparazione». + +*Compiti:* + +* Esaminare il software quanto ai motivi rilevanti per la sicurezza che osterebbero a una pubblicazione. +* Stimare l'onere necessario per eliminare i motivi temporanei. +* Pianificare misure volte a separare le informazioni rilevanti per la sicurezza dal codice sorgente del software. +* Assicurarsi che l'applicazione non contenga procedimenti che non devono diventare pubblici. + +*Decisione:* + +Sussistono motivi imperativi rilevanti per la sicurezza che rendono impossibile la pubblicazione? + +=== Chiarimento della pubblicazione + +Questa fase chiarisce chi pubblicherà il software. Se il software è stato realizzato da un fornitore esterno, la pubblicazione può essere affidata anche a tale fornitore. In questa fase è importante stabilire dove sarà pubblicato il codice sorgente e definire una governance corrispondente. + +Se il software è stato sviluppato internamente alla Confederazione e questa non può o non intende pubblicarlo essa stessa, può essere conferito un mandato di pubblicazione a un fornitore oppure i diritti possono essere ceduti (trasferimento degli obblighi a terzi). + +*Pubblicazione minima e supporto* + +La LMeCA non prevede requisiti in materia di pubblicazione. Una pubblicazione minima del codice sorgente soddisfa la prescrizione legale. Non sono richieste ulteriori attività. La questione se e in quale misura sia offerto un supporto e con quale intensità il progetto sia curato può essere affrontata mediante la link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +*Sviluppo di software open source (OSSD)* + +Nello sviluppo di software open source (OSSD), oltre alla pubblicazione del codice sorgente, l'intero processo di sviluppo si svolge pubblicamente. Tutto, dai requisiti (issue) al codice sorgente, è trasparente. L'OSSD è supportato da strumenti di comunicazione pubblici (mailing list, forum ecc.), da un sistema di gestione delle versioni (git), da elenchi di errori e funzionalità, da una roadmap e da strumenti per sviluppatori. Grazie a questo metodo di lavoro trasparente ne beneficia l'intera community e diventa possibile la collaborazione oltre i confini organizzativi. Con questo approccio, al termine del progetto non è necessaria alcuna ulteriore attività di pubblicazione, poiché ciò è già stato considerato all'inizio del progetto. + +*Compiti* + +* Elaborare una stima approssimativa dell'onere per la fase di analisi. A seconda delle dimensioni e della complessità dell'applicazione, l'onere varia tra tre giorni e due settimane. +* Liberare risorse per le fasi successive, in particolare per l'analisi. +* Approvare in linea di principio la pubblicazione dell'applicazione come open source. + +*Decisione:* + +L'accordo di principio e la fattibilità per pubblicare l'applicazione come open source sono dati. + +=== Ridurre al minimo l'onere + +Le liste di controllo e le istruzioni sono strutturate in modo da ridurre al minimo l'onere legato alle pubblicazioni. Una pianificazione anticipata e coerente della pubblicazione all'inizio del progetto e uno sviluppo orientato alla pubblicazione riducono al minimo l'onere. Un certo onere amministrativo e determinati costi sono inevitabili ++[++Le2023++]++. Essi possono eventualmente essere recuperati mediante community con costi di sviluppo condivisi (cfr. link:em002-4.pdf[Em002-4 Guida alle community OSS]). + +=== Scelta della lingua di pubblicazione + +La scelta della lingua deve tenere conto sia del potenziale pubblico target sia del metodo di lavoro del team. Fortunatamente le traduzioni sono diventate molto più semplici grazie ai nuovi strumenti. Entrano in considerazione le lingue ufficiali della Confederazionefootnote:[https://www.fedlex.admin.ch/eli/cc/1999/404/it#art_70] e l'inglese. + +Se il progetto ha rilevanza internazionale, l'inglese dovrebbe essere la lingua target. Per una pubblicazione successiva un cambio di lingua ha naturalmente poco senso. + +Come minimo il file README.md dovrebbe essere disponibile in più lingue, affinché gli interessati possano vedere subito se il progetto è rilevante per loro. + +La comunicazione pubblica dovrebbe considerare in primo luogo il pubblico target. Occorre inoltre tenere presente che si tratta di comunicazione pubblica della Confederazione. + +*Nota*: con la pubblicazione l'Amministrazione federale accede a un nuovo canale di comunicazione pubblica. Se ciò non avviene con cura e professionalità, l'immagine pubblica della Confederazione può rapidamente risentirne. + +== Analisi e preparazione + +*Obiettivo:* i lavori necessari a una pubblicazione open source sono conclusi. Le decisioni relative alla licenza e al tipo di community sono state prese. Ciò avviene mediante la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[lista di controllo Em002-2.2 Analisi e preparazione OSS]. + +=== Analisi del codice sorgente + +Il codice sorgente da pubblicare e gli altri documenti correlati sono analizzati prima della pubblicazione. Tale analisi garantisce che non vengano pubblicate informazioni confidenziali. + +Se è prevista la pubblicazione di un ampio volume di codice sorgente, si raccomanda di utilizzare strumenti automatizzati adeguati per le attività seguenti. + +I dettagli sono definiti nella sezione E. + +*Compiti* + +* Verificare come sono state attuate la qualità del codice esistente e le direttive (p. es. ISO/IEC 25010:2023footnote:[ISO/IEC 25010:2023 - Systems and software Quality Requirements and Evaluation (SQuaRE) https://www.iso.org/standard/78176.html]). +* Assicurarsi che non siano contenuti dati (di test) sensibili, p. es. dati basati su persone o casi reali. +* Aggiornare la documentazione del software (cfr. allegato). +* Cancellare i file superflui o i documenti e dati obsoleti. +* Verificare il codice sorgente alla ricerca di segreti o credenziali.footnote:[https://www.ncsc.admin.ch/ncsc/it/home/aktuell/im-fokus/2022/git.html] +* Svolgere test di sicurezza mirati e istituire in seguito un programma di bug bounty (pubblico).footnote:[https://www.ncsc.admin.ch/ncsc/it/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +* Verificare tutte le librerie utilizzate quanto alle licenze e allestire i relativi elenchi (attribuzioni). Se una libreria è disponibile sotto più licenze, ciò va indicato di conseguenza negli elenchi. +* Descrivere il deployment (pipeline CI/CD) ed eventualmente allestire un'istanza dimostrativa. + +Queste attività sono indipendenti dalla pubblicazione, ma costituiscono presupposti per una buona qualità del software e per garantire la conformità. L'osservanza di tali misure semplifica la collaborazione, accresce la qualità dei contributi esterni e migliora l'immagine del software o dell'autorità. + +=== Scelta della licenza + +*Cfr. link:em002-3.pdf[Em002-3 Guida alle licenze OSS].* + +Andrebbero utilizzati testi di licenza affermati a livello internazionale, ove ciò sia possibile e opportuno. Le pretese di responsabilità dei licenziatari vanno escluse nella misura consentita dal diritto. + +*Compiti* + +* Verificare eventuali dipendenze da licenze esistenti. +* Per il codice di terzi, verificare la compatibilità delle condizioni d'uso con la licenza prevista e, se necessario, sostituire il codice.footnote:[Cfr. Em002-3 riguardo alla scelta di codice o librerie di terzi per uno stack tecnologico e riguardo alla compatibilità della licenza.] +* Scegliere la licenza adeguata. + +La compatibilità delle licenze può essere verificata con strumenti quali ORT Toolkit,footnote:[https://oss-review-toolkit.org/] Black Duck,footnote:[https://www.blackducksoftware.com] FOSSAfootnote:[https://www.fossa.com] o FOSSology.footnote:[https://www.fossology.org] Il ToDo Group footnote:[https://landscape.todogroup.org/] offre una panoramica aggiornata degli strumenti. + +*Decisione:* + +* Stabilire e documentare sotto quale licenza il software sarà pubblicato. + +=== Documentazione open source + +Con la pubblicazione si attende un minimo di documentazione. Nell'ecosistema open source si sono affermati diversi documenti. Essi offrono ai visitatori una rapida panoramica del software, licenza compresa. + +Sono attesi i documenti seguenti: + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Documento* |*Descrizione / contenuto:* +|README(.md) |Funge da documento introduttivo e offre una rapida panoramica di scopo, portata, stato, licenza e gruppi target del progetto. +|LICENSE |Descrizione della licenza scelta nel progetto +|CONTRIBUTING(.md) |Descrive il processo per contribuire al progetto. +|CODE++_++OF++_++CONDUCT(.md) |Il codice di condotta stabilisce le norme sociali attese all'interno del progetto. +|CHANGELOG(.md) |Tiene un elenco delle modifiche nelle versioni del software. +|THIRD-PARTY-LICENSES(.md) |Descrizione delle licenze di terzi o dei componenti utilizzati. +|Getting started |Breve guida all'installazione e all'utilizzo del software. +|Create Gitignore |Descrive i documenti che non saranno pubblicati, p. es. configurazioni, dati di test o contenuti generati. Le informazioni protette e sensibili dovrebbero essere gestite al di fuori del progetto, in strumenti e archivi appositi e adeguati. +|publiccode.yml |Metadati strutturati per la descrizione del software, sulla base dello standard https://yml.publiccode.tools/. Il formato definito rende la pubblicazione più facilmente reperibile e riutilizzabile. Ulteriori informazioni nell'allegato F. +|=== + +Tabella 1 – Documenti open source + +Ulteriori dettagli tecnici su questi documenti sono descritti nell'allegato. + +*Compiti* + +* Allestire la documentazione standard. +* Riportare copyright, indicazioni di licenza e clausola di esclusione della responsabilità in tutti i file. +* A seconda della piattaforma di pubblicazione possono essere aggiunte descrizioni supplementari. + +*Decisione:* + +* Decisione definitiva di pubblicare l'applicazione come open source. + +== Pubblicazione e annuncio + +*Obiettivo:* l'applicazione è pubblicata come open source e facilmente reperibile da terzi. Tutti i componenti sono pronti per la pubblicazione e la community è costituita o consolidata. Ciò avviene mediante la link:em002-2-3-checklist-oss-release-and-publication.pdf[lista di controllo Em002-2.3 Rilascio e pubblicazione OSS]. In una certa misura si tratta di ricapitolare decisioni già prese. + +=== Scelta della piattaforma + +Esistono diversi modi per pubblicare codice sorgente. La tabella seguente offre una panoramica dei possibili sistemi di gestione del codice sorgente (SCM) e delle piattaforme. + +La piattaforma adeguata va scelta prima della pubblicazione vera e propria. Alcune autorità federali sono già presenti su GitHub.footnote:[Il sito https://ossbenchmark.com offre una panoramica delle organizzazioni e autorità attive su GitHub.] In tal caso è opportuno utilizzare piattaforme già consolidate. + +*Raccomandazione:* + +Attualmente raccomandiamo di istituire un'organizzazione su GitHub per ogni autorità federale ai fini della pubblicazione del codice sorgente. All'interno di tale organizzazione possono essere creati i progetti (repository) corrispondenti e gestiti gli utenti con le relative autorizzazioni. In futuro dovrebbe essere istituita una piattaforma federale centrale. Per garantire una gestione ottimale degli utenti e preservare la reputazione della Confederazione Svizzera, è importante utilizzare un numero minore di repository, ma meglio gestiti. + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Piattaforma* |*Caratteristiche* +|GitHubfootnote:[https://github.com/about/] |Piattaforma online di Microsoft, ampiamente diffusa. Una grande quantità di software open source è ospitata su GitHub. Offre molti strumenti supplementari oltre all'SCM. Disponibile in versione Free ed Enterprise (abbonamento). +|GitLabfootnote:[https://about.gitlab.com/] |Piattaforma online dell'omonima impresa GitLab, essa stessa pubblicata sotto una licenza open source. Offre molti strumenti supplementari oltre all'SCM. Può anche essere gestita localmente, offrendo così un certo grado di sovranità. Disponibile in versione Free ed Enterprise (abbonamento). +|Bitbucketfootnote:[https://bitbucket.org/product/en] |Piattaforma online di Atlassian, specificamente integrata nel suo ecosistema. Disponibile in versione Free ed Enterprise (abbonamento). +|Sistema SCM interno |Se è messa a disposizione una piattaforma SCM propria, anch'essa può pubblicare e rendere disponibili determinati repository o progetti. L'esercizio deve essere assicurato. +|Piattaforma federale |Attualmente non esiste una piattaforma federale centrale per la pubblicazione di software. Una misura in tal senso è proposta in link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale]. +|Sito web, server FTP pubblico ecc. |La LMeCA non definisce come il software debba essere pubblicato. Una pubblicazione minimafootnote:[Una pubblicazione minima comprende soltanto la pubblicazione del codice sorgente e di altri artefatti minimi. Questo tipo di pubblicazione soddisfa le prescrizioni della LMeCA. Con essa non si consegue tuttavia alcun valore aggiunto.] può avvenire anche su un sito web o altre risorse accessibili al pubblico. Ciò non è tuttavia adatto a una collaborazione duratura nel senso dell'open source. +|=== + +Tabella 2 – Piattaforme per la pubblicazione di software open source + +Se il software è pubblicato congiuntamente a un partner o a un'organizzazione esterna, occorre assicurarsi che siano disponibili le autorizzazioni e gli accessi adeguati al codice sorgente. + +*Compiti* + +* Valutare la piattaforma adeguata, compresa l'organizzazione o il progetto corrispondente. +* Se non ancora chiarito, stabilire la denominazione del progetto o del repository. +* Definire e verificare le autorizzazioni sul repository. +* Assicurare una governance adeguata e un'eventuale replica del codice sorgente. + +*Decisione:* + +* La piattaforma per la pubblicazione è stata scelta in modo appropriato. + +=== Pubblicazione del software + +Una volta chiariti i presupposti, il software può essere pubblicato. + +*Compiti* + +* Verificare i presupposti mediante la link:em002-2-3-checklist-oss-release-and-publication.pdf[lista di controllo Em002-2.3 Rilascio e pubblicazione OSS]. +* L'accesso alla piattaforma è disponibile e la governance è chiarita. +* Pubblicazione del codice sorgente e della documentazione da parte del team di sviluppo. + +=== Comunicazione + +Dopo la pubblicazione vera e propria, ulteriori attività di comunicazione possono essere avviate dall'autorità federale interessata e al suo interno. Esse favoriscono la diffusione e apportano il valore aggiunto desiderato dalla pubblicazione. + +*Compiti* + +* Descrizione nell'hosting del repository, impostazioni di sicurezza ecc. +* Comunicazione interna ed eventualmente esterna +* Redigere un messaggio destinato alla community. +* Far conoscere l'applicazione all'interno dell'organizzazione e negli organi specializzati, promuoverne l'utilizzo e i contributi. +* Creare un file publiccode.ymlfootnote:[Lo standard di metadati https://yml.publiccode.tools/ descrive il software. Il formato definito rende la pubblicazione più facilmente reperibile e riutilizzabile. Ulteriori informazioni nell'allegato F.] nel repository per il catalogo OSS dell'Amministrazione federale.footnote:[Catalogo OSS: https://www.opensource.admin.ch] + +=== Costituzione e cura della community + +Pubblicando un software può nascere una community in grado di contribuire allo stesso mediante contributi (pull request), domande, proposte di documentazione ecc. Per disporre di una community attiva è necessario un onere considerevole sia per la costituzione sia per la cura continua. Una community ben funzionante riduce al minimo i fork indesiderati del software. L'obiettivo è qui attivare il valore aggiunto della community mediante attività mirate. Anche in caso di pubblicazione minima andrebbe definito come trattare riscontri e domande sul software. + +*Compiti* + +* Chiarire chi siano i potenziali utenti o gli interessati. +* Determinare la forma adeguata per l'applicazione concreta mediante la link:em002-4.pdf[Em002-4 Guida alle community OSS]. +* Costituire la community. +* Attività di costituzione della community. + +== Allegato + +=== Modifiche rispetto alla versione precedente + +* Capitoli 4.3 e 5.3: pubblicazione completata con publicode.yml +* È stato aggiunto l'allegato F «Public Code» +* Diverse modifiche e miglioramenti redazionali minori + +=== Riferimenti + +Cfr. _Em002 Linee guida strategiche per il software open source nell'Amministrazione federale_. + +=== Abbreviazioni + +Cfr. link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale] ed link:em002-6.pdf[Em002-6 FAQ sull'OSS]. + +=== Documentazione di accompagnamento link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Lista di controllo Analisi e preparazione OSS] – Documentazione + +=== Documentazione del codice sorgente + +La documentazione dovrebbe far parte del codice sorgente del progetto, affinché le modifiche alla documentazione siano archiviate in modo inalterabile e la documentazione sia versionata parallelamente al progetto. Ciò garantisce automaticamente che la documentazione, se correttamente curata, non diverga dallo stato di sviluppo del progetto e che la documentazione relativa a versioni precedenti del progetto possa essere consultata in qualsiasi momento. + +Inoltre ciò offre a terzi la possibilità di contribuire facilmente a modifiche della documentazione. + +Come linguaggio di marcatura per la formattazione del testo andrebbe utilizzato Markdown, in quanto facile da scrivere, ampiamente diffuso e leggibile dalle macchine. I documenti Markdown sono inoltre visualizzati in un formato target ben leggibile da tutte le piattaforme correnti. I documenti Markdown possono essere resi in qualsiasi formato target indipendentemente dalla piattaforma utilizzata, mediante generatori di siti statici quali Jekyll, MkDocs, Gatsby o Sphinx, per esempio con le prescrizioni di identità visiva di un'amministrazione. + +=== Destinatari e struttura della documentazione + +La documentazione di progetto dovrebbe rivolgersi sia agli utenti finali sia agli specialisti tecnici e non concentrarsi quindi esclusivamente sulla tecnica. Per la scelta della lingua si veda il capitolo 3.6. Ciò favorisce la diffusione del software. + +Un file README.md funge da documento introduttivo. I file con questo nome sono riconosciuti da tutte le piattaforme correnti e visualizzati come punto d'ingresso alla documentazione.footnote:[Maggiori informazioni sulla creazione di un file readme: https://www.makeareadme.com/] + +README.md dovrebbe offrire una rapida panoramica di scopo, portata, stato, licenza e gruppi target del progetto. Concretamente README.md dovrebbe contenere i punti seguenti: + +* Nome del software +* Breve descrizione dello scopo e della funzione del software. Portata e possibili limiti +* Istruzioni d'installazione +* Utilizzo del software +* Rinvio a un'eventuale istanza dimostrativa +* Indicazioni di supporto e contatto +* Come contribuire al software open source (Contributing) +* Licenza utilizzata (Licence) +* Stato del progetto / stato di sviluppo + +=== Evidenziare l'open source e archiviare la licenza + +Subito dopo la dichiarazione d'intenti andrebbe indicato in modo chiaro e inequivocabile che il progetto è software open source. La licenza utilizzata dal progetto andrebbe indicata con il corrispondente identificatore SPDXfootnote:[Identificatore SPDX – https://spdx.org/about] e collegata al testo concreto della licenza contenuto nel file LICENSE. I modelli di licenza contengono tipicamente una parte variabile (p. es. nome del progetto, anno di copyright, nome dell'autore) da adattare nel file LICENSE. + +La maggior parte delle piattaforme riconosce le licenze contenute in un file LICENSE e offre informazioni chiare sulla licenza, p. es. una breve sintesi delle condizioni di licenza. + +Si raccomanda di aggiungere a ogni file sorgente creato un'intestazione minima di licenza e copyright. Le intestazioni esistenti nei file esistenti non andrebbero modificate. Se si contribuisce a un progetto con regole chiare sulle intestazioni, queste vanno rispettate. + +Per maggiori dettagli si veda: Producing Open Source Software: State That the Project is Free.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Stato di sviluppo attuale + +Per mostrare rapidamente lo stato del progetto, lo stato di sviluppo attuale andrebbe documentato in README.md. Per i lettori è importante sapere se il progetto si trova in uno stato maturo o all'inizio dello sviluppo, se è attivamente curato e con quale frequenza vengono pubblicate nuove versioni. + +Questa sezione può descrivere quale tipo di sostegno da parte di terzi sia attualmente più importante per il progetto. Potrebbe trattarsi per esempio di uno sviluppatore con conoscenze tecnologiche specifiche o di una persona incaricata di rielaborare la documentazione del progetto. + +Per maggiori dettagli si veda Producing Open Source Software: Development Status.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Istanza dimostrativa + +Per le applicazioni si raccomanda di mettere a disposizione un'istanza dimostrativa, affinché l'applicazione possa essere provata senza oneri d'installazione. A seconda del tipo di applicazione, l'istanza dimostrativa può essere l'installazione produttiva o un ambiente di test. È importante che i lettori possano accedere all'istanza corrispondente nel modo più autonomo e diretto possibile. + +In alternativa molti progetti open source mettono a disposizione strumenti per avviare facilmente l'applicazione. Ciò può avvenire per esempio mediante container, applicazioni portatili o script d'installazione. + +=== Persona di contatto specializzata e titolarità del progetto + +Il file README.md dovrebbe indicare la principale persona di contatto specializzata, affinché altre amministrazioni e organizzazioni interessate possano mettersi in contatto nel modo più diretto possibile. + +Gli indirizzi e-mail personali non andrebbero utilizzati. + +Il file README.md dovrebbe inoltre descrivere brevemente quale organizzazione sia titolare del progetto, in particolare se per esso è stata costituita un'associazione. + +== Documentazione d'installazione + +Per le applicazioni, README.md dovrebbe rinviare a una documentazione d'installazione che descriva i requisiti hardware e software, quali componenti infrastrutturali (per esempio banche dati) siano utilizzati e come l'applicazione possa essere installata ed esercita. + +=== Developer Guidelines + +Il punto d'ingresso alle Developer Guidelines andrebbe archiviato in un file Markdown CONTRIBUTING.md, collegato in README.md. Le Developer Guidelines fanno parte della documentazione estesa destinata agli sviluppatori che desiderano contribuire al progetto e si concentrano in primo luogo sulla collaborazione e la comunicazione nel progetto piuttosto che sulla tecnica. + +Le Developer Guidelines dovrebbero contenere i punti seguenti e rinviare se del caso ai documenti corrispondenti: + +* Un rinvio al codice di condotta del progetto. Il codice di condotta stabilisce le norme sociali attese all'interno del progetto. +* Si raccomanda di scegliere come codice di condotta il Contributor Covenant Code of Conduct, pubblicato sotto licenza CC-BY-4.0,footnote:[https://creativecommons.org/licenses/by/4.0/] oppure di basarvisi.footnote:[https://www.contributor-covenant.org/version/1/4/code-of-conduct.html] +* Un'indicazione secondo cui il progetto effettua revisioni del codice sotto forma di pull request GitHub, con rinvio alla documentazione GitHub sulle pull request. + +Infine occorre rinviare alla Developer Documentation. + +=== Developer Documentation + +Mentre le Developer Guidelines descrivono la collaborazione e le norme sociali del progetto, la Developer Documentation si concentra sugli aspetti tecnici della partecipazione allo sviluppo del progetto. Essa dovrebbe descrivere almeno i punti seguenti: + +* Quali dipendenze tecniche presenta il progetto e quali strumenti sono necessari per il suo sviluppo. +* Quali regole formali si applicano al codice sorgente del progetto, per esempio in materia di formattazione. +* Come è organizzato il codice sorgente del progetto e come le funzioni possono essere testate tecnicamente. +* Uno schizzo dell'architettura con una descrizione sommaria della stessa, preferibilmente con delimitazione del contesto e vista sommaria dei componenti.footnote:[Quadro architetturale MMB (metodo di modellizzazione della Confederazione) o arc42. http://arc42.org/] +* Per le applicazioni: come l'applicazione può essere avviata a scopo di sviluppo o debug e quali componenti infrastrutturali sono necessari a tal fine. + +== Documentazione di accompagnamento della link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[lista di controllo Em002-2.2 Analisi e preparazione OSS] – Codice sorgente + +=== Cronologia del codice sorgente + +Il codice sorgente di un progetto è di norma archiviato in un sistema di gestione del codice sorgente (SCM) quale GitHub. Tali sistemi memorizzano non soltanto lo stato attuale del codice sorgente, ma anche le modifiche apportate nel tempo. Ciò comprende in particolare le cancellazioni nel codice sorgente, inclusi i file cancellati. + +L'SCM contiene inoltre metainformazioni sulle modifiche del codice sorgente, quali il nome e l'indirizzo e-mail dell'autore o le firme PGP per commit e tag firmati. + +=== Dati sensibili, protetti o confidenziali + +Il codice sorgente e la sua cronologia possono contenere dati accessibili al pubblico, quali un elenco dei codici postali, dati generati casualmente o dati sintetici. + +Il codice sorgente e la sua cronologia non devono contenere dati o informazioni (personali) sensibili o confidenziali ai sensi della legge federale sulla protezione dei dati (LPD) e della legge sulla sicurezza delle informazioni (LSIn). Ciò comprende in particolare: + +* Nomi utente e password o altri segreti quali chiavi private, token di accesso o certificati. +* Nomi DNS interni, URL, nomi host, indirizzi IP, strutture di rete o nomi di unità. +* Nomi, indirizzi, immagini o dati personali analoghi senza il consenso della persona interessata +* Dati anonimizzati o pseudonimizzati (poiché è possibile annullare l'anonimizzazione o la pseudonimizzazione) + +Anche se lo stato attuale del codice sorgente è privo di dati o informazioni sensibili, protetti o confidenziali, tali dati o informazioni possono comunque essere recuperati dalla cronologia del sistema SCM se in passato hanno mai fatto parte del codice sorgente o delle metainformazioni dell'SCM. La pulizia dello stato attuale del codice sorgente non rimuove completamente tali informazioni.footnote:[Una possibilità per ripulire un repository è offerta dallo strumento https://rtyley.github.io/bfg-repo-cleaner/[BFG Repo-Cleaner]] + +In caso di dubbio si raccomanda pertanto di rimuovere completamente la cronologia dopo la pulizia del codice sorgente, prima di pubblicare quest'ultimo. + +I nomi e gli indirizzi e-mail degli autori del codice sorgente sono di norma disponibili direttamente nel codice sorgente o nei metadati dell'SCM, per esempio nei commit GitHub o nei tag GitHub annotati. Dal profilo giuridico ciò non è problematico, poiché spetta all'impresa di sviluppo disciplinare la pubblicazione di tali informazioni. Si raccomanda tuttavia di sensibilizzare l'impresa di sviluppo o i collaboratori interni della Confederazione sul fatto che i nomi e gli indirizzi e-mail degli autori del codice sorgente possono essere divulgati al momento della pubblicazione del software. + +=== Rimozione delle indicazioni sugli autori + +La cronologia del software può essere modificata per nascondere le indicazioni sugli autori. Alcuni strumentifootnote:[https://www.adamdehaven.com/blog/update-commit-history-author-information-for-git-repository/] possono automatizzare ampiamente questa fase. + +La rimozione delle indicazioni sugli autori elimina l'attribuzione, la tracciabilità e le informazioni di contatto. L'onere che ne deriva non va sottovalutato, a seconda del volume di codice sorgente. Per questi motivi la rimozione degli autori non è raccomandata. I nomi possono essere pubblicati se a) è stato ottenuto il consenso delle persone interessate e b) non vi si oppongono motivi rilevanti per la sicurezza. + +=== Considerazione delle licenze delle librerie + +Praticamente ogni progetto utilizza librerie di terzi (librerie software, dipendenze) per accedere a funzioni di uso frequente senza doverle programmare. Tali librerie dipendono di norma da altre librerie, con conseguenti dipendenze a più livelli (dipendenze transitive). A seconda del linguaggio di programmazione, anche piccoli progetti possono presentare centinaia di dipendenze. + +I risultati di tale accertamento vanno considerati nella scelta della licenza conformemente alla link:em002-3.pdf[Em002-3 Guida alle licenze OSS] e nella link:em002-2-3-checklist-oss-release-and-publication.pdf[lista di controllo Em002-2.3 Rilascio e pubblicazione OSS]. + +Per ciascuna di tali dipendenze occorre assicurarsi che la sua licenza sia compatibile con quella del progetto. Sono particolarmente problematiche le dipendenze che non sono soggette a una licenza open source, che non hanno dichiarato alcuna licenza o che utilizzano una licenza virale non corrispondente a quella del progetto. Alcune librerie sono licenziate sotto più di una licenza e consentono all'utente di sceglierne una. + +* In tutti i principali linguaggi di programmazione le dipendenze del progetto (comprese quelle transitive) e le relative licenze possono essere elencate automaticamente. Tra questi figurano: +* Il plugin Project Info Reports per il gestore di pacchetti Apache Maven per progetti Java, che mediante il rapporto sulle dipendenze genera un output HTML di tutte le librerie utilizzate, licenza dichiarata compresa.footnote:[Info sul plugin https://maven.apache.org/plugins/maven-project-info-reports-plugin/plugin-info.html] +* Il NPM Licence Checker per il gestore di pacchetti NPM per progetti JavaScript, che può restituire tutte le librerie utilizzate, licenza dichiarata compresa, in vari formati, p. es. CSV.footnote:[NPM Licence Checker https://github.com/davglass/license-checker] +* Il Licence Finder di Pivotal, che supporta diversi gestori di pacchetti e linguaggi di programmazione, tra cui Ruby Gems, Python Eggs e Godeps.footnote:[Licence Finder di Pivotal https://github.com/pivotal/LicenseFinder] + +== Utilizzo di librerie con licenze proprietarie + +Le librerie soggette a una licenza proprietaria sono in linea di principio problematiche nei progetti open source e di regola non possono essere utilizzate, in particolare se il codice sorgente è stato pubblicato sotto una licenza virale quale l'AGPL. + +Vi preghiamo di rivolgervi al fornitore e al servizio giuridico dell'ufficio interessato per verificare se e a quali condizioni la libreria proprietaria possa essere utilizzata nel vostro progetto. + +=== Utilizzo di gestori di pacchetti + +Praticamente tutti i linguaggi di programmazione diffusi mettono a disposizione gestori di pacchetti per amministrare le proprie dipendenze, quali Apache Maven per i progetti Java, NPM per i progetti JavaScript o NuGet per i progetti .NET. + +Utilizzando un gestore di pacchetti, le dipendenze impiegate dal progetto non fanno più direttamente parte del suo codice sorgente, per esempio mediante la copia del codice sorgente della dipendenza nel progetto o la copia delle dipendenze in forma binaria. Il progetto ottiene invece tutte le sue dipendenze tramite le dichiarazioni del gestore di pacchetti. + +Ciò consente di elencare e referenziare correttamente tutte le dipendenze. Impedisce inoltre la modifica involontaria del codice delle dipendenze. Se sono necessarie modifiche, esse vanno effettuate direttamente alla fonte della dipendenza. + +=== Dichiarazione della licenza del progetto nel descrittore del gestore di pacchetti + +Il progetto dovrebbe dichiarare la propria licenza nel descrittore appropriato del gestore di pacchetti, utilizzando l'identificatore SPDX,footnote:[Identificatore SPDX – https://spdx.org/] affinché la licenza del progetto possa essere restituita dal gestore di pacchetti. Ciò è particolarmente importante per le librerie, affinché i loro utenti possano interrogarne automaticamente la licenza tramite il gestore di pacchetti. + +=== Attribuzione e indicazioni di copyright + +Molte librerie sono soggette a una licenza che richiede al loro utente un'indicazione di copyright originale o un'attribuzione. + +Tra queste figurano le licenze seguenti (estratto): + +Apache 2.0, ASL 1.1 (Apache 1.1), BSD, BSD 3-Clause, Creative Commons «Attribution» (CC BY), MIT, ISC + +Per le altre si veda l'elenco delle licenze riconosciute dall'OSI.footnote:[Le licenze open source sono licenze conformi all'Open Source Definition — in breve, consentono di utilizzare, modificare e condividere liberamente il software. https://opensource.org/licenses] + +Nella pratica ciò riguarda quasi tutte le librerie utilizzate. Poiché il numero di librerie impiegate nei piccoli progetti è già molto elevato, un'indicazione di copyright giuridicamente corretta o l'attribuzione necessaria è possibile soltanto con un onere considerevole. + +Si raccomanda pertanto di procedere come segue: + +* Allestire un elenco delle librerie utilizzate, mediante i meccanismi del gestore di pacchetti o strumenti quali il NPM Licence Checker o il Licence Finder di Pivotal. +* Preparare manualmente l'elenco affinché contenga le informazioni seguenti: nome ufficiale del progetto della libreria, sito web del progetto della libreria, licenza utilizzata per la libreria sotto forma di identificatore SPDX con collegamento al testo della licenza. +* Collocare l'elenco nel codice sorgente del progetto, p. es. in un file THIRD-PARTY-LICENSES.md. +* Per le applicazioni: inserire un collegamento a THIRD-PARTY-LICENSES.md in una finestra di dialogo «Informazioni su» o «Informazioni su questa applicazione». +* La finestra di dialogo «Informazioni su» è ampiamente utilizzata a tale scopo, per esempio in Google Chrome (nella finestra «Informazioni su Chrome»). +* Per le librerie: rinviare in README.md a THIRD-PARTY-LICENSES.md. +* Nell'ambito del processo di code review, assicurarsi che le modifiche alle librerie siano riportate in THIRD-PARTY-LICENSES.md. + +== Esempio di blocco di codice THIRD-PARTY-LICENSES.md + +Questo progetto utilizza software open source: + +* Spring Boot, http://projects.spring.io/spring-boot/[projects.spring.io/spring-boot] sotto licenza http://www.apache.org/licenses/LICENSE-2.0[Apache-2.0] +* caniuse-db, https://github.com/Fyrd/caniuse[github.com/Fyrd/caniuse] sotto licenza https://creativecommons.org/licenses/by/4.0/[CC-BY-4.0] + +=== Documentazione di accompagnamento della lista di controllo Em002-2.3 Rilascio e pubblicazione OSS + +==== Pubblicazione con publiccode.yml + +Publiccode.yml è uno standard di metadati per repository di software contenenti software sviluppato o acquistato da amministrazioni pubbliche. L'obiettivo è rendere tale software più facilmente reperibile e riutilizzabile. Lo standard di metadati è affermato a livello internazionale ed è descritto pubblicamente all'indirizzo https://yml.publiccode.tools/. Un file publiccode.yml contiene tipicamente informazioni quali titolo e descrizione (possibile in più lingue), stato di sviluppo, indicazioni di contatto, informazioni sulla licenza ecc. Per la Svizzera sono previste estensioni specifiche per il Paese. + +Per ogni software va creato un file yml nella directory principale del repository. Se la soluzione si compone di più repository (ausiliari), è sufficiente un unico file, poiché esso descrive il caso d'applicazione della soluzione. + +Sulla base dei dati strutturati contenuti nei file publiccode.yml viene generato, per l'intera Amministrazione federale, un https://www.opensource.admin.ch/[catalogo OSS] (https://www.opensource.admin.ch[opensource.admin.ch]). Il catalogo offre una panoramica del software pubblicato e agevola il reperimento e il riutilizzo di soluzioni esistenti. + +Se viene creato un nuovo repository o una nuova organizzazione, ciò va segnalato per l'inserimento nel catalogo OSS all'indirizzo e-mail opensource@bk.admin.ch. + +Oltre al catalogo OSS è disponibile anche un editor grafico e validatore per i file publiccode.yml. + +Catalogo OSS ed editor: https://www.opensource.admin.ch/ + +=== Ulteriori fonti e licenza + +La lista di controllo, la documentazione di accompagnamento e i relativi modelli si basano in parte sulle fonti seguenti: + +* Google Open Source Docs di Google LLC, sotto licenza CC-BY-4.0footnote:[Google Open Source Docs – https://opensource.google.com/docs/] +* Producing Open Source Software, How to Run a Successful Free Software Project di http://www.red-bean.com/kfogel C-BY-SA-4.0footnote:[Producing Open Source Software, How to run a Successful Free Software Project - https://producingoss.com/] +* GitHub Healthy Contributionsfootnote:[https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions[GitHub Healthy Contributions]] +* Standard for Public Codefootnote:[Standard for Public Code – https://standard.publiccode.net/] +endif::[] + +ifeval::["{lang}" == "rm"] +*Exclusiun da responsabladad:* Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source.footnote:[Recumandaziun per l'informatica da l'administraziun federala tenor ++[++P035++]++ _chapitel 4.6_]footnote:[Per las definiziuns da las classificaziuns INTERN e CONFIDENZIAL vesair l'_ordinaziun dals 8 da november 2023 davart la segirezza da las infurmaziuns tar la Confederaziun e l'armada (OSIn; CS 128.1)_]footnote:[Vesair nota a pe 1]footnote:[Secturs da planisaziun tenor la _strategia TIC da la Confederaziun 2020-2023 dals 3 d'avrigl 2020 (SB000)_] Ulteriuras infurmaziuns chattais Vus en il {url-repo}/tree/main[README]. + +''''' + +== Resumaziun per la direcziun + +Questas instrucziuns descrivan il proceder per la publicaziun dal code da funtauna dal software che las autoritads federalas sviluppan u fan sviluppar per ademplir lur incumbensas, tenor l'art. 9 EMBAG.footnote:[Lescha federala _++[++EMOTA2023++]++_] Excepziuns datti, sche dretgs da terzas persunas u motivs relevants per la segirezza excludan u restrenschan questa publicaziun. Publitgar munta che mintgin dastga utilisar, sviluppar vinavant e derasar il software. I na vegnan incassadas naginas taxas da licenza. + +Questas instrucziuns s'adresseschan a las persunas ch'èn responsablas per la publicaziun dal code da funtauna e che la realiseschan. + +[mermaid,align="center",alt="Survista dal process da publicaziun OSS"] +.... +flowchart TD + S(["Cumenzament"]) + A["Sclerida preliminara"] + B["Analisa e preparaziun"] + C["Publicaziun"] + S --> A + A --> B + B --> C +.... + +La materia è repartida en trais parts principalas: + +* L'emprima part (chapitel 3) tracta las *scleridas preliminaras* e las excepziuns tenor l'EMBAG. +* La segunda part (chapitel 4), *Analisa e preparaziun*, examinescha il code da funtauna e il prepara tenor basegn. Ultra da quai vegn fatga la tscherna da la licenza. +* La terza part (chapitel 5), *Publicaziun ed annunzia*, descriva la publicaziun propria ed ulteriuras mesiras sco la communicaziun e la construcziun d'ina communitad adattada. + +*Trais glistas da controlla* accumpognan e documenteschan il process. + +Cumplettaziuns tecnicas èn inditgadas en l'agiunta. + +== Introducziun + +Tar la relaschada da software open source sto vegnir distinguì tranter il *contribuir da code da funtauna e da documentaziun a software open source existent* e la *publicaziun sco project open source independent*. + +Il emprim cas cumpiglia tipicamain reparaziuns da sbagls ed extensiuns funcziunalas. Tut tenor il tip da licenza e l'utilisaziun dal software sto u po il code da funtauna vegnir relaschà sut la licenza existenta dal project open source. Eventualmain sto vegnir observada ina cunvegna da relaschada. + +En il segund cas, il cumenzament d'in nov project open source, pon la governanza e la licenza vegnir tschernidas fundamentalmain libramain. Da resguardar è unicamain la licenza, sut la quala èn publitgads eventuals elements da software integrads en il nov project. Ulteriurs detagls davart la tscherna da la licenza sa chattan en il document link:em002-3.pdf[Em002-3 Guida da licenzas OSS]. Sch'i sa lascha realisar in plivalur per l'administraziun federala tras ina communitad u sche l'administraziun federala vul crear in ecosistem, sto vegnir emplenida supplementarmain la link:em002-4-1-checklist-oss-community.pdf[glista da controlla Em002-4.1 Communitad OSS] tenor la link:em002-4.pdf[Em002-4 Guida da communitads OSS]. + +La relaschada da software open source è dapli ch'ina pura mesira tecnica. Ella munta era da stabilir ina cultura averta correspundenta e da prender cun sai las persunas. Ina cultura open source cun success è ina maschaida d'avertadad, d'excellenza tecnica, d'ina fitg buna interacziun sociala e d'in engaschament cuminaivel. + +La grafica suandanta descriva las instrucziuns e las differentas caracteristicas. + +[mermaid,align="center",alt="Planta da decisiun per la relaschada da software"] +.... +flowchart TD + Start(["Cumenzament
sviluppà a partir dals 1.1.2024"]) + subgraph B1["1. Sclerida preliminara"] + T{"Gener dal software"} + end + subgraph B2["2. Analisa e preparaziun"] + I{"Han terzas persunas
in interess al software?"} + GJ["Sclerir la governanza e
la collavuraziun [Em002-4.1]"] + GT["Sclerir la governanza e
la collavuraziun [Em002-4.1]"] + O{"Svilup da software
open source?"} + end + subgraph B3["3. Publicaziun"] + M["Realisar ina relaschada minimala"] + P["Publicaziun dal software"] + D["Svilup da software
open source"] + C["Construir e tgirar
ina communitad [Em002-4]"] + end + Start --> T + T -->|"Svilup agen"| I + T -->|"Svilup cuminaivel"| GJ + T -->|"Project da terzas persunas"| GT + I -->|"Na"| M + I -->|"Gea, u imaginabel"| O + GJ --> O + GT --> D + O -->|"Na"| P + O -->|"Gea"| D + P --> C + D --> C + M --> E1(["Fin"]) + C --> E2(["Fin"]) +.... + +Illustraziun 1 – Planta da decisiun per la relaschada da software + +== Process da la sclerida preliminara + +*Finamira:* Chapir ils avantatgs e las consequenzas pussaivlas d'ina publicaziun dal software. Decider, sche il software po vegnir publitgà e, sche gea, sche la construcziun d'ina communitad activa paja. Indicaziun: La link:em002-2-1-checklist-oss-preliminary-assessment.pdf[glista da controlla Em002-2.1 Evaluaziun preliminara OSS] duess vegnir emplenida uschè baud sco pussaivel en il project, perquai che quai po influenzar la moda sco che il software vegn sviluppà. + +=== Relaschada tenor l'EMBAG + +Tenor l'art. 9 da la lescha federala dals 17 da mars 2023 ++[++EMOTA2023++]++ davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG) sto l'administraziun federala (concretamain l'art. 2 al. 1) publitgar il code da funtauna dal software ch'ella sviluppa u fa sviluppar per ademplir sias incumbensas. Excepziuns valan, sche dretgs da terzas persunas u motivs relevants per la segirezza excludan u restrenschan quai. + +Per software individual creà per incumbensa da la Confederaziun valan fundamentalmain las cundiziuns generalas da contract da la Confederaziun ++[++BBL-AGB++]++. Tenor la cifra 25.1 prevesan quellas che la proprietad dal code da funtauna e da la documentaziun passia al recepient da prestaziuns (la Confederaziun). Sche il software è vegnì acquistà cuminaivlamain da pliras organisaziuns u autras instituziuns, sto vegnir examinà, tgi ch'ha ils dretgs sin il code. Per exempel po la proprietad sa chattar tar in'associaziun fundada per quest intent. + +La pura utilisaziun da software standard na croda betg sut l'art. 9 EMBAG, ed ina relaschada na fiss per ordinari tuttina betg pussaivla, perquai ch'ils dretgs sin software standard restan savens tar il purschider (CGC da la Confederaziun per l'acquist da software standard). Extensiuns individualas da software standard s'adattan percunter fitg bain per ina publicaziun. Normalmain èn quellas en la proprietad da la Confederaziun. Puras adattaziuns da configuraziun s'adattan pli pauc per ina publicaziun. Il tema vegn tractà en link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist e dal software open source] sco er en ils documents ++[++KBB-MB++]++ e ++[++BBL-WL++]++. Fundamentalmain suttastattan extensiuns adina a l'art. 9 EMBAG. + +==== Il software en relaziun cun l'EMBAG + +La norma actuala ISO/IEC 24765 cuntegna trais definiziuns per software: + +. in program u in set da programs per manar computers +. programs e la documentaziun appartegnenta +. programs e, sch'applitgabel, la documentaziun associada sco er ulteriuras datas necessarias per il manaschi dal computer. + +Sin la basa da questa definiziun valan era scripts, macros u Infrastructure as Code (IaC) pli pitschens sco software. L'EMBAG sa referescha en l'artitgel 9 alinea 1 al code da funtauna. Tenor questa interpretaziun bastass ina publicaziun tenor la definiziun 1. Ina publicaziun senza la documentaziun appartegnenta è dentant da pitschen valur, perquai che il software na po betg vegnir utilisà tenor la definiziun 2. + +Per realisar sinergias cun terzas persunas sto vegnir prendida sco basa la definiziun 3. Concernent las datas munta quai concretamain datas da basa e configuraziuns da basa (per exempel valurs d'enumeraziun e datas da basa che duessan era vegnir messas a disposiziun sco open source). + +Projects, scripts u exempels da code pli pitschens pon era vegnir publitgads ensemen en in sulet repositori, sche l'autoritad federala considerescha quai sco raschunaivel. En quest cas pon questas instrucziuns e las glistas da controlla correspundentas vegnir emplenidas ina giada. + +Tar la decisiun, tge ch'i vegn publitgà e co, ston vegnir resguardads la proporziunalitad e la lavur. + +==== Gener dal software + +Sco mussà en l'illustraziun 1 vegn distinguì tranter svilup agen, svilup cuminaivel e projects da terzas persunas. Mintga constellaziun ha autras consequenzas. Independentamain da co che il software vegn sviluppà, croda el sut l'art. 9 EMBAG. + +Tar il svilup agen crescha la Confederaziun sezza il software u il fa crear correspundentamain. Ella tscherna la governanza e resta cun ils dretgs sin il code da funtauna. + +Tar il svilup cuminaivel crea la Confederaziun il software ensemen cun autras organisaziuns. La governanza ed ils dretgs sin il software ston vegnir reglads tras la furma d'organisaziun tschernida. + +Sche la Confederaziun contribuescha directamain a software da terzas persunas, croda era quest code da funtauna sut l'art. 9 EMBAG. I sto vegnir garantì che quai capitia en l'interess da las autoritads federalas, che la participaziun correspundia a las pretensiuns dal project e che l'administraziun federala observia la governanza. + +Quai capita cun agid da la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[glista da controlla Em002-2.1 Evaluaziun preliminara OSS] e da la link:em002-4-1-checklist-oss-community.pdf[glista da controlla Em002-4.1 Communitad OSS]. + +==== Code existent + +Tar software vegl (*software existent*) è la lavur posteriura per ina publicaziun pli gronda che sche la relaschada fiss vegnida planisada dal cumenzament. Tar software existent paja questa lavur mo, sch'in utilisader potenzial vul duvrar il software. Independentamain da quai duess la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[glista da controlla Em002-2.1 Evaluaziun preliminara OSS] vegnir emplenida per documentar las decisiuns relevantas. + +Applicaziuns, cun il svilup da las qualas las autoritads federalas han cumenzà ils 1. da schaner 2024 u pli tard, u che vegnan sviluppadas per incumbensa da la Confederaziun sin la basa d'in contract concludì suenter ils 1. da schaner 2024, na valan betg sco existentas e suttastattan en mintga cas a l'obligaziun da publicaziun tenor l'art. 9 al. 1 EMBAG. + +L'obligaziun da publicaziun tenor l'EMBAG na dependa betg dal profit per terzas persunas. + +==== Bibliotecas, plug-ins ed add-ons + +En tscherts cas n'è il software betg in'applicaziun independenta, mabain mo parts da quella. L'EMBAG e l'ordinaziun na defineschan betg pli detagliadamain il code da funtauna. Las instrucziuns valan era per bibliotecas, plug-ins ed add-ons deculiads; quels crodan sut l'EMBAG. + +*Incumbensas:* + +* Rimnar infurmaziuns da link:em002-5.pdf[Em002-5 Fegl d'infurmaziun Meds OSS]. Quel descriva tant infurmaziuns generalas davart software open source sco er infurmaziuns specificas davart l'applicaziun da l'EMBAG. +* Examinar, sche las premissas tenor l'EMBAG èn ademplidas. +* Emplenir la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[glista da controlla Em002-2.1 Evaluaziun preliminara OSS]. Per ordinari è raschunaivel d'integrar directamain las persunas da contact dal furnitur dal software resp. dal svilup. +* Sche necessari emplenir la link:em002-4-1-checklist-oss-community.pdf[glista da controlla Em002-4.1 Communitad OSS]. + +*Decisiun:* Sto il software vegnir publitgà e co duai quai capitar? + +=== Excepziun: Dretgs da terzas persunas + +I sto vegnir renunzià ad ina publicaziun, sche quella violass dretgs da terzas persunas. Sche il software è vegnì sviluppà da emploiads da la Confederaziun, appartegnan ils dretgs al patrun.footnote:[Art. 332 DO en colliaziun cun l'art. 6 al. 2 LPers] En contracts davart il prest da persunal e prestaziuns informaticas vegnan ils dretgs usitadamain transferids a la Confederaziun e duessan vegnir fatgs valair. + +Sche il software è vegnì u vegn sviluppà sin la basa da las cundiziuns generalas da contract da la Confederaziun svizra (stadi 2024),footnote:[Cundiziuns generalas da contract da la Confederaziun svizra, en spezial la cifra 25.1 – https://www.bkb.admin.ch/bkb/de/home/themen/agb.html#accordion_21321111141713247349255] appartegnan ils dretgs da proprietad immateriala al mandant, uschenavant che nagut auter n'è vegnì convegnì contractualmain. + +In'applicaziun consista tipicamain da numerusas cumponentas e parts singulas. Tar tscherts geners vegn quai problematic, sch'ellas n'èn sezzas betg open source u na pon betg vegnir publitgadas sut ina licenza open source sco part da l'applicaziun. + +*Bibliotecas* + +Tut tenor la lingua da programmaziun vegnan las bibliotecas u compiladas directamain cun l'applicaziun, colliadas u furnidas sco pachets. Ellas furman ina part integrala da l'applicaziun. + +Sche l'applicaziun cuntegna bibliotecas proprietaras u suttamessas ad ina licenza, vegn l'open sourcing pli difficil. Fundamentalmain po il code da funtauna da la rimanenza da l'applicaziun vegnir publitgà, ma utilisaders u sviluppaders potenzials stuessan acquistar la biblioteca pertutgada, avant che l'applicaziun vegn utilisabla u extendibla. + +Sche la proprietad da la biblioteca problematica sa chatta tar il furnitur da l'applicaziun, paja ina sclerida giuridica, sche la Confederaziun ha dretgs transferibels sin questas bibliotecas. + +Nua ch'igl è pussaivel duessan bibliotecas proprietaras e suttamessas ad ina licenza vegnir evitadas tar svilups agens u vegnir remplazzadas sche pussaivel avant la relaschada. Cun vista a la finamira da l'artitgel 9 EMBAG duess vegnir publitgada uschè bler sco pussaivel da la funcziunalitad duvrada da l'administraziun publica. Bibliotecas singulas che impedeschan la publicaziun dal code represchentan perquai debits tecnics che duessan vegnir documentads ed eliminads en ina buna occasiun. + +*Bancas da datas ed auters memorisaders da datas* + +Sche l'applicaziun utilisescha memorisaders da datas proprietars e suttamess ad ina licenza sco Microsoft SQL Server, na s'oppona quai betg ad ina publicaziun open source. + +I duess dentant vegnir examinà, sche bancas da datas avertas supplementaras sco PostgreSQL pon vegnir sustegnidas. Quai po spargnar custs da manaschi e reducir las barrieras d'access per utilisaders potenzials. + +*Servers d'applicaziun e sistems da manaschi* + +Sche l'applicaziun dovra sistems da manaschi u servers d'applicaziun licenziads (p.ex. Microsoft Windows Server u RedHat JBoss), na s'oppona quai betg ad ina publicaziun open source. + +Nus recumandain da dumandar tar il purschider dal software, sche e tge bibliotecas licenziadas da terzas persunas ch'èn utilisadas sco cumponentas da l'applicaziun. + +Sche la creaziun dal software è vegnida acquistada cuminaivlamain da pliras organisaziuns u autras instituziuns, sa chatta la proprietad per ordinari tar in'associaziun u in'autra persuna giuridica fundada per quest intent. + +*Ulteriura proprietad intellectuala* + +Tar ils dretgs da terzas persunas appartegnan betg mo ils dretgs d'autur, mabain era ulteriura proprietad intellectuala (marcas, patents). Patents n'impedeschan betg fundamentalmain che software vegnia publitgà sco open source, ma els pon impedir sia utilisaziun u extensiun. Schebain che patents èn en Svizra pli tgunsch inusitads, paja per ordinari ina curta dumonda tar il purschider dal software, sch'ina examinaziun ha gia gì lieu. + +*Acquist dals dretgs necessaris* + +Per ademplir las prescripziuns legalas da l'EMBAG ha l'autoritad federala sco mandanta la pussaivladad da s'assicurar ils dretgs sin ils resultats da la lavur. Questa premissa per ina publicaziun po vegnir fixada sco criteri tar l'acquist. L'acquist posteriur dals dretgs necessaris sin il software po vegnir pli cumplex. + +Sche l'autoritad federala na vul betg publitgar sezza il software, po ella per exempel delegar questa incumbensa a l'incumbensà u transferir correspundentamain ils dretgs da publicaziun. En quest cas transferescha ella ils dretgs (e las obligaziuns) necessaris al furnitur e/u a terzas persunas ed ils incumbensescha cun la publicaziun. Uschia vegn il dretg transferì factic a terzas persunas sut la cundiziun da la relaschada resp. dal support dal software correspundent. + +Era qua cuntegna ++[++KBB-MB++]++ indicaziuns impurtantas. + +*Proceder* + +[mermaid,align="center",alt="Process per il tractament da l'excepziun dretgs da terzas persunas"] +.... +flowchart TD + S(["Cumenzament"]) + Q1{"Acquist d'ina licenza u d'ina
schliaziun existenta sco object
d'acquist central?"} + Q2{"Èn ils svilups vinavant
definibels?"} + Q3{"Appartegnan ils dretgs
a la Confederaziun?"} + Q4{"È l'acquist da dretgs da
terzas persunas necessari?"} + Q5{"Po ina part cun dretgs tar la
Confederaziun vegnir delimitada
en moda mirada?"} + R1["Excepziun motivada:
dretgs da terzas persunas"] + R2["Relaschada parziala da
la Confederaziun"] + R3["Relaschada da la Confederaziun"] + S --> Q1 + Q1 -->|"Na"| Q3 + Q1 -->|"Gea"| Q2 + Q2 -->|"Gea"| Q3 + Q2 -->|"Na"| R1 + Q3 -->|"Gea"| R3 + Q3 -->|"Na"| Q4 + Q4 -->|"Gea"| R3 + Q4 -->|"Na"| Q5 + Q5 -->|"Gea"| R2 + Q5 -->|"Na"| R1 +.... + +Illustraziun 2 – Excepziun: Dretgs da terzas persunas (adina era resguardar ++[++KBB-MB++]++ e link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist e dal software open source]) + +In'excepziun motivada pervia da dretgs da terzas persunas resulta betg mo da l'acquist da licenzas u da software existent, mabain era dal svilup da software sin software existent licenzià. + +Ina relaschada parziala è pussaivla en la suandanta constellaziun: il software cuntegna parts proprietaras u protegidas; quellas sa laschan differenziar dal svilup vinavant; auters dretgs da proprietad intellectuala èn pertutgads. + +*Incumbensas:* + +* Examinar, sche l'organisaziun posseda ils dretgs da protecziun relevants sin il software. +* Examinar, sche ils dretgs pon vegnir acquistads. +* Sche necessari obtegnair il permiss en scrit dals possessurs dals dretgs. +* Garantir che l'applicaziun na cuntegnia naginas parts proprietaras u protegidas. +* Examinar ch'i n'existan nagins impedaments pervia da la protecziun da patent (uschenavant che quai è pussaivel ed adequat). +* Examinar, sche la relaschada duai vegnir fatga da terzas persunas. +* Examinar, sche il svilup duai sa basar sin il svilup da software open source (cun agid da la link:em002-4.pdf[Em002-4 Guida da communitads OSS]). + +*Decisiun:* Po il software vegnir publitgà senza violar dretgs da terzas persunas? + +=== Excepziun: Motivs relevants per la segirezza + +Software che na po betg vegnir publitgà per motivs relevants per la segirezza è exceptà da la publicaziun. + +Las datas propias d'in software n'èn betg pertutgadas da la publicaziun dal code da funtauna. Questas datas èn per ordinari sensiblas e na vegnan betg publitgadas. I po dentant esser che, ultra da las datas da cuntegn, tscherts algoritmus e process visibels en il code da funtauna na duain betg vegnir publics (p.ex. abilitads cyber offensivas, detagls da la renconuschientscha da fraud). La segirezza po pertutgar la confidenzialitad, l'integritad, la disponibladad u la traçabilitad. + +*Recumandaziun:* + +Software duess vegnir sviluppà conscientamain uschia, che nagin ristg supplementar na nascha era tar ina publicaziun dal code da funtauna. La supposiziun ch'ina nunpublicaziun protegia cunter attatgas cun success è ingiannaivla («security through obscurity»). + +*Proceder:* + +[NOTE] +==== +Determinant è adina il software e betg l'intent dal software. L'elavuraziun da datas criticas n'è betg a priori in aspect relevant per la segirezza. +==== + +[mermaid,align="center",alt="Process per il tractament da l'excepziun motivs relevants per la segirezza"] +.... +flowchart TD + S(["Cumenzament"]) + Q1{"Motivs relevants
per la segirezza?"} + Q2{"Po il software relevant per la
segirezza vegnir deculià?"} + Q3{"Motivs temporars?"} + M["Mesiras per
la publicaziun"] + R1["Relaschar ina part
dal software"] + R2["Excepziun:
motivs relevants per la segirezza"] + R3["Excepziun temporara"] + R4["Relaschar"] + S --> Q1 + Q1 -->|"In u plirs puncts èn applitgabels"| Q2 + Q1 -->|"Betg applitgabel"| Q3 + Q2 -->|"Gea"| R1 + Q2 -->|"Na"| R2 + Q3 -->|"In u plirs puncts èn applitgabels"| R3 + Q3 -->|"Nagins motivs temporars"| M + M --> R4 +.... + +Illustraziun 3 – Excepziun: Motivs relevants per la segirezza + +Ils suandants motivs pon valair per mintga project sco relevants per la segirezza: + +* La publicaziun dal software augmentass essenzialmain in ristg per la segirezza da las infurmaziuns.footnote:[Lescha davart la segirezza da las infurmaziuns, LSIn. Art. 6 Segirezza da las infurmaziuns. https://www.fedlex.admin.ch/eli/cc/2022/232/de#art_6] +* Tar algoritmus per la prevenziun da fraud ed algoritmus sumegliants po eventualmain vegnir renunzià ad ina publicaziun. +* Tecnologias da cybersegirezza spezialmain sensiblas. +* Software central per il manaschi d'infrastructuras criticas. +* Sche la publicaziun violass autras basas legalas. + +Ils suandants motivs temporars pon anc impedir ina publicaziun. Quella vegn dentant pussibilitada pli tard tras mesiras adequatas. + +* Il code existent n'ha anc betg pudì vegnir rundà e cuntegna eventualmain problems relevants per la segirezza. +* Audits da segirezza dal code n'èn anc betg vegnids fatgs. +* Il process da svilup n'è anc betg avunda madir per ina publicaziun segira. Sche il process da svilup n'è betg suffizientamain stabilì, exista la pussaivladad che parts vegnian publitgadas che n'èn betg destinadas a terzas persunas. Per exempel ston las directivas per commentar il code e la generaziun da datas da test vegnir adattadas al nov scenari da publicaziun e funcziunar a moda fidada. + +Cun las suandantas mesiras po software vegnir publitgà malgrà motivs relevants per la segirezza: + +* Separar las configuraziuns (p.ex. gener da la cifraziun utilisada) dal software. +* Transferir infurmaziuns tecnicamain sensiblas e betg publicas (p.ex. process, quints) en configuraziuns u parameters. +* Planisar, realisar ed exercitar regularmain mesiras organisatoricas, persunalas e tecnicas adequatas. +* Planisar ed exequir activitads da qualitad adequatas tar la publicaziun. Vesair il chapitel suandant «Analisa e preparaziun». + +*Incumbensas:* + +* Examinar il software concernent motivs relevants per la segirezza che s'opponan ad ina publicaziun. +* Stimar la lavur per eliminar ils motivs temporars. +* Planisar mesiras per separar infurmaziuns relevantas per la segirezza dal code da funtauna dal software. +* Garantir che l'applicaziun na cuntegnia nagins process che na dastgan betg vegnir publics. + +*Decisiun:* + +Existan motivs cuncludents relevants per la segirezza che rendan impussibla ina publicaziun? + +=== Sclerida da la publicaziun + +En quest pass vegn scleri, tgi che publitgescha il software. Sche il software è vegnì creà d'in purschider extern, po la publicaziun era vegnir transferida a quel purschider. En quest pass è impurtant da determinar, nua ch'il code da funtauna vegn publitgà, e da fixar ina governanza correspundenta. + +Sche il software è vegnì sviluppà internamain en la Confederaziun e sche quella na po u na vul betg il publitgar sezza, po vegnir dà in mandat da publicaziun ad in furnitur u pon ils dretgs vegnir cedids (transferiment da las obligaziuns a terzas persunas). + +*Relaschada minimala e support* + +L'EMBAG na fa naginas prescripziuns davart la publicaziun. Ina relaschada minimala dal code da funtauna adempla la prescripziun legala. Ulteriuras activitads n'èn betg necessarias. La dumonda, sche e en tge dimensiun ch'i vegn purschì support e quant activamain che il project vegn tgirà, sa lascha respunder cun agid da la link:em002-4.pdf[Em002-4 Guida da communitads OSS]. + +*Svilup da software open source (OSSD)* + +Tar il svilup da software open source (OSSD) vegn, supplementarmain a la publicaziun dal code da funtauna, l'entir process da svilup exequì publicamain. Tut, da las pretensiuns (issues) fin al code da funtauna, è transparent. L'OSSD vegn sustegnì tras utensilis da communicaziun publics (glistas da mail, forums etc.), in sistem da gestiun da versiuns (git), glistas da sbagls e da funcziuns, ina roadmap ed utensilis per sviluppaders. Tras questa moda da lavurar transparenta profitescha l'entira communitad e la collavuraziun sur cunfins organisatorics vegn pussibilitada. Cun quest access n'è naginas ulteriuras activitads da publicaziun necessarias a la fin dal project, perquai che quai è gia vegnì resguardà al cumenzament dal project. + +*Incumbensas* + +* Far ina stimaziun gruassa da la lavur per la fasa d'analisa. Tut tenor la grondezza e la cumplexitad da l'applicaziun sa chatta la lavur tranter trais dis e duas emnas. +* Relaschar resursas per ils pass vinavant, en spezial per l'analisa. +* Acconsentir fundamentalmain da publitgar l'applicaziun sco open source. + +*Decisiun:* + +Il consentiment fundamental e la realisabladad per publitgar l'applicaziun sco open source èn dads. + +=== Reducir la lavur + +Las glistas da controlla e las instrucziuns èn construidas uschia che la lavur per relaschadas resta uschè pitschna sco pussaivel. Ina planisaziun consequenta ed anticipada da la relaschada al cumenzament dal project ed in svilup orientà a la relaschada reduceschan la lavur. Ina tscherta lavur administrativa e tscherts custs resultan inevitablamain ++[++Le2023++]++. Quels sa laschan eventualmain reguadagnar via communitads cun custs da svilup dividids (vesair link:em002-4.pdf[Em002-4 Guida da communitads OSS]). + +=== Tscherna da la lingua da publicaziun + +Tar la tscherna da la lingua ston vegnir resguardads tant il public da destinaziun potenzial sco er la moda da lavurar dal team. Per fortuna èn las translaziuns daventadas deteriormain pli simplas cun novs utensilis. Sco opziuns vegnan en dumonda las linguas ufficialas da la Confederaziunfootnote:[https://www.fedlex.admin.ch/eli/cc/1999/404/rm#art_70] e l'englais. + +Sche il project è relevant internaziunalmain, duess l'englais esser la lingua da destinaziun. Per ina publicaziun posteriura n'ha ina midada da lingua naturalmain pauc senn. + +Almain la README.md duess esser avant maun en pliras linguas, per che ils interessads renconuschian immediatamain, sche il project è relevant per els. + +La communicaziun publica duess resguardar en emprima lingia il public da destinaziun. Da resguardar è ultra da quai ch'i sa tracta da communicaziun publica da la Confederaziun. + +*Indicaziun*: Cun la publicaziun entra l'administraziun federala in nov chanal da communicaziun publica. Sche quai na capita betg cun quità e professiunalmain, po la reputaziun publica da la Confederaziun svelt patir. + +== Analisa e preparaziun + +*Finamira:* Las lavurs necessarias per ina publicaziun open source èn terminadas. Las decisiuns davart la licenza ed il gener da communitad èn prendidas. Quai capita cun agid da la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[glista da controlla Em002-2.2 Analisa e preparaziun OSS]. + +=== Analisa dal code da funtauna + +Il code da funtauna da publitgar ed ulteriurs documents appartegnents vegnan analisads avant la publicaziun. Questa analisa garantescha che naginas infurmaziuns confidenzialas na vegnian publitgadas. + +Sch'in vast code da funtauna è previs per la publicaziun, è recumandabel d'utilisar utensilis automatisads adattads per las suandantas activitads. + +Ils detagls èn fixads en la secziun E. + +*Incumbensas* + +* Examinar, co che la qualitad dal code existenta e las directivas èn vegnidas realisadas (p.ex. ISO/IEC 25010:2023footnote:[ISO/IEC 25010:2023 - Systems and software Quality Requirements and Evaluation (SQuaRE) https://www.iso.org/standard/78176.html]). +* Garantir che naginas datas (da test) sensiblas na sajan cuntegnidas, p.ex. datas che sa basan sin persunas u cas reals. +* Actualisar la documentaziun dal software (vesair agiunta). +* Stizzar datotecas nunnecessarias u documents e datas antiquads. +* Examinar il code da funtauna concernent secrets/datas d'access.footnote:[https://www.ncsc.admin.ch/ncsc/de/home/aktuell/im-fokus/2022/git.html] +* Exequir tests da segirezza mirads ed installar suenter in program da bug bounty (public).footnote:[https://www.ncsc.admin.ch/ncsc/de/home/infos-fuer/infos-it-spezialisten/themen/bug-bounty-programme.html] +* Examinar tuttas bibliotecas utilisadas concernent las licenzas e crear las glistas correspundentas (attribuziuns). Sch'ina biblioteca è disponibla sut pliras licenzas, sto quai vegnir inditgà correspundentamain en las glistas. +* Descriver il deployment (pipeline CI/CD) ed eventualmain installar ina instanza da demonstraziun. + +Questas activitads èn independentas da la publicaziun, ma furman premissas per ina buna qualitad dal software e per garantir la conformitad. L'observaziun da questas mesiras simplifitgescha la collavuraziun, augmenta la qualitad da las contribuziuns externas e meglierescha la reputaziun dal software resp. da l'autoritad. + +=== Tscherna da la licenza + +*Vesair link:em002-3.pdf[Em002-3 Guida da licenzas OSS].* + +Texts da licenza stabilids internaziunalmain duessan vegnir utilisads, nua che quai è pussaivel e raschunaivel. Pretensiuns da responsabladad dals prenditurs da licenza ston vegnir excludidas uschè lunsch sco quai è giuridicamain pussaivel. + +*Incumbensas* + +* Examinar eventualas dependenzas da licenzas existentas. +* Per code da terzas persunas examinar las cundiziuns d'utilisaziun concernent la cumpatibilitad cun la licenza previsa e remplazzar il code sche necessari.footnote:[Vesair Em002-3 concernent la tscherna da code resp. bibliotecas da terzas persunas per in stack da tecnologia e concernent la cumpatibilitad da la licenza.] +* Tscherner la licenza adattada. + +La cumpatibilitad da las licenzas sa lascha examinar cun utensilis sco ORT Toolkit,footnote:[https://oss-review-toolkit.org/] Black Duck,footnote:[https://www.blackducksoftware.com] FOSSAfootnote:[https://www.fossa.com] u FOSSology.footnote:[https://www.fossology.org] Il ToDo Group footnote:[https://landscape.todogroup.org/] porscha ina survista actuala dals utensilis. + +*Decisiun:* + +* Fixar e documentar, sut tge licenza che il software vegn publitgà. + +=== Documentaziun open source + +Cun la publicaziun vegn spetgà in minimum da documentaziun. En l'ecosistem open source èn sa stabilids plirs documents. Quels dattan als visitaders ina svelta invista en il software, inclusiv la licenziaziun. + +Ils suandants documents vegnan spetgads: + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Document* |*Descripziun / cuntegn:* +|README(.md) |Serva sco document d'entrada e dat ina svelta survista da l'intent, da l'extensiun, dal status, da la licenza e da las gruppas da destinaziun dal project. +|LICENSE |Descripziun da la licenza tschernida en il project +|CONTRIBUTING(.md) |Descriva il process, co ch'ins po contribuir al project. +|CODE++_++OF++_++CONDUCT(.md) |Il code of conduct fixescha las normas socialas spetgadas entaifer il project. +|CHANGELOG(.md) |Maina ina glista da las midadas en las versiuns dal software. +|THIRD-PARTY-LICENSES(.md) |Descripziun da las licenzas da terzas persunas resp. da las cumponentas utilisadas. +|Getting started |Curta instrucziun per installar ed utilisar il software. +|Create Gitignore |Descriva documents che na vegnan betg publitgads, p.ex. configuraziuns, datas da test u cuntegns generads. Infurmaziuns protegidas e sensiblas duessan vegnir administradas ordaifer il project en utensilis e memorisaders adattads e previs per quai. +|publiccode.yml |Metadatas structuradas per descriver il software, sin la basa dal standard https://yml.publiccode.tools/. Il format fixà renda la publicaziun pli facil da chattar e da reutilisar. Ulteriuras infurmaziuns en l'agiunta F. +|=== + +Tabella 1 – Documents open source + +Ulteriurs detagls tecnics davart quests documents èn descrits en l'agiunta. + +*Incumbensas* + +* Crear la documentaziun standard. +* Inditgar copyright, indicaziuns da licenza ed exclusiun da responsabladad en tuttas datotecas. +* Tut tenor la plattafurma da publicaziun pon vegnir fatgas descripziuns supplementaras. + +*Decisiun:* + +* Decisiun definitiva da publitgar l'applicaziun sco open source. + +== Publicaziun ed annunzia + +*Finamira:* L'applicaziun è publitgada sco open source e leva da chattar per terzas persunas. Tuttas cumponentas èn prontas per la publicaziun e la communitad è construida u stabilida. Quai capita cun agid da la link:em002-2-3-checklist-oss-release-and-publication.pdf[glista da controlla Em002-2.3 Relaschada e publicaziun OSS]. En tscherta dimensiun vegnan recapituladas decisiuns gia prendidas. + +=== Tscherna da la plattafurma + +I dat pliras pussaivladads da publitgar code da funtauna. La tabella suandanta dat ina survista dals pussaivels sistems da source code management (SCM) e da las plattafurmas. + +La plattafurma adattada sto vegnir tschernida avant la publicaziun propria. Tschertas autoritads federalas èn gia represchentadas sin GitHub.footnote:[La pagina d'internet https://ossbenchmark.com dat ina survista da las organisaziuns e da las autoritads ch'èn activas sin GitHub.] En quest cas è raschunaivel d'utilisar plattafurmas gia stabilidas. + +*Recumandaziun:* + +Nus recumandain actualmain d'installar per mintga autoritad federala ina organisaziun sin GitHub per publitgar code da funtauna. Entaifer questa organisaziun pon vegnir creads projects correspundents (repositoris) ed administrads utilisaders cun las autorisaziuns adattadas. En l'avegnir duess vegnir construida ina plattafurma federala centrala. Per garantir ina administraziun dals utilisaders optimala e per mantegnair la reputaziun da la Confederaziun svizra, è impurtant d'utilisar pli pauc repositoris, ma quels meglier administrads. + +[width="100%",cols="<50%,<50%",options="header",] +|=== +|*Plattafurma* |*Caracteristicas* +|GitHubfootnote:[https://github.com/about/] |Plattafurma online da Microsoft cun gronda derasaziun. Ina gronda quantitad da software open source vegn hostada sin GitHub. Porscha ultra dal SCM blers utensilis supplementars. Disponibla en ina versiun Free ed ina versiun Enterprise (abunament). +|GitLabfootnote:[https://about.gitlab.com/] |Plattafurma online da l'interpresa dal medem num GitLab, ch'è sezza publitgada sut ina licenza open source. Porscha ultra dal SCM blers utensilis supplementars. Po era vegnir manada localmain, quai che dat ina tscherta suveranitad. Disponibla en ina versiun Free ed ina versiun Enterprise (abunament). +|Bitbucketfootnote:[https://bitbucket.org/product/en] |Plattafurma online da Atlassian, integrada spezialmain en ses ecosistem. Disponibla en ina versiun Free ed ina versiun Enterprise (abunament). +|Sistem SCM intern |Sch'ina atgna plattafurma SCM vegn messa a disposiziun, po era quella publitgar e render disponibels tscherts repos/projects. Il manaschi sto esser garantì. +|Plattafurma federala |Actualmain n'exista nagina plattafurma federala centrala per publitgar software. Ina mesira correspundenta vegn proponida en link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala]. +|Pagina d'internet, server FTP public etc. |L'EMBAG na fixescha betg, co che software sto vegnir publitgà. Ina relaschada minimalafootnote:[Ina publicaziun minimala cumpiglia mo la publicaziun dal code da funtauna e d'ulteriurs artefacts minimals. Quest gener da publicaziun adempla las prescripziuns da l'EMBAG. In plivalur na vegn dentant betg cuntanschì cun la publicaziun.] po era avair lieu sin ina pagina d'internet u sin autras resursas accessiblas publicamain. Per ina collavuraziun persistenta en il senn da l'open source n'è quai dentant betg adattà. +|=== + +Tabella 2 – Plattafurmas per publitgar software open source + +Sche il software vegn publitgà ensemen cun in partenari u ina organisaziun externa, sto vegnir fatg adatg che las autorisaziuns e ils accesses correspundents al code da funtauna sajan avant maun. + +*Incumbensas* + +* Evaluar la plattafurma adattada, inclusiv l'organisaziun/il project correspundent. +* Sche quai n'è anc betg scleri, fixar la denominaziun dal project/repositori. +* Fixar ed examinar las autorisaziuns sin il repo. +* Garantir ina governanza adequata ed ina eventuala replicaziun dal code da funtauna. + +*Decisiun:* + +* La plattafurma per la publicaziun è vegnida tschernida adequatamain. + +=== Publicaziun dal software + +Sche las premissas èn scleridas, po il software vegnir publitgà. + +*Incumbensas* + +* Examinar las premissas cun agid da la link:em002-2-3-checklist-oss-release-and-publication.pdf[glista da controlla Em002-2.3 Relaschada e publicaziun OSS]. +* L'access a la plattafurma exista e la governanza è scleria. +* Publicaziun dal code da funtauna e da la documentaziun tras il svilup. + +=== Communicaziun + +Suenter la publicaziun propria pon vegnir inizialisadas tras ed entaifer l'autoritad federala pertutgada ulteriuras activitads da communicaziun. Quellas sustegnan la derasaziun e portan il plivalur giavischà da la publicaziun. + +*Incumbensas* + +* Descripziun en il hosting dal repo, parameters da segirezza etc. +* Communicaziun interna ed eventualmain externa +* Redigir ina communicaziun a la communitad. +* Render enconuschenta l'applicaziun entaifer l'organisaziun ed en gremis spezialisads, promover sia utilisaziun e las contribuziuns. +* Crear ina datoteca publiccode.ymlfootnote:[Il standard da metadatas https://yml.publiccode.tools/ descriva il software. Il format fixà renda la publicaziun pli facil da chattar e da reutilisar. Ulteriuras infurmaziuns en l'agiunta F.] en il repositori per il catalog OSS da l'administraziun federala.footnote:[Catalog OSS: https://www.opensource.admin.ch] + +=== Construcziun e tgira da la communitad + +Tar la publicaziun da software po nascher ina communitad che po contribuir al software tras contribuziuns (pull requests), dumondas, propostas da documentaziun etc. Per ina communitad activa è necessaria ina lavur considerabla tant per la construcziun sco er per la tgira permanenta. Ina communitad che funcziuna bain reducescha forks nungiavischads dal software. La finamira è qua d'activar il plivalur da la communitad tras activitads miradas. Era tar ina publicaziun minimala duess vegnir fixà, co ch'i vegn tractà cun resuns e dumondas davart il software. + +*Incumbensas* + +* Sclerir, tgi che èn utilisaders potenzials u interessads. +* Determinar la furma adattada per l'applicaziun concreta cun agid da la link:em002-4.pdf[Em002-4 Guida da communitads OSS]. +* Construir la communitad. +* Activitads per construir la communitad. + +== Agiunta + +=== Midadas envers la versiun precedenta + +* Chapitels 4.3 e 5.3: Publicaziun cumplettada cun publicode.yml +* L'agiunta F «Public Code» è vegnida agiuntada +* Differentas midadas e meglieraziuns redacziunalas pitschnas + +=== Referenzas + +Vesair _Em002 Directivas strategicas per software open source en l'administraziun federala_. + +=== Abreviaziuns + +Vesair link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala] ed link:em002-6.pdf[Em002-6 FAQ davart OSS]. + +=== Documentaziun accumpagnanta link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Glista da controlla Analisa e preparaziun OSS] – Documentaziun + +=== Documentaziun dal code da funtauna + +La documentaziun duess esser part dal code da funtauna dal project, per che midadas a la documentaziun vegnian archivadas a moda segira per la revisiun e per che la documentaziun vegnia versiunada parallelamain al project. Uschia è automaticamain garantì che la documentaziun, tar ina tgira adequata, na divergia betg dal status da svilup dal project e che la documentaziun da versiuns pli veglias dal project possia vegnir consultada da tut temp. + +Ultra da quai survegnan terzas persunas uschia la pussaivladad da contribuir simplamain midadas a la documentaziun. + +Sco lingua da marcaziun per la formataziun dal text duess vegnir utilisà Markdown, perquai ch'igl è simpel da scriver, fitg derasà e legibel per maschinas. Ultra da quai vegnan documents Markdown mussads da tuttas plattafurmas currentas en in format da destinaziun bain legibel. Documents Markdown sa laschan rendrar en mintga format da destinaziun, independentamain da la plattafurma utilisada, cun generaturs da paginas staticas sco per exempel Jekyll, MkDocs, Gatsby u Sphinx, per exempel cun las prescripziuns d'identitad visuala d'ina administraziun. + +=== Destinaturs e structura da la documentaziun + +La documentaziun dal project duess s'adressar tant als utilisaders finals sco er a las persunas spezialisadas tecnicas e betg sa concentrar exclusivamain sin la tecnica. Per la tscherna da la lingua vesair il chapitel 3.6. Quai sustegna la derasaziun dal software. + +Ina datoteca README.md serva sco document d'entrada. Datotecas cun quest num vegnan renconuschidas da tuttas plattafurmas currentas e mussadas sco punct d'entrada en la documentaziun.footnote:[Ulteriuras infurmaziuns davart il crear d'ina datoteca readme: https://www.makeareadme.com/] + +README.md duess dar ina svelta survista da l'intent, da l'extensiun, dal status, da la licenza e da las gruppas da destinaziun dal project. Concretamain duess README.md cuntegnair ils suandants puncts: + +* Num dal software +* Curta descripziun da l'intent e da la funcziun dal software. Extensiun e restricziuns pussaivlas +* Instrucziun d'installaziun +* Utilisaziun dal software +* Indicaziun d'ina eventuala instanza da demonstraziun +* Indicaziuns da support e da contact +* Co ch'ins contribuescha al software open source (Contributing) +* Licenza utilisada (Licence) +* Status dal project / stadi da svilup + +=== Sublinear l'open source ed archivar la licenza + +Directamain suenter la maxima duess vegnir tegnì en scrit cleramain e senza malchapientscha ch'i sa tracta tar il project da software open source. La licenza utilisada dal project duess vegnir inditgada cun l'identificatur SPDX correspundentfootnote:[Identificatur SPDX – https://spdx.org/about] e colliada cun il text da licenza concret en la datoteca LICENSE. Models da licenza cuntegnan tipicamain ina part variabla (p.ex. num dal project, onn dal copyright, num da l'autura u da l'autur) che sto vegnir adattada en la datoteca LICENSE. + +La gronda part da las plattafurmas renconuscha licenzas en ina datoteca LICENSE e porscha infurmaziuns cleras davart la licenza, p.ex. ina curta resumaziun da las cundiziuns da licenza. + +I vegn recumandà d'agiuntar ad ina mintga datoteca da funtauna creada da nov in header minimal da licenza e copyright. Headers existents en datotecas existentas na duessan betg vegnir midads. Sch'ins contribuescha ad in project che ha prescripziuns cleras per headers, ston quellas vegnir observadas. + +Ulteriurs detagls vesair: Producing Open Source Software: State That the Project is Free.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Stadi da svilup actual + +Per mussar svelt il stadi dal project duess il stadi da svilup actual vegnir documentà en README.md. Per ils lecturs è impurtant da savair, sche il project sa chatta en in stadi madir u al cumenzament dal svilup, sch'el vegn tgirà activamain e quant savens che novas versiuns vegnan publitgadas. + +En questa secziun po vegnir descrit, tge gener da sustegn tras terzas persunas ch'è actualmain il pli impurtant per il project. Quai pudess esser per exempel ina sviluppadra u in sviluppader cun savida tecnologica specifica u insatgi che reelavura la documentaziun dal project. + +Ulteriurs detagls vesair Producing Open Source Software: Development Status.footnote:[https://producingoss.com/en/getting-started.html#state-freedom] + +=== Instanza da demonstraziun + +Tar applicaziuns è recumandabel da metter a disposiziun ina instanza da demonstraziun, per che l'applicaziun possia vegnir empruvada senza lavur d'installaziun. Tut tenor il gener da l'applicaziun po la instanza da demonstraziun esser l'installaziun productiva u in stgalim da test. Impurtant è ch'ils lecturs possian acceder a la instanza correspundenta uschè autonomamain e directamain sco pussaivel. + +Sco alternativa mettan blers projects open source a disposiziun utensilis per startar simplamain l'applicaziun. Quai po capitar per exempel cun containers, applicaziuns portablas u scripts d'installaziun. + +=== Persuna da contact spezialisada e proprietad dal project + +En la datoteca README.md duess vegnir numnada la persuna da contact spezialisada la pli impurtanta, per che autras administraziuns ed organisaziuns interessadas possian prender contact uschè directamain sco pussaivel. + +Adressas d'e-mail persunalas na duessan betg vegnir utilisadas. + +En la datoteca README.md duess ultra da quai vegnir descrit curtamain, tge organisaziun ch'è proprietaria dal project, en spezial sch'ina associaziun è vegnida fundada per il project. + +== Documentaziun d'installaziun + +Tar applicaziuns duess README.md renviar ad ina documentaziun d'installaziun che descriva las pretensiuns da hardware e software, tge cumponentas d'infrastructura (per exempel bancas da datas) ch'èn utilisadas e co che l'applicaziun po vegnir installada e manada. + +=== Developer Guidelines + +Il punct d'entrada per las Developer Guidelines duess vegnir archivà en ina datoteca Markdown CONTRIBUTING.md ch'è colliada en README.md. Las Developer Guidelines èn part da la documentaziun extendida per sviluppaders che vulan contribuir al project e sa concentreschan en emprima lingia sin la collavuraziun e la communicaziun en il project e betg sin la tecnica. + +Las Developer Guidelines duessan cuntegnair ils suandants puncts e renviar eventualmain als documents correspundents: + +* In renviament al code of conduct dal project. Il code of conduct fixescha las normas socialas spetgadas entaifer il project. +* I vegn recumandà da tscherner sco code of conduct il Contributor Covenant Code of Conduct licenzià sut CC-BY-4.0footnote:[https://creativecommons.org/licenses/by/4.0/] u da construir sin quel.footnote:[https://www.contributor-covenant.org/version/1/4/code-of-conduct.html] +* Ina indicaziun che il project fa code reviews en furma da pull requests GitHub, cun in renviament a la documentaziun GitHub davart las pull requests. + +A la fin duess vegnir renvià a la Developer Documentation. + +=== Developer Documentation + +Entant che las Developer Guidelines descrivan la collavuraziun e las normas socialas dal project, sa concentrescha la Developer Documentation sin ils aspects tecnics da la participaziun al svilup dal project. Ella duess descriver almain ils suandants puncts: + +* Tge dependenzas tecnicas che il project ha e tge utensilis ch'èn necessaris per il svilup dal project. +* Tge reglas formalas che valan per il code da funtauna dal project, per exempel concernent la formataziun dal code da funtauna. +* Co che il code da funtauna dal project è organisà e co che funcziuns pon vegnir testadas tecnicamain. +* In sboz d'architectura cun ina descripziun gruassa da l'architectura, preferiblamain inclusiv la delimitaziun dal context ed ina vista gruassa da las cumponentas.footnote:[Rom d'architectura MMB (metoda da modellaziun da la Confederaziun) u arc42. http://arc42.org/] +* Tar applicaziuns: Co che l'applicaziun po vegnir startada per intents da svilup u da debugging e tge cumponentas d'infrastructura ch'èn necessarias per quai. + +== Documentaziun accumpagnanta per la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[glista da controlla Em002-2.2 Analisa e preparaziun OSS] – Code da funtauna + +=== Cronologia dal code da funtauna + +Il code da funtauna d'in project vegn usitadamain archivà en in sistem da source code management (SCM) sco GitHub. Quests sistems memoriseschan betg mo il stadi actual dal code da funtauna, mabain era las midadas ch'èn vegnidas fatgas al code da funtauna en il decurs dal temp. Da quai fan part en spezial las stizzadas en il code da funtauna, inclusiv datotecas stizzadas. + +Ultra da quai cuntegna il SCM metainfurmaziuns davart midadas al code da funtauna, sco il num e l'e-mail da l'autura u da l'autur u signaturas PGP per commits e tags signads. + +=== Datas sensiblas, protegidas u confidenzialas + +Il code da funtauna e la cronologia dal code da funtauna dal project pon cuntegnair datas disponiblas publicamain, sco in register dals numers postals, datas generadas per casualitad u datas sinteticas. + +Il code da funtauna e la cronologia dal code da funtauna na dastgan cuntegnair naginas datas u infurmaziuns (persunalas) sensiblas u confidenzialas en il senn da la lescha davart la protecziun da datas (LPD) e da la lescha davart la segirezza da las infurmaziuns (LSIn). Da quai fan part en spezial: + +* Nums d'utilisader e pleds-clav u auters secrets sco clavs privatas, tokens d'access u certificats. +* Nums DNS interns, URLs, nums d'host, adressas IP, structuras da rait u nums da drives. +* Nums, adressas, maletgs u datas persunalas sumegliantas senza il consentiment da la persuna pertutgada +* Datas anonimisadas u pseudonimisadas (perquai ch'igl è pussaivel da revocar l'anonimisaziun u la pseudonimisaziun) + +Era sche il stadi actual dal code da funtauna è liber da datas u infurmaziuns sensiblas, protegidas u confidenzialas, pon talas datas u infurmaziuns vegnir consultadas vinavant da la cronologia dal sistem SCM, sch'ellas èn mai stadas part dal code da funtauna u da las metainfurmaziuns dal SCM en il passà. Ina rundada dal stadi actual dal code da funtauna n'allontanescha betg cumplettamain questas infurmaziuns.footnote:[Ina pussaivladad da rundar in repo porscha l'utensil https://rtyley.github.io/bfg-repo-cleaner/[BFG Repo-Cleaner]] + +En cas da dubi vegn perquai recumandà d'allontanar cumplettamain la cronologia da funtauna suenter la rundada dal code da funtauna, avant sia publicaziun. + +Ils nums e las adressas d'e-mail da las auturas e dals auturs dal code da funtauna èn usitadamain disponibels directamain en il code da funtauna u en las metadatas dal SCM, per exempel en commits GitHub u en tags GitHub annotads. Dal puntg da vista giuridic n'è quai betg problematic, perquai che l'interpresa che sviluppa sto reglar la publicaziun da talas infurmaziuns. I vegn dentant recumandà da render attenta l'interpresa che sviluppa resp. ils collaboraturs interns da la Confederaziun che ils nums e las adressas d'e-mail da las auturas e dals auturs dal code da funtauna pon vegnir revelads tar la publicaziun dal software. + +=== Allontanar las indicaziuns davart ils auturs + +La cronologia dal software po vegnir midada per zuppentar las indicaziuns davart ils auturs. Utensilisfootnote:[https://www.adamdehaven.com/blog/update-commit-history-author-information-for-git-repository/] pon automatisar quest pass en gronda part. + +L'allontanar da las indicaziuns davart ils auturs elimina l'attribuziun, la traçabilitad e las infurmaziuns da contact. La lavur colliada cun quai n'è betg da sutvalitar, tut tenor il volum dal code da funtauna. Per quests motivs na vegn l'allontanar dals auturs betg recumandà. Nums dastgan vegnir publitgads, sche a) il consentiment da las persunas pertutgadas è avant maun e b) nagins motivs relevants per la segirezza na s'opponan. + +=== Resguard da las licenzas da las bibliotecas + +Bunamain mintga project utilisescha bibliotecas da terzas persunas (bibliotecas da software, dependenzas) per acceder a funcziuns duvradas savens senza las stuair programmar sez. Questas bibliotecas dependan usitadamain d'autras bibliotecas, da quai resultan dependenzas a plirs stgalims (dependenzas transitivas). Tut tenor la lingua da programmaziun pon era projects pitschens avair tschientinas da dependenzas. + +Ils resultats da questa sclerida ston vegnir resguardads tar la tscherna da la licenza tenor link:em002-3.pdf[Em002-3 Guida da licenzas OSS] ed en la link:em002-2-3-checklist-oss-release-and-publication.pdf[glista da controlla Em002-2.3 Relaschada e publicaziun OSS]. + +Per mintgina da questas dependenzas sto vegnir garantì che sia licenza saja cumpatibla cun la licenza dal project. Spezialmain problematicas èn dependenzas che na stattan betg sut ina licenza open source, che n'han declerà nagina licenza u che utiliseschan ina licenza virala che na correspunda betg a la licenza dal project. Tschertas bibliotecas èn licenziadas sut dapli ch'ina licenza e permettan a l'utilisader da tscherner ina. + +* En tuttas linguas da programmaziun impurtantas sa laschan renumbrar automaticamain las dependenzas dal project (inclusiv las dependenzas transitivas) e las licenzas da las dependenzas. Da quai fan part: +* Il plugin Project Info Reports per il manager da pachets Apache Maven per projects Java che producescha cun il dependency report ina publicaziun HTML da tuttas bibliotecas utilisadas, inclusiv la licenza declerada.footnote:[Infurmaziuns davart il plugin https://maven.apache.org/plugins/maven-project-info-reports-plugin/plugin-info.html] +* Il NPM Licence Checker per il manager da pachets NPM per projects JavaScript che po publitgar tuttas bibliotecas utilisadas, inclusiv la licenza declerada, en differents formats, p.ex. CSV.footnote:[NPM Licence Checker https://github.com/davglass/license-checker] +* Il Licence Finder da Pivotal che sustegna differents managers da pachets e linguas da programmaziun, tranter auter Ruby Gems, Python Eggs e Godeps.footnote:[Licence Finder da Pivotal https://github.com/pivotal/LicenseFinder] + +== Utilisaziun da bibliotecas cun licenzas proprietaras + +Bibliotecas sut ina licenza proprietara èn fundamentalmain problematicas en projects open source e na pon per ordinari betg vegnir utilisadas, en spezial sche il code da funtauna è vegnì publitgà sut ina licenza virala sco l'AGPL. + +As drizzai p.pl. al purschider ed al servetsch giuridic da l'uffizi pertutgà per examinar, sche e sut tge cundiziuns che la biblioteca proprietara po vegnir utilisada en Voss project. + +=== Utilisaziun da managers da pachets + +Bunamain tuttas linguas da programmaziun derasadas mettan a disposiziun managers da pachets per administrar lur dependenzas, sco Apache Maven per projects Java, NPM per projects JavaScript u NuGet per projects .NET. + +Tar l'utilisaziun d'in manager da pachets n'èn las dependenzas utilisadas dal project betg pli directamain part dal code da funtauna dal project, per exempel cun copiar il code da funtauna da la dependenza en il project u cun copiar las dependenzas en furma binara en il project. Empè da quai obtegna il project tuttas sias dependenzas via las declaraziuns dal manager da pachets. + +Quai permetta da renumbrar e da referenziar correctamain tuttas dependenzas. Ultra da quai impedescha quai la midada nunintenziunada dal code da las dependenzas. Sche midadas èn necessarias, ston ellas vegnir fatgas directamain a la funtauna da la dependenza. + +=== Declaraziun da la licenza dal project en il descriptur dal manager da pachets + +Il project duess declerar sia licenza en il descriptur correspundent dal manager da pachets, cun utilisar l'identificatur SPDX,footnote:[Identificatur SPDX – https://spdx.org/] per che la licenza dal project possia vegnir publitgada dal manager da pachets. Quai è spezialmain impurtant tar bibliotecas, per che ils utilisaders da la biblioteca possian dumandar automaticamain sia licenza via il manager da pachets. + +=== Attribuziun ed indicaziuns da copyright + +Bleras bibliotecas suttastattan ad ina licenza che pretenda dals utilisaders da la biblioteca ina indicaziun da copyright originala u ina attribuziun. + +Da quai fan part las suandantas licenzas (extract): + +Apache 2.0, ASL 1.1 (Apache 1.1), BSD, BSD 3-Clause, Creative Commons «Attribution» (CC BY), MIT, ISC + +Per las autras vesair la glista da las licenzas renconuschidas da l'OSI.footnote:[Licenzas open source èn licenzas che correspundan a l'Open Source Definition – curt ditg permettan ellas d'utilisar, da midar e da cundivider libramain software. https://opensource.org/licenses] + +En la pratica pertutga quai bunamain tuttas bibliotecas utilisadas. Perquai che il dumber da las bibliotecas utilisadas en projects pitschens è gia fitg aut, è ina indicaziun da copyright giuridicamain correcta resp. l'attribuziun necessaria mo pussaivla cun ina gronda lavur. + +I vegn perquai recumandà da proceder uschia: + +* Far ina glista da las bibliotecas utilisadas, cun ils mecanissems dal manager da pachets u cun utensilis sco il NPM Licence Checker u il Licence Finder da Pivotal. +* Preparar la glista a maun, uschia ch'ella cuntegnia las suandantas indicaziuns: num ufficial dal project da la biblioteca, pagina d'internet dal project da la biblioteca, licenza utilisada per la biblioteca sco identificatur SPDX cun link sin il text da la licenza. +* Archivar la glista en il code da funtauna dal project, p.ex. en ina datoteca THIRD-PARTY-LICENSES.md. +* Tar applicaziuns: Integrar in link sin THIRD-PARTY-LICENSES.md en in dialog «Davart» u «Davart questa applicaziun». +* Il dialog «Davart» è fitg derasà per quest intent, per exempel en Google Chrome (en il dialog «Davart Chrome»). +* Tar bibliotecas: Renviar en README.md sut THIRD-PARTY-LICENSES.md. +* En il rom dal process da code review garantir che midadas a las bibliotecas vegnian actualisadas en THIRD-PARTY-LICENSES.md. + +== Exempel da bloc da code THIRD-PARTY-LICENSES.md + +Quest project utilisescha software open source: + +* Spring Boot, http://projects.spring.io/spring-boot/[projects.spring.io/spring-boot] licenzià sut http://www.apache.org/licenses/LICENSE-2.0[Apache-2.0] +* caniuse-db, https://github.com/Fyrd/caniuse[github.com/Fyrd/caniuse] licenzià sut https://creativecommons.org/licenses/by/4.0/[CC-BY-4.0] + +=== Documentaziun accumpagnanta per la glista da controlla Em002-2.3 Relaschada e publicaziun OSS + +==== Publicaziun cun publiccode.yml + +Publiccode.yml è in standard da metadatas per repositoris da software che cuntegnan software sviluppà u acquistà d'administraziuns publicas. La finamira è da render quest software pli facil da chattar e da reutilisar. Il standard da metadatas è stabilì internaziunalmain e descrit publicamain sut https://yml.publiccode.tools/. Ina datoteca publiccode.yml cuntegna tipicamain indicaziuns sco titel e descripziun (pussaivel en pliras linguas), stadi da svilup, indicaziuns da contact, infurmaziuns davart la licenza etc. Per la Svizra èn previsas extensiuns specificas per il pajais. + +Per mintga software sto vegnir creada ina datoteca yml en l'ordinatur principal dal repositori. Sche la soluziun consista da plirs repos (d'agid), basta ina datoteca, perquai che quella descriva il cas d'applicaziun da la soluziun. + +Cun agid da las datas structuradas en las datotecas publiccode.yml vegn generà per l'entira administraziun federala in https://www.opensource.admin.ch/[catalog OSS] (https://www.opensource.admin.ch[opensource.admin.ch]). Il catalog porscha ina survista dal software publitgà e facilitescha il chattar e la reutilisaziun da soluziuns existentas. + +Sch'in nov repositori u ina nova organisaziun vegn creà, sto quai vegnir annunzià per l'admissiun en il catalog OSS per e-mail a opensource@bk.admin.ch. + +Ultra dal catalog OSS stat era a disposiziun in editur grafic ed in validatur per datotecas publiccode.yml. + +Catalog OSS ed editur: https://www.opensource.admin.ch/ + +=== Ulteriuras funtaunas e licenza + +La glista da controlla, la documentaziun accumpagnanta ed ils models appartegnents sa basan per part sin las suandantas funtaunas: + +* Google Open Source Docs da Google LLC, licenzià sut CC-BY-4.0footnote:[Google Open Source Docs – https://opensource.google.com/docs/] +* Producing Open Source Software, How to Run a Successful Free Software Project da http://www.red-bean.com/kfogel C-BY-SA-4.0footnote:[Producing Open Source Software, How to run a Successful Free Software Project - https://producingoss.com/] +* GitHub Healthy Contributionsfootnote:[https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions[GitHub Healthy Contributions]] +* Standard for Public Codefootnote:[Standard for Public Code – https://standard.publiccode.net/] +endif::[] diff --git a/docs/em002-3.adoc b/docs/em002-3.adoc new file mode 100644 index 0000000..a364e81 --- /dev/null +++ b/docs/em002-3.adoc @@ -0,0 +1,4245 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-3 OSS Licensing Guidelines +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-3 Leitfaden OSS-Lizenzierung +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-3 Guide de licences OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-3 Guida alle licenze OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-3 Guida da licenzas OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +*Disclaimer:* This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main {url-repo}/tree/main[README]. + +''''' + +== Management summary + +It is recommended that one of the following two licences be strategically defined in the Federal Administration when a new project is started: + +* *AGPL licence*: Copyleft effect desired. Changed code should in any case flow back into the general public and can then also be reintegrated by the Federal Administration. It is recommended to use the latest version of the licence. This is the best way to fulfil the principle of 'public money – public code'. The rights of third parties, especially in the case of further developments, can weaken this to LGPL. +* *MIT licence*: It should be possible for third parties to develop proprietary applications based on the Federal Administration's code. If a non-endorsement is specifically required, BSD-3-Clause is to be preferred. + +The following decision aid can be used to select the licence: + +[mermaid,align="center",alt="Simplified licence selection guide"] +.... +flowchart TD + S(["Start"]) + Q1{"The 'environment'
enforces the licence"} + A["Select the
forced licence"] + Q2{"Library, reference implementation
or liberal requirements"} + B["MIT"] + C["AGPL"] + S --> Q1 + Q1 -->|"Yes"| A + Q1 -->|"No"| Q2 + Q2 -->|"Yes"| B + Q2 -->|"No"| C +.... + +Figure 1: Simplified licence selection guide + +To a certain extent, these two licences form the two extremes in the spectrum of OSS licences. It can be very useful to select a more suitable licence for a specific project. This guide is intended to provide concrete assistance. + +If the analysis of the software libraries reveals that a different licence must be used, the developers will draw the project management's attention to this. The analysis is set out in link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. + +When working on existing projects, all OSI-compatible licences are generally acceptable. + +== Introduction + +Article 9 of the Federal Act of 17 March 2023footnote:[SR 172.019] on the Use of Electronic Means to Carry Out Official Tasks (EMOTA) stipulates that the federal authorities must publish and license software that they develop or commission as open source software. + +This document has the following objectives: + +* Introduction to the topics of software copyright and OSS licences. +* A presentation of which OSS licences are unproblematic for use in the Federal Administration. Licences not mentioned in this document and software under such licences may not be used without an additional review of the contractual provisions by the responsible legal service. +* Assistance in selecting a licence for the development or procurement of a project under Art. 9 EMOTA. + +== Copyright and licences: Fundamentals + +Copyright law establishes both moral rights and economic rights (exploitation rights). The moral rights include, for example, the right to recognise authorship or the right to determine whether and when the work is published. Exploitation rights include, for example, the right to make or distribute copies of the work. + +The Federal Act of 9 October 1992footnote:[SR 231.1] on Copyright and Neighbouring Rights (CopA) provides for a number of other moral rights and exploitation rights (see Art. 8 ff. CopA). These rights accrue directly to the author at the same time as the work is created. + +Art. 2 CopA sets out the conditions under which copyright protection is granted. A protected work within the meaning of the law only exists if these requirements are met. + +The prerequisites are: + +* The work must have been created; simply finding the work is not sufficient. Research data, for example, i.e. the results of experiments, cannot be classified as works. +* The creation must be 'intellectual', i.e. originate from a human being. +* The work must have been realised in a perceptible manner. The mere idea behind a work is not protected, only its external form, e.g. a printout of a text on paper or a performance of a piece of music. +* Individuality: Finally, the work must have a certain minimum degree of individuality. A work that everyone would design in the same way is not protected. + +A wide variety of works can be protected, such as literary or scientific texts, musical works, photographic, cinematographic and other visual or audiovisual works. + +According to Art. 2 para. 3 CopA, computer programs are also works if the aforementioned requirements are met. + +The author alone is entitled to the copyrights upon their creation. Only the author can prohibit someone else from carrying out the corresponding actions. However, the author can exercise their rights not only themselves: + +* They may transfer their rights to third parties (e.g. by selling them). The new rights holder can then assert these rights in the same way as if they were the author. +* Alternatively, the author may also license their rights to third parties. Simply put, a licence is a contract under which the rights holder allows a third party to use the work. The author retains the rights, but waives their enforcement vis-à-vis the licensee. + +If a computer program is created in an employment relationship, the employer receives an exclusive licence for its use (Art. 17 CopA). Employees are thus essentially left with only the moral rights to the software (or, depending on the legal opinion, only a core part thereof). This is the same legal situation as under the Federal Personnel Act. + +== OSS licences + +=== Fundamentals + +OSS is essentially characterised by the following features (based on a definition of the Open Source Initiative _[Pe1999]_footnote:[https://opensource.org/]): + +* Unlimited and free redistribution of the software is permitted; +* The software is available in source code form; +* Modifications to the software and their redistribution under the same licence are generally permitted; +* No individuals or groups of people may be excluded from using the software, and no areas of application may be excluded (especially not commercial use); and +* The distribution of the software together with other software (such as closed source software) must not be restricted. + +The most common motives for using OSS are initially the cost savings through the use of the already substantial pool of freely usable software. Companies that frequently use OSS are often able to save considerable portions of their IT budget through the use of OSS. + +Freely available code can also be easily adapted to one's own needs. Moreover, choosing OSS avoids vendor lock-in.footnote:[https://en.wikipedia.org/wiki/Vendor_lock-in] + +=== Open source licences + +Open source licences are, first and foremost, normal licence agreements for computer programs. + +In contrast to normal licence agreements, however, OSS licence agreements come into effect without further ado when only one of the free forms of use described in the licence is exercised (for example, by copying, redistributing or modifying software). + +=== Copyleft versus permissive + +==== General + +An open source licence according to the OSI may contain a 'copyleft' provision. Changes to software licensed accordingly must be offered again under the same conditions as those that existed for the original software. Anyone who makes such changes must, when distributing the open source software in the form of machine-readable object code, also offer the source code to recipients. + +Expressed as defined by the Free Software Foundation, the copyleft effect protects developers' freedom and thus ensures that once free software always remains free. + +With copyleft licences, a kind of exchange takes place between the community and the companies using it. The users, who are obliged to put their own developments back under the respective licence in return for the benefits from the existing software pool, thus contribute to the further development of the software pool. As a result, both sides stand to benefit. + +The copyleft provision has a certain 'contagion effect': if copyleft-licensed software is integrated into previously proprietary software, the originally proprietary software must be disclosed under a compatible open source licence. + +Accordingly, when using copyleft-licensed source code, care must be taken to integrate it only where the resulting software can and should be published under an open source licence. + +If an open source licence does not contain a copyleft provision (permissive open source licence), the licence for revised versions of the code can be freely chosen. In particular, it is also possible to put modifications back under a proprietary software licence and integrate the corresponding source code into proprietary software. + +Essentially, open source licences can be divided into *the following categories*: + +. open source licences with *strong copyleft*; +. open source licences with *weak copyleft*; and +. *permissive* or *non-copyleft* open source licences. + +==== Open source licences with strong copyleft + +When using an open source licence with strong copyleft, new versions derived from the original software, if passed on to third parties, must be placed under the conditions of the original licence and made available to these third parties as source code. + +The following two licences are considered the relevant open source licences with strong copyleft in the market: + +* GNU General Public Licence (GPL); a large proportion of OSS is licensed under this today +* GNU Affero General Public Licence (AGPL) + +The main difference between GPL and AGPL relates to the type of use that triggers copyleft. With GPL software, the modified source code only needs to be offered if the new software version is offered to third parties as an executable program (e.g. as a mobile app). If the software is only made available via the internet (from one's own cloud from one's own servers), for example in the form of Software as a Service' (SaaS) or an application programming interface (API), this does not trigger copyleft. + +If the software is under the AGPL, the modified source code must also be supplied when the functionality of the software is offered via a website or programming interface. The AGPL is thus even stricter than the GPL. + +With strong copyleft licences, copyleft affects not only the respective software module (library) but the entire software program into which a copyleft-licensed software module may be embedded. The aforementioned 'contagion effect' thus takes hold. + +==== Open source licences with weak copyleft + +Licences with weak copyleft also require that changes to their source code be released to third-party recipients under the original open source licence. + +In contrast to licences with strong copyleft, however, they do not have the effect of 'infecting' other delimitable software components (other libraries or the main program itself) with their licence. This allows the integration of open source software with weak copyleft into proprietary software or into software with other OSS licences without having to be released under the original licence. + +These are the most commonly used open source licences with weak copyleft: + +* GNU Lesser General Public Licence (LGPL) +* Mozilla Public Licence 2.0 (MPL) +* Common Development and Distribution Licence (CDDL) +* Eclipse Public Licence (EPL)footnote:[In addition to the Eclipse Publice Licence (EPL-1.0), there is also the Eclipse Distribution Licence (EDL-1.0). + +While EDL corresponds to the BSD 3 clause, EPL is a weak copyleft licence.] +* Microsoft Reciprocal Licence (Ms-RL) +* European Union Public Licence (EUPL)footnote:[The EUPL itself has a strong copyleft, but due to the opening clause, a transfer to licences with a weak copyleft is possible, so that the protection is limited.] + +==== Permissive open source licences + +Licences without copyleft effect are characterised by the fact that they do not impose any requirements on the licensee regarding the licensing of their derived software, and therefore neither their new source code nor changes to the open source software need to be disclosed to third-party recipients. This enables the development of proprietary software products through the integration of software under permissive open source licences. + +Examples of permissive licences are: + +* MIT Licence +* Apache Licence 2.0 +* Berkeley Software Distribution (BSD) Licence (BSD 2-Clause and BSD 3-Clause) +* Microsoft Public Licence (Ms-PL) + +=== Compatibility of open source licences + +Programs usually consist of a variety of software components and modules that can be connected to each other in different ways. In software development, existing open source components are often integrated into proprietary, internal applications and solutions. As soon as these become accessible from outside via a website, APIs, software distribution or by another means, attention must be paid to the compatibility of the respective open source licences, because then copyleft can take effect. + +If derivative works that are under a certain licence may only be distributed under the same licence conditions, this has the consequence that other open source licences with other or contradictory licence obligations for derivative works cannot be used. + +Some open source licences contain so-called opening clauses, which allow the use of code licensed under them in projects that are under other licences. For example, the LGPL, Version 2.1, also allows the use of the code under the GPL. The GPLv3 contains, among other things, a compatibility clause for the AGPL and the Apache License 2.0. The EUPL is designed very openly and contains a long list of compatible licences in the annex, especially those with weak copyleft, such as the LGPL. This has the consequence that the strong copyleft protection actually specified in the licence is indirectly weakened. + +The following diagram depicts the dependencies of the most important open source licences (Goldstein 2018). The representation is based on the visualisation by David A. Wheeler, who analysed the compatibilities of the various licences and their version numbers (Wheeler 2007) and has been further developed together with information from https://www.gnu.org/licenses/license-list.en.html[https://www.gnu.org/licenses/license-list.en.html]footnote:[Another, extended representation has been used by GEANT in their confluence: "Software Licence Selection and Management in GÉANT - GEANT Software Development Support - GÉANT federated confluence", https://wiki.geant.org/pages/viewpage.action?pageId=1032978710. You will find a few additional licences there.]. + +The diagram should be read as follows: code according to a licence listed earlier in the chain can be incorporated into software that is published under a licence listed later in the chain. For example, code licensed under the modified BSD can be placed under an LGPL or GPL licence variant, but not vice versa. Public domain means that the work is not subject to any copyright restrictions. + +[mermaid,align="center",alt="Compatibility of open source licences"] +.... +flowchart TB + subgraph P["Permissive licence"] + PD["Public Domain"] + MIT["MIT/X11"] + BSD["Modified BSD"] + AP["Apache 2.0"] + end + subgraph W["Weak copyleft"] + EUPL["EUPL"] + LGPL21["LGPLv2.1"] + LGPL21P["LGPLv2.1+"] + LGPL3["LGPLv3 / LGPLv3.1"] + MPL["MPL 1.1"] + end + subgraph SC["Strong copyleft"] + GPL2["GPLv2"] + GPL2P["GPLv2+"] + GPL3["GPLv3 / GPLv3+"] + AGPL["Affero GPLv3"] + end + PD --> MIT + MIT --> BSD + BSD --> AP + BSD --> LGPL21 + BSD --> LGPL21P + BSD --> LGPL3 + BSD --> MPL + AP --> EUPL + AP --> LGPL3 + EUPL --> LGPL21 + EUPL --> LGPL21P + EUPL --> LGPL3 + EUPL --> MPL + LGPL21P --> LGPL21 + LGPL21P --> LGPL3 + LGPL21 --> GPL2 + LGPL21 --> GPL2P + LGPL21P --> GPL2P + LGPL3 --> GPL3 + GPL2P --> GPL2 + GPL2P --> GPL3 + GPL3 -->|"+ Network protection"| AGPL + classDef pd fill:#f5f5f5,stroke:#000000,color:#000000 + classDef perm fill:#dae8fc,stroke:#000000,color:#000000 + classDef weak fill:#d5e8d4,stroke:#000000,color:#000000 + classDef strong fill:#5ea226,stroke:#000000,color:#ffffff + class PD pd + class MIT,BSD,AP perm + class EUPL,LGPL21,LGPL21P,LGPL3,MPL weak + class GPL2,GPL2P,GPL3,AGPL strong +.... + +Figure 2: Compatibility of open source licences (based on diagram by David A. Wheeler, 2007 and https://www.gnu.org/licenses/license-list.en.html) + +Important: As licence compatibilities are always relevant, the development teams/service providers should check the development stacks with libraries for possible compatibility problems in advance. This means that before the use of a library is waved through, it should be checked whether the library's licence is compatible with the relevant licences preferred by the Federal Administration, in addition to considering security and homogeneity in the development stack. + +[[licences-for-pure-usage]] +== Licences for pure usage + +This section deals with the situation where software under an OSS licence is to be used, but this software should not be modified, or modifications are only to be used internally. + +The following licences are generally unproblematic when software is used by federal authorities. However, the corresponding conditions, notably copyleft where applicable, must be adhered to. + +Under certain circumstances, the licence of a pre-existing software module determines the possible licences for the overall product (see Section 4.4). + +Some licences are incompatible in combination (see Figure 2). + +[cols="1,1,3",options="header"] +|=== +|Licence |Copyleft |Special features + +|*MIT* +|No +|Preferred licence of the Federal Administration if further distribution is sought and third parties are to be allowed to develop proprietary software from it again. + +|*Apache 2.0* +|No +|Apache is a very widely used licence known for the projects that are under the Apache Foundation. Use of licensors' trademarks excluded, except for describing the work. + +|*GPL v3* +|Yes +a|This is THE classic copyleft licence. + +Copyleft also applies when GPL-licensed parts are incorporated into an entire program. Prohibition of digital rights management. Special compatibility rules. + +|*LGPLv3* +|Weak +a|Reduced copyleft licence developed specifically for software libraries. + +In contrast to GPL, LGPL allows closed (i.e. proprietary) code to be combined with LGPL code under certain conditions. + +Examples include standard libraries such as glibc. LGPL allows the program, as part of which the library is distributed, to be placed under the GPL. + +|*Affero GPLv3 (AGPL)* +|Yes +a|SaaS use also triggers copyleft. Otherwise analogous to GPLv3. + +This licence closes the loophole in the GPL, which meant that no release was required when used for SaaS offerings. + +With this licence, the Federal Administration can guarantee that enhancements to the code also benefit the general public in the case of SaaS, and best supports the principle of *public money – public code'.* + +|*BSD-3* +|No +a|General, liberal licence. + +Names of authors may not be used to promote derivative works (advertising clause) + +|*European Union Public Licence (EUPL)* +|Weak +a|Special licence used for the EU. + +Particularly useful as a basis for European projects. + +Licence considering European law.Release under certain compatible licences explicitly allowed. +|=== + +Table 1: Licences unproblematic for the federal authorities (according to _[Sc2024]_) + +Other licences may be used. In these cases, it may be necessary to consult the legal department of the respective office. + +== Licence for own projects or creation and for contributions + +This section concerns the following cases: + +* Further development / contribution +** where federal authorities further develop existing software; or +** develop new software, but rely on existing OSS software libraries; and +** make the corresponding software available to third parties. Third parties also include organisations of the decentralised Federal Administration, provided they have their own legal personality. If the further developments are only used internally and not made available to third parties, only <> applies. +* Own projects / creation / publication This section concerns cases in which the federal authorities develop new software. This is likely to be rare, as most developments rely on existing open source software libraries. ++ +For completely new developments, a licence type should be chosen that enables a broad and sustainable basis for further developments. For this, it is important that the licence in question should be widely accepted in the relevant developer community. + +The compatibility check is carried out according to link:em002-2.pdf[Em002-2 Instructions for Publishing OSS], Section 7.4. The compatibility of the licences is shown in Figure 2. + +The following dimensions should be considered: + +* Use case +* Desired checking link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] +* Ease of building a community link:em002-4.pdf[Em002-4 OSS Community Guidelines] +* Ease of application +* Legal certainty +* Distribution + +Licences according to Section <> are preferred. + +The following *copyleft licences* should be used as a priority by federal authorities, especially if sustainable open development is sought and the copyleft effect of inheritance should apply. This ensures that software paid for by the public and all derivatives thereof remain open. This best fulfils the principle of '*public money – public code*' and is *the preferred recommendation for the Federal Administration.* + +Recommended licences in descending order: + +* *AGPL v3* +* GPL v3 +* LGPL 3.0 +* European Union Public Licence (EUPL) + +The following licences should be used by federal authorities when *no copyleft is desired* or required (in descending order): + +* *MIT* +* Apache Licence 2.0 +* BSD v3 + +When collaborating on existing projects, the following licences can also be used without problems: + +* Mozilla Public Licence +* Microsoft Public Licence + +If another licence is to be used, it is recommended to briefly justify this in link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist]. + +*According to Art. 9 para. 4 EMOTA, internationally established licences should be used in all cases.* + +Additional tools for checking licence compatibilities include: + +* ORT Toolkit (https://oss-review-toolkit.org/) +* Black Duck (www.blackducksoftware.com), +* FOSSA (http://www.fossa.com[www.fossa.com]), +* the Open Source Licence Comparison Grid (https://www.cmu.edu/cttec/forms/opensourcelicensegridv1.pdf) +* FOSSology (https://www.fossology.org). +* OpenCode process: https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses#4.-Lizenzierungsleitfragen[https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses] + +== Use cases and suitable licences + +The following table and diagram show how appropriate licences can be selected for open source software based on different use cases. + +[cols="2,2,3",options="header"] +|=== +|*Use case* |*Licence(s)* |*Justification* + +|Use and contribute to existing project +|*Licence as specified by the project* +|Necessary for legal reasons. + +|Licence is forced by the use of existing parts (licences with copyleft) +|*Use licence compatible with the parts.* +a|Necessary for legal reasons. + +NB: A number of libraries are available under several licences. + +Only one of the licences has to correspond. One of the purposes of multiple licensing is to ensure that libraries can be used both with and without copyleft. + +|Existing ecosystem with preferred licence (e.g. it is a plugin for software released under MIT licence. Then using an MIT licence would be most purposeful, as all other users expect this and the software integrates into the ecosystem) +|*Use licence if it is on the list, otherwise use the same licence as much as possible* +|Acceptance in the community is central. + +|The goal is the widest possible distribution, e.g. for a reference implementationfootnote:[For example, to make a law easier to implement, a reference implementation can be commissioned by the federal authorities. See e.g. https://ech.ch/de/ech/ech-0238/1.0] (e.g. for software also to be used in commercial solutions). +a|*MIT* + +BSD v3 + +Apache Licence 2.0 + +LGPL v3 +|In this case, no copyleft should be used. + +|Modifications to the code should flow back to the federal authorities +a|*AGPL v.3* + +GNU GPL v.3 + +EUPL +|AGPL also enforces release by third parties when used in the cloud, GPL and EUPL do not. + +|SaaS solutions should not be exempt from the backflow of code changes +|*AGPL v.3* +|AGPL also enforces release by third parties when used in the cloud. + +|Easy collaboration with the community is important. +a|*AGPL v.3* + +GNU GPL v3 + +Apache Licence 2.0 +a|GPL preferred to keep the software free. + +Apache contains rules for community governance, additional rules for contributions (you may not specify a licence other than Apache; the contribution as such is not regulated in more detail, so if a CLA exists, that should take precedence), a patent licence, rules for patent licensing. Especially also that anyone who asserts patents against another contributor loses their patent licence under the Apache licence. + +The rules that the Apache Foundation sets for contributions are decisive. Apache therefore makes sense if the project governance is to be built primarily according to Apache. + +|Small, universally usable component (library) or small piece of software where sustainability or maintenance by a community is not important +a|*MIT* + +Apache Licence 2.0 + +BSD v3 + +LGPL v3 +a|LGPL stipulates a copyleft only for the component itself, but not for the entire project into which the component is inserted. + +The other licences are permissive. + +|It must be simply and permissive; control is not important +a|*MIT* + +Apache Licence 2.0 + +BSD v3 +|Maximally permissive + +|It is important for the federal authorities what happens to the code and they want to receive as many improvements as possible. +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|It should be prevented that the software becomes proprietary and is positioned as a competitive product on the market +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|It should be prevented that the federal authorities become dependent on individual suppliers ('vendor lock-in') +a|*AGPL v.3* + +GNU GPLv3 +|The copyleft prevents a supplier from gaining a unique position over time by using the Confederation's software in a proprietary product, which could again lead to a dependency for the Confederation on this supplier. +|=== + +Table 2: Licence to be used depending on the use case for the release of new software in accordance with Art. 9 EMOTA *(bold = recommended where no grounds exist to the contrary)* + +[mermaid,align="center",alt="Extended decision tree for licence selection in the Federal Administration"] +.... +flowchart TD + S(["Start"]) + Q1{"Does the bill of materials
enforce the licence?"} + R1["Select the forced /
preferred licence"] + Q2{"Are there preferred licences
in this environment?"} + Q3{"In the list of suitable
licences in Em002-3?"} + R2["Select the next best licence from the list
according to Em002-3 after consulting
the legal service"] + Q4{"Reference implementation
as a suggestion
for third parties?"} + R3["GPL or permissive licence:
MIT, BSD, Apache"] + Q5{"Must improvements
flow back?"} + Q6{"Also with SaaS use?"} + R4["GPL, EUPL"] + R5["AGPL"] + S --> Q1 + Q1 -->|"Yes"| R1 + Q1 -->|"No"| Q2 + Q2 -->|"Yes"| Q3 + Q2 -->|"No"| Q4 + Q3 -->|"Yes"| R1 + Q3 -->|"No"| R2 + Q4 -->|"Yes"| R3 + Q4 -->|"No"| Q5 + Q5 -->|"No"| R3 + Q5 -->|"Yes"| Q6 + Q6 -->|"No"| R4 + Q6 -->|"Yes"| R5 +.... + +Figure 3: Extended decision tree for licence selection in the Federal Administration (if not AGPL or MIT) + +The bill of materials in Figure 3 is the software bill of materials (SBOM) of all pre-existing software libraries and sub-programs that have been incorporated into the overall solution. Each library has its own licence. Depending on how this is compatible with others (see Section 4.4), the possible selection of licences for the publication is limited. + +One last point can also influence the decision: *changing from a more restrictive licence to a less restrictive one is easier afterwards*. In the opposite case, a forkfootnote:[For definition see link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration].] is almost unavoidable. + +== Special legal topics + +=== International aspects + +The essential legal issues of OSS in practice are mainly of a licence contract nature. + +Regarding licence law issues, the law chosen by the parties applies first (for example, the Mozilla Public License MPL contains a choice of law for the defendant's law in Section 8). + +If there is no choice of law, which is the case with all other licences presented here, the law of the licensor's state generally applies. So when federal authorities license software from foreign licensors, the law of the respective country applies. If multiple contributors are involved, this can lead to complex situations. Conversely, Swiss law applies in the event of any disputes between foreign licence holders and the federal authorities as licensor. + +The question of which aspects are contractual in nature and which are copyright in nature cannot be answered generally and may be quite complex in individual cases. The transferability of copyright or parts of copyright, or the scope of permissible rights granted, for example, belongs to copyright law. Here, the law of the respective country of protection must be applied. A deviating choice of law is not possible (for the entirety, see Jaeger/Metzger, 449 ff.). + +=== Exclusion of liability and warranty + +Open source licences regularly exclude any warranty and liability to the extent legally permissible. In practice, there are rarely any liability or warranty issues; the risks involved are therefore low. + +It can be assumed that with correct licensing, the liability exclusion clauses present in all licences discussed here will take effect, so that only liability for gross negligence and intent, possibly personal injury, remains. + +Rules of general terms and conditions may be reserved, e.g. as in Germany; however, insofar as the federal authorities are the subject of liability as a licensor, Swiss law applies (see 8.1 above), which permits the aforementioned exclusions of liability and warranty in B2B transactions. + +Conversely, however, this also means that in the event of program errors, claiming against the authors of included OSS code is usually difficult. + +The usual procedure when using OSS is therefore regularly to protect against errors through the usual IT security measures and to ensure the correction of errors through maintenance contracts. There is no recourse to OSS contributors. + +=== Copyleft and licensing between Federal Administration bodies + +Copyleft applies when passing between different legal entities (for example, within a group or between agencies of the decentralised Federal Administration with their own legal personality). + +Copyleft does not apply when passing between agencies of the same legal entity (for example, within the central Federal Administration). + +=== Licensing of patents + +Software patents are only possible within narrow limits according to European legal opinion. The decisive factor is that the software makes a technical contribution, i.e. solves a concrete technical problem outside the computer on which it runs. Examples would be engine control in cars or the control of a robot. Software as such that only runs on a computer but has no such external effect is generally not patentable in Europe. Thus most software programs do not fall within the scope of patent law. + +In other parts of the world, particularly the USA, software patents are granted somewhat more liberally. However, even in the USA, an abstract idea or business model does not become a patentable invention simply by being implemented in computer software. + +With some licences, any patents of the licensor are not co-licensed. These are the GPL2, the BSD licences, and the MIT licence. + +For projects that could also be used outside Europe, or which exhibit the aforementioned form of external impact, it is advisable to clarify the patent law aspects on a case-by-case basis. + +=== Dual licensing + +The author can license software under different licences simultaneously. This is called dual licensing. + +An interesting form of dual licensing is where the copyright holder licenses the software as OSS with a strong copyleft (which prevents it from being integrated into proprietary software) and also offers interested licensees a _paid_ licence that allows them to integrate the software into their proprietary software. + +Because interested licensees can thus avoid releasing their proprietary software as OSS, they are willing to pay for the licence. See also the annex to link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration]. + +For the federal authorities themselves, dual licensing is likely to be uninteresting in most cases. As long as the copyrights lie with the federal authorities (which is regulated, for example, according to the Federal Administration's general terms and conditions), the federal authorities alone can decide on any dual licensing. + +If maintenance and (further) development are outsourced to third parties, this may be different. If the rights exceptionally lie with them, and if the federal authorities have only reserved the right to grant an OSS licence with copyleft, the third party might be tempted to perform dual licensing. If this is to be prevented, it should be contractually excluded. + +=== Subsequent change of licences + +First, it should be noted that OSS licences are generally unchangeable and irrevocable. Licensees who concluded the licence agreement _before_ any change can continue to use, modify, and pass on the code to third parties based on the old licence. + +In practice, changing licences often leads to a fork of a new version of the software under the old licence, which is further developed independently by the previous licensees. + +The introduction of a new licence for software is only possible if all copyright holders of the software agree. Changes have occurred in practice, for example, when switching from a permissive to a copyleft licence. + +=== Naming of contributors (employees and third parties) + +If a computer program is created in an employment relationship, the employer receives an exclusive licence for its use (Art. 17 CopA). Employees are thus essentially left with only the moral rights to the software (or, depending on the legal opinion, only a core part thereof). The same applies to third parties who develop software for the federal authorities, provided that the corresponding GTCfootnote:[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] of the Confederation apply, which transfer the resulting rights to the federal authorities. + +Nevertheless, the question arises as to whether contributors (employees, third parties) should have the right or obligation to identify themselves as authors of contributions in open source repositories. + +One argument for the federal authorities to use OSS is to offer attractive employment: OSS offers contributors the opportunity to publicly demonstrate their knowledge and thus build a reputation. Their abilities become verifiable, are attested by peers, and those who have gained influence in an OSS project can use this as leverage in job searching. + +Another argument could be the moral rights, the core of which cannot be taken away from the original author either by contract or by law. However, this core area is small for computer programs; demanding that the developer of a computer program should also have a right to be named would probably be going too far. + +In addition, an exchange between experts in the community presupposes that they can be approached individually by others. + +Depending on the project, it may therefore make sense to give contributors the opportunity to identify themselves as contributors in the community. + +From a data protection point of view, compulsion to do so should be avoided, although exchange in the community does not presuppose disclosure of names – pseudonyms are the rule rather than the exception. If contributors do not wish to disclose their names, they should therefore be given the opportunity to appear under a pseudonym. + +*It is recommended that the names of the developers be mentioned in the commits if the project does not object to this.* + +*In any case, the federal authorities should act as rights holders.* + +=== Copyright, licences for generative AI for code creation + +Here, we are referring only to code that has been created using generative AI. Further information on this topic can be found in link:em002-6.pdf[Em002-6 FAQ about OSS++*++ in Section 2.2]. Code created by an LLM is not itself protected by copyright. However, the training data used by the LLM may be protected by copyright. If the code corresponds 1:1, then the licence should also be adopted. If the code was created piecemeal and then modified by the developers, there is little risk that this will be considered derived software. It should be noted that certain LLMs require the code to be labelled accordingly; any contractual agreements in this regard must be observed. + +=== Contributor Licence Agreements (CLA) and Developer Certificate of Origin (DCO) + +When multiple authors work on the code of an open source project, they receive joint rights to the resulting code. + +The licensing of the code to third parties is done via the OSS licence, whereby a separate licence agreement is created between each user and each author (bundle of licences). This constellation can lead to a confusing legal situation, for example in international relations (see 8.1 above). When companies decide to put their software under an OSS licence and accept contributions from third parties, they sometimes have the need to retain some control over the code. + +For example, it may be interesting to keep open the possibility of putting the project under a new licence, or one might want to subject code licensed under copyleft to dual licensing and for this purpose needs more rights than one would get from one's contributors via a simple OSS licence (see 8.5 above). Contributor Licence Agreements (sometimes also Copyright Transfer Agreements) are intended to solve such problems. + +A *Contributor Licence Agreement (CLA)* is a *legally binding agreement* that defines the *conditions for project contributions*. + +Contributors are obliged to agree to this agreement before content can be contributed to the project. Essentially, the contributors grant the project and its users the right to *use, modify and redistribute* the contributions made. Furthermore, it is confirmed that the contributions *were written independently or legitimised by third parties*. + +The *Developer Certificate of Origin (DCO)* is a *verification system introduced* by the Linux Foundation in 2004, which is similar in purpose to the Contributor Licence Agreement (CLA) and represents a suitable alternative instrument. The contributors confirm for each project contribution that *(a) they are authorised to make the contribution, (b) the contribution is covered by a licence compatible with the project and (c) they agree to the distribution and use of the contribution as open source*. + +The main instrument of CLAs is either the assignment of copyrights from the contributors to the main developer or the supporting organisation (in the case of Copyright Transfer Agreements), or the granting of the most extensive, usually irrevocable licence possible by the contributors to the main developer (e.g. Apache has defined a CLA). Contributions to closed projects are also often subject to a CLA. + +CLAs are controversial in the OSS communityfootnote:[For example: https://ben.balter.com/2018/01/02/why-you-probably-shouldnt-add-a-cla-to-your-open-source-project/] because, among other reasons, they can open gaps in copyleft. Therefore, there are now also CLAs that restrict the main developer in terms of granting a new licence for the project's code. + +[mermaid,align="center",alt="Transfer source code and rights in different constellations"] +.... +flowchart LR + subgraph TP["Third parties"] + TP1["no documents of their own"] + TP2["CLA
DCO
OSS licence"] + TP3["CLA
DCO
OSS licence
Contract"] + TP4["no documents of their own"] + end + subgraph FA["Federal Administration"] + FA1["General Terms and Conditions
of the Confederation
Contract"] + FA2["no documents of its own"] + FA3["OSS licence
Contract
(DCO)
(CLA)"] + FA4["OSS licence
(DCO)
(CLA)"] + end + TP1 -- "creation" --> FA1 + TP2 -- "contribution by the Federal Administration" --- FA2 + TP3 <-- "collaboration" --> FA3 + TP4 -- "contribution by third parties" --> FA4 +.... + +Figure 4: Transfer source code and rights in different constellations + +Legend: + +* The boxes show *where the rights are defined* in each constellation. +* *Creation* and *contribution by third parties*: the Federal Administration has the power to shape the situation. +* *Collaboration*: the documents are agreed between the parties. +* *Contribution by the Federal Administration*: the Federal Administration has no power to shape the situation, so a review is necessary. +* The legal documents are listed in order of priority, from top to bottom; documents in brackets should rather be avoided. + +There are no problems for *own developments* (creation): According to Art. 17 CopA, the federal authority is the holder of the usage rights to software created by its own employees. For *third-party developers*, the federal authorities should secure the rights (for example, by using the corresponding GTCs of the Confederation). This means that no CLA or DCO is necessary here. + +Where federal authorities are the main developers and accept contributions and collaborations, the use of a CLA should be avoided. Digital Certificates of Origin (explained with an example in link:em002-4.pdf[Em002-4 OSS Community Guidelines], Section 3.3) may be used instead. In principle, contributions to federal authority projects should build on the OSS licence so as not to raise the barrier to contribution any further. + +Should a need for a CLA nonetheless be identified in a specific case following appropriate review, the federal authority should use the Apache CLA.footnote:[https://www.apache.org/licenses/contributor-agreements.html] In that event, this decision and the CLA should be noted in the concluding remarks of both link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Preliminary Assessment Checklist] and link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist]. + +Where federal authorities contribute to third-party software that requires a CLA, the legal service must examine on a case-by-case basis whether the federal authority can accept the existing CLA.footnote:[For any given recipient, the federal administration would only need to review the signing of a CLA once. In other organisations, this is therefore treated as a high-level matter, with signed CLAs kept on file in the contracts repository. CLAs must not undermine the federal authority's obligations under Art. 9 EMOTA.] The following points must be determined: + +* Has another federal authority already signed the CLA? +* Who reviews the CLA? +* Who signs it? (The signatory must be authorised to sign on behalf of the Confederation vis-à-vis third parties) +* Where is it filed? +* How is the CLA or DCO documented in the project? +* How is it ensured that the code that has been released remains published? (This remains the responsibility of the federal authority under Art. 9 EMOTA, see [KBB-MB].) + +Possible criteria for the review are: + +* Compatibility with Art. 9 EMOTA: does the code remain open? +* Does the federal authority see any risks for itself? +* Does the federal authority see a benefit for itself (e.g. the code does not have to be maintained or developed further alone) or for others (within Switzerland's federal system or across Europe, broader impact can be achieved without additional effort)? +* Are the rights assigned reasonable? +* Are no (unnecessary) obligations imposed on the federal authority? +* Is the CLA substantially equivalent to the Apache CLA? + +=== Problems with (L)GPL-3.0 and IoT + +_[BITKOM2023]_ points out a problem with the use of (L)GPL-3.0 licences in connection with device-related software: such devices would have to allow the installation of own/new software versions. This may not be desirable for security reasons. + +=== Legal status of documentation + +According to Art. 5 CopA, "decisions, minutes and reports issued by authorities and public administrations" are not protected by copyright. + +This goes further than CC-0 because the rights holder cannot dedicate the work to the public domain by waiving all copyright and neighbouring rights worldwide. It is already in the public domain by law. The dispatch on Art. 5 CopA says: "The provision still allows copyright protection for a whole number of works that have arisen from official activity or in connection with it. + +Documents from internal administrative study committees and working groups, expert reports or journals of federal offices, for example, do not fall under the norm. There is no overriding interest in their free distribution because they do not influence the legal position of the citizen." + +It can thus be argued that for many of the relevant documents and the documentation published by federal authorities in connection with open source software, no copyright protection exists. The criterion is whether or not the document affects the legal status of the citizen and is thus exempt from copyright protection. If not, then a suitable licence (CC-0footnote:[https://www.creativecommons.ch/], CC-BY, CC-BY-SA or possibly LGPL) should be used for documentation. + +Nevertheless, especially with international use of the documentation, many users would be unclear about the situation. + +We therefore consider it expedient if, as with this document here, a corresponding release is also listed for safety's sake. + +== Further information on legal issues + +Further information on open source software, specific licence characteristics and in-depth legal aspects can be found in numerous publications, which are presented below (see also the references at the end of the document). + +* The text _'Open Source Software im EMOTA, Analyse des neuen Art. 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben'_ by Rika Koch and Simon Schlauri, in the proceedings of the IT Procurement Conference 2023 in Bern, offers additional guidance on the implementation of Art. 9 EMOTA. +* The German BITKOM's _Open Source Software 2.0 Guidelines_ addresses legal issues related to open source in detail _[BITKOM2023]_. However, it is based on the legal situation in Germany. +* Wolfgang Straub, in his book _Softwareschutz: Copyright Law, Patent Law, Open Source_, examines the legal details of copyleft in relation to Swiss copyright law and explores the compatibility of open source licences [St2011]. The section on open source software (as well as German translations of various open source licences considering Swiss legal terminology) are freely available at _www.it-recht.ch._ +* Till Jaeger and Axel Metzger provide in-depth answers to numerous legal questions related to open source software in their comprehensive book _Open Source Software - Rechtliche Rahmenbedingungen der Freien Software [JaAx2016]_. However, they base their analysis on the legal situation in Germany. +* Kropp Jonathan/Bauer Alexander, Open Source Compliance and Litigation, CB 2019 pp. 285 ff., 285. +* Reymond Michel José, Questions de responsabilité civile et contractuelle soulevées par la distribution de 'logiciels libres' (open source), SZW 2022 p. 69 ff. + +In addition, various online portals provide detailed information on the characteristics and issues of specific open source licences. + +* On the GitHub platform https://choosealicense.com, the desired goals for an open source project can be selected and the appropriate open source licence is suggested. +* At https://opensource.guide/legal/ GitHub provides an online guide that addresses specific legal issues. +* At https://www.gnu.org/licenses/license-list.en.html you will find brief comments on various licences with information on compatibility, in particular the GPL. +* At https://opensource.org/faq the Open Source Initiative addresses numerous questions and answers on the legal aspects of open source licences. +* At https://copyleft.org/guide you will find a detailed guide explaining the details of copyleft. +* At https://tldrlegal.com the most important open source licences are summarised according to what the respective licence permits ('can'), what it prohibits ('cannot') and what it prescribes ('must'). +* At https://opensource.com/tags/licensing articles on current licence issues are published on an ongoing basis. +* At https://www.ifross.org/faq-haeufig-gestellte-fragen the private Institute for Legal Issues of Free and Open Source Software' in Berlin (ifrOSS) has published numerous answers to frequently asked legal questions. + +Today, compliance with open source licences is primarily implemented using software tools (for further information on open source compliance, see also Fröhlich-Bleuler _[Fr2012]_ and Kuhn, Williamson and Sandler _[KuWiSa2008]_). For example, various open source tools from the Linux Foundation are documented and published under the term 'fossology' at https://www.fossology.org. Also, commercial supplier such as Black Duckfootnote:[https://www.blackducksoftware.com] or FOSSAfootnote:[https://fossa.com] offer various proprietary solutions that can be used to check the compatibility of the open source licences used. + +== Annex + +=== Changes from previous version + +* Management Summary added. +* AGPL and MIT licences are now recommended as preferable. +* New in Section 8.8: Copyright for code generated with AI. +* Section 8.9 CLA and CDO greatly expanded. +* Various editorial improvements and clarifications. +* More examples given. + +=== References + +See link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration]. + +=== Abbreviations + +See link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration] and link:em002-6.pdf[Em002-6 FAQ about OSS]. + +=== Examples of releases and their licence + +In future, this list will be replaced by a collection of metadata via publiccode.yml. + +=== D.1 Loom + +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:: +- + +=== D.2 trustbroker.swiss + +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. + +=== D.3 Geocat.ch + +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:: +- + +=== D.4 GWEN / ampycloud / c4dl-multi / dvas /… + +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:: +- + +=== D.5 EMSG application (asset management in settlement areas) + +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:: +- + +=== D.6 Covid certificate application + +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. + +=== D.7 GovCert website + +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:: +- + +=== D.8 Various libraries on open data (e.g. linked data) + +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. + +=== D.9 Apache FOP customised for archivable PDF + +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. + +=== D.10 Legally compliant electronic input with eKomm + +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). +endif::[] + +ifeval::["{lang}" == "de"] +*Haftungsausschluss:* Dieses Dokument ist ein laufend weiterentwickelter Entwurf und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Weitere Informationen finden Sie im {url-repo}/tree/main[README]. + +''''' + +== Management Summary + +Es wird empfohlen, bei einem Projektstart in der Bundesverwaltung strategisch eine der folgenden beiden Lizenzen festzulegen: + +* *AGPL-Lizenz*: Copyleft-Effekt erwünscht. Geänderter Code soll in jedem Fall wieder der Allgemeinheit zufliessen und kann dann auch von der Bundesverwaltung wieder übernommen werden. Es wird empfohlen, die neuste Version der Lizenz zu verwenden. So lässt sich der Grundsatz «public money – public code» am besten erfüllen. Rechte Dritter, insbesondere bei Weiterentwicklungen, können dies auf LGPL abschwächen. +* *MIT-Lizenz*: Dritten soll es möglich sein, auf Basis des Codes der Bundesverwaltung proprietäre Anwendungen zu entwickeln. Wird ausdrücklich eine Non-Endorsement-Klausel verlangt, so ist BSD-3-Clause vorzuziehen. + +Zur Lizenzwahl kann die folgende Entscheidungshilfe verwendet werden: + +[mermaid,align="center",alt="Vereinfachte Entscheidungshilfe zur Lizenzwahl"] +.... +flowchart TD + S(["Start"]) + Q1{"Die «Umgebung»
gibt die Lizenz vor"} + A["Vorgegebene
Lizenz wählen"] + Q2{"Bibliothek, Referenzimplementierung
oder liberale Vorgaben"} + B["MIT"] + C["AGPL"] + S --> Q1 + Q1 -->|"Ja"| A + Q1 -->|"Nein"| Q2 + Q2 -->|"Ja"| B + Q2 -->|"Nein"| C +.... + +Abbildung 1: Vereinfachte Entscheidungshilfe zur Lizenzwahl + +In gewissem Sinne bilden diese beiden Lizenzen die beiden Extreme im Spektrum der OSS-Lizenzen. Es kann durchaus sinnvoll sein, für ein konkretes Projekt eine besser geeignete Lizenz zu wählen. Dieser Leitfaden soll dabei konkrete Unterstützung bieten. + +Ergibt die Analyse der Softwarebibliotheken, dass eine andere Lizenz verwendet werden muss, so weisen die Entwickelnden die Projektleitung darauf hin. Die Analyse ist in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] dargelegt. + +Bei der Mitarbeit an bestehenden Projekten sind grundsätzlich alle OSI-kompatiblen Lizenzen akzeptabel. + +== Einleitung + +Artikel 9 des Bundesgesetzes vom 17. März 2023footnote:[SR 172.019] über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG) sieht vor, dass die Bundesbehörden Software, die sie entwickeln oder entwickeln lassen, als Open-Source-Software veröffentlichen und lizenzieren müssen. + +Dieses Dokument verfolgt die folgenden Ziele: + +* Einführung in die Themen Urheberrecht an Software und OSS-Lizenzen. +* Eine Darstellung, welche OSS-Lizenzen für den Einsatz in der Bundesverwaltung unproblematisch sind. In diesem Dokument nicht genannte Lizenzen und Software unter solchen Lizenzen dürfen ohne zusätzliche Prüfung der Vertragsbestimmungen durch den zuständigen Rechtsdienst nicht verwendet werden. +* Unterstützung bei der Lizenzwahl für die Entwicklung oder Beschaffung eines Projekts nach Art. 9 EMBAG. + +== Urheberrecht und Lizenzen: Grundlagen + +Das Urheberrecht begründet sowohl Persönlichkeitsrechte als auch Vermögensrechte (Verwertungsrechte). Zu den Persönlichkeitsrechten gehört beispielsweise das Recht auf Anerkennung der Urheberschaft oder das Recht zu bestimmen, ob und wann das Werk veröffentlicht wird. Zu den Verwertungsrechten gehört beispielsweise das Recht, Werkexemplare herzustellen oder zu verbreiten. + +Das Bundesgesetz vom 9. Oktober 1992footnote:[SR 231.1] über das Urheberrecht und verwandte Schutzrechte (URG) sieht eine Reihe weiterer Persönlichkeits- und Verwertungsrechte vor (siehe Art. 8 ff. URG). Diese Rechte stehen der Urheberin oder dem Urheber unmittelbar mit der Schaffung des Werks zu. + +Art. 2 URG legt fest, unter welchen Voraussetzungen urheberrechtlicher Schutz gewährt wird. Ein geschütztes Werk im Sinne des Gesetzes liegt nur vor, wenn diese Voraussetzungen erfüllt sind. + +Die Voraussetzungen sind: + +* Das Werk muss geschaffen worden sein; das blosse Auffinden genügt nicht. Forschungsdaten etwa, also Ergebnisse von Experimenten, lassen sich nicht als Werke einstufen. +* Die Schöpfung muss «geistig» sein, also von einem Menschen stammen. +* Das Werk muss in wahrnehmbarer Weise verwirklicht worden sein. Die blosse Idee hinter einem Werk ist nicht geschützt, sondern nur seine äussere Form, z. B. ein Ausdruck eines Textes auf Papier oder die Aufführung eines Musikstücks. +* Individualität: Schliesslich muss das Werk ein gewisses Mindestmass an Individualität aufweisen. Ein Werk, das jede und jeder gleich gestalten würde, ist nicht geschützt. + +Geschützt werden können ganz unterschiedliche Werke, etwa literarische oder wissenschaftliche Texte, Musikwerke, fotografische, filmische und andere visuelle oder audiovisuelle Werke. + +Nach Art. 2 Abs. 3 URG sind auch Computerprogramme Werke, sofern die genannten Voraussetzungen erfüllt sind. + +Die Urheberrechte stehen mit ihrer Entstehung allein der Urheberin oder dem Urheber zu. Nur sie oder er kann einer anderen Person untersagen, die entsprechenden Handlungen vorzunehmen. Die Urheberin oder der Urheber kann ihre bzw. seine Rechte jedoch nicht nur selbst ausüben: + +* Sie oder er kann die Rechte an Dritte übertragen (z. B. durch Verkauf). Die neue Rechtsinhaberin oder der neue Rechtsinhaber kann diese Rechte anschliessend gleich geltend machen wie die Urheberin bzw. der Urheber selbst. +* Alternativ kann die Urheberin oder der Urheber ihre bzw. seine Rechte Dritten auch lizenzieren. Vereinfacht gesagt ist eine Lizenz ein Vertrag, mit dem die Rechtsinhaberin oder der Rechtsinhaber einem Dritten die Nutzung des Werks erlaubt. Die Urheberin oder der Urheber behält die Rechte, verzichtet jedoch gegenüber der Lizenznehmerin bzw. dem Lizenznehmer auf deren Durchsetzung. + +Wird ein Computerprogramm im Arbeitsverhältnis geschaffen, so erhält die Arbeitgeberin eine ausschliessliche Lizenz zu dessen Nutzung (Art. 17 URG). Den Arbeitnehmenden verbleiben damit im Wesentlichen nur die Persönlichkeitsrechte an der Software (bzw. je nach Rechtsauffassung nur deren Kernbereich). Dies entspricht der Rechtslage nach dem Bundespersonalgesetz. + +== OSS-Lizenzen + +=== Grundlagen + +OSS zeichnet sich im Wesentlichen durch die folgenden Merkmale aus (nach einer Definition der Open Source Initiative _[Pe1999]_footnote:[https://opensource.org/]): + +* Die unbeschränkte und unentgeltliche Weiterverbreitung der Software ist erlaubt; +* Die Software liegt im Quellcode vor; +* Änderungen an der Software und deren Weiterverbreitung unter derselben Lizenz sind grundsätzlich erlaubt; +* Keine Personen oder Personengruppen dürfen von der Nutzung der Software ausgeschlossen werden, und keine Anwendungsbereiche dürfen ausgeschlossen werden (insbesondere nicht die kommerzielle Nutzung); und +* Die Verbreitung der Software zusammen mit anderer Software (etwa Closed-Source-Software) darf nicht eingeschränkt werden. + +Die häufigsten Motive für den Einsatz von OSS sind zunächst die Kosteneinsparungen durch die Nutzung des bereits beträchtlichen Pools frei verwendbarer Software. Unternehmen, die häufig OSS einsetzen, können oft erhebliche Teile ihres IT-Budgets durch den Einsatz von OSS einsparen. + +Frei verfügbarer Code lässt sich zudem leicht an die eigenen Bedürfnisse anpassen. Überdies vermeidet die Wahl von OSS einen Vendor-Lock-in.footnote:[https://de.wikipedia.org/wiki/Lock-in-Effekt] + +=== Open-Source-Lizenzen + +Open-Source-Lizenzen sind in erster Linie normale Lizenzverträge für Computerprogramme. + +Anders als normale Lizenzverträge kommen OSS-Lizenzverträge jedoch ohne Weiteres zustande, sobald nur eine der in der Lizenz beschriebenen freien Nutzungsformen ausgeübt wird (etwa durch Kopieren, Weiterverbreiten oder Ändern von Software). + +=== Copyleft versus permissiv + +==== Allgemeines + +Eine Open-Source-Lizenz nach der OSI kann eine «Copyleft»-Bestimmung enthalten. Änderungen an entsprechend lizenzierter Software müssen wieder unter denselben Bedingungen angeboten werden, die für die ursprüngliche Software galten. Wer solche Änderungen vornimmt, muss bei der Verbreitung der Open-Source-Software in Form von maschinenlesbarem Objektcode den Empfangenden auch den Quellcode anbieten. + +In der Formulierung der Free Software Foundation schützt der Copyleft-Effekt die Freiheit der Entwickelnden und stellt damit sicher, dass einmal freie Software immer frei bleibt. + +Bei Copyleft-Lizenzen findet eine Art Austausch zwischen der Community und den nutzenden Unternehmen statt. Die Nutzenden, die im Gegenzug für die Vorteile aus dem bestehenden Softwarepool verpflichtet sind, ihre eigenen Entwicklungen wieder unter die jeweilige Lizenz zu stellen, tragen so zur Weiterentwicklung des Softwarepools bei. Im Ergebnis profitieren beide Seiten. + +Die Copyleft-Bestimmung hat einen gewissen «Ansteckungseffekt»: Wird copyleft-lizenzierte Software in zuvor proprietäre Software integriert, so muss die ursprünglich proprietäre Software unter einer kompatiblen Open-Source-Lizenz offengelegt werden. + +Beim Einsatz von copyleft-lizenziertem Quellcode ist daher darauf zu achten, ihn nur dort zu integrieren, wo die entstehende Software unter einer Open-Source-Lizenz veröffentlicht werden kann und soll. + +Enthält eine Open-Source-Lizenz keine Copyleft-Bestimmung (permissive Open-Source-Lizenz), so kann die Lizenz für überarbeitete Fassungen des Codes frei gewählt werden. Insbesondere ist es auch möglich, Änderungen wieder unter eine proprietäre Softwarelizenz zu stellen und den entsprechenden Quellcode in proprietäre Software zu integrieren. + +Im Wesentlichen lassen sich Open-Source-Lizenzen in *die folgenden Kategorien* einteilen: + +. Open-Source-Lizenzen mit *starkem Copyleft*; +. Open-Source-Lizenzen mit *schwachem Copyleft*; und +. *permissive* bzw. *Non-Copyleft*-Open-Source-Lizenzen. + +==== Open-Source-Lizenzen mit starkem Copyleft + +Bei Verwendung einer Open-Source-Lizenz mit starkem Copyleft müssen neue, von der ursprünglichen Software abgeleitete Versionen, sofern sie an Dritte weitergegeben werden, unter die Bedingungen der ursprünglichen Lizenz gestellt und diesen Dritten als Quellcode zur Verfügung gestellt werden. + +Als massgebende Open-Source-Lizenzen mit starkem Copyleft gelten am Markt die folgenden beiden: + +* GNU General Public Licence (GPL); ein grosser Teil der OSS ist heute darunter lizenziert +* GNU Affero General Public Licence (AGPL) + +Der Hauptunterschied zwischen GPL und AGPL betrifft die Art der Nutzung, die das Copyleft auslöst. Bei GPL-Software muss der geänderte Quellcode nur angeboten werden, wenn die neue Softwareversion Dritten als ausführbares Programm angeboten wird (z. B. als mobile App). Wird die Software nur über das Internet zur Verfügung gestellt (aus der eigenen Cloud von eigenen Servern), etwa in Form von «Software as a Service» (SaaS) oder einer Programmierschnittstelle (API), so löst dies kein Copyleft aus. + +Steht die Software unter der AGPL, so muss der geänderte Quellcode auch dann mitgeliefert werden, wenn die Funktionalität der Software über eine Website oder eine Programmierschnittstelle angeboten wird. Die AGPL ist damit noch strenger als die GPL. + +Bei Lizenzen mit starkem Copyleft betrifft das Copyleft nicht nur das jeweilige Softwaremodul (Bibliothek), sondern das gesamte Softwareprogramm, in das ein copyleft-lizenziertes Softwaremodul eingebettet sein kann. Der erwähnte «Ansteckungseffekt» greift somit. + +==== Open-Source-Lizenzen mit schwachem Copyleft + +Auch Lizenzen mit schwachem Copyleft verlangen, dass Änderungen an ihrem Quellcode den empfangenden Dritten unter der ursprünglichen Open-Source-Lizenz freigegeben werden. + +Anders als Lizenzen mit starkem Copyleft bewirken sie jedoch nicht, dass andere abgrenzbare Softwarekomponenten (andere Bibliotheken oder das Hauptprogramm selbst) mit ihrer Lizenz «infiziert» werden. Dies erlaubt die Integration von Open-Source-Software mit schwachem Copyleft in proprietäre Software oder in Software mit anderen OSS-Lizenzen, ohne dass diese unter der ursprünglichen Lizenz freigegeben werden muss. + +Dies sind die am häufigsten verwendeten Open-Source-Lizenzen mit schwachem Copyleft: + +* GNU Lesser General Public Licence (LGPL) +* Mozilla Public Licence 2.0 (MPL) +* Common Development and Distribution Licence (CDDL) +* Eclipse Public Licence (EPL)footnote:[Neben der Eclipse Public Licence (EPL-1.0) gibt es auch die Eclipse Distribution Licence (EDL-1.0). + +Während die EDL der BSD-3-Clause entspricht, ist die EPL eine Lizenz mit schwachem Copyleft.] +* Microsoft Reciprocal Licence (Ms-RL) +* European Union Public Licence (EUPL)footnote:[Die EUPL selbst hat ein starkes Copyleft, doch ist aufgrund der Öffnungsklausel ein Übergang zu Lizenzen mit schwachem Copyleft möglich, sodass der Schutz begrenzt ist.] + +==== Permissive Open-Source-Lizenzen + +Lizenzen ohne Copyleft-Effekt zeichnen sich dadurch aus, dass sie den Lizenznehmenden keine Vorgaben zur Lizenzierung ihrer abgeleiteten Software machen und daher weder ihr neuer Quellcode noch Änderungen an der Open-Source-Software den empfangenden Dritten offengelegt werden müssen. Dies ermöglicht die Entwicklung proprietärer Softwareprodukte durch die Integration von Software unter permissiven Open-Source-Lizenzen. + +Beispiele permissiver Lizenzen sind: + +* MIT Licence +* Apache Licence 2.0 +* Berkeley Software Distribution (BSD) Licence (BSD 2-Clause und BSD 3-Clause) +* Microsoft Public Licence (Ms-PL) + +=== Kompatibilität von Open-Source-Lizenzen + +Programme bestehen in der Regel aus einer Vielzahl von Softwarekomponenten und -modulen, die auf unterschiedliche Weise miteinander verbunden sein können. In der Softwareentwicklung werden bestehende Open-Source-Komponenten häufig in proprietäre, interne Anwendungen und Lösungen integriert. Sobald diese von aussen über eine Website, APIs, Softwareverteilung oder auf andere Weise zugänglich werden, ist auf die Kompatibilität der jeweiligen Open-Source-Lizenzen zu achten, denn dann kann das Copyleft greifen. + +Dürfen abgeleitete Werke, die unter einer bestimmten Lizenz stehen, nur unter denselben Lizenzbedingungen verbreitet werden, so hat dies zur Folge, dass andere Open-Source-Lizenzen mit anderen oder widersprüchlichen Lizenzpflichten für abgeleitete Werke nicht verwendet werden können. + +Manche Open-Source-Lizenzen enthalten sogenannte Öffnungsklauseln, die die Verwendung des darunter lizenzierten Codes in Projekten erlauben, die unter anderen Lizenzen stehen. So erlaubt etwa die LGPL, Version 2.1, auch die Verwendung des Codes unter der GPL. Die GPLv3 enthält unter anderem eine Kompatibilitätsklausel für die AGPL und die Apache License 2.0. Die EUPL ist sehr offen gestaltet und enthält im Anhang eine lange Liste kompatibler Lizenzen, insbesondere solcher mit schwachem Copyleft wie der LGPL. Dies hat zur Folge, dass der in der Lizenz eigentlich vorgesehene starke Copyleft-Schutz indirekt abgeschwächt wird. + +Die folgende Grafik bildet die Abhängigkeiten der wichtigsten Open-Source-Lizenzen ab (Goldstein 2018). Die Darstellung beruht auf der Visualisierung von David A. Wheeler, der die Kompatibilitäten der verschiedenen Lizenzen und ihrer Versionsnummern analysiert hat (Wheeler 2007), und wurde zusammen mit Angaben von https://www.gnu.org/licenses/license-list.de.html[https://www.gnu.org/licenses/license-list.de.html] weiterentwickelt.footnote:[Eine weitere, erweiterte Darstellung verwendet GEANT in seinem Confluence: «Software Licence Selection and Management in GÉANT - GEANT Software Development Support - GÉANT federated confluence», https://wiki.geant.org/pages/viewpage.action?pageId=1032978710. Dort finden sich einige zusätzliche Lizenzen.] + +Die Grafik ist wie folgt zu lesen: Code nach einer früher in der Kette aufgeführten Lizenz kann in Software übernommen werden, die unter einer später in der Kette aufgeführten Lizenz veröffentlicht wird. So kann etwa Code unter der modifizierten BSD unter eine LGPL- oder GPL-Lizenzvariante gestellt werden, aber nicht umgekehrt. Public Domain bedeutet, dass das Werk keinen urheberrechtlichen Beschränkungen unterliegt. + +[mermaid,align="center",alt="Kompatibilität von Open-Source-Lizenzen"] +.... +flowchart TB + subgraph P["Permissive Lizenz"] + PD["Public Domain"] + MIT["MIT/X11"] + BSD["Modifizierte BSD"] + AP["Apache 2.0"] + end + subgraph W["Schwaches Copyleft"] + EUPL["EUPL"] + LGPL21["LGPLv2.1"] + LGPL21P["LGPLv2.1+"] + LGPL3["LGPLv3 / LGPLv3.1"] + MPL["MPL 1.1"] + end + subgraph SC["Starkes Copyleft"] + GPL2["GPLv2"] + GPL2P["GPLv2+"] + GPL3["GPLv3 / GPLv3+"] + AGPL["Affero GPLv3"] + end + PD --> MIT + MIT --> BSD + BSD --> AP + BSD --> LGPL21 + BSD --> LGPL21P + BSD --> LGPL3 + BSD --> MPL + AP --> EUPL + AP --> LGPL3 + EUPL --> LGPL21 + EUPL --> LGPL21P + EUPL --> LGPL3 + EUPL --> MPL + LGPL21P --> LGPL21 + LGPL21P --> LGPL3 + LGPL21 --> GPL2 + LGPL21 --> GPL2P + LGPL21P --> GPL2P + LGPL3 --> GPL3 + GPL2P --> GPL2 + GPL2P --> GPL3 + GPL3 -->|"+ Netzwerkschutz"| AGPL + classDef pd fill:#f5f5f5,stroke:#000000,color:#000000 + classDef perm fill:#dae8fc,stroke:#000000,color:#000000 + classDef weak fill:#d5e8d4,stroke:#000000,color:#000000 + classDef strong fill:#5ea226,stroke:#000000,color:#ffffff + class PD pd + class MIT,BSD,AP perm + class EUPL,LGPL21,LGPL21P,LGPL3,MPL weak + class GPL2,GPL2P,GPL3,AGPL strong +.... + +Abbildung 2: Kompatibilität von Open-Source-Lizenzen (in Anlehnung an die Grafik von David A. Wheeler, 2007 und https://www.gnu.org/licenses/license-list.de.html) + +Wichtig: Da Lizenzkompatibilitäten stets relevant sind, sollten die Entwicklungsteams bzw. Leistungserbringer die Entwicklungs-Stacks mit Bibliotheken vorgängig auf mögliche Kompatibilitätsprobleme prüfen. Das heisst: Bevor der Einsatz einer Bibliothek durchgewinkt wird, sollte neben Sicherheit und Homogenität im Entwicklungs-Stack geprüft werden, ob die Lizenz der Bibliothek mit den massgebenden, von der Bundesverwaltung bevorzugten Lizenzen kompatibel ist. + +[[licences-for-pure-usage]] +== Lizenzen für die reine Nutzung + +Dieses Kapitel behandelt die Situation, in der Software unter einer OSS-Lizenz genutzt werden soll, diese Software jedoch nicht verändert werden soll oder Änderungen nur intern genutzt werden. + +Die folgenden Lizenzen sind bei der Nutzung von Software durch Bundesbehörden grundsätzlich unproblematisch. Die entsprechenden Bedingungen, namentlich ein allfälliges Copyleft, sind jedoch einzuhalten. + +Unter Umständen bestimmt die Lizenz eines bereits bestehenden Softwaremoduls die möglichen Lizenzen für das Gesamtprodukt (siehe Kapitel 4.4). + +Manche Lizenzen sind in Kombination inkompatibel (siehe Abbildung 2). + +[cols="1,1,3",options="header"] +|=== +|Lizenz |Copyleft |Besonderheiten + +|*MIT* +|Nein +|Bevorzugte Lizenz der Bundesverwaltung, wenn eine Weiterverbreitung angestrebt wird und Dritten erlaubt werden soll, daraus wieder proprietäre Software zu entwickeln. + +|*Apache 2.0* +|Nein +|Apache ist eine sehr verbreitete Lizenz, bekannt durch die Projekte unter der Apache Foundation. Nutzung der Marken der Lizenzgebenden ausgeschlossen, ausser zur Beschreibung des Werks. + +|*GPL v3* +|Ja +a|Dies ist DIE klassische Copyleft-Lizenz. + +Das Copyleft gilt auch, wenn GPL-lizenzierte Teile in ein Gesamtprogramm eingebunden werden. Verbot von Digital Rights Management. Besondere Kompatibilitätsregeln. + +|*LGPLv3* +|Schwach +a|Reduzierte Copyleft-Lizenz, eigens für Softwarebibliotheken entwickelt. + +Anders als die GPL erlaubt die LGPL, geschlossenen (also proprietären) Code unter bestimmten Bedingungen mit LGPL-Code zu kombinieren. + +Beispiele sind Standardbibliotheken wie glibc. Die LGPL erlaubt, das Programm, als dessen Teil die Bibliothek verbreitet wird, unter die GPL zu stellen. + +|*Affero GPLv3 (AGPL)* +|Ja +a|Auch die SaaS-Nutzung löst Copyleft aus. Im Übrigen analog zur GPLv3. + +Diese Lizenz schliesst die Lücke der GPL, die dazu führte, dass bei der Nutzung für SaaS-Angebote keine Freigabe nötig war. + +Mit dieser Lizenz kann die Bundesverwaltung sicherstellen, dass Erweiterungen des Codes auch bei SaaS der Allgemeinheit zugutekommen, und unterstützt den Grundsatz *«public money – public code»* am besten. + +|*BSD-3* +|Nein +a|Allgemeine, liberale Lizenz. + +Namen der Autorinnen und Autoren dürfen nicht zur Bewerbung abgeleiteter Werke verwendet werden (Werbeklausel) + +|*European Union Public Licence (EUPL)* +|Schwach +a|Besondere Lizenz, die für die EU verwendet wird. + +Besonders geeignet als Grundlage für europäische Projekte. + +Lizenz unter Berücksichtigung des europäischen Rechts. Freigabe unter bestimmten kompatiblen Lizenzen ausdrücklich erlaubt. +|=== + +Tabelle 1: Für die Bundesbehörden unproblematische Lizenzen (nach _[Sc2024]_) + +Andere Lizenzen dürfen verwendet werden. In diesen Fällen kann es nötig sein, den Rechtsdienst des jeweiligen Amtes beizuziehen. + +== Lizenz für eigene Projekte bzw. Creation und für Contributions + +Dieses Kapitel betrifft die folgenden Fälle: + +* Weiterentwicklung / Contribution +** bei der Bundesbehörden bestehende Software weiterentwickeln; oder +** neue Software entwickeln, dabei aber auf bestehende OSS-Softwarebibliotheken zurückgreifen; und +** die entsprechende Software Dritten zur Verfügung stellen. Zu den Dritten zählen auch Organisationen der dezentralen Bundesverwaltung, sofern sie eine eigene Rechtspersönlichkeit haben. Werden die Weiterentwicklungen nur intern genutzt und nicht Dritten zur Verfügung gestellt, so gilt nur <>. +* Eigene Projekte / Creation / Veröffentlichung: Dieses Kapitel betrifft Fälle, in denen die Bundesbehörden neue Software entwickeln. Dies dürfte selten sein, da die meisten Entwicklungen auf bestehende Open-Source-Softwarebibliotheken zurückgreifen. ++ +Für vollständige Neuentwicklungen sollte ein Lizenztyp gewählt werden, der eine breite und nachhaltige Grundlage für Weiterentwicklungen ermöglicht. Wichtig ist dabei, dass die betreffende Lizenz in der massgebenden Entwickler-Community breit akzeptiert ist. + +Die Kompatibilitätsprüfung erfolgt nach link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS], Kapitel 7.4. Die Kompatibilität der Lizenzen zeigt Abbildung 2. + +Die folgenden Dimensionen sollten berücksichtigt werden: + +* Anwendungsfall +* Gewünschte Prüfung link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] +* Einfachheit des Community-Aufbaus link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] +* Einfachheit der Anwendung +* Rechtssicherheit +* Verbreitung + +Lizenzen nach Kapitel <> sind zu bevorzugen. + +Die folgenden *Copyleft-Lizenzen* sollten von den Bundesbehörden vorrangig verwendet werden, insbesondere wenn eine nachhaltige offene Entwicklung angestrebt wird und der vererbende Copyleft-Effekt gelten soll. Damit wird sichergestellt, dass von der Öffentlichkeit bezahlte Software und sämtliche Ableitungen davon offen bleiben. Dies erfüllt den Grundsatz «*public money – public code*» am besten und ist *die bevorzugte Empfehlung für die Bundesverwaltung.* + +Empfohlene Lizenzen in absteigender Reihenfolge: + +* *AGPL v3* +* GPL v3 +* LGPL 3.0 +* European Union Public Licence (EUPL) + +Die folgenden Lizenzen sollten von den Bundesbehörden verwendet werden, wenn *kein Copyleft gewünscht* oder erforderlich ist (in absteigender Reihenfolge): + +* *MIT* +* Apache Licence 2.0 +* BSD v3 + +Bei der Mitarbeit an bestehenden Projekten können zudem problemlos die folgenden Lizenzen verwendet werden: + +* Mozilla Public Licence +* Microsoft Public Licence + +Soll eine andere Lizenz verwendet werden, so wird empfohlen, dies in der link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] kurz zu begründen. + +*Nach Art. 9 Abs. 4 EMBAG sollen in jedem Fall international etablierte Lizenzen verwendet werden.* + +Weitere Werkzeuge zur Prüfung von Lizenzkompatibilitäten sind: + +* ORT Toolkit (https://oss-review-toolkit.org/) +* Black Duck (www.blackducksoftware.com), +* FOSSA (http://www.fossa.com[www.fossa.com]), +* das Open Source Licence Comparison Grid (https://www.cmu.edu/cttec/forms/opensourcelicensegridv1.pdf) +* FOSSology (https://www.fossology.org). +* OpenCode-Prozess: https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses#4.-Lizenzierungsleitfragen[https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses] + +== Anwendungsfälle und geeignete Lizenzen + +Die folgende Tabelle und die folgende Grafik zeigen, wie anhand unterschiedlicher Anwendungsfälle geeignete Lizenzen für Open-Source-Software ausgewählt werden können. + +[cols="2,2,3",options="header"] +|=== +|*Anwendungsfall* |*Lizenz(en)* |*Begründung* + +|Bestehendes Projekt nutzen und dazu beitragen +|*Lizenz gemäss Vorgabe des Projekts* +|Aus rechtlichen Gründen erforderlich. + +|Die Lizenz ist durch die Verwendung bestehender Teile vorgegeben (Lizenzen mit Copyleft) +|*Mit den Teilen kompatible Lizenz verwenden.* +a|Aus rechtlichen Gründen erforderlich. + +Hinweis: Eine Reihe von Bibliotheken ist unter mehreren Lizenzen verfügbar. + +Nur eine der Lizenzen muss übereinstimmen. Einer der Zwecke der Mehrfachlizenzierung ist es, sicherzustellen, dass Bibliotheken sowohl mit als auch ohne Copyleft genutzt werden können. + +|Bestehendes Ökosystem mit bevorzugter Lizenz (z. B. handelt es sich um ein Plug-in für Software, die unter MIT-Lizenz veröffentlicht ist. Dann wäre die Verwendung einer MIT-Lizenz am zweckmässigsten, da alle anderen Nutzenden dies erwarten und sich die Software in das Ökosystem einfügt) +|*Lizenz verwenden, wenn sie auf der Liste steht, ansonsten möglichst dieselbe Lizenz verwenden* +|Die Akzeptanz in der Community ist zentral. + +|Ziel ist eine möglichst breite Verbreitung, z. B. bei einer Referenzimplementierungfootnote:[Um beispielsweise ein Gesetz leichter umsetzbar zu machen, kann eine Referenzimplementierung von den Bundesbehörden in Auftrag gegeben werden. Siehe z. B. https://ech.ch/de/ech/ech-0238/1.0] (z. B. bei Software, die auch in kommerziellen Lösungen eingesetzt werden soll). +a|*MIT* + +BSD v3 + +Apache Licence 2.0 + +LGPL v3 +|In diesem Fall sollte kein Copyleft verwendet werden. + +|Änderungen am Code sollen an die Bundesbehörden zurückfliessen +a|*AGPL v.3* + +GNU GPL v.3 + +EUPL +|Die AGPL erzwingt die Freigabe durch Dritte auch bei der Nutzung in der Cloud, GPL und EUPL nicht. + +|SaaS-Lösungen sollen vom Rückfluss von Codeänderungen nicht ausgenommen sein +|*AGPL v.3* +|Die AGPL erzwingt die Freigabe durch Dritte auch bei der Nutzung in der Cloud. + +|Eine einfache Zusammenarbeit mit der Community ist wichtig. +a|*AGPL v.3* + +GNU GPL v3 + +Apache Licence 2.0 +a|GPL wird bevorzugt, um die Software frei zu halten. + +Apache enthält Regeln für die Community-Governance, zusätzliche Regeln für Beiträge (man darf keine andere Lizenz als Apache angeben; der Beitrag als solcher ist nicht näher geregelt, besteht also ein CLA, so geht dieses vor), eine Patentlizenz sowie Regeln zur Patentlizenzierung. Insbesondere auch, dass jemand, der Patente gegen eine andere beitragende Person geltend macht, seine Patentlizenz unter der Apache-Lizenz verliert. + +Massgebend sind die Regeln, welche die Apache Foundation für Beiträge festlegt. Apache ist daher sinnvoll, wenn die Projekt-Governance in erster Linie nach Apache aufgebaut werden soll. + +|Kleine, universell nutzbare Komponente (Bibliothek) oder kleines Stück Software, bei dem Nachhaltigkeit oder Pflege durch eine Community nicht wichtig ist +a|*MIT* + +Apache Licence 2.0 + +BSD v3 + +LGPL v3 +a|Die LGPL sieht ein Copyleft nur für die Komponente selbst vor, nicht jedoch für das gesamte Projekt, in das die Komponente eingefügt wird. + +Die anderen Lizenzen sind permissiv. + +|Es muss einfach und permissiv sein; Kontrolle ist nicht wichtig +a|*MIT* + +Apache Licence 2.0 + +BSD v3 +|Maximal permissiv + +|Es ist für die Bundesbehörden wichtig, was mit dem Code geschieht, und sie möchten möglichst viele Verbesserungen erhalten. +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|Es soll verhindert werden, dass die Software proprietär wird und als Konkurrenzprodukt am Markt positioniert wird +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|Es soll verhindert werden, dass die Bundesbehörden von einzelnen Lieferanten abhängig werden («Vendor-Lock-in») +a|*AGPL v.3* + +GNU GPLv3 +|Das Copyleft verhindert, dass ein Lieferant mit der Zeit eine Alleinstellung erlangt, indem er die Software des Bundes in einem proprietären Produkt nutzt, was für den Bund wiederum zu einer Abhängigkeit von diesem Lieferanten führen könnte. +|=== + +Tabelle 2: Je nach Anwendungsfall zu verwendende Lizenz für die Freigabe neuer Software nach Art. 9 EMBAG *(fett = empfohlen, sofern keine Gründe dagegensprechen)* + +[mermaid,align="center",alt="Erweiterter Entscheidungsbaum zur Lizenzwahl in der Bundesverwaltung"] +.... +flowchart TD + S(["Start"]) + Q1{"Gibt die Stückliste
die Lizenz vor?"} + R1["Vorgegebene /
bevorzugte Lizenz wählen"] + Q2{"Gibt es in dieser Umgebung
bevorzugte Lizenzen?"} + Q3{"In der Liste geeigneter
Lizenzen in Em002-3?"} + R2["Nächstbeste Lizenz aus der Liste
gemäss Em002-3 nach Rücksprache
mit dem Rechtsdienst wählen"] + Q4{"Referenzimplementierung
als Vorschlag
für Dritte?"} + R3["GPL oder permissive Lizenz:
MIT, BSD, Apache"] + Q5{"Müssen Verbesserungen
zurückfliessen?"} + Q6{"Auch bei SaaS-Nutzung?"} + R4["GPL, EUPL"] + R5["AGPL"] + S --> Q1 + Q1 -->|"Ja"| R1 + Q1 -->|"Nein"| Q2 + Q2 -->|"Ja"| Q3 + Q2 -->|"Nein"| Q4 + Q3 -->|"Ja"| R1 + Q3 -->|"Nein"| R2 + Q4 -->|"Ja"| R3 + Q4 -->|"Nein"| Q5 + Q5 -->|"Nein"| R3 + Q5 -->|"Ja"| Q6 + Q6 -->|"Nein"| R4 + Q6 -->|"Ja"| R5 +.... + +Abbildung 3: Erweiterter Entscheidungsbaum zur Lizenzwahl in der Bundesverwaltung (falls nicht AGPL oder MIT) + +Die Stückliste in Abbildung 3 ist die Software Bill of Materials (SBOM) aller bereits bestehenden Softwarebibliotheken und Teilprogramme, die in die Gesamtlösung eingeflossen sind. Jede Bibliothek hat ihre eigene Lizenz. Je nachdem, wie diese mit anderen kompatibel ist (siehe Kapitel 4.4), ist die mögliche Auswahl an Lizenzen für die Veröffentlichung eingeschränkt. + +Ein letzter Punkt kann den Entscheid ebenfalls beeinflussen: *Der Wechsel von einer restriktiveren zu einer weniger restriktiven Lizenz ist nachträglich einfacher*. Im umgekehrten Fall ist ein Forkfootnote:[Zur Definition siehe link:em002-1.pdf[Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung].] kaum zu vermeiden. + +== Besondere rechtliche Themen + +=== Internationale Aspekte + +Die wesentlichen Rechtsfragen von OSS in der Praxis sind überwiegend lizenzvertraglicher Natur. + +Bei lizenzrechtlichen Fragen gilt zunächst das von den Parteien gewählte Recht (die Mozilla Public License MPL etwa enthält in Ziffer 8 eine Rechtswahl zugunsten des Rechts der beklagten Partei). + +Fehlt eine Rechtswahl, was bei allen übrigen hier vorgestellten Lizenzen der Fall ist, so gilt in der Regel das Recht des Staates der lizenzgebenden Partei. Lizenzieren Bundesbehörden also Software von ausländischen Lizenzgebenden, so gilt das Recht des jeweiligen Landes. Sind mehrere Beitragende beteiligt, so kann dies zu komplexen Situationen führen. Umgekehrt gilt bei allfälligen Streitigkeiten zwischen ausländischen Lizenznehmenden und den Bundesbehörden als Lizenzgeberin Schweizer Recht. + +Die Frage, welche Aspekte vertraglicher und welche urheberrechtlicher Natur sind, lässt sich nicht allgemein beantworten und kann im Einzelfall recht komplex sein. Die Übertragbarkeit des Urheberrechts oder von Teilen davon oder der Umfang zulässiger Rechtseinräumungen gehören etwa zum Urheberrecht. Hier ist das Recht des jeweiligen Schutzlandes anzuwenden. Eine abweichende Rechtswahl ist nicht möglich (zum Ganzen siehe Jaeger/Metzger, 449 ff.). + +=== Haftungs- und Gewährleistungsausschluss + +Open-Source-Lizenzen schliessen regelmässig jede Gewährleistung und Haftung so weit aus, wie dies rechtlich zulässig ist. In der Praxis treten selten Haftungs- oder Gewährleistungsfragen auf; die damit verbundenen Risiken sind daher gering. + +Es ist davon auszugehen, dass bei korrekter Lizenzierung die in allen hier behandelten Lizenzen vorhandenen Haftungsausschlussklauseln greifen, sodass nur die Haftung für grobe Fahrlässigkeit und Vorsatz, allenfalls für Personenschäden, bestehen bleibt. + +Regeln zu allgemeinen Geschäftsbedingungen bleiben vorbehalten, etwa wie in Deutschland; soweit jedoch die Bundesbehörden als Lizenzgeberin Haftungssubjekt sind, gilt Schweizer Recht (siehe 8.1 oben), das die genannten Haftungs- und Gewährleistungsausschlüsse im B2B-Verkehr zulässt. + +Umgekehrt bedeutet dies aber auch, dass bei Programmfehlern ein Vorgehen gegen die Autorinnen und Autoren des enthaltenen OSS-Codes in der Regel schwierig ist. + +Das übliche Vorgehen beim Einsatz von OSS besteht daher regelmässig darin, sich mit den üblichen IT-Sicherheitsmassnahmen gegen Fehler abzusichern und die Fehlerbehebung über Wartungsverträge sicherzustellen. Ein Rückgriff auf OSS-Beitragende besteht nicht. + +=== Copyleft und Lizenzierung zwischen Stellen der Bundesverwaltung + +Das Copyleft gilt bei der Weitergabe zwischen verschiedenen Rechtsträgern (beispielsweise innerhalb eines Konzerns oder zwischen Stellen der dezentralen Bundesverwaltung mit eigener Rechtspersönlichkeit). + +Das Copyleft gilt nicht bei der Weitergabe zwischen Stellen desselben Rechtsträgers (beispielsweise innerhalb der zentralen Bundesverwaltung). + +=== Lizenzierung von Patenten + +Softwarepatente sind nach europäischer Rechtsauffassung nur in engen Grenzen möglich. Entscheidend ist, dass die Software einen technischen Beitrag leistet, also ein konkretes technisches Problem ausserhalb des Computers löst, auf dem sie läuft. Beispiele wären die Motorsteuerung in Autos oder die Steuerung eines Roboters. Software als solche, die nur auf einem Computer läuft, aber keine solche Aussenwirkung hat, ist in Europa grundsätzlich nicht patentierbar. Damit fallen die meisten Softwareprogramme nicht in den Anwendungsbereich des Patentrechts. + +In anderen Teilen der Welt, insbesondere in den USA, werden Softwarepatente etwas grosszügiger erteilt. Doch auch in den USA wird eine abstrakte Idee oder ein Geschäftsmodell nicht allein dadurch zur patentierbaren Erfindung, dass sie in Computersoftware umgesetzt wird. + +Bei manchen Lizenzen werden allfällige Patente der lizenzgebenden Partei nicht mitlizenziert. Dies sind die GPL2, die BSD-Lizenzen und die MIT-Lizenz. + +Bei Projekten, die auch ausserhalb Europas genutzt werden könnten oder die die genannte Form der Aussenwirkung aufweisen, empfiehlt es sich, die patentrechtlichen Aspekte im Einzelfall abzuklären. + +=== Duale Lizenzierung + +Die Urheberin oder der Urheber kann Software gleichzeitig unter verschiedenen Lizenzen lizenzieren. Dies wird duale Lizenzierung genannt. + +Eine interessante Form der dualen Lizenzierung liegt vor, wenn die Rechtsinhaberin die Software als OSS mit starkem Copyleft lizenziert (was deren Integration in proprietäre Software verhindert) und interessierten Lizenznehmenden zugleich eine _kostenpflichtige_ Lizenz anbietet, die ihnen die Integration der Software in ihre proprietäre Software erlaubt. + +Weil interessierte Lizenznehmende so vermeiden können, ihre proprietäre Software als OSS freizugeben, sind sie bereit, für die Lizenz zu bezahlen. Siehe auch den Anhang zu link:em002-1.pdf[Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung]. + +Für die Bundesbehörden selbst dürfte die duale Lizenzierung in den meisten Fällen uninteressant sein. Solange die Urheberrechte bei den Bundesbehörden liegen (was etwa nach den allgemeinen Geschäftsbedingungen des Bundes geregelt ist), können die Bundesbehörden allein über eine allfällige duale Lizenzierung entscheiden. + +Werden Wartung und (Weiter-)Entwicklung an Dritte ausgelagert, so kann dies anders sein. Liegen die Rechte ausnahmsweise bei diesen und haben sich die Bundesbehörden nur das Recht auf Erteilung einer OSS-Lizenz mit Copyleft vorbehalten, so könnte der Dritte versucht sein, eine duale Lizenzierung vorzunehmen. Soll dies verhindert werden, so sollte es vertraglich ausgeschlossen werden. + +=== Nachträgliche Änderung von Lizenzen + +Zunächst ist festzuhalten, dass OSS-Lizenzen grundsätzlich unveränderlich und unwiderruflich sind. Lizenznehmende, die den Lizenzvertrag _vor_ einer Änderung abgeschlossen haben, können den Code weiterhin auf Grundlage der alten Lizenz nutzen, verändern und an Dritte weitergeben. + +In der Praxis führt eine Lizenzänderung oft zu einem Fork einer neuen Version der Software unter der alten Lizenz, der von den bisherigen Lizenznehmenden eigenständig weiterentwickelt wird. + +Die Einführung einer neuen Lizenz für Software ist nur möglich, wenn alle Urheberrechtsinhabenden der Software zustimmen. Änderungen sind in der Praxis vorgekommen, etwa beim Wechsel von einer permissiven zu einer Copyleft-Lizenz. + +=== Nennung von Beitragenden (Mitarbeitende und Dritte) + +Wird ein Computerprogramm im Arbeitsverhältnis geschaffen, so erhält die Arbeitgeberin eine ausschliessliche Lizenz zu dessen Nutzung (Art. 17 URG). Den Arbeitnehmenden verbleiben damit im Wesentlichen nur die Persönlichkeitsrechte an der Software (bzw. je nach Rechtsauffassung nur deren Kernbereich). Dasselbe gilt für Dritte, die Software für die Bundesbehörden entwickeln, sofern die entsprechenden AGBfootnote:[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] des Bundes gelten, welche die entstehenden Rechte an die Bundesbehörden übertragen. + +Dennoch stellt sich die Frage, ob Beitragende (Mitarbeitende, Dritte) das Recht oder die Pflicht haben sollen, sich in Open-Source-Repositories als Autorinnen und Autoren von Beiträgen zu erkennen zu geben. + +Ein Argument für die Bundesbehörden, OSS einzusetzen, ist das Angebot attraktiver Arbeitsplätze: OSS bietet Beitragenden die Möglichkeit, ihr Wissen öffentlich zu zeigen und sich so einen Ruf aufzubauen. Ihre Fähigkeiten werden überprüfbar, werden von Peers bestätigt, und wer in einem OSS-Projekt Einfluss gewonnen hat, kann dies bei der Stellensuche als Hebel nutzen. + +Ein weiteres Argument könnten die Persönlichkeitsrechte sein, deren Kernbereich der ursprünglichen Urheberin bzw. dem ursprünglichen Urheber weder vertraglich noch gesetzlich entzogen werden kann. Dieser Kernbereich ist bei Computerprogrammen jedoch klein; zu verlangen, dass die Entwicklerin oder der Entwickler eines Computerprogramms auch ein Recht auf Nennung haben sollte, ginge wohl zu weit. + +Zudem setzt ein Austausch zwischen Fachpersonen in der Community voraus, dass sie von anderen einzeln angesprochen werden können. + +Je nach Projekt kann es daher sinnvoll sein, Beitragenden die Möglichkeit zu geben, sich in der Community als Beitragende zu erkennen zu geben. + +Aus Sicht des Datenschutzes ist ein Zwang dazu zu vermeiden, wobei der Austausch in der Community keine Offenlegung von Namen voraussetzt – Pseudonyme sind eher die Regel als die Ausnahme. Wollen Beitragende ihre Namen nicht offenlegen, so sollte ihnen daher die Möglichkeit gegeben werden, unter einem Pseudonym aufzutreten. + +*Es wird empfohlen, die Namen der Entwickelnden in den Commits zu nennen, sofern das Projekt dem nicht entgegensteht.* + +*In jedem Fall sollten die Bundesbehörden als Rechtsinhaberinnen auftreten.* + +=== Urheberrecht, Lizenzen für generative KI zur Codeerstellung + +Hier beziehen wir uns nur auf Code, der mithilfe generativer KI erstellt wurde. Weitere Informationen zu diesem Thema finden sich in link:em002-6.pdf[Em002-6 FAQ zu OSS++*++ in Kapitel 2.2]. Von einem LLM erstellter Code ist selbst nicht urheberrechtlich geschützt. Die vom LLM verwendeten Trainingsdaten können jedoch urheberrechtlich geschützt sein. Entspricht der Code 1:1, so sollte auch die Lizenz übernommen werden. Wurde der Code stückweise erstellt und anschliessend von den Entwickelnden verändert, so ist das Risiko gering, dass er als abgeleitete Software gilt. Zu beachten ist, dass bestimmte LLM eine entsprechende Kennzeichnung des Codes verlangen; allfällige vertragliche Vereinbarungen dazu sind einzuhalten. + +=== Contributor Licence Agreements (CLA) und Developer Certificate of Origin (DCO) + +Arbeiten mehrere Autorinnen und Autoren am Code eines Open-Source-Projekts, so erhalten sie gemeinsame Rechte am entstehenden Code. + +Die Lizenzierung des Codes an Dritte erfolgt über die OSS-Lizenz, wobei zwischen jeder nutzenden Person und jeder Autorin bzw. jedem Autor ein eigener Lizenzvertrag entsteht (Lizenzbündel). Diese Konstellation kann zu einer unübersichtlichen Rechtslage führen, etwa in internationalen Verhältnissen (siehe 8.1 oben). Entscheiden sich Unternehmen, ihre Software unter eine OSS-Lizenz zu stellen und Beiträge Dritter anzunehmen, so haben sie mitunter das Bedürfnis, eine gewisse Kontrolle über den Code zu behalten. + +So kann es etwa interessant sein, die Möglichkeit offenzuhalten, das Projekt unter eine neue Lizenz zu stellen, oder man möchte unter Copyleft lizenzierten Code einer dualen Lizenzierung unterziehen und benötigt dafür mehr Rechte, als man von den Beitragenden über eine einfache OSS-Lizenz erhielte (siehe 8.5 oben). Contributor Licence Agreements (mitunter auch Copyright Transfer Agreements) sollen solche Probleme lösen. + +Ein *Contributor Licence Agreement (CLA)* ist eine *rechtsverbindliche Vereinbarung*, welche die *Bedingungen für Projektbeiträge* festlegt. + +Beitragende sind verpflichtet, dieser Vereinbarung zuzustimmen, bevor Inhalte zum Projekt beigetragen werden können. Im Wesentlichen räumen die Beitragenden dem Projekt und seinen Nutzenden das Recht ein, die geleisteten Beiträge zu *nutzen, zu verändern und weiterzuverbreiten*. Zudem wird bestätigt, dass die Beiträge *eigenständig verfasst oder von Dritten legitimiert wurden*. + +Das *Developer Certificate of Origin (DCO)* ist ein 2004 von der Linux Foundation *eingeführtes Prüfsystem*, das dem Contributor Licence Agreement (CLA) im Zweck ähnlich ist und ein geeignetes alternatives Instrument darstellt. Die Beitragenden bestätigen für jeden Projektbeitrag, dass *(a) sie befugt sind, den Beitrag zu leisten, (b) der Beitrag von einer mit dem Projekt kompatiblen Lizenz erfasst ist und (c) sie der Verbreitung und Nutzung des Beitrags als Open Source zustimmen*. + +Das Hauptinstrument von CLA ist entweder die Abtretung der Urheberrechte von den Beitragenden an die Hauptentwicklerin bzw. den Hauptentwickler oder die tragende Organisation (bei Copyright Transfer Agreements) oder die Einräumung einer möglichst weitgehenden, in der Regel unwiderruflichen Lizenz durch die Beitragenden an die Hauptentwicklung (z. B. hat Apache ein CLA definiert). Auch Beiträge an geschlossene Projekte unterliegen häufig einem CLA. + +CLA sind in der OSS-Community umstrittenfootnote:[Beispielsweise: https://ben.balter.com/2018/01/02/why-you-probably-shouldnt-add-a-cla-to-your-open-source-project/], unter anderem weil sie Lücken im Copyleft öffnen können. Daher gibt es inzwischen auch CLA, welche die Hauptentwicklung bei der Erteilung einer neuen Lizenz für den Code des Projekts einschränken. + +[mermaid,align="center",alt="Übertragung von Quellcode und Rechten in verschiedenen Konstellationen"] +.... +flowchart LR + subgraph TP["Dritte"] + TP1["keine eigenen Dokumente"] + TP2["CLA
DCO
OSS-Lizenz"] + TP3["CLA
DCO
OSS-Lizenz
Vertrag"] + TP4["keine eigenen Dokumente"] + end + subgraph FA["Bundesverwaltung"] + FA1["AGB des Bundes
Vertrag"] + FA2["keine eigenen Dokumente"] + FA3["OSS-Lizenz
Vertrag
(DCO)
(CLA)"] + FA4["OSS-Lizenz
(DCO)
(CLA)"] + end + TP1 -- "Erstellung" --> FA1 + TP2 -- "Beitrag der Bundesverwaltung" --- FA2 + TP3 <-- "Zusammenarbeit" --> FA3 + TP4 -- "Beitrag Dritter" --> FA4 +.... + +Abbildung 4: Übertragung von Quellcode und Rechten in verschiedenen Konstellationen + +Legende: + +* Die Kästchen zeigen, *wo die Rechte definiert sind*. +* *Erstellung* und *Beitrag Dritter*: Die Bundesverwaltung hat die Gestaltungsmacht. +* *Zusammenarbeit*: Die Dokumente werden zwischen den Parteien vereinbart. +* *Beitrag der Bundesverwaltung*: Die Bundesverwaltung hat keine Gestaltungsmacht, eine Prüfung ist nötig. +* Die Rechtsdokumente sind von oben nach unten nach Priorität geordnet; Dokumente in Klammern sind eher zu vermeiden. + +Für *Eigenentwicklungen* (Creation) bestehen keine Probleme: Nach Art. 17 URG ist die Bundesbehörde Inhaberin der Nutzungsrechte an Software, die von ihren eigenen Mitarbeitenden geschaffen wurde. Bei *Drittentwickelnden* sollten sich die Bundesbehörden die Rechte sichern (beispielsweise durch Verwendung der entsprechenden AGB des Bundes). Damit ist hier kein CLA oder DCO nötig. + +Wo Bundesbehörden Hauptentwicklerinnen sind und Beiträge sowie Zusammenarbeiten annehmen, sollte auf die Verwendung eines CLA verzichtet werden. Stattdessen können Digital Certificates of Origin (mit einem Beispiel erläutert in link:em002-4.pdf[Em002-4 Leitfaden OSS-Community], Kapitel 3.3) verwendet werden. Grundsätzlich sollten Beiträge an Projekte von Bundesbehörden auf der OSS-Lizenz aufbauen, um die Hürde für Beiträge nicht weiter zu erhöhen. + +Wird im Einzelfall nach entsprechender Prüfung dennoch ein Bedarf für ein CLA festgestellt, so sollte die Bundesbehörde das Apache-CLA verwenden.footnote:[https://www.apache.org/licenses/contributor-agreements.html] In diesem Fall sollten dieser Entscheid und das CLA in den Schlussbemerkungen sowohl der link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] als auch der link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] vermerkt werden. + +Tragen Bundesbehörden zu Drittsoftware bei, die ein CLA verlangt, so muss der Rechtsdienst im Einzelfall prüfen, ob die Bundesbehörde das bestehende CLA annehmen kann.footnote:[Für eine bestimmte Empfängerin müsste die Bundesverwaltung die Unterzeichnung eines CLA nur einmal prüfen. In anderen Organisationen wird dies daher als Angelegenheit auf hoher Ebene behandelt, wobei unterzeichnete CLA in der Vertragsablage aufbewahrt werden. CLA dürfen die Pflichten der Bundesbehörde nach Art. 9 EMBAG nicht unterlaufen.] Die folgenden Punkte sind zu bestimmen: + +* Hat eine andere Bundesbehörde das CLA bereits unterzeichnet? +* Wer prüft das CLA? +* Wer unterzeichnet es? (Die unterzeichnende Person muss befugt sein, für den Bund gegenüber Dritten zu unterschreiben) +* Wo wird es abgelegt? +* Wie wird das CLA oder DCO im Projekt dokumentiert? +* Wie wird sichergestellt, dass der freigegebene Code veröffentlicht bleibt? (Dies bleibt nach Art. 9 EMBAG in der Verantwortung der Bundesbehörde, siehe [KBB-MB].) + +Mögliche Kriterien für die Prüfung sind: + +* Vereinbarkeit mit Art. 9 EMBAG: Bleibt der Code offen? +* Sieht die Bundesbehörde Risiken für sich? +* Sieht die Bundesbehörde einen Nutzen für sich (z. B. muss der Code nicht allein gepflegt oder weiterentwickelt werden) oder für andere (innerhalb des Föderalismus der Schweiz oder europaweit lässt sich ohne Mehraufwand eine breitere Wirkung erzielen)? +* Sind die eingeräumten Rechte angemessen? +* Werden der Bundesbehörde keine (unnötigen) Pflichten auferlegt? +* Entspricht das CLA im Wesentlichen dem Apache-CLA? + +=== Probleme mit (L)GPL-3.0 und IoT + +_[BITKOM2023]_ weist auf ein Problem bei der Verwendung von (L)GPL-3.0-Lizenzen im Zusammenhang mit geräteseitiger Software hin: Solche Geräte müssten die Installation eigener bzw. neuer Softwareversionen zulassen. Dies kann aus Sicherheitsgründen unerwünscht sein. + +=== Rechtsstellung der Dokumentation + +Nach Art. 5 URG sind «Entscheidungen, Protokolle und Berichte von Behörden und öffentlichen Verwaltungen» nicht urheberrechtlich geschützt. + +Dies geht weiter als CC-0, weil die Rechtsinhaberin das Werk nicht durch weltweiten Verzicht auf alle Urheber- und verwandten Schutzrechte in die Gemeinfreiheit entlassen muss. Es ist bereits von Gesetzes wegen gemeinfrei. Die Botschaft zu Art. 5 URG hält fest: «Die Bestimmung lässt den urheberrechtlichen Schutz nach wie vor für eine ganze Reihe von Werken zu, die aus amtlicher Tätigkeit oder im Zusammenhang damit entstanden sind. + +Unterlagen verwaltungsinterner Studienkommissionen und Arbeitsgruppen, Gutachten oder Zeitschriften von Bundesämtern etwa fallen nicht unter die Norm. An deren freier Verbreitung besteht kein überwiegendes Interesse, weil sie die Rechtsstellung der Bürgerin und des Bürgers nicht beeinflussen.» + +Damit lässt sich argumentieren, dass für viele der massgebenden Dokumente und die von Bundesbehörden im Zusammenhang mit Open-Source-Software veröffentlichte Dokumentation kein urheberrechtlicher Schutz besteht. Das Kriterium ist, ob das Dokument die Rechtsstellung der Bürgerin und des Bürgers berührt und damit vom urheberrechtlichen Schutz ausgenommen ist. Ist dies nicht der Fall, so sollte für die Dokumentation eine geeignete Lizenz (CC-0footnote:[https://www.creativecommons.ch/], CC-BY, CC-BY-SA oder allenfalls LGPL) verwendet werden. + +Dennoch wäre insbesondere bei internationaler Nutzung der Dokumentation für viele Nutzende die Lage unklar. + +Wir erachten es daher als zweckmässig, wenn wie bei diesem Dokument sicherheitshalber ebenfalls eine entsprechende Freigabe aufgeführt wird. + +== Weitere Informationen zu Rechtsfragen + +Weitere Informationen zu Open-Source-Software, zu spezifischen Lizenzmerkmalen und zu vertieften rechtlichen Aspekten finden sich in zahlreichen Publikationen, die nachfolgend vorgestellt werden (siehe auch die Referenzen am Ende des Dokuments). + +* Der Text _«Open Source Software im EMBAG, Analyse des neuen Art. 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben»_ von Rika Koch und Simon Schlauri, im Tagungsband der IT-Beschaffungskonferenz 2023 in Bern, bietet zusätzliche Orientierung zur Umsetzung von Art. 9 EMBAG. +* Der _Leitfaden Open-Source-Software 2.0_ des deutschen BITKOM behandelt rechtliche Fragen rund um Open Source ausführlich _[BITKOM2023]_. Er beruht jedoch auf der Rechtslage in Deutschland. +* Wolfgang Straub untersucht in seinem Buch _Softwareschutz: Urheberrecht, Patentrecht, Open Source_ die rechtlichen Einzelheiten des Copylefts mit Bezug zum Schweizer Urheberrecht und geht der Kompatibilität von Open-Source-Lizenzen nach [St2011]. Das Kapitel zur Open-Source-Software (sowie deutsche Übersetzungen verschiedener Open-Source-Lizenzen unter Berücksichtigung der Schweizer Rechtsterminologie) sind unter _www.it-recht.ch_ frei verfügbar. +* Till Jaeger und Axel Metzger beantworten in ihrem umfassenden Buch _Open Source Software – Rechtliche Rahmenbedingungen der Freien Software [JaAx2016]_ zahlreiche Rechtsfragen rund um Open-Source-Software vertieft. Sie stützen ihre Analyse jedoch auf die Rechtslage in Deutschland. +* Kropp Jonathan/Bauer Alexander, Open Source Compliance und Litigation, CB 2019 S. 285 ff., 285. +* Reymond Michel José, Questions de responsabilité civile et contractuelle soulevées par la distribution de «logiciels libres» (open source), SZW 2022 S. 69 ff. + +Zudem informieren verschiedene Online-Portale ausführlich über die Merkmale und Fragen einzelner Open-Source-Lizenzen. + +* Auf der GitHub-Plattform https://choosealicense.com lassen sich die gewünschten Ziele für ein Open-Source-Projekt auswählen, worauf die passende Open-Source-Lizenz vorgeschlagen wird. +* Unter https://opensource.guide/legal/ stellt GitHub einen Online-Leitfaden bereit, der auf spezifische Rechtsfragen eingeht. +* Unter https://www.gnu.org/licenses/license-list.de.html finden sich Kurzkommentare zu verschiedenen Lizenzen mit Angaben zur Kompatibilität, insbesondere zur GPL. +* Unter https://opensource.org/faq behandelt die Open Source Initiative zahlreiche Fragen und Antworten zu den rechtlichen Aspekten von Open-Source-Lizenzen. +* Unter https://copyleft.org/guide findet sich ein ausführlicher Leitfaden, der die Einzelheiten des Copylefts erläutert. +* Unter https://tldrlegal.com werden die wichtigsten Open-Source-Lizenzen danach zusammengefasst, was die jeweilige Lizenz erlaubt («can»), was sie verbietet («cannot») und was sie vorschreibt («must»). +* Unter https://opensource.com/tags/licensing werden laufend Artikel zu aktuellen Lizenzfragen veröffentlicht. +* Unter https://www.ifross.org/faq-haeufig-gestellte-fragen hat das private «Institut für Rechtsfragen der Freien und Open Source Software» in Berlin (ifrOSS) zahlreiche Antworten auf häufig gestellte Rechtsfragen veröffentlicht. + +Die Einhaltung von Open-Source-Lizenzen wird heute in erster Linie mit Softwarewerkzeugen umgesetzt (zu weiteren Informationen zur Open-Source-Compliance siehe auch Fröhlich-Bleuler _[Fr2012]_ sowie Kuhn, Williamson und Sandler _[KuWiSa2008]_). So sind etwa verschiedene Open-Source-Werkzeuge der Linux Foundation unter dem Begriff «fossology» unter https://www.fossology.org dokumentiert und veröffentlicht. Auch kommerzielle Anbieter wie Black Duckfootnote:[https://www.blackducksoftware.com] oder FOSSAfootnote:[https://fossa.com] bieten verschiedene proprietäre Lösungen an, mit denen die Kompatibilität der verwendeten Open-Source-Lizenzen geprüft werden kann. + +== Anhang + +=== Änderungen gegenüber der Vorversion + +* Management Summary ergänzt. +* AGPL- und MIT-Lizenz werden neu als vorzugswürdig empfohlen. +* Neu in Kapitel 8.8: Urheberrecht für mit KI erzeugten Code. +* Kapitel 8.9 CLA und CDO stark erweitert. +* Verschiedene redaktionelle Verbesserungen und Präzisierungen. +* Mehr Beispiele aufgeführt. + +=== Referenzen + +Siehe link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung]. + +=== Abkürzungen + +Siehe link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung] und link:em002-6.pdf[Em002-6 FAQ zu OSS]. + +=== Beispiele von Freigaben und ihrer Lizenz + +Künftig wird diese Liste durch eine Sammlung von Metadaten über publiccode.yml ersetzt. + +=== D.1 Loom + +URL:: +https://gitlab.com/swiss-armed-forces/cyber-command/cea/loom +Bundesbehörde:: +Cyber Command +Beschreibung:: +Loom ist eine leistungsfähige, einfach zu bedienende Dokumentensuchmaschine. Sie automatisiert die Indexierung konfigurierter Datenquellen, führt OCR durch, extrahiert Inhalte und Metadaten, ermöglicht Tagging und bietet leistungsfähige Such- und Bedienmöglichkeiten. +Jahr:: +2025 +Lizenz:: +MIT +Begründung:: +- + +=== D.2 trustbroker.swiss + +URL:: +https://github.com/trustbroker-swiss/trustbroker.swiss +Bundesbehörde:: +BK, BIT +Beschreibung:: +Trust Broker Swiss stellt Föderationsdienste zwischen Relying Parties (Anwendungen, Service Provider, andere IAM-Systeme oder Policy Enforcement Points) und Identity Providern (IdP, auch Claims Provider genannt) bereit und nutzt vertrauenswürdige Attributspeicher, um authentifizierte Nutzende anzureichern. + +Es ermöglicht Identity-/Claims-Providern und Relying Parties, Informationen über eine dritte Partei auszutauschen, welche die IdP-Spezifika verbirgt und eine einheitliche oder zumindest zusätzlich verifizierte Identität bereitstellt. +Jahr:: +2024 +Lizenz:: +AGPL +Begründung:: +Codeänderungen sollen stets offen bleiben und zurückfliessen. ++ +Für den Trust Broker wurde eine sehr detaillierte Prüfung der Lizenzfrage durchgeführt. Bei sehr grossen Projekten kann sie in dieser Detailtiefe erfolgen. Alle kompatiblen Lizenzen, die mit der Software Bill of Materials vereinbar sind, wurden in einem Lizenzpool aufgeführt. + +=== D.3 Geocat.ch + +URL:: +https://github.com/geonetwork/core-geonetwork +Bundesbehörde:: +Swisstopo +Beschreibung:: +GeoNetwork ist eine Kataloganwendung zur Verwaltung raumbezogener Ressourcen. Sie bietet leistungsfähige Funktionen zur Metadatenbearbeitung und -suche sowie einen interaktiven Webkartenbetrachter. Sie wird derzeit in zahlreichen Initiativen für Geodateninfrastrukturen weltweit eingesetzt. +Jahr:: +2012 +Lizenz:: +GPL 2.0 +Begründung:: +- + +=== D.4 GWEN / ampycloud / c4dl-multi / dvas /… + +URL:: +https://meteoswiss.github.io/ampycloud/ +Bundesbehörde:: +MeteoSchweiz +Beschreibung:: +Python-Paket zur Bestimmung des Bedeckungsgrads und der Basishöhe von Wolkenschichten anhand von Ceilometer-Daten. +Jahr:: +2023 +Lizenz:: +Verschiedene Lizenzen, FSS +Begründung:: +- + +=== D.5 Anwendung EMSG (Erhaltungsmanagement in Siedlungsgebieten) + +URL:: +https://github.com/astra-emsg/ASTRA.EMSG +Bundesbehörde:: +MeteoSchweiz +Beschreibung:: +EMSG ist eine C#-GIS-Webanwendung, die von der Schweizer Bundesverwaltung entwickelt wurde, um das Erhaltungsmanagement städtischer Strassensysteme zu verwalten. +Jahr:: +2017 +Lizenz:: +BSD +Begründung:: +- + +=== D.6 Anwendung Covid-Zertifikat + +URL:: +https://github.com/admin-ch/CovidCertificate-Documents +Bundesbehörde:: +BIT +Beschreibung:: +Schweizer Anwendung für COVID-Zertifikate +Jahr:: +2020 +Lizenz:: +MIT +Begründung:: +So permissiv wie möglich, damit alle den Code nutzen können. + +=== D.7 GovCert-Website + +URL:: +https://github.com/govcert-ch/website +Bundesbehörde:: +NCSC +Beschreibung:: +Quellcode der Website für das Computer Emergency Response Team (GovCERT) der Schweizer Bundesverwaltung +Jahr:: +2023 +Lizenz:: +MIT +Begründung:: +- + +=== D.8 Verschiedene Bibliotheken zu Open Data (z. B. Linked Data) + +URL:: +https://github.com/SwissFederalArchives +Bundesbehörde:: +BAR +Beschreibung:: +Das Repository des Schweizerischen Bundesarchivs auf GitHub bietet Zugang zu den Quellcodes unserer Anwendungen. Es erlaubt Ihnen, eigene Forks zu erstellen und über die Schnittstelle «Issues» Fehler zu melden oder erweiterte Funktionalitäten vorzuschlagen. +Jahr:: +2023 +Lizenz:: +AGPL, Apache, MIT +Begründung:: +Opendata und Open-Source-Software gehen in dieselbe Richtung. Die AGPL erlaubt maximale Offenheit. + +=== D.9 Apache FOP angepasst für archivierbares PDF + +URL:: +https://xmlgraphics.apache.org/fop/ +Bundesbehörde:: +IGE +Beschreibung:: +Das IGE wollte eine Version von Apache FOP, die archivierbare PDF erzeugen kann. Dazu wurde bei einem der Kernentwickler (Jeremias Märki) eine Erweiterung in Auftrag gegeben. Die Anpassungen flossen direkt in das Projekt ein. +Jahr:: +2007 +Lizenz:: +Apache +Begründung:: +Erweiterungen wurden an einem bestehenden Open-Source-Projekt vorgenommen. + +=== D.10 Rechtskonforme elektronische Eingabe mit eKomm + +URL:: +https://launchpad.net/ekomm +Bundesbehörde:: +IGE +Beschreibung:: +Das IGE wollte Software für die elektronische Eingabe. +Jahr:: +2009 +Lizenz:: +Apache +Begründung:: +Das IGE wollte, dass der Anbieter (Glue) die Freigabe vornimmt, und hat diese als permissiv bewilligt (Integration in eigene Anwendungen). +endif::[] + +ifeval::["{lang}" == "fr"] +*Clause de non-responsabilité :* Le présent document est un projet en cours d'élaboration et fait partie des outils destinés à soutenir l'administration fédérale dans la publication de code open source. Pour de plus amples informations, voir le {url-repo}/tree/main[README] principal. + +''''' + +== Résumé à l'intention de la direction + +Il est recommandé de définir stratégiquement au sein de l'administration fédérale, lors du lancement d'un nouveau projet, l'une des deux licences suivantes : + +* *Licence AGPL* : effet copyleft souhaité. Le code modifié doit dans tous les cas revenir à la collectivité et peut ensuite être repris par l'administration fédérale. Il est recommandé d'utiliser la version la plus récente de la licence. C'est ainsi que le principe « public money – public code » est le mieux respecté. Les droits de tiers, en particulier en cas de développements ultérieurs, peuvent affaiblir cela jusqu'à la LGPL. +* *Licence MIT* : des tiers doivent pouvoir développer des applications propriétaires sur la base du code de l'administration fédérale. Si une clause de non-endossement est expressément exigée, la BSD-3-Clause est à privilégier. + +L'aide à la décision suivante peut être utilisée pour choisir la licence : + +[mermaid,align="center",alt="Aide à la décision simplifiée pour le choix de la licence"] +.... +flowchart TD + S(["Début"]) + Q1{"L'« environnement »
impose la licence"} + A["Choisir la licence
imposée"] + Q2{"Bibliothèque, implémentation de référence
ou exigences libérales"} + B["MIT"] + C["AGPL"] + S --> Q1 + Q1 -->|"Oui"| A + Q1 -->|"Non"| Q2 + Q2 -->|"Oui"| B + Q2 -->|"Non"| C +.... + +Figure 1 : Aide à la décision simplifiée pour le choix de la licence + +Dans une certaine mesure, ces deux licences constituent les deux extrêmes du spectre des licences OSS. Il peut être tout à fait judicieux de choisir une licence mieux adaptée à un projet concret. Le présent guide entend apporter une aide concrète à cet égard. + +Si l'analyse des bibliothèques logicielles révèle qu'une autre licence doit être utilisée, les développeurs attirent l'attention de la direction de projet sur ce point. L'analyse est exposée dans link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +Lors de la participation à des projets existants, toutes les licences compatibles OSI sont en principe acceptables. + +== Introduction + +L'article 9 de la loi fédérale du 17 mars 2023footnote:[RS 172.019] sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA) prévoit que les autorités fédérales doivent publier et placer sous licence open source les logiciels qu'elles développent ou font développer. + +Le présent document poursuit les objectifs suivants : + +* Introduction aux thèmes du droit d'auteur sur les logiciels et des licences OSS. +* Une présentation des licences OSS dont l'utilisation ne pose pas de problème au sein de l'administration fédérale. Les licences non mentionnées dans le présent document et les logiciels placés sous de telles licences ne peuvent pas être utilisés sans un examen supplémentaire des dispositions contractuelles par le service juridique compétent. +* Une aide au choix d'une licence pour le développement ou l'acquisition d'un projet au sens de l'art. 9 LMETA. + +== Droit d'auteur et licences : principes + +Le droit d'auteur fonde tant des droits moraux que des droits patrimoniaux (droits d'exploitation). Les droits moraux comprennent par exemple le droit à la reconnaissance de la qualité d'auteur ou le droit de décider si et quand l'œuvre est divulguée. Les droits d'exploitation comprennent par exemple le droit de confectionner ou de diffuser des exemplaires de l'œuvre. + +La loi fédérale du 9 octobre 1992footnote:[RS 231.1] sur le droit d'auteur et les droits voisins (LDA) prévoit une série d'autres droits moraux et d'exploitation (voir art. 8 ss LDA). Ces droits reviennent directement à l'auteur au moment même de la création de l'œuvre. + +L'art. 2 LDA fixe les conditions auxquelles la protection du droit d'auteur est accordée. Une œuvre protégée au sens de la loi n'existe que si ces conditions sont remplies. + +Les conditions sont les suivantes : + +* L'œuvre doit avoir été créée ; sa simple découverte ne suffit pas. Les données de recherche, par exemple, c'est-à-dire les résultats d'expériences, ne peuvent pas être qualifiées d'œuvres. +* La création doit être « intellectuelle », c'est-à-dire émaner d'un être humain. +* L'œuvre doit avoir été réalisée de manière perceptible. La simple idée sous-jacente à une œuvre n'est pas protégée, seule l'est sa forme extérieure, p. ex. l'impression d'un texte sur papier ou l'exécution d'un morceau de musique. +* Individualité : enfin, l'œuvre doit présenter un certain degré minimal d'individualité. Une œuvre que tout le monde concevrait de la même manière n'est pas protégée. + +Les œuvres les plus diverses peuvent être protégées, telles que des textes littéraires ou scientifiques, des œuvres musicales, photographiques, cinématographiques et d'autres œuvres visuelles ou audiovisuelles. + +Selon l'art. 2, al. 3, LDA, les programmes d'ordinateur sont également des œuvres si les conditions précitées sont remplies. + +Les droits d'auteur reviennent, dès leur naissance, au seul auteur. Lui seul peut interdire à autrui d'accomplir les actes correspondants. L'auteur peut toutefois exercer ses droits autrement que par lui-même : + +* Il peut transférer ses droits à des tiers (p. ex. en les vendant). Le nouveau titulaire des droits peut alors les faire valoir de la même manière que s'il était l'auteur. +* L'auteur peut également accorder une licence sur ses droits à des tiers. En termes simples, une licence est un contrat par lequel le titulaire des droits permet à un tiers d'utiliser l'œuvre. L'auteur conserve les droits, mais renonce à les faire valoir à l'égard du preneur de licence. + +Lorsqu'un programme d'ordinateur est créé dans le cadre d'un rapport de travail, l'employeur obtient une licence exclusive pour son utilisation (art. 17 LDA). Il ne reste donc pour l'essentiel aux employés que les droits moraux sur le logiciel (ou, selon l'opinion juridique, seulement leur noyau dur). Il s'agit de la même situation juridique que sous la loi sur le personnel de la Confédération. + +== Licences OSS + +=== Principes + +Les OSS se caractérisent pour l'essentiel par les éléments suivants (d'après une définition de l'Open Source Initiative _[Pe1999]_footnote:[https://opensource.org/]) : + +* la redistribution illimitée et gratuite du logiciel est autorisée ; +* le logiciel est disponible sous forme de code source ; +* les modifications du logiciel et leur redistribution sous la même licence sont en principe autorisées ; +* aucune personne ni aucun groupe de personnes ne peut être exclu de l'utilisation du logiciel, et aucun domaine d'application ne peut être exclu (en particulier pas l'utilisation commerciale) ; et +* la diffusion du logiciel avec d'autres logiciels (tels que des logiciels closed source) ne doit pas être restreinte. + +Les motifs les plus fréquents du recours aux OSS sont d'abord les économies réalisées grâce à l'utilisation du réservoir déjà considérable de logiciels librement utilisables. Les entreprises qui recourent fréquemment aux OSS parviennent souvent à économiser une part importante de leur budget informatique. + +Le code librement disponible peut en outre être facilement adapté à ses propres besoins. De plus, le choix de l'OSS évite le vendor lock-in.footnote:[https://fr.wikipedia.org/wiki/Enfermement_propriétaire] + +=== Licences open source + +Les licences open source sont avant tout des contrats de licence ordinaires pour des programmes d'ordinateur. + +Contrairement aux contrats de licence ordinaires, les contrats de licence OSS se forment toutefois sans autre dès qu'une seule des formes libres d'utilisation décrites dans la licence est exercée (par exemple par la copie, la redistribution ou la modification du logiciel). + +=== Copyleft versus permissif + +==== Généralités + +Une licence open source au sens de l'OSI peut contenir une clause de « copyleft ». Les modifications apportées à un logiciel placé sous une telle licence doivent être proposées à nouveau aux mêmes conditions que celles applicables au logiciel d'origine. Quiconque apporte de telles modifications doit, lors de la diffusion du logiciel open source sous forme de code objet lisible par machine, proposer également le code source aux destinataires. + +Formulé selon la Free Software Foundation, l'effet copyleft protège la liberté des développeurs et garantit ainsi qu'un logiciel une fois libre reste toujours libre. + +Avec les licences copyleft, une sorte d'échange s'opère entre la communauté et les entreprises utilisatrices. Les utilisateurs, tenus en contrepartie des avantages tirés du réservoir logiciel existant de replacer leurs propres développements sous la licence concernée, contribuent ainsi au développement de ce réservoir. Au final, les deux parties y gagnent. + +La clause de copyleft a un certain « effet de contagion » : si un logiciel sous licence copyleft est intégré à un logiciel jusqu'alors propriétaire, le logiciel initialement propriétaire doit être divulgué sous une licence open source compatible. + +Lors de l'utilisation de code source sous licence copyleft, il convient dès lors de veiller à ne l'intégrer que là où le logiciel qui en résulte peut et doit être publié sous une licence open source. + +Si une licence open source ne contient pas de clause de copyleft (licence open source permissive), la licence des versions révisées du code peut être choisie librement. Il est en particulier également possible de replacer des modifications sous une licence logicielle propriétaire et d'intégrer le code source correspondant dans un logiciel propriétaire. + +Pour l'essentiel, les licences open source peuvent être réparties dans *les catégories suivantes* : + +. licences open source à *copyleft fort* ; +. licences open source à *copyleft faible* ; et +. licences open source *permissives* ou *sans copyleft*. + +==== Licences open source à copyleft fort + +Lors de l'utilisation d'une licence open source à copyleft fort, les nouvelles versions dérivées du logiciel d'origine doivent, si elles sont transmises à des tiers, être placées sous les conditions de la licence d'origine et mises à la disposition de ces tiers sous forme de code source. + +Les deux licences suivantes sont considérées sur le marché comme les licences open source déterminantes à copyleft fort : + +* GNU General Public Licence (GPL) ; une grande partie des OSS est aujourd'hui placée sous cette licence +* GNU Affero General Public Licence (AGPL) + +La principale différence entre la GPL et l'AGPL porte sur le type d'utilisation déclenchant le copyleft. Avec un logiciel sous GPL, le code source modifié ne doit être proposé que si la nouvelle version du logiciel est offerte à des tiers sous forme de programme exécutable (p. ex. sous forme d'application mobile). Si le logiciel est uniquement mis à disposition via Internet (depuis son propre cloud, sur ses propres serveurs), par exemple sous forme de « Software as a Service » (SaaS) ou d'interface de programmation (API), cela ne déclenche pas le copyleft. + +Si le logiciel est placé sous AGPL, le code source modifié doit également être fourni lorsque les fonctionnalités du logiciel sont proposées via un site web ou une interface de programmation. L'AGPL est ainsi encore plus stricte que la GPL. + +Avec les licences à copyleft fort, le copyleft ne concerne pas seulement le module logiciel (bibliothèque) en question, mais l'ensemble du programme dans lequel un module sous licence copyleft peut être intégré. L'« effet de contagion » évoqué prend ainsi effet. + +==== Licences open source à copyleft faible + +Les licences à copyleft faible exigent également que les modifications de leur code source soient publiées aux tiers destinataires sous la licence open source d'origine. + +Contrairement aux licences à copyleft fort, elles n'ont toutefois pas pour effet d'« infecter » d'autres composants logiciels distinguables (d'autres bibliothèques ou le programme principal lui-même) avec leur licence. Cela permet l'intégration de logiciels open source à copyleft faible dans des logiciels propriétaires ou dans des logiciels sous d'autres licences OSS, sans devoir les publier sous la licence d'origine. + +Voici les licences open source à copyleft faible les plus fréquemment utilisées : + +* GNU Lesser General Public Licence (LGPL) +* Mozilla Public Licence 2.0 (MPL) +* Common Development and Distribution Licence (CDDL) +* Eclipse Public Licence (EPL)footnote:[Outre l'Eclipse Public Licence (EPL-1.0), il existe aussi l'Eclipse Distribution Licence (EDL-1.0). + +Alors que l'EDL correspond à la BSD 3-Clause, l'EPL est une licence à copyleft faible.] +* Microsoft Reciprocal Licence (Ms-RL) +* European Union Public Licence (EUPL)footnote:[L'EUPL elle-même comporte un copyleft fort, mais en raison de la clause d'ouverture, un passage à des licences à copyleft faible est possible, de sorte que la protection est limitée.] + +==== Licences open source permissives + +Les licences sans effet copyleft se caractérisent par le fait qu'elles n'imposent aucune exigence au preneur de licence quant à la licence de son logiciel dérivé, de sorte que ni son nouveau code source ni les modifications du logiciel open source ne doivent être divulgués aux tiers destinataires. Cela permet le développement de produits logiciels propriétaires par l'intégration de logiciels sous licences open source permissives. + +Exemples de licences permissives : + +* MIT Licence +* Apache Licence 2.0 +* Berkeley Software Distribution (BSD) Licence (BSD 2-Clause et BSD 3-Clause) +* Microsoft Public Licence (Ms-PL) + +=== Compatibilité des licences open source + +Les programmes se composent généralement d'une multitude de composants et de modules logiciels pouvant être reliés entre eux de différentes manières. Dans le développement logiciel, des composants open source existants sont souvent intégrés dans des applications et solutions internes propriétaires. Dès que celles-ci deviennent accessibles de l'extérieur via un site web, des API, une distribution logicielle ou d'une autre manière, il convient de veiller à la compatibilité des licences open source concernées, car le copyleft peut alors prendre effet. + +Si des œuvres dérivées placées sous une licence déterminée ne peuvent être diffusées que sous les mêmes conditions de licence, il en résulte que d'autres licences open source assorties d'obligations différentes ou contradictoires pour les œuvres dérivées ne peuvent pas être utilisées. + +Certaines licences open source contiennent des clauses dites d'ouverture, qui permettent l'utilisation du code placé sous ces licences dans des projets soumis à d'autres licences. Ainsi, la LGPL version 2.1 permet aussi l'utilisation du code sous GPL. La GPLv3 contient notamment une clause de compatibilité pour l'AGPL et l'Apache License 2.0. L'EUPL est conçue de manière très ouverte et contient en annexe une longue liste de licences compatibles, en particulier celles à copyleft faible telles que la LGPL. Il en résulte que la protection copyleft forte effectivement prévue dans la licence est indirectement affaiblie. + +Le schéma suivant représente les dépendances des principales licences open source (Goldstein 2018). La représentation se fonde sur la visualisation de David A. Wheeler, qui a analysé les compatibilités des différentes licences et de leurs numéros de version (Wheeler 2007) et a été développée avec des informations tirées de https://www.gnu.org/licenses/license-list.fr.html[https://www.gnu.org/licenses/license-list.fr.html].footnote:[Une autre représentation, étendue, est utilisée par GEANT dans son confluence : « Software Licence Selection and Management in GÉANT - GEANT Software Development Support - GÉANT federated confluence », https://wiki.geant.org/pages/viewpage.action?pageId=1032978710. On y trouve quelques licences supplémentaires.] + +Le schéma doit être lu comme suit : du code sous une licence figurant plus tôt dans la chaîne peut être intégré dans un logiciel publié sous une licence figurant plus tard dans la chaîne. Ainsi, du code sous BSD modifiée peut être placé sous une variante de licence LGPL ou GPL, mais non l'inverse. Public domain signifie que l'œuvre n'est soumise à aucune restriction de droit d'auteur. + +[mermaid,align="center",alt="Compatibilité des licences open source"] +.... +flowchart TB + subgraph P["Licence permissive"] + PD["Public domain"] + MIT["MIT/X11"] + BSD["BSD modifiée"] + AP["Apache 2.0"] + end + subgraph W["Copyleft faible"] + EUPL["EUPL"] + LGPL21["LGPLv2.1"] + LGPL21P["LGPLv2.1+"] + LGPL3["LGPLv3 / LGPLv3.1"] + MPL["MPL 1.1"] + end + subgraph SC["Copyleft fort"] + GPL2["GPLv2"] + GPL2P["GPLv2+"] + GPL3["GPLv3 / GPLv3+"] + AGPL["Affero GPLv3"] + end + PD --> MIT + MIT --> BSD + BSD --> AP + BSD --> LGPL21 + BSD --> LGPL21P + BSD --> LGPL3 + BSD --> MPL + AP --> EUPL + AP --> LGPL3 + EUPL --> LGPL21 + EUPL --> LGPL21P + EUPL --> LGPL3 + EUPL --> MPL + LGPL21P --> LGPL21 + LGPL21P --> LGPL3 + LGPL21 --> GPL2 + LGPL21 --> GPL2P + LGPL21P --> GPL2P + LGPL3 --> GPL3 + GPL2P --> GPL2 + GPL2P --> GPL3 + GPL3 -->|"+ protection du réseau"| AGPL + classDef pd fill:#f5f5f5,stroke:#000000,color:#000000 + classDef perm fill:#dae8fc,stroke:#000000,color:#000000 + classDef weak fill:#d5e8d4,stroke:#000000,color:#000000 + classDef strong fill:#5ea226,stroke:#000000,color:#ffffff + class PD pd + class MIT,BSD,AP perm + class EUPL,LGPL21,LGPL21P,LGPL3,MPL weak + class GPL2,GPL2P,GPL3,AGPL strong +.... + +Figure 2 : Compatibilité des licences open source (d'après le schéma de David A. Wheeler, 2007 et https://www.gnu.org/licenses/license-list.fr.html) + +Important : les compatibilités de licences étant toujours pertinentes, les équipes de développement et les prestataires devraient vérifier au préalable les piles de développement et leurs bibliothèques quant aux éventuels problèmes de compatibilité. Autrement dit, avant de valider l'utilisation d'une bibliothèque, il convient de vérifier, outre la sécurité et l'homogénéité de la pile de développement, si la licence de la bibliothèque est compatible avec les licences déterminantes privilégiées par l'administration fédérale. + +[[licences-for-pure-usage]] +== Licences pour la simple utilisation + +Ce chapitre traite de la situation dans laquelle un logiciel sous licence OSS doit être utilisé, mais ne doit pas être modifié, ou dans laquelle les modifications ne sont utilisées qu'en interne. + +Les licences suivantes ne posent en principe pas de problème lorsqu'un logiciel est utilisé par des autorités fédérales. Les conditions correspondantes, notamment un éventuel copyleft, doivent toutefois être respectées. + +Dans certaines circonstances, la licence d'un module logiciel préexistant détermine les licences possibles pour l'ensemble du produit (voir chapitre 4.4). + +Certaines licences sont incompatibles entre elles (voir figure 2). + +[cols="1,1,3",options="header"] +|=== +|Licence |Copyleft |Particularités + +|*MIT* +|Non +|Licence privilégiée de l'administration fédérale lorsqu'une large diffusion est recherchée et que des tiers doivent pouvoir en développer à nouveau des logiciels propriétaires. + +|*Apache 2.0* +|Non +|Apache est une licence très répandue, connue pour les projets placés sous l'égide de l'Apache Foundation. L'utilisation des marques des donneurs de licence est exclue, sauf pour décrire l'œuvre. + +|*GPL v3* +|Oui +a|Il s'agit de LA licence copyleft classique. + +Le copyleft s'applique aussi lorsque des parties sous GPL sont intégrées dans un programme entier. Interdiction de la gestion des droits numériques. Règles de compatibilité particulières. + +|*LGPLv3* +|Faible +a|Licence copyleft réduite, développée spécialement pour les bibliothèques logicielles. + +Contrairement à la GPL, la LGPL permet, à certaines conditions, de combiner du code fermé (c'est-à-dire propriétaire) avec du code LGPL. + +Les bibliothèques standard telles que glibc en sont des exemples. La LGPL permet de placer sous GPL le programme dont la bibliothèque est diffusée comme partie intégrante. + +|*Affero GPLv3 (AGPL)* +|Oui +a|L'utilisation en SaaS déclenche également le copyleft. Pour le reste, analogue à la GPLv3. + +Cette licence comble la lacune de la GPL, qui faisait qu'aucune publication n'était requise en cas d'utilisation pour des offres SaaS. + +Avec cette licence, l'administration fédérale peut garantir que les améliorations du code profitent aussi à la collectivité en cas de SaaS, et elle soutient au mieux le principe *« public money – public code »*. + +|*BSD-3* +|Non +a|Licence générale et libérale. + +Les noms des auteurs ne peuvent pas être utilisés pour promouvoir des œuvres dérivées (clause de publicité) + +|*European Union Public Licence (EUPL)* +|Faible +a|Licence particulière utilisée pour l'UE. + +Particulièrement utile comme base pour des projets européens. + +Licence tenant compte du droit européen. La publication sous certaines licences compatibles est expressément autorisée. +|=== + +Tableau 1 : Licences ne posant pas de problème pour les autorités fédérales (selon _[Sc2024]_) + +D'autres licences peuvent être utilisées. Dans ces cas, il peut être nécessaire de consulter le service juridique de l'office concerné. + +== Licence pour ses propres projets ou la creation et pour les contributions + +Ce chapitre concerne les cas suivants : + +* Développement ultérieur / contribution +** lorsque des autorités fédérales développent un logiciel existant ; ou +** développent un nouveau logiciel, mais s'appuient sur des bibliothèques logicielles OSS existantes ; et +** mettent le logiciel correspondant à la disposition de tiers. Les tiers comprennent également les organisations de l'administration fédérale décentralisée, pour autant qu'elles aient leur propre personnalité juridique. Si les développements ultérieurs ne sont utilisés qu'en interne et ne sont pas mis à la disposition de tiers, seul le chapitre <> s'applique. +* Projets propres / creation / publication : ce chapitre concerne les cas dans lesquels les autorités fédérales développent un nouveau logiciel. Cela devrait être rare, la plupart des développements s'appuyant sur des bibliothèques logicielles open source existantes. ++ +Pour les développements entièrement nouveaux, il convient de choisir un type de licence permettant une base large et durable pour les développements ultérieurs. Il importe à cet égard que la licence concernée soit largement acceptée dans la communauté de développeurs déterminante. + +L'examen de compatibilité est effectué selon link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS], chapitre 7.4. La compatibilité des licences est présentée à la figure 2. + +Les dimensions suivantes devraient être prises en compte : + +* Cas d'application +* Examen souhaité link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Liste de contrôle Évaluation préalable OSS] +* Facilité de constitution d'une communauté link:em002-4.pdf[Em002-4 Guide des communautés OSS] +* Facilité d'application +* Sécurité juridique +* Diffusion + +Les licences selon le chapitre <> sont à privilégier. + +Les *licences copyleft* suivantes devraient être utilisées en priorité par les autorités fédérales, en particulier si un développement ouvert et durable est recherché et si l'effet copyleft d'héritage doit s'appliquer. Cela garantit que les logiciels payés par la collectivité et tous leurs dérivés restent ouverts. C'est ainsi que le principe « *public money – public code* » est le mieux respecté, et il s'agit de *la recommandation privilégiée pour l'administration fédérale.* + +Licences recommandées par ordre décroissant : + +* *AGPL v3* +* GPL v3 +* LGPL 3.0 +* European Union Public Licence (EUPL) + +Les licences suivantes devraient être utilisées par les autorités fédérales lorsque *aucun copyleft n'est souhaité* ou requis (par ordre décroissant) : + +* *MIT* +* Apache Licence 2.0 +* BSD v3 + +Lors de la participation à des projets existants, les licences suivantes peuvent en outre être utilisées sans problème : + +* Mozilla Public Licence +* Microsoft Public Licence + +Si une autre licence doit être utilisée, il est recommandé de le justifier brièvement dans la link:em002-2-3-checklist-oss-release-and-publication.pdf[liste de contrôle Em002-2.3 Validation et publication OSS]. + +*Selon l'art. 9, al. 4, LMETA, des licences établies à l'échelle internationale devraient être utilisées dans tous les cas.* + +Autres outils de vérification des compatibilités de licences : + +* ORT Toolkit (https://oss-review-toolkit.org/) +* Black Duck (www.blackducksoftware.com), +* FOSSA (http://www.fossa.com[www.fossa.com]), +* l'Open Source Licence Comparison Grid (https://www.cmu.edu/cttec/forms/opensourcelicensegridv1.pdf) +* FOSSology (https://www.fossology.org). +* Processus OpenCode : https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses#4.-Lizenzierungsleitfragen[https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses] + +== Cas d'application et licences appropriées + +Le tableau et le schéma suivants montrent comment des licences appropriées peuvent être choisies pour un logiciel open source en fonction de différents cas d'application. + +[cols="2,2,3",options="header"] +|=== +|*Cas d'application* |*Licence(s)* |*Justification* + +|Utiliser un projet existant et y contribuer +|*Licence selon les prescriptions du projet* +|Nécessaire pour des raisons juridiques. + +|La licence est imposée par l'utilisation de parties existantes (licences avec copyleft) +|*Utiliser une licence compatible avec ces parties.* +a|Nécessaire pour des raisons juridiques. + +Remarque : un certain nombre de bibliothèques sont disponibles sous plusieurs licences. + +Une seule des licences doit correspondre. L'un des buts de la licence multiple est de garantir que les bibliothèques puissent être utilisées tant avec que sans copyleft. + +|Écosystème existant avec licence privilégiée (p. ex. il s'agit d'un plug-in pour un logiciel publié sous licence MIT. L'utilisation d'une licence MIT serait alors la plus judicieuse, car tous les autres utilisateurs s'y attendent et le logiciel s'intègre dans l'écosystème) +|*Utiliser la licence si elle figure sur la liste, sinon utiliser autant que possible la même licence* +|L'acceptation dans la communauté est centrale. + +|L'objectif est la diffusion la plus large possible, p. ex. pour une implémentation de référencefootnote:[Par exemple, afin de faciliter la mise en œuvre d'une loi, une implémentation de référence peut être commandée par les autorités fédérales. Voir p. ex. https://ech.ch/de/ech/ech-0238/1.0] (p. ex. pour un logiciel destiné à être utilisé aussi dans des solutions commerciales). +a|*MIT* + +BSD v3 + +Apache Licence 2.0 + +LGPL v3 +|Dans ce cas, aucun copyleft ne devrait être utilisé. + +|Les modifications du code doivent revenir aux autorités fédérales +a|*AGPL v.3* + +GNU GPL v.3 + +EUPL +|L'AGPL impose aussi la publication par des tiers en cas d'utilisation dans le cloud, ce que ne font ni la GPL ni l'EUPL. + +|Les solutions SaaS ne doivent pas être exemptées du retour des modifications de code +|*AGPL v.3* +|L'AGPL impose aussi la publication par des tiers en cas d'utilisation dans le cloud. + +|Une collaboration aisée avec la communauté est importante. +a|*AGPL v.3* + +GNU GPL v3 + +Apache Licence 2.0 +a|La GPL est privilégiée pour maintenir le logiciel libre. + +Apache contient des règles de gouvernance communautaire, des règles supplémentaires pour les contributions (on ne peut pas indiquer une licence autre qu'Apache ; la contribution en tant que telle n'est pas réglée plus en détail, de sorte qu'un CLA existant prime), une licence de brevet et des règles de licence de brevet. En particulier, quiconque fait valoir des brevets contre un autre contributeur perd sa licence de brevet au titre de la licence Apache. + +Les règles fixées par l'Apache Foundation pour les contributions sont déterminantes. Apache est donc judicieux si la gouvernance du projet doit être construite principalement selon Apache. + +|Petit composant (bibliothèque) utilisable universellement ou petit logiciel pour lequel la durabilité ou la maintenance par une communauté n'est pas importante +a|*MIT* + +Apache Licence 2.0 + +BSD v3 + +LGPL v3 +a|La LGPL ne prévoit un copyleft que pour le composant lui-même, mais pas pour l'ensemble du projet dans lequel il est inséré. + +Les autres licences sont permissives. + +|Cela doit être simple et permissif ; le contrôle n'est pas important +a|*MIT* + +Apache Licence 2.0 + +BSD v3 +|Le plus permissif possible + +|Il importe aux autorités fédérales de savoir ce qu'il advient du code et elles souhaitent recevoir le plus d'améliorations possible. +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|Il faut empêcher que le logiciel devienne propriétaire et soit positionné sur le marché comme produit concurrent +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|Il faut empêcher que les autorités fédérales deviennent dépendantes de fournisseurs isolés (« vendor lock-in ») +a|*AGPL v.3* + +GNU GPLv3 +|Le copyleft empêche qu'un fournisseur acquière avec le temps une position exclusive en utilisant le logiciel de la Confédération dans un produit propriétaire, ce qui pourrait à nouveau créer pour la Confédération une dépendance envers ce fournisseur. +|=== + +Tableau 2 : Licence à utiliser selon le cas d'application pour la publication d'un nouveau logiciel conformément à l'art. 9 LMETA *(gras = recommandé lorsque rien ne s'y oppose)* + +[mermaid,align="center",alt="Arbre de décision étendu pour le choix de la licence dans l'administration fédérale"] +.... +flowchart TD + S(["Début"]) + Q1{"La nomenclature
impose-t-elle la licence ?"} + R1["Choisir la licence
imposée / préférée"] + Q2{"Existe-t-il des licences préférées
dans cet environnement ?"} + Q3{"Figure-t-elle dans la liste des
licences appropriées de l'Em002-3 ?"} + R2["Choisir dans la liste la licence appropriée
suivante selon l'Em002-3, après consultation
du service juridique"] + Q4{"Implémentation de référence
comme proposition
pour des tiers ?"} + R3["GPL ou licence permissive :
MIT, BSD, Apache"] + Q5{"Les améliorations
doivent-elles refluer ?"} + Q6{"Également en cas
d'utilisation SaaS ?"} + R4["GPL, EUPL"] + R5["AGPL"] + S --> Q1 + Q1 -->|"Oui"| R1 + Q1 -->|"Non"| Q2 + Q2 -->|"Oui"| Q3 + Q2 -->|"Non"| Q4 + Q3 -->|"Oui"| R1 + Q3 -->|"Non"| R2 + Q4 -->|"Oui"| R3 + Q4 -->|"Non"| Q5 + Q5 -->|"Non"| R3 + Q5 -->|"Oui"| Q6 + Q6 -->|"Non"| R4 + Q6 -->|"Oui"| R5 +.... + +Figure 3 : Arbre de décision étendu pour le choix de la licence dans l'administration fédérale (si ni AGPL ni MIT) + +La nomenclature de la figure 3 est la software bill of materials (SBOM) de toutes les bibliothèques logicielles et sous-programmes préexistants intégrés dans la solution globale. Chaque bibliothèque a sa propre licence. Selon la compatibilité de celle-ci avec les autres (voir chapitre 4.4), le choix possible de licences pour la publication est restreint. + +Un dernier point peut aussi influencer la décision : *le passage d'une licence plus restrictive à une licence moins restrictive est plus facile après coup*. Dans le cas inverse, un forkfootnote:[Pour la définition, voir link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale].] est presque inévitable. + +== Thèmes juridiques particuliers + +=== Aspects internationaux + +Les questions juridiques essentielles des OSS dans la pratique relèvent principalement du droit des contrats de licence. + +S'agissant des questions de droit des licences, le droit choisi par les parties s'applique en premier lieu (la Mozilla Public License MPL contient par exemple, au chiffre 8, une élection de droit en faveur du droit du défendeur). + +En l'absence d'élection de droit, ce qui est le cas de toutes les autres licences présentées ici, le droit de l'État du donneur de licence s'applique en règle générale. Ainsi, lorsque les autorités fédérales acquièrent une licence de logiciel auprès de donneurs de licence étrangers, le droit du pays concerné s'applique. Si plusieurs contributeurs sont impliqués, cela peut conduire à des situations complexes. Inversement, le droit suisse s'applique en cas de litige entre des preneurs de licence étrangers et les autorités fédérales en tant que donneuses de licence. + +La question de savoir quels aspects relèvent du contrat et lesquels du droit d'auteur ne peut pas recevoir de réponse générale et peut s'avérer très complexe dans les cas d'espèce. La transmissibilité du droit d'auteur ou de parties de celui-ci, ou encore l'étendue des droits pouvant être concédés, relèvent par exemple du droit d'auteur. Le droit du pays de protection concerné doit ici être appliqué. Une élection de droit divergente n'est pas possible (sur l'ensemble, voir Jaeger/Metzger, 449 ss). + +=== Exclusion de responsabilité et de garantie + +Les licences open source excluent régulièrement toute garantie et toute responsabilité dans la mesure permise par le droit. Dans la pratique, les questions de responsabilité ou de garantie se posent rarement ; les risques y afférents sont donc faibles. + +On peut partir du principe qu'en cas de licence correcte, les clauses d'exclusion de responsabilité présentes dans toutes les licences examinées ici déploient leurs effets, de sorte que seule subsiste la responsabilité pour négligence grave et dol, le cas échéant pour dommages corporels. + +Des règles relatives aux conditions générales demeurent réservées, comme en Allemagne par exemple ; toutefois, dans la mesure où les autorités fédérales sont sujets de responsabilité en tant que donneuses de licence, le droit suisse s'applique (voir 8.1 ci-dessus), lequel admet les exclusions de responsabilité et de garantie précitées dans les relations B2B. + +À l'inverse, cela signifie cependant aussi qu'en cas d'erreurs de programme, il est généralement difficile d'agir contre les auteurs du code OSS intégré. + +La démarche habituelle lors de l'utilisation d'OSS consiste donc régulièrement à se prémunir contre les erreurs par les mesures usuelles de sécurité informatique et à assurer la correction des erreurs au moyen de contrats de maintenance. Il n'existe pas de recours contre les contributeurs OSS. + +=== Copyleft et licences entre entités de l'administration fédérale + +Le copyleft s'applique lors de la transmission entre différentes entités juridiques (par exemple au sein d'un groupe ou entre services de l'administration fédérale décentralisée dotés de leur propre personnalité juridique). + +Le copyleft ne s'applique pas lors de la transmission entre services d'une même entité juridique (par exemple au sein de l'administration fédérale centrale). + +=== Licence de brevets + +Les brevets logiciels ne sont possibles que dans des limites étroites selon la conception juridique européenne. L'élément déterminant est que le logiciel apporte une contribution technique, c'est-à-dire résolve un problème technique concret en dehors de l'ordinateur sur lequel il s'exécute. La commande d'un moteur dans une voiture ou la commande d'un robot en seraient des exemples. Un logiciel en tant que tel, qui ne s'exécute que sur un ordinateur mais n'a pas un tel effet externe, n'est en principe pas brevetable en Europe. La plupart des programmes logiciels ne relèvent donc pas du droit des brevets. + +Dans d'autres parties du monde, en particulier aux États-Unis, les brevets logiciels sont délivrés un peu plus libéralement. Toutefois, même aux États-Unis, une idée abstraite ou un modèle d'affaires ne devient pas une invention brevetable du seul fait qu'il est mis en œuvre dans un logiciel. + +Avec certaines licences, les éventuels brevets du donneur de licence ne sont pas concédés en même temps. Il s'agit de la GPL2, des licences BSD et de la licence MIT. + +Pour les projets susceptibles d'être utilisés aussi hors d'Europe, ou qui présentent la forme d'effet externe précitée, il est recommandé de clarifier les aspects de droit des brevets au cas par cas. + +=== Double licence + +L'auteur peut placer un logiciel simultanément sous différentes licences. On parle alors de double licence. + +Une forme intéressante de double licence consiste, pour le titulaire des droits, à placer le logiciel sous OSS avec un copyleft fort (ce qui empêche son intégration dans un logiciel propriétaire) et à proposer parallèlement aux preneurs de licence intéressés une licence _payante_ leur permettant d'intégrer le logiciel dans leur logiciel propriétaire. + +Comme les preneurs de licence intéressés peuvent ainsi éviter de publier leur logiciel propriétaire en OSS, ils sont disposés à payer pour la licence. Voir aussi l'annexe de link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale]. + +Pour les autorités fédérales elles-mêmes, la double licence ne devrait présenter d'intérêt que dans de rares cas. Tant que les droits d'auteur appartiennent aux autorités fédérales (ce qui est réglé par exemple par les conditions générales de l'administration fédérale), celles-ci peuvent décider seules d'une éventuelle double licence. + +Lorsque la maintenance et le développement (ultérieur) sont externalisés à des tiers, il peut en aller autrement. Si les droits leur appartiennent exceptionnellement et que les autorités fédérales se sont seulement réservé le droit d'octroyer une licence OSS avec copyleft, le tiers pourrait être tenté de procéder à une double licence. Si cela doit être empêché, il convient de l'exclure contractuellement. + +=== Modification ultérieure des licences + +Il convient d'abord de relever que les licences OSS sont en principe immuables et irrévocables. Les preneurs de licence ayant conclu le contrat de licence _avant_ une modification peuvent continuer à utiliser, modifier et transmettre le code à des tiers sur la base de l'ancienne licence. + +Dans la pratique, un changement de licence conduit souvent à un fork d'une nouvelle version du logiciel sous l'ancienne licence, développé de manière autonome par les anciens preneurs de licence. + +L'introduction d'une nouvelle licence pour un logiciel n'est possible que si tous les titulaires des droits d'auteur sur le logiciel y consentent. Des changements sont survenus dans la pratique, par exemple lors du passage d'une licence permissive à une licence copyleft. + +=== Mention des contributeurs (employés et tiers) + +Lorsqu'un programme d'ordinateur est créé dans le cadre d'un rapport de travail, l'employeur obtient une licence exclusive pour son utilisation (art. 17 LDA). Il ne reste donc pour l'essentiel aux employés que les droits moraux sur le logiciel (ou, selon l'opinion juridique, seulement leur noyau dur). Il en va de même pour les tiers qui développent des logiciels pour les autorités fédérales, pour autant que les CGfootnote:[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] correspondantes de la Confédération s'appliquent, lesquelles transfèrent les droits qui en résultent aux autorités fédérales. + +Il se pose néanmoins la question de savoir si les contributeurs (employés, tiers) doivent avoir le droit ou l'obligation de se faire connaître comme auteurs de contributions dans les dépôts open source. + +Un argument en faveur du recours aux OSS par les autorités fédérales est l'attractivité de l'emploi : les OSS offrent aux contributeurs la possibilité de montrer publiquement leurs connaissances et de se forger ainsi une réputation. Leurs capacités deviennent vérifiables, sont attestées par des pairs, et celui qui a acquis de l'influence dans un projet OSS peut s'en servir comme levier dans sa recherche d'emploi. + +Un autre argument pourrait être les droits moraux, dont le noyau ne peut être retiré à l'auteur d'origine ni par contrat ni par la loi. Ce noyau est toutefois restreint pour les programmes d'ordinateur ; exiger que le développeur d'un programme ait aussi un droit à être nommé irait probablement trop loin. + +De plus, un échange entre spécialistes dans la communauté suppose qu'ils puissent être contactés individuellement par d'autres. + +Selon le projet, il peut donc être judicieux de donner aux contributeurs la possibilité de se faire connaître comme contributeurs au sein de la communauté. + +Du point de vue de la protection des données, toute contrainte en ce sens doit être évitée, étant précisé que l'échange au sein de la communauté ne suppose pas la divulgation des noms — les pseudonymes sont la règle plutôt que l'exception. Si des contributeurs ne souhaitent pas divulguer leur nom, il convient dès lors de leur donner la possibilité d'apparaître sous un pseudonyme. + +*Il est recommandé de mentionner les noms des développeurs dans les commits, si le projet ne s'y oppose pas.* + +*Dans tous les cas, les autorités fédérales devraient agir en qualité de titulaires des droits.* + +=== Droit d'auteur, licences pour l'IA générative servant à créer du code + +Nous ne visons ici que le code créé au moyen d'une IA générative. De plus amples informations sur ce sujet figurent dans link:em002-6.pdf[Em002-6 FAQ sur l'OSS++*++, chapitre 2.2]. Le code créé par un LLM n'est pas lui-même protégé par le droit d'auteur. Les données d'entraînement utilisées par le LLM peuvent toutefois être protégées par le droit d'auteur. Si le code correspond au 1:1, la licence devrait également être reprise. Si le code a été créé par fragments puis modifié par les développeurs, le risque qu'il soit considéré comme un logiciel dérivé est faible. Il convient de noter que certains LLM exigent que le code soit désigné en conséquence ; les éventuels accords contractuels à ce sujet doivent être respectés. + +=== Contributor Licence Agreements (CLA) et Developer Certificate of Origin (DCO) + +Lorsque plusieurs auteurs travaillent sur le code d'un projet open source, ils obtiennent des droits communs sur le code qui en résulte. + +La concession de licence du code à des tiers s'effectue via la licence OSS, un contrat de licence distinct étant conclu entre chaque utilisateur et chaque auteur (faisceau de licences). Cette constellation peut conduire à une situation juridique peu lisible, par exemple dans les relations internationales (voir 8.1 ci-dessus). Lorsque des entreprises décident de placer leur logiciel sous licence OSS et d'accepter des contributions de tiers, elles éprouvent parfois le besoin de conserver un certain contrôle sur le code. + +Ainsi, il peut être intéressant de garder ouverte la possibilité de placer le projet sous une nouvelle licence, ou de vouloir soumettre du code sous copyleft à une double licence, ce qui requiert plus de droits que ceux obtenus des contributeurs par une simple licence OSS (voir 8.5 ci-dessus). Les Contributor Licence Agreements (parfois aussi Copyright Transfer Agreements) visent à résoudre de tels problèmes. + +Un *Contributor Licence Agreement (CLA)* est un *accord juridiquement contraignant* qui définit les *conditions applicables aux contributions au projet*. + +Les contributeurs sont tenus d'approuver cet accord avant de pouvoir apporter du contenu au projet. Pour l'essentiel, les contributeurs accordent au projet et à ses utilisateurs le droit d'*utiliser, de modifier et de redistribuer* les contributions apportées. Il est en outre confirmé que les contributions *ont été rédigées de manière autonome ou légitimées par des tiers*. + +Le *Developer Certificate of Origin (DCO)* est un *système de vérification introduit* par la Linux Foundation en 2004, dont le but est proche du Contributor Licence Agreement (CLA) et qui constitue un instrument alternatif approprié. Les contributeurs confirment pour chaque contribution au projet que *(a) ils sont habilités à apporter la contribution, (b) la contribution est couverte par une licence compatible avec le projet et (c) ils consentent à la diffusion et à l'utilisation de la contribution en open source*. + +L'instrument principal des CLA est soit la cession des droits d'auteur des contributeurs au développeur principal ou à l'organisation porteuse (dans le cas des Copyright Transfer Agreements), soit l'octroi par les contributeurs au développeur principal de la licence la plus étendue possible, généralement irrévocable (Apache a p. ex. défini un CLA). Les contributions à des projets fermés sont elles aussi souvent soumises à un CLA. + +Les CLA sont controversés dans la communauté OSSfootnote:[Par exemple : https://ben.balter.com/2018/01/02/why-you-probably-shouldnt-add-a-cla-to-your-open-source-project/], notamment parce qu'ils peuvent ouvrir des brèches dans le copyleft. C'est pourquoi il existe désormais aussi des CLA qui limitent le développeur principal quant à l'octroi d'une nouvelle licence pour le code du projet. + +[mermaid,align="center",alt="Transfert du code source et des droits dans différentes constellations"] +.... +flowchart LR + subgraph TP["Tiers"] + TP1["aucun document propre"] + TP2["CLA
DCO
licence OSS"] + TP3["CLA
DCO
licence OSS
contrat"] + TP4["aucun document propre"] + end + subgraph FA["Administration fédérale"] + FA1["CG de la Confédération
contrat"] + FA2["aucun document propre"] + FA3["licence OSS
contrat
(DCO)
(CLA)"] + FA4["licence OSS
(DCO)
(CLA)"] + end + TP1 -- "création" --> FA1 + TP2 -- "contribution de l'administration fédérale" --- FA2 + TP3 <-- "collaboration" --> FA3 + TP4 -- "contribution de tiers" --> FA4 +.... + +Figure 4 : Transfert du code source et des droits dans différentes constellations + +Légende : + +* Les cadres indiquent *où les droits sont définis* dans chaque constellation. +* *Création* et *contribution de tiers* : l'administration fédérale dispose du pouvoir de façonner la situation. +* *Collaboration* : les documents sont convenus entre les parties. +* *Contribution de l'administration fédérale* : l'administration fédérale ne dispose d'aucun pouvoir de façonner la situation, un examen est nécessaire. +* Les documents juridiques sont classés par ordre de priorité, de haut en bas ; les documents entre parenthèses sont plutôt à éviter. + +Pour les *développements propres* (creation), il n'y a pas de problème : selon l'art. 17 LDA, l'autorité fédérale est titulaire des droits d'utilisation sur les logiciels créés par ses propres employés. Pour les *développeurs tiers*, les autorités fédérales devraient s'assurer les droits (par exemple en utilisant les CG correspondantes de la Confédération). Aucun CLA ni DCO n'est donc nécessaire ici. + +Lorsque des autorités fédérales sont développeurs principaux et acceptent des contributions et des collaborations, il convient de renoncer à l'utilisation d'un CLA. Des Digital Certificates of Origin (expliqués avec un exemple dans link:em002-4.pdf[Em002-4 Guide des communautés OSS], chapitre 3.3) peuvent être utilisés à la place. En principe, les contributions aux projets des autorités fédérales devraient s'appuyer sur la licence OSS afin de ne pas relever davantage la barrière à la contribution. + +Si un besoin de CLA devait néanmoins être constaté dans un cas d'espèce après examen approprié, l'autorité fédérale devrait utiliser le CLA d'Apache.footnote:[https://www.apache.org/licenses/contributor-agreements.html] Dans ce cas, cette décision et le CLA devraient être mentionnés dans les remarques finales tant de la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[liste de contrôle Em002-2.1 Évaluation préalable] que de la link:em002-4-1-checklist-oss-community.pdf[liste de contrôle Em002-4.1 Communauté OSS]. + +Lorsque des autorités fédérales contribuent à un logiciel de tiers exigeant un CLA, le service juridique doit examiner au cas par cas si l'autorité fédérale peut accepter le CLA existant.footnote:[Pour un destinataire donné, l'administration fédérale n'aurait à examiner la signature d'un CLA qu'une seule fois. Dans d'autres organisations, cela est dès lors traité comme une affaire de haut niveau, les CLA signés étant conservés dans le répertoire des contrats. Les CLA ne doivent pas contourner les obligations de l'autorité fédérale au titre de l'art. 9 LMETA.] Les points suivants doivent être déterminés : + +* Une autre autorité fédérale a-t-elle déjà signé le CLA ? +* Qui examine le CLA ? +* Qui le signe ? (Le signataire doit être habilité à signer pour la Confédération à l'égard de tiers) +* Où est-il classé ? +* Comment le CLA ou le DCO est-il documenté dans le projet ? +* Comment s'assure-t-on que le code publié le reste ? (Cela demeure de la responsabilité de l'autorité fédérale au titre de l'art. 9 LMETA, voir [KBB-MB].) + +Critères possibles pour l'examen : + +* Compatibilité avec l'art. 9 LMETA : le code reste-t-il ouvert ? +* L'autorité fédérale voit-elle des risques pour elle-même ? +* L'autorité fédérale voit-elle un bénéfice pour elle-même (p. ex. le code ne doit pas être maintenu ou développé seule) ou pour d'autres (au sein du fédéralisme suisse ou à l'échelle européenne, un impact plus large peut être obtenu sans charge supplémentaire) ? +* Les droits cédés sont-ils raisonnables ? +* Aucune obligation (inutile) n'est-elle imposée à l'autorité fédérale ? +* Le CLA est-il substantiellement équivalent au CLA d'Apache ? + +=== Problèmes avec la (L)GPL-3.0 et l'IoT + +_[BITKOM2023]_ signale un problème lié à l'utilisation des licences (L)GPL-3.0 en lien avec les logiciels embarqués : de tels appareils devraient permettre l'installation de versions logicielles propres ou nouvelles. Cela peut être indésirable pour des raisons de sécurité. + +=== Statut juridique de la documentation + +Selon l'art. 5 LDA, « les décisions, procès-verbaux et rapports qui émanent des autorités et des administrations publiques » ne sont pas protégés par le droit d'auteur. + +Cela va plus loin que CC-0, car le titulaire des droits n'a pas besoin de verser l'œuvre dans le domaine public en renonçant mondialement à tous les droits d'auteur et droits voisins. Elle est déjà dans le domaine public de par la loi. Le message relatif à l'art. 5 LDA précise : « La disposition admet toujours la protection par le droit d'auteur pour toute une série d'œuvres nées d'une activité officielle ou en lien avec celle-ci. + +Les documents de commissions d'étude et de groupes de travail internes à l'administration, les expertises ou les revues des offices fédéraux, par exemple, ne tombent pas sous le coup de la norme. Il n'existe pas d'intérêt prépondérant à leur libre diffusion, car ils n'influencent pas la situation juridique du citoyen. » + +On peut ainsi soutenir que, pour bon nombre des documents pertinents et de la documentation publiée par les autorités fédérales en lien avec les logiciels open source, aucune protection par le droit d'auteur n'existe. Le critère est de savoir si le document affecte ou non le statut juridique du citoyen et échappe ainsi à la protection du droit d'auteur. Si tel n'est pas le cas, une licence appropriée (CC-0footnote:[https://www.creativecommons.ch/], CC-BY, CC-BY-SA ou éventuellement LGPL) devrait être utilisée pour la documentation. + +Néanmoins, en particulier en cas d'utilisation internationale de la documentation, la situation resterait peu claire pour de nombreux utilisateurs. + +Nous estimons donc judicieux que, comme pour le présent document, une publication correspondante soit également indiquée par sécurité. + +== Informations complémentaires sur les questions juridiques + +De plus amples informations sur les logiciels open source, sur les caractéristiques de licences spécifiques et sur des aspects juridiques approfondis figurent dans de nombreuses publications, présentées ci-après (voir aussi les références à la fin du document). + +* Le texte _« Open Source Software im EMBAG, Analyse des neuen Art. 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben »_ de Rika Koch et Simon Schlauri, dans les actes de la Conférence sur les acquisitions informatiques 2023 à Berne, offre des orientations supplémentaires sur la mise en œuvre de l'art. 9 LMETA. +* Le _Leitfaden Open-Source-Software 2.0_ de la BITKOM allemande traite en détail des questions juridiques liées à l'open source _[BITKOM2023]_. Il se fonde toutefois sur la situation juridique en Allemagne. +* Wolfgang Straub examine, dans son ouvrage _Softwareschutz: Urheberrecht, Patentrecht, Open Source_, les détails juridiques du copyleft en relation avec le droit d'auteur suisse et étudie la compatibilité des licences open source [St2011]. Le chapitre consacré aux logiciels open source (ainsi que des traductions allemandes de diverses licences open source tenant compte de la terminologie juridique suisse) sont librement accessibles sur _www.it-recht.ch._ +* Till Jaeger et Axel Metzger répondent de manière approfondie à de nombreuses questions juridiques liées aux logiciels open source dans leur ouvrage complet _Open Source Software - Rechtliche Rahmenbedingungen der Freien Software [JaAx2016]_. Ils fondent toutefois leur analyse sur la situation juridique en Allemagne. +* Kropp Jonathan/Bauer Alexander, Open Source Compliance und Litigation, CB 2019 p. 285 ss, 285. +* Reymond Michel José, Questions de responsabilité civile et contractuelle soulevées par la distribution de « logiciels libres » (open source), SZW 2022 p. 69 ss. + +Divers portails en ligne fournissent en outre des informations détaillées sur les caractéristiques et les questions relatives à des licences open source spécifiques. + +* Sur la plateforme GitHub https://choosealicense.com, les objectifs souhaités pour un projet open source peuvent être sélectionnés et la licence open source appropriée est proposée. +* Sur https://opensource.guide/legal/, GitHub met à disposition un guide en ligne traitant de questions juridiques spécifiques. +* Sur https://www.gnu.org/licenses/license-list.fr.html figurent de brefs commentaires sur diverses licences avec des indications sur leur compatibilité, en particulier avec la GPL. +* Sur https://opensource.org/faq, l'Open Source Initiative traite de nombreuses questions et réponses sur les aspects juridiques des licences open source. +* Sur https://copyleft.org/guide figure un guide détaillé expliquant les détails du copyleft. +* Sur https://tldrlegal.com, les principales licences open source sont résumées selon ce que la licence concernée permet (« can »), ce qu'elle interdit (« cannot ») et ce qu'elle prescrit (« must »). +* Sur https://opensource.com/tags/licensing sont publiés en continu des articles sur des questions de licence actuelles. +* Sur https://www.ifross.org/faq-haeufig-gestellte-fragen, l'« Institut für Rechtsfragen der Freien und Open Source Software » privé de Berlin (ifrOSS) a publié de nombreuses réponses à des questions juridiques fréquentes. + +Aujourd'hui, le respect des licences open source est mis en œuvre en premier lieu à l'aide d'outils logiciels (pour de plus amples informations sur la conformité open source, voir aussi Fröhlich-Bleuler _[Fr2012]_ et Kuhn, Williamson et Sandler _[KuWiSa2008]_). Divers outils open source de la Linux Foundation sont ainsi documentés et publiés sous le terme « fossology » sur https://www.fossology.org. Des fournisseurs commerciaux tels que Black Duckfootnote:[https://www.blackducksoftware.com] ou FOSSAfootnote:[https://fossa.com] proposent également diverses solutions propriétaires permettant de vérifier la compatibilité des licences open source utilisées. + +== Annexe + +=== Modifications par rapport à la version précédente + +* Résumé à l'intention de la direction ajouté. +* Les licences AGPL et MIT sont désormais recommandées comme préférables. +* Nouveau au chapitre 8.8 : droit d'auteur pour le code généré par IA. +* Chapitre 8.9 CLA et CDO fortement étoffé. +* Diverses améliorations rédactionnelles et précisions. +* Davantage d'exemples donnés. + +=== Références + +Voir link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale]. + +=== Abréviations + +Voir link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale] et link:em002-6.pdf[Em002-6 FAQ sur l'OSS]. + +=== Exemples de publications et de leur licence + +À l'avenir, cette liste sera remplacée par une collecte de métadonnées via publiccode.yml. + +=== D.1 Loom + +URL:: +https://gitlab.com/swiss-armed-forces/cyber-command/cea/loom +Autorité fédérale:: +Cyber Command +Description:: +Loom est un moteur de recherche documentaire puissant et facile à utiliser. Il automatise l'indexation des sources de données configurées, effectue l'OCR, extrait le contenu et les métadonnées, permet le marquage et offre de puissantes fonctions de recherche et d'utilisation. +Année:: +2025 +Licence:: +MIT +Justification:: +- + +=== D.2 trustbroker.swiss + +URL:: +https://github.com/trustbroker-swiss/trustbroker.swiss +Autorité fédérale:: +ChF, OFIT +Description:: +Trust Broker Swiss fournit des services de fédération entre relying parties (applications, fournisseurs de services, autres systèmes IAM ou policy enforcement points) et fournisseurs d'identité (IdP, également appelés claims providers), en recourant à des magasins d'attributs de confiance pour enrichir les utilisateurs authentifiés. + +Il permet aux fournisseurs d'identité/de claims et aux relying parties d'échanger des informations via un tiers qui masque les spécificités de l'IdP et fournit une identité unifiée ou du moins vérifiée en sus. +Année:: +2024 +Licence:: +AGPL +Justification:: +Les modifications du code doivent toujours rester ouvertes et revenir au projet. ++ +Un examen très détaillé de la question de la licence a été réalisé pour le Trust Broker. Pour de très grands projets, il peut être mené à ce niveau de détail. Toutes les licences compatibles avec la software bill of materials ont été recensées dans un pool de licences. + +=== D.3 Geocat.ch + +URL:: +https://github.com/geonetwork/core-geonetwork +Autorité fédérale:: +Swisstopo +Description:: +GeoNetwork est une application de catalogue pour la gestion de ressources géoréférencées. Elle offre de puissantes fonctions d'édition et de recherche de métadonnées ainsi qu'un visualiseur de cartes web interactif. Elle est actuellement utilisée dans de nombreuses initiatives d'infrastructures de données spatiales à travers le monde. +Année:: +2012 +Licence:: +GPL 2.0 +Justification:: +- + +=== D.4 GWEN / ampycloud / c4dl-multi / dvas /… + +URL:: +https://meteoswiss.github.io/ampycloud/ +Autorité fédérale:: +MétéoSuisse +Description:: +Paquet Python permettant de déterminer la proportion de couverture du ciel et la hauteur de base des couches nuageuses à partir de données de célomètre. +Année:: +2023 +Licence:: +Diverses licences, FSS +Justification:: +- + +=== D.5 Application EMSG (gestion du patrimoine en milieu urbain) + +URL:: +https://github.com/astra-emsg/ASTRA.EMSG +Autorité fédérale:: +MétéoSuisse +Description:: +EMSG est une application web SIG en C# développée par l'administration fédérale suisse pour gérer la gestion du patrimoine des systèmes routiers urbains. +Année:: +2017 +Licence:: +BSD +Justification:: +- + +=== D.6 Application certificat Covid + +URL:: +https://github.com/admin-ch/CovidCertificate-Documents +Autorité fédérale:: +OFIT +Description:: +Application suisse pour les certificats COVID +Année:: +2020 +Licence:: +MIT +Justification:: +Aussi permissive que possible afin que chacun puisse utiliser le code. + +=== D.7 Site web GovCert + +URL:: +https://github.com/govcert-ch/website +Autorité fédérale:: +NCSC +Description:: +Code source du site web de l'équipe d'intervention en cas d'urgence informatique (GovCERT) de l'administration fédérale suisse +Année:: +2023 +Licence:: +MIT +Justification:: +- + +=== D.8 Diverses bibliothèques sur les données ouvertes (p. ex. linked data) + +URL:: +https://github.com/SwissFederalArchives +Autorité fédérale:: +AFS +Description:: +Le dépôt des Archives fédérales suisses sur GitHub donne accès aux codes sources de nos applications. Il vous permet de créer vos propres forks et de signaler des erreurs ou de proposer des fonctionnalités étendues via l'interface « Issues ». +Année:: +2023 +Licence:: +AGPL, Apache, MIT +Justification:: +Les données ouvertes et les logiciels open source vont dans la même direction. L'AGPL permet une ouverture maximale. + +=== D.9 Apache FOP adapté pour des PDF archivables + +URL:: +https://xmlgraphics.apache.org/fop/ +Autorité fédérale:: +IPI +Description:: +L'IPI souhaitait une version d'Apache FOP capable de générer des PDF archivables. À cette fin, une extension a été commandée auprès de l'un des développeurs principaux (Jeremias Märki). Les adaptations ont été intégrées directement dans le projet. +Année:: +2007 +Licence:: +Apache +Justification:: +Des extensions ont été apportées à un projet open source existant. + +=== D.10 Dépôt électronique conforme au droit avec eKomm + +URL:: +https://launchpad.net/ekomm +Autorité fédérale:: +IPI +Description:: +L'IPI souhaitait un logiciel pour le dépôt électronique. +Année:: +2009 +Licence:: +Apache +Justification:: +L'IPI souhaitait que le fournisseur (Glue) procède à la publication et l'a autorisée en mode permissif (intégration dans ses propres applications). +endif::[] + +ifeval::["{lang}" == "it"] +*Avvertenza:* Il presente documento è una bozza in continua evoluzione e fa parte degli strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Per maggiori informazioni si veda il {url-repo}/tree/main[README] principale. + +''''' + +== Riassunto per la direzione + +Si raccomanda di stabilire strategicamente nell'Amministrazione federale, all'avvio di un nuovo progetto, una delle due licenze seguenti: + +* *Licenza AGPL*: effetto copyleft auspicato. Il codice modificato deve in ogni caso ritornare alla collettività e può poi essere ripreso anche dall'Amministrazione federale. Si raccomanda di utilizzare la versione più recente della licenza. È così che il principio «public money – public code» è meglio soddisfatto. I diritti di terzi, in particolare in caso di ulteriori sviluppi, possono attenuare ciò fino alla LGPL. +* *Licenza MIT*: terzi devono poter sviluppare applicazioni proprietarie sulla base del codice dell'Amministrazione federale. Se è espressamente richiesta una clausola di non avallo, è da preferire la BSD-3-Clause. + +Per la scelta della licenza può essere utilizzato il seguente ausilio decisionale: + +[mermaid,align="center",alt="Ausilio decisionale semplificato per la scelta della licenza"] +.... +flowchart TD + S(["Inizio"]) + Q1{"L'«ambiente»
impone la licenza"} + A["Scegliere la licenza
imposta"] + Q2{"Libreria, implementazione di riferimento
o requisiti liberali"} + B["MIT"] + C["AGPL"] + S --> Q1 + Q1 -->|"Sì"| A + Q1 -->|"No"| Q2 + Q2 -->|"Sì"| B + Q2 -->|"No"| C +.... + +Figura 1: Ausilio decisionale semplificato per la scelta della licenza + +In una certa misura queste due licenze costituiscono i due estremi dello spettro delle licenze OSS. Può essere del tutto opportuno scegliere una licenza più adatta a un progetto concreto. La presente guida intende fornire un aiuto concreto in tal senso. + +Se l'analisi delle librerie software rivela che occorre utilizzare un'altra licenza, gli sviluppatori ne informano la direzione del progetto. L'analisi è esposta in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +Nella collaborazione a progetti esistenti sono in linea di principio accettabili tutte le licenze compatibili con l'OSI. + +== Introduzione + +L'articolo 9 della legge federale del 17 marzo 2023footnote:[RS 172.019] sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA) prevede che le autorità federali debbano pubblicare e licenziare come software open source il software che sviluppano o fanno sviluppare. + +Il presente documento persegue i seguenti obiettivi: + +* Introduzione ai temi del diritto d'autore sul software e delle licenze OSS. +* Una presentazione delle licenze OSS il cui impiego non pone problemi nell'Amministrazione federale. Le licenze non menzionate nel presente documento e il software soggetto a tali licenze non possono essere utilizzati senza un esame supplementare delle disposizioni contrattuali da parte del servizio giuridico competente. +* Un aiuto nella scelta della licenza per lo sviluppo o l'acquisto di un progetto ai sensi dell'art. 9 LMeCA. + +== Diritto d'autore e licenze: principi + +Il diritto d'autore fonda sia diritti morali sia diritti patrimoniali (diritti di utilizzazione). Tra i diritti morali rientrano per esempio il diritto al riconoscimento della paternità dell'opera o il diritto di decidere se e quando l'opera è divulgata. Tra i diritti di utilizzazione rientrano per esempio il diritto di allestire o di diffondere esemplari dell'opera. + +La legge federale del 9 ottobre 1992footnote:[RS 231.1] sul diritto d'autore e sui diritti di protezione affini (LDA) prevede una serie di ulteriori diritti morali e di utilizzazione (cfr. art. 8 segg. LDA). Tali diritti spettano direttamente all'autore nel momento stesso in cui l'opera è creata. + +L'art. 2 LDA stabilisce a quali condizioni è accordata la protezione del diritto d'autore. Un'opera protetta ai sensi della legge esiste soltanto se tali condizioni sono soddisfatte. + +Le condizioni sono: + +* L'opera deve essere stata creata; il semplice ritrovamento non basta. I dati di ricerca, per esempio, ossia i risultati di esperimenti, non possono essere qualificati come opere. +* La creazione deve essere «intellettuale», ossia provenire da un essere umano. +* L'opera deve essere stata realizzata in modo percepibile. La semplice idea alla base di un'opera non è protetta, bensì soltanto la sua forma esteriore, p. es. la stampa di un testo su carta o l'esecuzione di un brano musicale. +* Individualità: infine, l'opera deve presentare un certo grado minimo di individualità. Un'opera che tutti realizzerebbero allo stesso modo non è protetta. + +Possono essere protette le opere più diverse, quali testi letterari o scientifici, opere musicali, fotografiche, cinematografiche e altre opere visive o audiovisive. + +Secondo l'art. 2 cpv. 3 LDA anche i programmi per computer sono opere, se le condizioni menzionate sono soddisfatte. + +I diritti d'autore spettano, sin dalla loro nascita, unicamente all'autore. Soltanto egli può vietare ad altri di compiere gli atti corrispondenti. L'autore può tuttavia esercitare i propri diritti non soltanto personalmente: + +* Può trasferire i propri diritti a terzi (p. es. vendendoli). Il nuovo titolare dei diritti può quindi farli valere come se fosse l'autore. +* In alternativa l'autore può anche concedere i propri diritti in licenza a terzi. Semplificando, una licenza è un contratto con cui il titolare dei diritti consente a un terzo di utilizzare l'opera. L'autore conserva i diritti, ma rinuncia a farli valere nei confronti del licenziatario. + +Se un programma per computer è creato nell'ambito di un rapporto di lavoro, il datore di lavoro ottiene una licenza esclusiva per il suo utilizzo (art. 17 LDA). Ai lavoratori restano quindi essenzialmente soltanto i diritti morali sul software (ovvero, a seconda dell'opinione giuridica, soltanto il loro nucleo). Si tratta della medesima situazione giuridica prevista dalla legge sul personale federale. + +== Licenze OSS + +=== Principi + +L'OSS si caratterizza essenzialmente per i seguenti elementi (secondo una definizione dell'Open Source Initiative _[Pe1999]_footnote:[https://opensource.org/]): + +* è consentita la ridistribuzione illimitata e gratuita del software; +* il software è disponibile in forma di codice sorgente; +* le modifiche del software e la loro ridistribuzione sotto la medesima licenza sono in linea di principio consentite; +* nessuna persona o gruppo di persone può essere escluso dall'utilizzo del software e nessun ambito d'applicazione può essere escluso (in particolare non l'uso commerciale); e +* la diffusione del software insieme ad altro software (quale software closed source) non deve essere limitata. + +I motivi più frequenti per l'impiego dell'OSS sono anzitutto i risparmi conseguiti grazie all'utilizzo dell'ormai considerevole bacino di software liberamente utilizzabile. Le imprese che ricorrono frequentemente all'OSS riescono spesso a risparmiare parti considerevoli del proprio budget informatico. + +Il codice liberamente disponibile può inoltre essere facilmente adattato alle proprie esigenze. La scelta dell'OSS evita inoltre il vendor lock-in.footnote:[https://it.wikipedia.org/wiki/Lock-in_(economia)] + +=== Licenze open source + +Le licenze open source sono anzitutto normali contratti di licenza per programmi per computer. + +Diversamente dai normali contratti di licenza, i contratti di licenza OSS si perfezionano tuttavia senz'altro non appena viene esercitata anche solo una delle forme libere di utilizzo descritte nella licenza (per esempio copiando, ridistribuendo o modificando il software). + +=== Copyleft versus permissivo + +==== In generale + +Una licenza open source secondo l'OSI può contenere una clausola di «copyleft». Le modifiche apportate a software licenziato in tal modo devono essere offerte nuovamente alle stesse condizioni valide per il software originario. Chi apporta tali modifiche deve, nel diffondere il software open source in forma di codice oggetto leggibile dalla macchina, offrire ai destinatari anche il codice sorgente. + +Nella formulazione della Free Software Foundation, l'effetto copyleft protegge la libertà degli sviluppatori e garantisce così che un software una volta libero resti sempre libero. + +Con le licenze copyleft si realizza una sorta di scambio tra la community e le imprese utilizzatrici. Gli utenti, tenuti in cambio dei vantaggi derivanti dal bacino software esistente a ricollocare i propri sviluppi sotto la rispettiva licenza, contribuiscono così all'ulteriore sviluppo di tale bacino. Il risultato è che entrambe le parti ne traggono vantaggio. + +La clausola di copyleft ha un certo «effetto di contagio»: se software licenziato copyleft viene integrato in software precedentemente proprietario, il software originariamente proprietario deve essere divulgato sotto una licenza open source compatibile. + +Nell'utilizzo di codice sorgente licenziato copyleft occorre pertanto prestare attenzione a integrarlo soltanto laddove il software che ne risulta può e deve essere pubblicato sotto una licenza open source. + +Se una licenza open source non contiene una clausola di copyleft (licenza open source permissiva), la licenza per le versioni rielaborate del codice può essere scelta liberamente. In particolare è anche possibile ricollocare le modifiche sotto una licenza software proprietaria e integrare il corrispondente codice sorgente in software proprietario. + +Essenzialmente le licenze open source possono essere suddivise nelle *categorie seguenti*: + +. licenze open source con *copyleft forte*; +. licenze open source con *copyleft debole*; e +. licenze open source *permissive* o *senza copyleft*. + +==== Licenze open source con copyleft forte + +Utilizzando una licenza open source con copyleft forte, le nuove versioni derivate dal software originario devono, se trasmesse a terzi, essere poste sotto le condizioni della licenza originaria e messe a disposizione di tali terzi in forma di codice sorgente. + +Sul mercato le due licenze seguenti sono considerate le licenze open source determinanti con copyleft forte: + +* GNU General Public Licence (GPL); una gran parte dell'OSS è oggi licenziata sotto di essa +* GNU Affero General Public Licence (AGPL) + +La principale differenza tra GPL e AGPL riguarda il tipo di utilizzo che innesca il copyleft. Con software sotto GPL il codice sorgente modificato deve essere offerto soltanto se la nuova versione del software è offerta a terzi come programma eseguibile (p. es. come app mobile). Se il software è messo a disposizione soltanto via Internet (dal proprio cloud su propri server), per esempio in forma di «Software as a Service» (SaaS) o di interfaccia di programmazione (API), ciò non innesca il copyleft. + +Se il software è soggetto alla AGPL, il codice sorgente modificato deve essere fornito anche quando le funzionalità del software sono offerte tramite un sito web o un'interfaccia di programmazione. La AGPL è quindi ancora più rigorosa della GPL. + +Con le licenze a copyleft forte il copyleft riguarda non soltanto il rispettivo modulo software (libreria), bensì l'intero programma nel quale un modulo licenziato copyleft può essere incorporato. Il menzionato «effetto di contagio» si produce così. + +==== Licenze open source con copyleft debole + +Anche le licenze con copyleft debole esigono che le modifiche del loro codice sorgente siano pubblicate ai terzi destinatari sotto la licenza open source originaria. + +Diversamente dalle licenze a copyleft forte, esse non hanno tuttavia l'effetto di «infettare» con la propria licenza altri componenti software distinguibili (altre librerie o il programma principale stesso). Ciò consente l'integrazione di software open source a copyleft debole in software proprietario o in software soggetto ad altre licenze OSS, senza doverlo pubblicare sotto la licenza originaria. + +Queste sono le licenze open source a copyleft debole più utilizzate: + +* GNU Lesser General Public Licence (LGPL) +* Mozilla Public Licence 2.0 (MPL) +* Common Development and Distribution Licence (CDDL) +* Eclipse Public Licence (EPL)footnote:[Oltre alla Eclipse Public Licence (EPL-1.0) esiste anche la Eclipse Distribution Licence (EDL-1.0). + +Mentre la EDL corrisponde alla BSD 3-Clause, la EPL è una licenza a copyleft debole.] +* Microsoft Reciprocal Licence (Ms-RL) +* European Union Public Licence (EUPL)footnote:[La EUPL presenta essa stessa un copyleft forte, ma grazie alla clausola di apertura è possibile un passaggio a licenze a copyleft debole, per cui la protezione è limitata.] + +==== Licenze open source permissive + +Le licenze prive di effetto copyleft si caratterizzano per il fatto di non imporre al licenziatario alcun requisito riguardo alla licenza del suo software derivato, per cui né il suo nuovo codice sorgente né le modifiche del software open source devono essere divulgati ai terzi destinatari. Ciò consente lo sviluppo di prodotti software proprietari mediante l'integrazione di software sotto licenze open source permissive. + +Esempi di licenze permissive sono: + +* MIT Licence +* Apache Licence 2.0 +* Berkeley Software Distribution (BSD) Licence (BSD 2-Clause e BSD 3-Clause) +* Microsoft Public Licence (Ms-PL) + +=== Compatibilità delle licenze open source + +I programmi si compongono di regola di una molteplicità di componenti e moduli software che possono essere collegati tra loro in modi diversi. Nello sviluppo software componenti open source esistenti vengono spesso integrati in applicazioni e soluzioni interne proprietarie. Non appena queste diventano accessibili dall'esterno tramite un sito web, API, distribuzione software o in altro modo, occorre prestare attenzione alla compatibilità delle rispettive licenze open source, poiché allora il copyleft può produrre effetti. + +Se le opere derivate soggette a una determinata licenza possono essere diffuse soltanto alle medesime condizioni di licenza, ne consegue che non possono essere utilizzate altre licenze open source con obblighi diversi o contraddittori per le opere derivate. + +Alcune licenze open source contengono le cosiddette clausole di apertura, che consentono l'utilizzo del codice licenziato sotto di esse in progetti soggetti ad altre licenze. Così la LGPL versione 2.1 consente anche l'utilizzo del codice sotto la GPL. La GPLv3 contiene tra l'altro una clausola di compatibilità per la AGPL e la Apache License 2.0. La EUPL è concepita in modo molto aperto e contiene in allegato un lungo elenco di licenze compatibili, in particolare quelle a copyleft debole quali la LGPL. Ne consegue che la protezione copyleft forte effettivamente prevista dalla licenza risulta indirettamente attenuata. + +Il grafico seguente rappresenta le dipendenze delle principali licenze open source (Goldstein 2018). La rappresentazione si basa sulla visualizzazione di David A. Wheeler, che ha analizzato le compatibilità delle diverse licenze e dei loro numeri di versione (Wheeler 2007), ed è stata ulteriormente sviluppata con informazioni tratte da https://www.gnu.org/licenses/license-list.it.html[https://www.gnu.org/licenses/license-list.it.html].footnote:[Un'ulteriore rappresentazione, ampliata, è utilizzata da GEANT nel suo confluence: «Software Licence Selection and Management in GÉANT - GEANT Software Development Support - GÉANT federated confluence», https://wiki.geant.org/pages/viewpage.action?pageId=1032978710. Vi si trovano alcune licenze supplementari.] + +Il grafico va letto come segue: il codice soggetto a una licenza indicata prima nella catena può essere integrato in software pubblicato sotto una licenza indicata successivamente nella catena. Così il codice sotto la BSD modificata può essere posto sotto una variante di licenza LGPL o GPL, ma non viceversa. Public domain significa che l'opera non è soggetta ad alcuna restrizione di diritto d'autore. + +[mermaid,align="center",alt="Compatibilità delle licenze open source"] +.... +flowchart TB + subgraph P["Licenza permissiva"] + PD["Public domain"] + MIT["MIT/X11"] + BSD["BSD modificata"] + AP["Apache 2.0"] + end + subgraph W["Copyleft debole"] + EUPL["EUPL"] + LGPL21["LGPLv2.1"] + LGPL21P["LGPLv2.1+"] + LGPL3["LGPLv3 / LGPLv3.1"] + MPL["MPL 1.1"] + end + subgraph SC["Copyleft forte"] + GPL2["GPLv2"] + GPL2P["GPLv2+"] + GPL3["GPLv3 / GPLv3+"] + AGPL["Affero GPLv3"] + end + PD --> MIT + MIT --> BSD + BSD --> AP + BSD --> LGPL21 + BSD --> LGPL21P + BSD --> LGPL3 + BSD --> MPL + AP --> EUPL + AP --> LGPL3 + EUPL --> LGPL21 + EUPL --> LGPL21P + EUPL --> LGPL3 + EUPL --> MPL + LGPL21P --> LGPL21 + LGPL21P --> LGPL3 + LGPL21 --> GPL2 + LGPL21 --> GPL2P + LGPL21P --> GPL2P + LGPL3 --> GPL3 + GPL2P --> GPL2 + GPL2P --> GPL3 + GPL3 -->|"+ protezione della rete"| AGPL + classDef pd fill:#f5f5f5,stroke:#000000,color:#000000 + classDef perm fill:#dae8fc,stroke:#000000,color:#000000 + classDef weak fill:#d5e8d4,stroke:#000000,color:#000000 + classDef strong fill:#5ea226,stroke:#000000,color:#ffffff + class PD pd + class MIT,BSD,AP perm + class EUPL,LGPL21,LGPL21P,LGPL3,MPL weak + class GPL2,GPL2P,GPL3,AGPL strong +.... + +Figura 2: Compatibilità delle licenze open source (sulla base del grafico di David A. Wheeler, 2007 e di https://www.gnu.org/licenses/license-list.it.html) + +Importante: poiché le compatibilità delle licenze sono sempre rilevanti, i team di sviluppo e i fornitori di prestazioni dovrebbero verificare preventivamente gli stack di sviluppo con le relative librerie quanto a possibili problemi di compatibilità. Ciò significa che, prima di approvare l'utilizzo di una libreria, occorre verificare — oltre alla sicurezza e all'omogeneità dello stack di sviluppo — se la licenza della libreria è compatibile con le licenze determinanti privilegiate dall'Amministrazione federale. + +[[licences-for-pure-usage]] +== Licenze per il semplice utilizzo + +Il presente capitolo tratta la situazione in cui un software soggetto a una licenza OSS deve essere utilizzato, ma non deve essere modificato, oppure in cui le modifiche sono utilizzate soltanto internamente. + +Le licenze seguenti non pongono in linea di principio problemi quando il software è utilizzato dalle autorità federali. Le relative condizioni, segnatamente un eventuale copyleft, devono tuttavia essere rispettate. + +In determinate circostanze la licenza di un modulo software preesistente determina le licenze possibili per il prodotto complessivo (cfr. capitolo 4.4). + +Alcune licenze sono incompatibili tra loro (cfr. figura 2). + +[cols="1,1,3",options="header"] +|=== +|Licenza |Copyleft |Particolarità + +|*MIT* +|No +|Licenza privilegiata dell'Amministrazione federale quando si mira a un'ampia diffusione e terzi devono poter sviluppare nuovamente software proprietario a partire da essa. + +|*Apache 2.0* +|No +|Apache è una licenza molto diffusa, nota per i progetti riuniti sotto l'Apache Foundation. L'uso dei marchi dei licenzianti è escluso, salvo per descrivere l'opera. + +|*GPL v3* +|Sì +a|È LA licenza copyleft classica. + +Il copyleft si applica anche quando parti licenziate GPL sono incorporate in un programma complessivo. Divieto di digital rights management. Regole di compatibilità particolari. + +|*LGPLv3* +|Debole +a|Licenza copyleft ridotta, sviluppata appositamente per le librerie software. + +Diversamente dalla GPL, la LGPL consente a determinate condizioni di combinare codice chiuso (ossia proprietario) con codice LGPL. + +Ne sono esempi le librerie standard quali glibc. La LGPL consente di porre sotto GPL il programma di cui la libreria è diffusa quale parte. + +|*Affero GPLv3 (AGPL)* +|Sì +a|Anche l'uso in SaaS innesca il copyleft. Per il resto analoga alla GPLv3. + +Questa licenza colma la lacuna della GPL, per cui non era richiesta alcuna pubblicazione in caso di utilizzo per offerte SaaS. + +Con questa licenza l'Amministrazione federale può garantire che i miglioramenti del codice vadano a beneficio della collettività anche in caso di SaaS, e sostiene al meglio il principio *«public money – public code»*. + +|*BSD-3* +|No +a|Licenza generale e liberale. + +I nomi degli autori non possono essere utilizzati per promuovere opere derivate (clausola pubblicitaria) + +|*European Union Public Licence (EUPL)* +|Debole +a|Licenza particolare utilizzata per l'UE. + +Particolarmente utile come base per progetti europei. + +Licenza che tiene conto del diritto europeo. La pubblicazione sotto determinate licenze compatibili è espressamente consentita. +|=== + +Tabella 1: Licenze che non pongono problemi per le autorità federali (secondo _[Sc2024]_) + +Altre licenze possono essere utilizzate. In questi casi può essere necessario consultare il servizio giuridico dell'ufficio interessato. + +== Licenza per progetti propri o creation e per le contribution + +Il presente capitolo riguarda i casi seguenti: + +* Sviluppo ulteriore / contribution +** in cui le autorità federali sviluppano ulteriormente software esistente; oppure +** sviluppano nuovo software, basandosi però su librerie software OSS esistenti; e +** mettono il relativo software a disposizione di terzi. Tra i terzi rientrano anche le organizzazioni dell'Amministrazione federale decentralizzata, purché abbiano personalità giuridica propria. Se gli sviluppi ulteriori sono utilizzati soltanto internamente e non messi a disposizione di terzi, si applica unicamente <>. +* Progetti propri / creation / pubblicazione: il presente capitolo riguarda i casi in cui le autorità federali sviluppano nuovo software. Ciò dovrebbe essere raro, poiché la maggior parte degli sviluppi si basa su librerie software open source esistenti. ++ +Per gli sviluppi interamente nuovi andrebbe scelto un tipo di licenza che consenta una base ampia e duratura per gli sviluppi ulteriori. È importante a tal fine che la licenza in questione sia ampiamente accettata nella community di sviluppatori determinante. + +La verifica della compatibilità è svolta secondo link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS], capitolo 7.4. La compatibilità delle licenze è illustrata nella figura 2. + +Dovrebbero essere considerate le dimensioni seguenti: + +* Caso d'applicazione +* Verifica auspicata link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Lista di controllo Valutazione preliminare OSS] +* Facilità di costituzione di una community link:em002-4.pdf[Em002-4 Guida alle community OSS] +* Facilità d'applicazione +* Certezza del diritto +* Diffusione + +Sono da preferire le licenze secondo il capitolo <>. + +Le seguenti *licenze copyleft* dovrebbero essere utilizzate in via prioritaria dalle autorità federali, in particolare se si mira a uno sviluppo aperto e duraturo e se deve valere l'effetto copyleft ereditario. Ciò assicura che il software pagato dalla collettività e tutti i suoi derivati restino aperti. È così che il principio «*public money – public code*» è meglio soddisfatto e ciò costituisce *la raccomandazione privilegiata per l'Amministrazione federale.* + +Licenze raccomandate in ordine decrescente: + +* *AGPL v3* +* GPL v3 +* LGPL 3.0 +* European Union Public Licence (EUPL) + +Le licenze seguenti dovrebbero essere utilizzate dalle autorità federali quando *non è auspicato* o richiesto *alcun copyleft* (in ordine decrescente): + +* *MIT* +* Apache Licence 2.0 +* BSD v3 + +Nella collaborazione a progetti esistenti possono inoltre essere utilizzate senza problemi le licenze seguenti: + +* Mozilla Public Licence +* Microsoft Public Licence + +Se deve essere utilizzata un'altra licenza, si raccomanda di motivarlo brevemente nella link:em002-2-3-checklist-oss-release-and-publication.pdf[lista di controllo Em002-2.3 Rilascio e pubblicazione OSS]. + +*Secondo l'art. 9 cpv. 4 LMeCA dovrebbero essere in ogni caso utilizzate licenze affermate a livello internazionale.* + +Ulteriori strumenti per verificare le compatibilità delle licenze sono: + +* ORT Toolkit (https://oss-review-toolkit.org/) +* Black Duck (www.blackducksoftware.com), +* FOSSA (http://www.fossa.com[www.fossa.com]), +* l'Open Source Licence Comparison Grid (https://www.cmu.edu/cttec/forms/opensourcelicensegridv1.pdf) +* FOSSology (https://www.fossology.org). +* Processo OpenCode: https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses#4.-Lizenzierungsleitfragen[https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses] + +== Casi d'applicazione e licenze adeguate + +La tabella e il grafico seguenti mostrano come, in funzione dei diversi casi d'applicazione, possano essere scelte licenze adeguate per il software open source. + +[cols="2,2,3",options="header"] +|=== +|*Caso d'applicazione* |*Licenza/e* |*Motivazione* + +|Utilizzare un progetto esistente e contribuirvi +|*Licenza secondo le prescrizioni del progetto* +|Necessario per motivi giuridici. + +|La licenza è imposta dall'utilizzo di parti esistenti (licenze con copyleft) +|*Utilizzare una licenza compatibile con tali parti.* +a|Necessario per motivi giuridici. + +Nota: diverse librerie sono disponibili sotto più licenze. + +Soltanto una delle licenze deve corrispondere. Uno degli scopi della licenza multipla è assicurare che le librerie possano essere utilizzate sia con sia senza copyleft. + +|Ecosistema esistente con licenza privilegiata (p. es. si tratta di un plug-in per software pubblicato sotto licenza MIT. L'uso di una licenza MIT sarebbe allora il più opportuno, poiché tutti gli altri utenti se lo attendono e il software si integra nell'ecosistema) +|*Utilizzare la licenza se figura nell'elenco, altrimenti utilizzare per quanto possibile la stessa licenza* +|L'accettazione nella community è centrale. + +|L'obiettivo è la diffusione più ampia possibile, p. es. per un'implementazione di riferimentofootnote:[Per esempio, al fine di rendere più agevole l'attuazione di una legge, un'implementazione di riferimento può essere commissionata dalle autorità federali. Cfr. p. es. https://ech.ch/de/ech/ech-0238/1.0] (p. es. per software destinato a essere utilizzato anche in soluzioni commerciali). +a|*MIT* + +BSD v3 + +Apache Licence 2.0 + +LGPL v3 +|In questo caso non andrebbe utilizzato alcun copyleft. + +|Le modifiche del codice devono ritornare alle autorità federali +a|*AGPL v.3* + +GNU GPL v.3 + +EUPL +|La AGPL impone la pubblicazione da parte di terzi anche in caso di utilizzo nel cloud, la GPL e la EUPL no. + +|Le soluzioni SaaS non devono essere esentate dal ritorno delle modifiche del codice +|*AGPL v.3* +|La AGPL impone la pubblicazione da parte di terzi anche in caso di utilizzo nel cloud. + +|Una collaborazione agevole con la community è importante. +a|*AGPL v.3* + +GNU GPL v3 + +Apache Licence 2.0 +a|La GPL è preferita per mantenere libero il software. + +Apache contiene regole per la governance della community, regole supplementari per i contributi (non si può indicare una licenza diversa da Apache; il contributo in quanto tale non è disciplinato più nel dettaglio, per cui se esiste un CLA questo prevale), una licenza di brevetto e regole per la licenza di brevetto. In particolare anche che chi fa valere brevetti contro un altro contributore perde la propria licenza di brevetto ai sensi della licenza Apache. + +Determinanti sono le regole che l'Apache Foundation stabilisce per i contributi. Apache è quindi opportuna se la governance del progetto deve essere costruita principalmente secondo Apache. + +|Piccolo componente (libreria) utilizzabile universalmente o piccolo software per il quale la sostenibilità o la manutenzione da parte di una community non sono importanti +a|*MIT* + +Apache Licence 2.0 + +BSD v3 + +LGPL v3 +a|La LGPL prevede un copyleft soltanto per il componente stesso, ma non per l'intero progetto nel quale il componente è inserito. + +Le altre licenze sono permissive. + +|Deve essere semplice e permissivo; il controllo non è importante +a|*MIT* + +Apache Licence 2.0 + +BSD v3 +|Massimamente permissivo + +|Per le autorità federali è importante che cosa avvenga del codice ed esse desiderano ricevere il maggior numero possibile di miglioramenti. +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|Va impedito che il software diventi proprietario e sia posizionato sul mercato come prodotto concorrente +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|Va impedito che le autorità federali diventino dipendenti da singoli fornitori («vendor lock-in») +a|*AGPL v.3* + +GNU GPLv3 +|Il copyleft impedisce che un fornitore acquisisca con il tempo una posizione esclusiva utilizzando il software della Confederazione in un prodotto proprietario, il che potrebbe nuovamente creare per la Confederazione una dipendenza da tale fornitore. +|=== + +Tabella 2: Licenza da utilizzare a seconda del caso d'applicazione per la pubblicazione di nuovo software conformemente all'art. 9 LMeCA *(grassetto = raccomandato se nulla vi si oppone)* + +[mermaid,align="center",alt="Albero decisionale ampliato per la scelta della licenza nell'Amministrazione federale"] +.... +flowchart TD + S(["Inizio"]) + Q1{"La distinta base
impone la licenza?"} + R1["Scegliere la licenza
imposta / preferita"] + Q2{"In questo ambiente vi sono
licenze preferite?"} + Q3{"Figura nell'elenco delle licenze
idonee dell'Em002-3?"} + R2["Scegliere dall'elenco la licenza idonea
successiva secondo l'Em002-3, dopo aver
consultato il servizio giuridico"] + Q4{"Implementazione di riferimento
come proposta
per terzi?"} + R3["GPL o licenza permissiva:
MIT, BSD, Apache"] + Q5{"I miglioramenti
devono rifluire?"} + Q6{"Anche in caso
di utilizzo SaaS?"} + R4["GPL, EUPL"] + R5["AGPL"] + S --> Q1 + Q1 -->|"Sì"| R1 + Q1 -->|"No"| Q2 + Q2 -->|"Sì"| Q3 + Q2 -->|"No"| Q4 + Q3 -->|"Sì"| R1 + Q3 -->|"No"| R2 + Q4 -->|"Sì"| R3 + Q4 -->|"No"| Q5 + Q5 -->|"No"| R3 + Q5 -->|"Sì"| Q6 + Q6 -->|"No"| R4 + Q6 -->|"Sì"| R5 +.... + +Figura 3: Albero decisionale ampliato per la scelta della licenza nell'Amministrazione federale (se non AGPL o MIT) + +La distinta base della figura 3 è la software bill of materials (SBOM) di tutte le librerie software e i sottoprogrammi preesistenti confluiti nella soluzione complessiva. Ogni libreria ha la propria licenza. A seconda di come questa sia compatibile con le altre (cfr. capitolo 4.4), la scelta possibile di licenze per la pubblicazione risulta limitata. + +Un ultimo punto può parimenti influenzare la decisione: *il passaggio da una licenza più restrittiva a una meno restrittiva è più semplice a posteriori*. Nel caso opposto un forkfootnote:[Per la definizione cfr. link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale].] è pressoché inevitabile. + +== Temi giuridici particolari + +=== Aspetti internazionali + +Le questioni giuridiche essenziali dell'OSS nella pratica sono prevalentemente di natura contrattuale in materia di licenze. + +Per le questioni di diritto delle licenze si applica anzitutto il diritto scelto dalle parti (la Mozilla Public License MPL contiene per esempio al numero 8 una scelta del diritto a favore del diritto del convenuto). + +In assenza di scelta del diritto, il che è il caso di tutte le altre licenze qui presentate, si applica di regola il diritto dello Stato del licenziante. Pertanto, quando le autorità federali acquisiscono licenze software da licenzianti esteri, si applica il diritto del rispettivo Paese. Se sono coinvolti più contributori, ciò può dar luogo a situazioni complesse. Viceversa, in caso di eventuali controversie tra licenziatari esteri e le autorità federali quali licenzianti si applica il diritto svizzero. + +La questione di quali aspetti siano di natura contrattuale e quali di diritto d'autore non può ricevere una risposta generale e può risultare piuttosto complessa nei singoli casi. La trasferibilità del diritto d'autore o di parti di esso, oppure l'estensione dei diritti che possono essere concessi, appartengono per esempio al diritto d'autore. Qui va applicato il diritto del rispettivo Paese di protezione. Una scelta del diritto divergente non è possibile (sull'insieme cfr. Jaeger/Metzger, 449 segg.). + +=== Esclusione della responsabilità e della garanzia + +Le licenze open source escludono regolarmente ogni garanzia e responsabilità nella misura consentita dal diritto. Nella pratica si pongono raramente questioni di responsabilità o garanzia; i rischi connessi sono pertanto ridotti. + +Si può presumere che, con una licenza corretta, le clausole di esclusione della responsabilità presenti in tutte le licenze qui trattate producano i loro effetti, per cui residua soltanto la responsabilità per negligenza grave e dolo, eventualmente per danni alle persone. + +Restano salve le regole sulle condizioni generali, come per esempio in Germania; tuttavia, nella misura in cui le autorità federali sono soggetto di responsabilità quali licenzianti, si applica il diritto svizzero (cfr. 8.1 sopra), che ammette le suddette esclusioni di responsabilità e garanzia nei rapporti B2B. + +Per contro ciò significa però anche che, in caso di errori del programma, agire contro gli autori del codice OSS integrato è di regola difficile. + +La prassi usuale nell'impiego dell'OSS consiste quindi regolarmente nel tutelarsi dagli errori con le consuete misure di sicurezza informatica e nell'assicurare la correzione degli errori mediante contratti di manutenzione. Non sussiste alcun regresso nei confronti dei contributori OSS. + +=== Copyleft e licenze tra enti dell'Amministrazione federale + +Il copyleft si applica alla trasmissione tra diversi soggetti giuridici (per esempio all'interno di un gruppo o tra servizi dell'Amministrazione federale decentralizzata dotati di personalità giuridica propria). + +Il copyleft non si applica alla trasmissione tra servizi del medesimo soggetto giuridico (per esempio all'interno dell'Amministrazione federale centrale). + +=== Licenza di brevetti + +I brevetti software sono possibili soltanto entro limiti ristretti secondo la concezione giuridica europea. Determinante è che il software fornisca un contributo tecnico, ossia risolva un problema tecnico concreto al di fuori del computer su cui viene eseguito. Esempi sarebbero il controllo del motore nelle automobili o il comando di un robot. Il software in quanto tale, che viene eseguito soltanto su un computer ma non ha un simile effetto esterno, non è in linea di principio brevettabile in Europa. La maggior parte dei programmi software non rientra quindi nell'ambito del diritto dei brevetti. + +In altre parti del mondo, in particolare negli Stati Uniti, i brevetti software sono concessi in modo un po' più liberale. Tuttavia, anche negli Stati Uniti un'idea astratta o un modello di business non diventa invenzione brevettabile per il solo fatto di essere attuato in un software. + +Con alcune licenze gli eventuali brevetti del licenziante non sono concessi in licenza insieme al software. Si tratta della GPL2, delle licenze BSD e della licenza MIT. + +Per i progetti che potrebbero essere utilizzati anche al di fuori dell'Europa, o che presentano la forma di effetto esterno sopra menzionata, si raccomanda di chiarire caso per caso gli aspetti di diritto dei brevetti. + +=== Doppia licenza + +L'autore può licenziare il software contemporaneamente sotto licenze diverse. Ciò è detto doppia licenza. + +Una forma interessante di doppia licenza si ha quando il titolare dei diritti licenzia il software come OSS con copyleft forte (il che ne impedisce l'integrazione in software proprietario) e offre al contempo ai licenziatari interessati una licenza _a pagamento_ che consente loro di integrare il software nel proprio software proprietario. + +Poiché i licenziatari interessati possono così evitare di pubblicare il proprio software proprietario come OSS, sono disposti a pagare per la licenza. Cfr. anche l'allegato a link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale]. + +Per le autorità federali stesse la doppia licenza dovrebbe risultare poco interessante nella maggior parte dei casi. Fintanto che i diritti d'autore spettano alle autorità federali (il che è disciplinato per esempio dalle condizioni generali dell'Amministrazione federale), queste possono decidere da sole in merito a un'eventuale doppia licenza. + +Se la manutenzione e lo sviluppo (ulteriore) sono esternalizzati a terzi, la situazione può essere diversa. Se i diritti spettano eccezionalmente a questi ultimi e le autorità federali si sono riservate soltanto il diritto di concedere una licenza OSS con copyleft, il terzo potrebbe essere tentato di procedere a una doppia licenza. Se ciò deve essere impedito, dovrebbe essere escluso contrattualmente. + +=== Modifica successiva delle licenze + +Occorre anzitutto rilevare che le licenze OSS sono in linea di principio immutabili e irrevocabili. I licenziatari che hanno concluso il contratto di licenza _prima_ di una modifica possono continuare a utilizzare, modificare e trasmettere a terzi il codice sulla base della vecchia licenza. + +Nella pratica una modifica di licenza porta spesso a un fork di una nuova versione del software sotto la vecchia licenza, sviluppato autonomamente dai precedenti licenziatari. + +L'introduzione di una nuova licenza per un software è possibile soltanto se tutti i titolari dei diritti d'autore sul software vi acconsentono. Modifiche si sono verificate nella pratica, per esempio nel passaggio da una licenza permissiva a una licenza copyleft. + +=== Menzione dei contributori (collaboratori e terzi) + +Se un programma per computer è creato nell'ambito di un rapporto di lavoro, il datore di lavoro ottiene una licenza esclusiva per il suo utilizzo (art. 17 LDA). Ai lavoratori restano quindi essenzialmente soltanto i diritti morali sul software (ovvero, a seconda dell'opinione giuridica, soltanto il loro nucleo). Lo stesso vale per i terzi che sviluppano software per le autorità federali, purché si applichino le corrispondenti CGfootnote:[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] della Confederazione, che trasferiscono alle autorità federali i diritti che ne derivano. + +Si pone nondimeno la questione se i contributori (collaboratori, terzi) debbano avere il diritto o l'obbligo di farsi conoscere come autori dei contributi nei repository open source. + +Un argomento a favore dell'impiego dell'OSS da parte delle autorità federali è l'offerta di posti di lavoro attrattivi: l'OSS offre ai contributori la possibilità di mostrare pubblicamente le proprie conoscenze e di costruirsi così una reputazione. Le loro capacità diventano verificabili, sono attestate dai pari, e chi ha acquisito influenza in un progetto OSS può servirsene come leva nella ricerca di un impiego. + +Un ulteriore argomento potrebbero essere i diritti morali, il cui nucleo non può essere sottratto all'autore originario né per contratto né per legge. Tale nucleo è tuttavia ristretto per i programmi per computer; esigere che lo sviluppatore di un programma abbia anche un diritto alla menzione andrebbe probabilmente troppo oltre. + +Inoltre, uno scambio tra specialisti nella community presuppone che essi possano essere contattati individualmente da altri. + +A seconda del progetto può quindi essere opportuno dare ai contributori la possibilità di farsi conoscere come tali nella community. + +Sotto il profilo della protezione dei dati va evitata ogni costrizione in tal senso, fermo restando che lo scambio nella community non presuppone la divulgazione dei nomi — gli pseudonimi sono la regola più che l'eccezione. Se i contributori non desiderano divulgare il proprio nome, va quindi data loro la possibilità di apparire sotto pseudonimo. + +*Si raccomanda di menzionare i nomi degli sviluppatori nei commit, se il progetto non vi si oppone.* + +*In ogni caso le autorità federali dovrebbero agire in qualità di titolari dei diritti.* + +=== Diritto d'autore, licenze per l'IA generativa per la creazione di codice + +Ci riferiamo qui soltanto al codice creato mediante IA generativa. Ulteriori informazioni su questo tema figurano in link:em002-6.pdf[Em002-6 FAQ sull'OSS++*++, capitolo 2.2]. Il codice creato da un LLM non è esso stesso protetto dal diritto d'autore. I dati di addestramento utilizzati dall'LLM possono tuttavia essere protetti dal diritto d'autore. Se il codice corrisponde 1:1, andrebbe ripresa anche la licenza. Se il codice è stato creato a frammenti e poi modificato dagli sviluppatori, il rischio che sia considerato software derivato è ridotto. Va osservato che determinati LLM esigono che il codice sia contrassegnato di conseguenza; eventuali accordi contrattuali al riguardo devono essere rispettati. + +=== Contributor Licence Agreements (CLA) e Developer Certificate of Origin (DCO) + +Quando più autori lavorano al codice di un progetto open source, essi ottengono diritti comuni sul codice che ne risulta. + +La concessione in licenza del codice a terzi avviene mediante la licenza OSS, con la costituzione di un contratto di licenza distinto tra ciascun utente e ciascun autore (fascio di licenze). Questa costellazione può dar luogo a una situazione giuridica poco chiara, per esempio nei rapporti internazionali (cfr. 8.1 sopra). Quando le imprese decidono di porre il proprio software sotto licenza OSS e di accettare contributi di terzi, hanno talvolta l'esigenza di conservare un certo controllo sul codice. + +Così può essere interessante mantenere aperta la possibilità di porre il progetto sotto una nuova licenza, oppure si desidera sottoporre a doppia licenza codice licenziato copyleft e a tal fine occorrono più diritti di quanti se ne otterrebbero dai contributori mediante una semplice licenza OSS (cfr. 8.5 sopra). I Contributor Licence Agreements (talvolta anche Copyright Transfer Agreements) mirano a risolvere tali problemi. + +Un *Contributor Licence Agreement (CLA)* è un *accordo giuridicamente vincolante* che definisce le *condizioni applicabili ai contributi al progetto*. + +I contributori sono tenuti ad accettare tale accordo prima di poter apportare contenuti al progetto. In sostanza i contributori concedono al progetto e ai suoi utenti il diritto di *utilizzare, modificare e ridistribuire* i contributi apportati. Viene inoltre confermato che i contributi *sono stati redatti autonomamente o legittimati da terzi*. + +Il *Developer Certificate of Origin (DCO)* è un *sistema di verifica introdotto* dalla Linux Foundation nel 2004, simile nello scopo al Contributor Licence Agreement (CLA) e che costituisce uno strumento alternativo adeguato. I contributori confermano per ogni contributo al progetto che *(a) sono autorizzati ad apportare il contributo, (b) il contributo è coperto da una licenza compatibile con il progetto e (c) acconsentono alla diffusione e all'utilizzo del contributo come open source*. + +Lo strumento principale dei CLA è o la cessione dei diritti d'autore dai contributori allo sviluppatore principale o all'organizzazione promotrice (nel caso dei Copyright Transfer Agreements), oppure la concessione da parte dei contributori allo sviluppatore principale della licenza più ampia possibile, di regola irrevocabile (Apache ha p. es. definito un CLA). Anche i contributi a progetti chiusi sono spesso soggetti a un CLA. + +I CLA sono controversi nella community OSSfootnote:[Per esempio: https://ben.balter.com/2018/01/02/why-you-probably-shouldnt-add-a-cla-to-your-open-source-project/], tra l'altro perché possono aprire falle nel copyleft. Esistono quindi ormai anche CLA che limitano lo sviluppatore principale quanto alla concessione di una nuova licenza per il codice del progetto. + +[mermaid,align="center",alt="Trasferimento del codice sorgente e dei diritti in diverse costellazioni"] +.... +flowchart LR + subgraph TP["Terzi"] + TP1["nessun documento proprio"] + TP2["CLA
DCO
licenza OSS"] + TP3["CLA
DCO
licenza OSS
contratto"] + TP4["nessun documento proprio"] + end + subgraph FA["Amministrazione federale"] + FA1["CG della Confederazione
contratto"] + FA2["nessun documento proprio"] + FA3["licenza OSS
contratto
(DCO)
(CLA)"] + FA4["licenza OSS
(DCO)
(CLA)"] + end + TP1 -- "creazione" --> FA1 + TP2 -- "contributo dell'Amministrazione federale" --- FA2 + TP3 <-- "collaborazione" --> FA3 + TP4 -- "contributo di terzi" --> FA4 +.... + +Figura 4: Trasferimento del codice sorgente e dei diritti in diverse costellazioni + +Legenda: + +* I riquadri indicano *dove sono definiti i diritti* in ciascuna costellazione. +* *Creazione* e *contributo di terzi*: l'Amministrazione federale dispone del potere di configurazione. +* *Collaborazione*: i documenti sono concordati tra le parti. +* *Contributo dell'Amministrazione federale*: l'Amministrazione federale non dispone di alcun potere di configurazione, è necessario un esame. +* I documenti giuridici sono elencati in ordine di priorità, dall'alto verso il basso; i documenti tra parentesi sono piuttosto da evitare. + +Per gli *sviluppi propri* (creation) non vi sono problemi: secondo l'art. 17 LDA l'autorità federale è titolare dei diritti d'utilizzazione sul software creato dai propri collaboratori. Per gli *sviluppatori terzi* le autorità federali dovrebbero assicurarsi i diritti (per esempio utilizzando le corrispondenti CG della Confederazione). Nessun CLA o DCO è quindi qui necessario. + +Laddove le autorità federali sono sviluppatori principali e accettano contributi e collaborazioni, occorre rinunciare all'utilizzo di un CLA. Possono essere utilizzati in alternativa i Digital Certificates of Origin (illustrati con un esempio in link:em002-4.pdf[Em002-4 Guida alle community OSS], capitolo 3.3). In linea di principio i contributi ai progetti delle autorità federali dovrebbero basarsi sulla licenza OSS, per non innalzare ulteriormente la barriera al contributo. + +Se nel singolo caso, dopo adeguato esame, si constata comunque la necessità di un CLA, l'autorità federale dovrebbe utilizzare il CLA di Apache.footnote:[https://www.apache.org/licenses/contributor-agreements.html] In tal caso questa decisione e il CLA dovrebbero essere annotati nelle osservazioni conclusive tanto della link:em002-2-1-checklist-oss-preliminary-assessment.pdf[lista di controllo Em002-2.1 Valutazione preliminare] quanto della link:em002-4-1-checklist-oss-community.pdf[lista di controllo Em002-4.1 Community OSS]. + +Se le autorità federali contribuiscono a software di terzi che richiede un CLA, il servizio giuridico deve esaminare caso per caso se l'autorità federale possa accettare il CLA esistente.footnote:[Per un determinato destinatario l'Amministrazione federale dovrebbe esaminare la firma di un CLA una sola volta. In altre organizzazioni ciò è pertanto trattato come questione di alto livello, con i CLA firmati conservati nell'archivio dei contratti. I CLA non devono eludere gli obblighi dell'autorità federale ai sensi dell'art. 9 LMeCA.] Vanno determinati i punti seguenti: + +* Un'altra autorità federale ha già firmato il CLA? +* Chi esamina il CLA? +* Chi lo firma? (Il firmatario deve essere autorizzato a firmare per la Confederazione nei confronti di terzi) +* Dove viene archiviato? +* Come sono documentati il CLA o il DCO nel progetto? +* Come si garantisce che il codice pubblicato resti pubblicato? (Ciò resta di competenza dell'autorità federale ai sensi dell'art. 9 LMeCA, cfr. [KBB-MB].) + +Possibili criteri per l'esame sono: + +* Compatibilità con l'art. 9 LMeCA: il codice resta aperto? +* L'autorità federale ravvisa rischi per sé stessa? +* L'autorità federale ravvisa un beneficio per sé stessa (p. es. il codice non deve essere mantenuto o sviluppato da sola) o per altri (nel federalismo svizzero o a livello europeo si può ottenere un impatto più ampio senza oneri supplementari)? +* I diritti ceduti sono ragionevoli? +* All'autorità federale non sono imposti obblighi (superflui)? +* Il CLA è sostanzialmente equivalente al CLA di Apache? + +=== Problemi con la (L)GPL-3.0 e l'IoT + +_[BITKOM2023]_ segnala un problema legato all'uso delle licenze (L)GPL-3.0 in relazione al software installato su dispositivi: tali dispositivi dovrebbero consentire l'installazione di versioni software proprie o nuove. Ciò può essere indesiderato per motivi di sicurezza. + +=== Statuto giuridico della documentazione + +Secondo l'art. 5 LDA, «le decisioni, i verbali e i rapporti delle autorità e delle amministrazioni pubbliche» non sono protetti dal diritto d'autore. + +Ciò va oltre la CC-0, poiché il titolare dei diritti non deve destinare l'opera al pubblico dominio rinunciando a livello mondiale a tutti i diritti d'autore e di protezione affini. Essa è già di pubblico dominio per legge. Il messaggio concernente l'art. 5 LDA precisa: «La disposizione ammette tuttora la protezione del diritto d'autore per tutta una serie di opere nate dall'attività ufficiale o in relazione con essa. + +I documenti di commissioni di studio e gruppi di lavoro interni all'amministrazione, le perizie o le riviste degli uffici federali, per esempio, non rientrano nella norma. Alla loro libera diffusione non corrisponde un interesse preponderante, poiché esse non influenzano la posizione giuridica del cittadino.» + +Si può quindi sostenere che per molti dei documenti rilevanti e per la documentazione pubblicata dalle autorità federali in relazione al software open source non sussiste alcuna protezione del diritto d'autore. Il criterio è se il documento incida o meno sulla posizione giuridica del cittadino e sia quindi escluso dalla protezione del diritto d'autore. In caso contrario, per la documentazione andrebbe utilizzata una licenza adeguata (CC-0footnote:[https://www.creativecommons.ch/], CC-BY, CC-BY-SA o eventualmente LGPL). + +Ciononostante, in particolare in caso di utilizzo internazionale della documentazione, la situazione resterebbe poco chiara per molti utenti. + +Riteniamo pertanto opportuno che, come per il presente documento, sia indicata per sicurezza anche una corrispondente pubblicazione. + +== Ulteriori informazioni sulle questioni giuridiche + +Ulteriori informazioni sul software open source, sulle caratteristiche di licenze specifiche e su aspetti giuridici approfonditi figurano in numerose pubblicazioni, presentate qui di seguito (cfr. anche i riferimenti alla fine del documento). + +* Il testo _«Open Source Software im EMBAG, Analyse des neuen Art. 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben»_ di Rika Koch e Simon Schlauri, negli atti della Conferenza sugli acquisti informatici 2023 a Berna, offre orientamenti supplementari sull'attuazione dell'art. 9 LMeCA. +* Il _Leitfaden Open-Source-Software 2.0_ della BITKOM tedesca tratta in dettaglio le questioni giuridiche relative all'open source _[BITKOM2023]_. Esso si fonda tuttavia sulla situazione giuridica in Germania. +* Wolfgang Straub esamina, nel suo libro _Softwareschutz: Urheberrecht, Patentrecht, Open Source_, i dettagli giuridici del copyleft in relazione al diritto d'autore svizzero e approfondisce la compatibilità delle licenze open source [St2011]. Il capitolo sul software open source (nonché traduzioni tedesche di diverse licenze open source che tengono conto della terminologia giuridica svizzera) sono liberamente disponibili su _www.it-recht.ch._ +* Till Jaeger e Axel Metzger rispondono in modo approfondito a numerose questioni giuridiche relative al software open source nel loro ampio libro _Open Source Software - Rechtliche Rahmenbedingungen der Freien Software [JaAx2016]_. Essi fondano tuttavia la loro analisi sulla situazione giuridica in Germania. +* Kropp Jonathan/Bauer Alexander, Open Source Compliance und Litigation, CB 2019 pagg. 285 segg., 285. +* Reymond Michel José, Questions de responsabilité civile et contractuelle soulevées par la distribution de «logiciels libres» (open source), SZW 2022 pag. 69 segg. + +Diversi portali online forniscono inoltre informazioni dettagliate sulle caratteristiche e sulle questioni relative a singole licenze open source. + +* Sulla piattaforma GitHub https://choosealicense.com è possibile selezionare gli obiettivi desiderati per un progetto open source e viene proposta la licenza open source adeguata. +* Su https://opensource.guide/legal/ GitHub mette a disposizione una guida online che affronta questioni giuridiche specifiche. +* Su https://www.gnu.org/licenses/license-list.it.html si trovano brevi commenti su diverse licenze con indicazioni sulla compatibilità, in particolare con la GPL. +* Su https://opensource.org/faq l'Open Source Initiative tratta numerose domande e risposte sugli aspetti giuridici delle licenze open source. +* Su https://copyleft.org/guide si trova una guida dettagliata che illustra i dettagli del copyleft. +* Su https://tldrlegal.com le principali licenze open source sono riassunte secondo ciò che la rispettiva licenza consente («can»), ciò che vieta («cannot») e ciò che prescrive («must»). +* Su https://opensource.com/tags/licensing sono pubblicati costantemente articoli su questioni attuali in materia di licenze. +* Su https://www.ifross.org/faq-haeufig-gestellte-fragen il privato «Institut für Rechtsfragen der Freien und Open Source Software» di Berlino (ifrOSS) ha pubblicato numerose risposte a domande giuridiche frequenti. + +Oggi il rispetto delle licenze open source è attuato in primo luogo mediante strumenti software (per ulteriori informazioni sulla conformità open source cfr. anche Fröhlich-Bleuler _[Fr2012]_ nonché Kuhn, Williamson e Sandler _[KuWiSa2008]_). Diversi strumenti open source della Linux Foundation sono così documentati e pubblicati sotto il termine «fossology» su https://www.fossology.org. Anche fornitori commerciali quali Black Duckfootnote:[https://www.blackducksoftware.com] o FOSSAfootnote:[https://fossa.com] offrono diverse soluzioni proprietarie con cui è possibile verificare la compatibilità delle licenze open source utilizzate. + +== Allegato + +=== Modifiche rispetto alla versione precedente + +* Aggiunto il riassunto per la direzione. +* Le licenze AGPL e MIT sono ora raccomandate come preferibili. +* Nuovo nel capitolo 8.8: diritto d'autore per il codice generato con l'IA. +* Capitolo 8.9 CLA e CDO fortemente ampliato. +* Diversi miglioramenti redazionali e precisazioni. +* Aggiunti più esempi. + +=== Riferimenti + +Cfr. link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale]. + +=== Abbreviazioni + +Cfr. link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale] ed link:em002-6.pdf[Em002-6 FAQ sull'OSS]. + +=== Esempi di pubblicazioni e relative licenze + +In futuro questo elenco sarà sostituito da una raccolta di metadati mediante publiccode.yml. + +=== D.1 Loom + +URL:: +https://gitlab.com/swiss-armed-forces/cyber-command/cea/loom +Autorità federale:: +Cyber Command +Descrizione:: +Loom è un motore di ricerca documentale potente e di facile utilizzo. Automatizza l'indicizzazione delle fonti di dati configurate, esegue l'OCR, estrae contenuti e metadati, consente il tagging e offre potenti funzioni di ricerca e di utilizzo. +Anno:: +2025 +Licenza:: +MIT +Motivazione:: +- + +=== D.2 trustbroker.swiss + +URL:: +https://github.com/trustbroker-swiss/trustbroker.swiss +Autorità federale:: +CaF, UFIT +Descrizione:: +Trust Broker Swiss fornisce servizi di federazione tra relying party (applicazioni, fornitori di servizi, altri sistemi IAM o policy enforcement point) e fornitori di identità (IdP, detti anche claims provider), ricorrendo ad archivi di attributi affidabili per arricchire gli utenti autenticati. + +Consente a fornitori di identità/claims e a relying party di scambiare informazioni tramite un terzo che nasconde le specificità dell'IdP e fornisce un'identità unificata o quantomeno ulteriormente verificata. +Anno:: +2024 +Licenza:: +AGPL +Motivazione:: +Le modifiche del codice devono sempre restare aperte e ritornare al progetto. ++ +Per il Trust Broker è stato svolto un esame molto dettagliato della questione della licenza. Per progetti molto grandi esso può essere condotto a questo livello di dettaglio. Tutte le licenze compatibili con la software bill of materials sono state elencate in un pool di licenze. + +=== D.3 Geocat.ch + +URL:: +https://github.com/geonetwork/core-geonetwork +Autorità federale:: +Swisstopo +Descrizione:: +GeoNetwork è un'applicazione di catalogo per la gestione di risorse georeferenziate. Offre potenti funzioni di editing e ricerca di metadati nonché un visualizzatore di mappe web interattivo. È attualmente impiegata in numerose iniziative di infrastrutture di dati territoriali in tutto il mondo. +Anno:: +2012 +Licenza:: +GPL 2.0 +Motivazione:: +- + +=== D.4 GWEN / ampycloud / c4dl-multi / dvas /… + +URL:: +https://meteoswiss.github.io/ampycloud/ +Autorità federale:: +MeteoSvizzera +Descrizione:: +Pacchetto Python per determinare la percentuale di copertura del cielo e l'altezza di base degli strati nuvolosi a partire da dati di ceilometro. +Anno:: +2023 +Licenza:: +Diverse licenze, FSS +Motivazione:: +- + +=== D.5 Applicazione EMSG (gestione del patrimonio nelle aree insediative) + +URL:: +https://github.com/astra-emsg/ASTRA.EMSG +Autorità federale:: +MeteoSvizzera +Descrizione:: +EMSG è un'applicazione web GIS in C# sviluppata dall'Amministrazione federale svizzera per gestire la gestione del patrimonio dei sistemi stradali urbani. +Anno:: +2017 +Licenza:: +BSD +Motivazione:: +- + +=== D.6 Applicazione certificato Covid + +URL:: +https://github.com/admin-ch/CovidCertificate-Documents +Autorità federale:: +UFIT +Descrizione:: +Applicazione svizzera per i certificati COVID +Anno:: +2020 +Licenza:: +MIT +Motivazione:: +Il più permissiva possibile, affinché chiunque possa utilizzare il codice. + +=== D.7 Sito web GovCert + +URL:: +https://github.com/govcert-ch/website +Autorità federale:: +NCSC +Descrizione:: +Codice sorgente del sito web del Computer Emergency Response Team (GovCERT) dell'Amministrazione federale svizzera +Anno:: +2023 +Licenza:: +MIT +Motivazione:: +- + +=== D.8 Diverse librerie sugli open data (p. es. linked data) + +URL:: +https://github.com/SwissFederalArchives +Autorità federale:: +AFS +Descrizione:: +Il repository dell'Archivio federale svizzero su GitHub offre accesso ai codici sorgente delle nostre applicazioni. Consente di creare fork propri e di segnalare errori o proporre funzionalità ampliate tramite l'interfaccia «Issues». +Anno:: +2023 +Licenza:: +AGPL, Apache, MIT +Motivazione:: +Open data e software open source vanno nella stessa direzione. La AGPL consente la massima apertura. + +=== D.9 Apache FOP adattato per PDF archiviabili + +URL:: +https://xmlgraphics.apache.org/fop/ +Autorità federale:: +IPI +Descrizione:: +L'IPI desiderava una versione di Apache FOP in grado di generare PDF archiviabili. A tal fine è stata commissionata un'estensione a uno degli sviluppatori principali (Jeremias Märki). Gli adattamenti sono confluiti direttamente nel progetto. +Anno:: +2007 +Licenza:: +Apache +Motivazione:: +Sono state apportate estensioni a un progetto open source esistente. + +=== D.10 Deposito elettronico conforme al diritto con eKomm + +URL:: +https://launchpad.net/ekomm +Autorità federale:: +IPI +Descrizione:: +L'IPI desiderava un software per il deposito elettronico. +Anno:: +2009 +Licenza:: +Apache +Motivazione:: +L'IPI desiderava che il fornitore (Glue) effettuasse la pubblicazione e l'ha autorizzata in modo permissivo (integrazione nelle proprie applicazioni). +endif::[] + +ifeval::["{lang}" == "rm"] +*Exclusiun da responsabladad:* Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source. Ulteriuras infurmaziuns chattais Vus en il {url-repo}/tree/main[README]. + +''''' + +== Resumaziun per la direcziun + +I vegn recumandà da fixar strategicamain en l'administraziun federala tar il cumenzament d'in project ina da las duas suandantas licenzas: + +* *Licenza AGPL*: Effect copyleft giavischà. Code midà duai en mintga cas returnar a la generalitad e po lura vegnir surpiglià danovamain er da l'administraziun federala. I vegn recumandà d'utilisar la versiun la pli nova da la licenza. Uschia sa lascha ademplir il meglier il princip «public money – public code». Dretgs da terzas persunas, en spezial tar svilups vinavant, pon debilitar quai fin a la LGPL. +* *Licenza MIT*: A terzas persunas duai esser pussaivel da sviluppar applicaziuns proprietaras sin la basa dal code da l'administraziun federala. Sch'ina clausula da non-endorsement vegn pretendida expressivamain, è la BSD-3-Clause da preferir. + +Per la tscherna da la licenza po vegnir duvrà il suandant agid da decisiun: + +[mermaid,align="center",alt="Agid da decisiun simplifitgà per la tscherna da la licenza"] +.... +flowchart TD + S(["Entschatta"]) + Q1{"L'«ambient»
preschriva la licenza"} + A["Tscherner la licenza
preschritta"] + Q2{"Biblioteca, implementaziun da referenza
u pretensiuns liberalas"} + B["MIT"] + C["AGPL"] + S --> Q1 + Q1 -->|"Gea"| A + Q1 -->|"Na"| Q2 + Q2 -->|"Gea"| B + Q2 -->|"Na"| C +.... + +Illustraziun 1: Agid da decisiun simplifitgà per la tscherna da la licenza + +En tscherta dimensiun furman questas duas licenzas ils dus extrems en il spectrum da las licenzas OSS. I po tut tenor esser sensa da tscherner ina licenza pli adattada per in project concret. Questa guida duai porscher in agid concret per quai. + +Sche l'analisa da las bibliotecas da software mussa ch'ina autra licenza sto vegnir duvrada, fan ils sviluppaders attenta la direcziun dal project sin quai. L'analisa è exponida en link:em002-2.pdf[Em002-2 Instrucziuns per publitgar software open source]. + +Tar la collavuraziun a projects existents èn fundamentalmain acceptablas tuttas licenzas cumpatiblas cun l'OSI. + +== Introducziun + +L'artitgel 9 da la lescha federala dals 17 da mars 2023footnote:[CS 172.019] davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG) prevesa che las autoritads federalas ston publitgar e licenziar sco software open source il software ch'ellas sviluppan u fan sviluppar. + +Quest document persequitescha las suandantas finamiras: + +* Introducziun en ils temas dal dretg d'autur sin software e da las licenzas OSS. +* Ina preschentaziun da las licenzas OSS ch'èn senza problems per il diever en l'administraziun federala. Licenzas betg numnadas en quest document e software sut talas licenzas na dastgan betg vegnir duvrads senza ina examinaziun supplementara da las disposiziuns contractualas tras il servetsch giuridic cumpetent. +* Sustegn tar la tscherna da la licenza per il svilup u l'acquist d'in project tenor l'art. 9 EMBAG. + +== Dretg d'autur e licenzas: basas + +Il dretg d'autur fundescha tant dretgs da la persunalitad sco er dretgs da facultad (dretgs d'exploataziun). Tar ils dretgs da la persunalitad appartegna per exempel il dretg a la renconuschientscha da l'autorstgadi u il dretg da determinar, sche e cura che l'ovra vegn publitgada. Tar ils dretgs d'exploataziun appartegna per exempel il dretg da produir u da derasar exemplars da l'ovra. + +La lescha federala dals 9 d'october 1992footnote:[CS 231.1] davart il dretg d'autur ed ils dretgs da protecziun parents (LDAu) prevesa ina retscha d'ulteriurs dretgs da la persunalitad e d'exploataziun (vesair art. 8 ss. LDAu). Quests dretgs appartegnan a l'autura u a l'autur directamain cun la creaziun da l'ovra. + +L'art. 2 LDAu fixescha, sut tge cundiziuns ch'ina protecziun dal dretg d'autur vegn concedida. In'ovra protegida en il senn da la lescha exista mo, sche questas cundiziuns èn ademplidas. + +Las cundiziuns èn: + +* L'ovra sto esser vegnida creada; il pur chattar na basta betg. Datas da perscrutaziun per exempel, pia resultats d'experiments, na sa laschan betg classifitgar sco ovras. +* La creaziun sto esser «spiertala», pia derivar d'in uman. +* L'ovra sto esser vegnida realisada en moda perceptibla. La pura idea davos in'ovra n'è betg protegida, mabain mo sia furma externa, p.ex. ina stampa d'in text sin palpiri u l'execuziun d'in toc da musica. +* Individualitad: Finalmain sto l'ovra avair in tschert minimum d'individualitad. In'ovra che mintgin concepiss il medem nun è betg protegida. + +I pon vegnir protegidas las ovras las pli differentas, sco texts litterars u scientifics, ovras musicalas, fotograficas, filmicas ed autras ovras visualas u audiovisualas. + +Tenor l'art. 2 al. 3 LDAu èn era programs da computer ovras, sche las cundiziuns menziunadas èn ademplidas. + +Ils dretgs d'autur appartegnan cun lur creaziun be a l'autura u a l'autur. Mo ella u el po scumandar ad ina autra persuna da far las acziuns correspundentas. L'autura u l'autur po dentant exercitar ses dretgs betg mo sezza u sez: + +* Ella u el po transferir ses dretgs a terzas persunas (p.ex. cun vender els). Il nov possessur dals dretgs po lura far valair quests dretgs il medem sco sche el fiss l'autur. +* Alternativamain po l'autura u l'autur era licenziar ses dretgs a terzas persunas. Simplifitgà è ina licenza in contract cun il qual il possessur dals dretgs permetta ad ina terza persuna d'utilisar l'ovra. L'autura u l'autur resta cun ils dretgs, ma renunzia a lur imposiziun vers il prenditur da licenza. + +Sch'in program da computer vegn creà en il rapport da lavur, survegn il patrun ina licenza exclusiva per ses diever (art. 17 LDAu). Als emploiads restan uschia en il fund mo ils dretgs da la persunalitad sin il software (resp. tut tenor l'opiniun giuridica mo lur zona centrala). Quai correspunda a la situaziun giuridica tenor la lescha davart il persunal federal. + +== Licenzas OSS + +=== Basas + +L'OSS sa caracterisescha en il fund tras las suandantas caracteristicas (tenor ina definiziun da l'Open Source Initiative _[Pe1999]_footnote:[https://opensource.org/]): + +* La derasaziun vinavant illimitada e gratuita dal software è permessa; +* Il software è avant maun en il code da funtauna; +* Midadas al software e lur derasaziun vinavant sut la medema licenza èn fundamentalmain permessas; +* Naginas persunas u gruppas da persunas na dastgan vegnir excludidas da l'utilisaziun dal software, e nagins secturs d'applicaziun na dastgan vegnir exclus (en spezial betg l'utilisaziun commerziala); e +* La derasaziun dal software ensemen cun auter software (sco software closed source) na dastga betg vegnir restrenschida. + +Ils motivs ils pli frequents per il diever da l'OSS èn en emprima lingia las spargnas da custs tras l'utilisaziun dal pool gia considerabel da software liberamain utilisabel. Interpresas che duvran savens OSS pon savens spargnar parts considerablas da lur budget informatic tras il diever da l'OSS. + +Code disponibel libramain sa lascha ultra da quai adattar facilmain als agens basegns. Plinavant evitescha la tscherna da l'OSS in vendor lock-in.footnote:[https://de.wikipedia.org/wiki/Lock-in-Effekt] + +=== Licenzas open source + +Licenzas open source èn en emprima lingia contracts da licenza normals per programs da computer. + +Cuntrari als contracts da licenza normals vegnan ils contracts da licenza OSS dentant a maun senza ulteriur, uschespert che mo ina da las furmas libras d'utilisaziun descrittas en la licenza vegn exercitada (per exempel cun copiar, derasar vinavant u midar software). + +=== Copyleft versus permissiv + +==== En general + +Ina licenza open source tenor l'OSI po cuntegnair ina disposiziun da «copyleft». Midadas a software licenzià correspundentamain ston vegnir purschidas puspè sut las medemas cundiziuns che valevan per il software original. Tgi che fa talas midadas sto, tar la derasaziun dal software open source en furma da code d'object legibel per maschinas, era purscher als recepients il code da funtauna. + +En la formulaziun da la Free Software Foundation protegia l'effect copyleft la libertad dals sviluppaders e garantescha uschia ch'in software ina giada liber resta adina liber. + +Tar licenzas copyleft ha lieu ina sort barat tranter la communitad e las interpresas che utiliseschan. Ils utilisaders, ch'èn obligads en cuntrachamb per ils avantatgs dal pool da software existent da metter lur agens svilups puspè sut la respectiva licenza, contribueschan uschia al svilup vinavant dal pool da software. En il resultat profitan omaduas varts. + +La disposiziun da copyleft ha in tschert «effect da contagiun»: Sche software licenzià copyleft vegn integrà en software ch'era fin qua proprietar, sto il software originalmain proprietar vegnir publitgà sut ina licenza open source cumpatibla. + +Tar il diever da code da funtauna licenzià copyleft sto perquai vegnir fatg adatg da l'integrar mo là, nua che il software resultant po e duai vegnir publitgà sut ina licenza open source. + +Sch'ina licenza open source na cuntegna nagina disposiziun da copyleft (licenza open source permissiva), po la licenza per versiuns reelavuradas dal code vegnir tschernida libramain. En spezial è era pussaivel da metter midadas puspè sut ina licenza da software proprietara e d'integrar il code da funtauna correspundent en software proprietar. + +En il fund sa laschan las licenzas open source repartir en *las suandantas categorias*: + +. licenzas open source cun *copyleft ferm*; +. licenzas open source cun *copyleft flaivel*; e +. licenzas open source *permissivas* resp. *senza copyleft*. + +==== Licenzas open source cun copyleft ferm + +Tar l'utilisaziun d'ina licenza open source cun copyleft ferm ston novas versiuns derivadas dal software original, sch'ellas vegnan dadas vinavant a terzas persunas, vegnir mess sut las cundiziuns da la licenza originala e vegnir messas a disposiziun a questas terzas persunas sco code da funtauna. + +Sco licenzas open source relevantas cun copyleft ferm valan sin il martgà las duas suandantas: + +* GNU General Public Licence (GPL); ina gronda part da l'OSS è oz licenziada sut ella +* GNU Affero General Public Licence (AGPL) + +La differenza principala tranter GPL ed AGPL pertutga il gener d'utilisaziun che chaschuna il copyleft. Tar software sut GPL sto il code da funtauna midà mo vegnir purschì, sche la nova versiun dal software vegn purschida a terzas persunas sco program exequibel (p.ex. sco app mobila). Sche il software vegn mo mess a disposiziun via l'internet (dal agen cloud da agens servers), per exempel en furma da «Software as a Service» (SaaS) u d'ina interfatscha da programmaziun (API), na chaschuna quai nagin copyleft. + +Sche il software stat sut l'AGPL, sto il code da funtauna midà era vegnir furnì, sche la funcziunalitad dal software vegn purschida via ina pagina d'internet u ina interfatscha da programmaziun. L'AGPL è uschia anc pli stretga che la GPL. + +Tar licenzas cun copyleft ferm pertutga il copyleft betg mo il respectiv modul da software (biblioteca), mabain l'entir program da software, en il qual in modul da software licenzià copyleft po esser integrà. L'«effect da contagiun» menziunà grippa uschia. + +==== Licenzas open source cun copyleft flaivel + +Era licenzas cun copyleft flaivel pretendan che midadas a lur code da funtauna vegnian relaschadas als recepients terzs sut la licenza open source originala. + +Cuntrari a las licenzas cun copyleft ferm n'effectueschan ellas dentant betg che autras cumponentas da software delimitablas (autras bibliotecas u il program principal sez) vegnian «infectadas» cun lur licenza. Quai permetta l'integraziun da software open source cun copyleft flaivel en software proprietar u en software cun autras licenzas OSS, senza stuair il relaschar sut la licenza originala. + +Quai èn las licenzas open source cun copyleft flaivel las pli duvradas: + +* GNU Lesser General Public Licence (LGPL) +* Mozilla Public Licence 2.0 (MPL) +* Common Development and Distribution Licence (CDDL) +* Eclipse Public Licence (EPL)footnote:[Ultra da la Eclipse Public Licence (EPL-1.0) datti era la Eclipse Distribution Licence (EDL-1.0). + +Entant che l'EDL correspunda a la BSD-3-Clause, è l'EPL ina licenza cun copyleft flaivel.] +* Microsoft Reciprocal Licence (Ms-RL) +* European Union Public Licence (EUPL)footnote:[L'EUPL sezza ha in copyleft ferm, ma pervia da la clausula d'avertura è in transiziun a licenzas cun copyleft flaivel pussaivel, uschia che la protecziun è limitada.] + +==== Licenzas open source permissivas + +Licenzas senza effect copyleft sa caracteriseschan tras il fatg ch'ellas na fan naginas prescripziuns als prenditurs da licenza concernent la licenziaziun da lur software derivà e che perquai ni lur nov code da funtauna ni midadas al software open source ston vegnir publitgads als recepients terzs. Quai pussibilitescha il svilup da products da software proprietars tras l'integraziun da software sut licenzas open source permissivas. + +Exempels da licenzas permissivas èn: + +* MIT Licence +* Apache Licence 2.0 +* Berkeley Software Distribution (BSD) Licence (BSD 2-Clause e BSD 3-Clause) +* Microsoft Public Licence (Ms-PL) + +=== Cumpatibilitad da licenzas open source + +Programs consistan da regla d'ina multiplitad da cumponentas e moduls da software che pon esser colliads in cun l'auter en modas differentas. En il svilup da software vegnan cumponentas open source existentas savens integradas en applicaziuns e soluziuns internas proprietaras. Uschespert che quellas daventan accessiblas da ordaifer via ina pagina d'internet, APIs, distribuziun da software u en autra moda, sto vegnir fatg adatg sin la cumpatibilitad da las respectivas licenzas open source, perquai che lura po il copyleft grippar. + +Sche ovras derivadas che stattan sut ina tscherta licenza dastgan mo vegnir derasadas sut las medemas cundiziuns da licenza, ha quai per consequenza ch'autras licenzas open source cun autras u cuntradictorias obligaziuns da licenza per ovras derivadas na pon betg vegnir duvradas. + +Tschertas licenzas open source cuntegnan uschenumnadas clausulas d'avertura che permettan l'utilisaziun dal code licenzià sut ellas en projects che stattan sut autras licenzas. Uschia permetta per exempel la LGPL, versiun 2.1, era l'utilisaziun dal code sut la GPL. La GPLv3 cuntegna tranter auter ina clausula da cumpatibilitad per l'AGPL e la Apache License 2.0. L'EUPL è concepida fitg avertamain e cuntegna en l'agiunta ina lunga glista da licenzas cumpatiblas, en spezial talas cun copyleft flaivel sco la LGPL. Quai ha per consequenza che la protecziun copyleft ferma previsa en la licenza vegn indirectamain debilitada. + +La grafica suandanta represchenta las dependenzas da las licenzas open source las pli impurtantas (Goldstein 2018). La represchentaziun sa basa sin la visualisaziun da David A. Wheeler ch'ha analisà las cumpatibilitads da las differentas licenzas e da lur numers da versiun (Wheeler 2007), ed è vegnida sviluppada vinavant ensemen cun indicaziuns da https://www.gnu.org/licenses/license-list.de.html[https://www.gnu.org/licenses/license-list.de.html].footnote:[Ina ulteriura represchentaziun, ampliada, vegn duvrada da GEANT en ses confluence: «Software Licence Selection and Management in GÉANT - GEANT Software Development Support - GÉANT federated confluence», https://wiki.geant.org/pages/viewpage.action?pageId=1032978710. Là sa chattan intginas licenzas supplementaras.] + +La grafica sto vegnir legida uschia: Code tenor ina licenza inditgada pli baud en la chadaina po vegnir surpiglià en software che vegn publitgà sut ina licenza inditgada pli tard en la chadaina. Uschia po per exempel code sut la BSD modifitgada vegnir mess sut ina varianta da licenza LGPL u GPL, ma betg il cuntrari. Public domain munta che l'ovra na suttastat a naginas restricziuns dal dretg d'autur. + +[mermaid,align="center",alt="Cumpatibilitad da licenzas open source"] +.... +flowchart TB + subgraph P["Licenza permissiva"] + PD["Public domain"] + MIT["MIT/X11"] + BSD["BSD modifitgada"] + AP["Apache 2.0"] + end + subgraph W["Copyleft flaivel"] + EUPL["EUPL"] + LGPL21["LGPLv2.1"] + LGPL21P["LGPLv2.1+"] + LGPL3["LGPLv3 / LGPLv3.1"] + MPL["MPL 1.1"] + end + subgraph SC["Copyleft ferm"] + GPL2["GPLv2"] + GPL2P["GPLv2+"] + GPL3["GPLv3 / GPLv3+"] + AGPL["Affero GPLv3"] + end + PD --> MIT + MIT --> BSD + BSD --> AP + BSD --> LGPL21 + BSD --> LGPL21P + BSD --> LGPL3 + BSD --> MPL + AP --> EUPL + AP --> LGPL3 + EUPL --> LGPL21 + EUPL --> LGPL21P + EUPL --> LGPL3 + EUPL --> MPL + LGPL21P --> LGPL21 + LGPL21P --> LGPL3 + LGPL21 --> GPL2 + LGPL21 --> GPL2P + LGPL21P --> GPL2P + LGPL3 --> GPL3 + GPL2P --> GPL2 + GPL2P --> GPL3 + GPL3 -->|"+ protecziun da la rait"| AGPL + classDef pd fill:#f5f5f5,stroke:#000000,color:#000000 + classDef perm fill:#dae8fc,stroke:#000000,color:#000000 + classDef weak fill:#d5e8d4,stroke:#000000,color:#000000 + classDef strong fill:#5ea226,stroke:#000000,color:#ffffff + class PD pd + class MIT,BSD,AP perm + class EUPL,LGPL21,LGPL21P,LGPL3,MPL weak + class GPL2,GPL2P,GPL3,AGPL strong +.... + +Illustraziun 2: Cumpatibilitad da licenzas open source (en adherenza a la grafica da David A. Wheeler, 2007 ed a https://www.gnu.org/licenses/license-list.de.html) + +Impurtant: Perquai che cumpatibilitads da licenzas èn adina relevantas, duessan ils teams da svilup resp. ils purschiders da prestaziuns examinar anticipadamain ils stacks da svilup cun bibliotecas concernent eventuals problems da cumpatibilitad. Quai munta: Avant che laschar passar il diever d'ina biblioteca, duess vegnir examinà – ultra da la segirezza e da l'omogeneitad en il stack da svilup – sche la licenza da la biblioteca è cumpatibla cun las licenzas relevantas preferidas da l'administraziun federala. + +[[licences-for-pure-usage]] +== Licenzas per la pura utilisaziun + +Quest chapitel tracta la situaziun, en la quala software sut ina licenza OSS duai vegnir duvrà, ma quest software na duai betg vegnir midà u en la quala midadas vegnan duvradas mo internamain. + +Las suandantas licenzas èn fundamentalmain senza problems tar l'utilisaziun da software tras autoritads federalas. Las cundiziuns correspundentas, numnadamain in eventual copyleft, ston dentant vegnir observadas. + +Sut tschertas circumstanzas determinescha la licenza d'in modul da software gia existent las licenzas pussaivlas per il product entir (vesair chapitel 4.4). + +Tschertas licenzas èn incumpatiblas en cumbinaziun (vesair illustraziun 2). + +[cols="1,1,3",options="header"] +|=== +|Licenza |Copyleft |Particularitads + +|*MIT* +|Na +|Licenza preferida da l'administraziun federala, sch'ina derasaziun vinavant vegn aspirada e sch'i duai vegnir permess a terzas persunas da sviluppar puspè software proprietar da quai. + +|*Apache 2.0* +|Na +|Apache è ina licenza fitg derasada, enconuschenta tras ils projects sut l'Apache Foundation. L'utilisaziun da las marcas dals dadis da licenza è excludida, ordaifer per descriver l'ovra. + +|*GPL v3* +|Gea +a|Quai è LA licenza copyleft classica. + +Il copyleft vala era, sche parts licenziadas GPL vegnan integradas en in program entir. Scumond dal digital rights management. Reglas da cumpatibilitad spezialas. + +|*LGPLv3* +|Flaivel +a|Licenza copyleft reducida, sviluppada spezialmain per bibliotecas da software. + +Cuntrari a la GPL permetta la LGPL da cumbinar sut tschertas cundiziuns code serrà (pia proprietar) cun code LGPL. + +Exempels èn bibliotecas standard sco glibc. La LGPL permetta da metter sut la GPL il program sco part dal qual la biblioteca vegn derasada. + +|*Affero GPLv3 (AGPL)* +|Gea +a|Era l'utilisaziun SaaS chaschuna copyleft. Dal reminent analog a la GPLv3. + +Questa licenza serra la largia da la GPL che manava a quai che nagina relaschada n'era necessaria tar l'utilisaziun per purschidas SaaS. + +Cun questa licenza po l'administraziun federala garantir che extensiuns dal code vegnian era a bun a la generalitad en cas da SaaS, e sustegna il meglier il princip *«public money – public code»*. + +|*BSD-3* +|Na +a|Licenza generala e liberala. + +Ils nums da las auturas e dals auturs na dastgan betg vegnir duvrads per far reclama per ovras derivadas (clausula da reclama) + +|*European Union Public Licence (EUPL)* +|Flaivel +a|Licenza speziala che vegn duvrada per l'UE. + +Spezialmain adattada sco basa per projects europeics. + +Licenza resguardond il dretg europeic. La relaschada sut tschertas licenzas cumpatiblas è expressivamain permessa. +|=== + +Tabella 1: Licenzas senza problems per las autoritads federalas (tenor _[Sc2024]_) + +Autras licenzas dastgan vegnir duvradas. En quests cas po esser necessari da consultar il servetsch giuridic da l'uffizi respectiv. + +== Licenza per agens projects resp. creation e per contributions + +Quest chapitel pertutga ils suandants cas: + +* Svilup vinavant / contribution +** tar il qual autoritads federalas sviluppan vinavant software existent; u +** sviluppan nov software, sa basond dentant sin bibliotecas da software OSS existentas; e +** mettan il software correspundent a disposiziun a terzas persunas. Tar las terzas persunas appartegnan era organisaziuns da l'administraziun federala decentralisada, uschenavant ch'ellas han ina atgna persunalitad giuridica. Sche ils svilups vinavant vegnan duvrads mo internamain e betg mess a disposiziun a terzas persunas, vala mo <>. +* Agens projects / creation / publicaziun: Quest chapitel pertutga cas, en ils quals las autoritads federalas sviluppan nov software. Quai duess esser rar, perquai che la gronda part dals svilups sa basa sin bibliotecas da software open source existentas. ++ +Per svilups cumplettamain novs duess vegnir tschernì in tip da licenza che pussibilitescha ina basa vasta e persistenta per svilups vinavant. Impurtant è che la licenza pertutgada saja acceptada amplamain en la communitad da sviluppaders relevanta. + +L'examinaziun da la cumpatibilitad ha lieu tenor link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS], chapitel 7.4. La cumpatibilitad da las licenzas mussa l'illustraziun 2. + +Las suandantas dimensiuns duessan vegnir resguardadas: + +* Cas d'applicaziun +* Examinaziun giavischada link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Glista da controlla Evaluaziun preliminara OSS] +* Simplitad da la construcziun d'ina communitad link:em002-4.pdf[Em002-4 Guida da communitads OSS] +* Simplitad da l'applicaziun +* Segirezza giuridica +* Derasaziun + +Licenzas tenor il chapitel <> èn da preferir. + +Las suandantas *licenzas copyleft* duessan vegnir duvradas prioritarmain da las autoritads federalas, en spezial sch'in svilup avert e persistent vegn aspirà e sche l'effect copyleft ch'erediescha duai valair. Uschia vegn garantì che software pajà da la publicitad e tut ses derivats restian averts. Quai adempla il meglier il princip «*public money – public code*» ed è *la recumandaziun preferida per l'administraziun federala.* + +Licenzas recumandadas en successiun decreschenta: + +* *AGPL v3* +* GPL v3 +* LGPL 3.0 +* European Union Public Licence (EUPL) + +Las suandantas licenzas duessan vegnir duvradas da las autoritads federalas, sche *nagin copyleft n'è giavischà* u necessari (en successiun decreschenta): + +* *MIT* +* Apache Licence 2.0 +* BSD v3 + +Tar la collavuraziun a projects existents pon ultra da quai vegnir duvradas senza problems las suandantas licenzas: + +* Mozilla Public Licence +* Microsoft Public Licence + +Sch'ina autra licenza duai vegnir duvrada, vegn recumandà da motivar quai curtamain en la link:em002-2-3-checklist-oss-release-and-publication.pdf[glista da controlla Em002-2.3 Relaschada e publicaziun OSS]. + +*Tenor l'art. 9 al. 4 EMBAG duessan en mintga cas vegnir duvradas licenzas stabilidas internaziunalmain.* + +Ulteriurs utensilis per examinar las cumpatibilitads da licenzas èn: + +* ORT Toolkit (https://oss-review-toolkit.org/) +* Black Duck (www.blackducksoftware.com), +* FOSSA (http://www.fossa.com[www.fossa.com]), +* l'Open Source Licence Comparison Grid (https://www.cmu.edu/cttec/forms/opensourcelicensegridv1.pdf) +* FOSSology (https://www.fossology.org). +* Process OpenCode: https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses#4.-Lizenzierungsleitfragen[https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses] + +== Cas d'applicaziun e licenzas adattadas + +La tabella e la grafica suandantas mussan, co che sin la basa da differents cas d'applicaziun pon vegnir tschernidas licenzas adattadas per software open source. + +[cols="2,2,3",options="header"] +|=== +|*Cas d'applicaziun* |*Licenza/as* |*Motivaziun* + +|Utilisar in project existent e contribuir ad el +|*Licenza tenor la prescripziun dal project* +|Necessari per motivs giuridics. + +|La licenza è predefinida tras l'utilisaziun da parts existentas (licenzas cun copyleft) +|*Utilisar ina licenza cumpatibla cun questas parts.* +a|Necessari per motivs giuridics. + +Indicaziun: Ina retscha da bibliotecas è disponibla sut pliras licenzas. + +Mo ina da las licenzas sto correspunder. In dals intents da la licenziaziun multipla è da garantir che bibliotecas possian vegnir duvradas tant cun sco era senza copyleft. + +|Ecosistem existent cun licenza preferida (p.ex. i sa tracta d'in plug-in per software publitgà sut licenza MIT. Lura fiss l'utilisaziun d'ina licenza MIT il pli sensa, perquai che tut ils auters utilisaders spetgan quai e perquai che il software s'integrescha en l'ecosistem) +|*Utilisar la licenza, sch'ella stat sin la glista, uschiglio utilisar sche pussaivel la medema licenza* +|L'acceptanza en la communitad è centrala. + +|La finamira è ina derasaziun uschè vasta sco pussaivel, p.ex. tar ina implementaziun da referenzafootnote:[Per render per exempel ina lescha pli facil da realisar, po ina implementaziun da referenza vegnir dada en incumbensa da las autoritads federalas. Vesair p.ex. https://ech.ch/de/ech/ech-0238/1.0] (p.ex. tar software che duai era vegnir duvrà en soluziuns commerzialas). +a|*MIT* + +BSD v3 + +Apache Licence 2.0 + +LGPL v3 +|En quest cas na duess vegnir duvrà nagin copyleft. + +|Midadas al code duain returnar a las autoritads federalas +a|*AGPL v.3* + +GNU GPL v.3 + +EUPL +|L'AGPL sforza la relaschada tras terzas persunas era tar l'utilisaziun en il cloud, la GPL e l'EUPL betg. + +|Soluziuns SaaS na duain betg esser exceptadas dal returnar da midadas dal code +|*AGPL v.3* +|L'AGPL sforza la relaschada tras terzas persunas era tar l'utilisaziun en il cloud. + +|Ina collavuraziun simpla cun la communitad è impurtanta. +a|*AGPL v.3* + +GNU GPL v3 + +Apache Licence 2.0 +a|La GPL vegn preferida per mantegnair liber il software. + +Apache cuntegna reglas per la governanza da la communitad, reglas supplementaras per contribuziuns (ins na dastga inditgar nagina autra licenza che Apache; la contribuziun sco tala n'è betg reglada pli detagliadamain, sch'i exista in CLA, va quel avant), ina licenza da patent sco er reglas per la licenziaziun da patents. En spezial era che tgi che fa valair patents cunter in'autra persuna contribuenta perda sia licenza da patent sut la licenza Apache. + +Determinantas èn las reglas che l'Apache Foundation fixescha per contribuziuns. Apache è perquai sensa, sche la governanza dal project duai vegnir construida en emprima lingia tenor Apache. + +|Pitschna cumponenta (biblioteca) utilisabla universalmain u pitschen toc da software, tar il qual la persistenza u la tgira tras ina communitad n'è betg impurtanta +a|*MIT* + +Apache Licence 2.0 + +BSD v3 + +LGPL v3 +a|La LGPL prevesa in copyleft mo per la cumponenta sezza, ma betg per l'entir project, en il qual la cumponenta vegn inserida. + +Las autras licenzas èn permissivas. + +|I sto esser simpel e permissiv; la controlla n'è betg impurtanta +a|*MIT* + +Apache Licence 2.0 + +BSD v3 +|Maximalmain permissiv + +|Igl è impurtant per las autoritads federalas, tge ch'arriva cun il code, ed ellas vulan survegnir uschè bleras meglieraziuns sco pussaivel. +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|I duai vegnir impedì che il software daventia proprietar e vegnia posiziunà sin il martgà sco product da concurrenza +a|*AGPL v.3* + +GNU GPLv3 +|Copyleft + +|I duai vegnir impedì che las autoritads federalas daventian dependentas da singuls furniturs («vendor lock-in») +a|*AGPL v.3* + +GNU GPLv3 +|Il copyleft impedescha ch'in furnitur obtegnia cun il temp ina posiziun exclusiva cun utilisar il software da la Confederaziun en in product proprietar, quai che pudess puspè manar per la Confederaziun ad ina dependenza da quest furnitur. +|=== + +Tabella 2: Licenza da duvrar tut tenor il cas d'applicaziun per la relaschada da nov software tenor l'art. 9 EMBAG *(grass = recumandà, sche nagins motivs na s'opponan)* + +[mermaid,align="center",alt="Planta da decisiun ampliada per la tscherna da la licenza en l'administraziun federala"] +.... +flowchart TD + S(["Entschatta"]) + Q1{"Preschriva la glista da parts
la licenza?"} + R1["Tscherner la licenza
preschritta / preferida"] + Q2{"Dat i licenzas preferidas
en quest ambient?"} + Q3{"En la glista da licenzas
adattadas en l'Em002-3?"} + R2["Tscherner da la glista la proxima licenza
adattada tenor l'Em002-3, suenter
consultaziun dal servetsch giuridic"] + Q4{"Implementaziun da referenza
sco proposta
per terzas persunas?"} + R3["GPL u licenza permissiva:
MIT, BSD, Apache"] + Q5{"Ston meglieraziuns
turnar enavos?"} + Q6{"Era tar l'utilisaziun SaaS?"} + R4["GPL, EUPL"] + R5["AGPL"] + S --> Q1 + Q1 -->|"Gea"| R1 + Q1 -->|"Na"| Q2 + Q2 -->|"Gea"| Q3 + Q2 -->|"Na"| Q4 + Q3 -->|"Gea"| R1 + Q3 -->|"Na"| R2 + Q4 -->|"Gea"| R3 + Q4 -->|"Na"| Q5 + Q5 -->|"Na"| R3 + Q5 -->|"Gea"| Q6 + Q6 -->|"Na"| R4 + Q6 -->|"Gea"| R5 +.... + +Illustraziun 3: Planta da decisiun ampliada per la tscherna da la licenza en l'administraziun federala (sche betg AGPL u MIT) + +La glista da parts en l'illustraziun 3 è la software bill of materials (SBOM) da tuttas bibliotecas da software e da tut ils suttaprograms gia existents ch'èn fluids en la soluziun entira. Mintga biblioteca ha sia atgna licenza. Tut tenor co che quella è cumpatibla cun autras (vesair chapitel 4.4), è la tscherna pussaivla da licenzas per la publicaziun restrenschida. + +In ultim punct po era influenzar la decisiun: *La midada d'ina licenza pli restrictiva ad ina main restrictiva è pli simpla posteriuramain*. En il cas cuntrari è in forkfootnote:[Per la definiziun vesair link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala].] bunamain nunevitabel. + +== Temas giuridics particulars + +=== Aspects internaziunals + +Las dumondas giuridicas essenzialas da l'OSS en la pratica èn surtut da natira contractuala en il sectur da las licenzas. + +Tar dumondas dal dretg da licenzas vala l'emprim il dretg tschernì da las partidas (la Mozilla Public License MPL cuntegna per exempel en la cifra 8 ina tscherna dal dretg a favur dal dretg da la partida accusada). + +Sch'ina tscherna dal dretg manca, quai ch'è il cas tar tuttas autras licenzas preschentadas qua, vala da regla il dretg dal stadi da la partida che dat la licenza. Sche las autoritads federalas licenzieschan pia software da dadis da licenza a l'exteriur, vala il dretg dal pajais respectiv. Sche plirs contribuents èn participads, po quai manar a situaziuns cumplexas. Il cuntrari vala per eventualas dispitas tranter prenditurs da licenza a l'exteriur e las autoritads federalas sco dadi da licenza: lura vala il dretg svizzer. + +La dumonda, tge aspects ch'èn da natira contractuala e tge da natira dal dretg d'autur, na sa lascha betg respunder en general e po esser fitg cumplexa en il cas singul. La transferibladad dal dretg d'autur u da parts da quel u l'extensiun da las concessiuns da dretgs permessas appartegnan per exempel al dretg d'autur. Qua sto vegnir applitgà il dretg dal pajais da protecziun respectiv. Ina tscherna dal dretg divergenta n'è betg pussaivla (per il tut vesair Jaeger/Metzger, 449 ss.). + +=== Exclusiun da responsabladad e da garanzia + +Licenzas open source excludan regularmain mintga garanzia e responsabladad uschè lunsch sco quai è giuridicamain permess. En la pratica cumparan darar dumondas da responsabladad u da garanzia; ils ristgs colliads cun quai èn perquai pitschens. + +I è da supponer che cun ina licenziaziun correcta grippian las clausulas d'exclusiun da responsabladad avant maun en tuttas licenzas tractadas qua, uschia che mo la responsabladad per negligientscha grava ed intenziun, eventualmain per donns a persunas, resta. + +Reglas davart cundiziuns generalas da contract restan resalvadas, per exempel sco en Germania; uschenavant che las autoritads federalas èn dentant subject da responsabladad sco dadi da licenza, vala il dretg svizzer (vesair 8.1 survart) che permetta las exclusiuns da responsabladad e da garanzia menziunadas en il traffic B2B. + +Il cuntrari munta dentant era che tar sbagls dal program è in proceder cunter las auturas ed ils auturs dal code OSS cuntegnì da regla difficil. + +Il proceder usità tar il diever da l'OSS consista perquai regularmain da s'assicurar cunter sbagls cun las mesiras da segirezza informatica usitadas e da garantir la reparaziun dals sbagls via contracts da mantenziun. In regress vers ils contribuents OSS n'exista betg. + +=== Copyleft e licenziaziun tranter posts da l'administraziun federala + +Il copyleft vala tar la transmissiun tranter differents purtaders giuridics (per exempel entaifer in concern u tranter posts da l'administraziun federala decentralisada cun atgna persunalitad giuridica). + +Il copyleft na vala betg tar la transmissiun tranter posts dal medem purtader giuridic (per exempel entaifer l'administraziun federala centrala). + +=== Licenziaziun da patents + +Patents da software èn tenor l'opiniun giuridica europeica mo pussaivels en limitas stretgas. Decisiv è che il software furnescha ina contribuziun tecnica, pia ch'el schligia in problem tecnic concret ordaifer il computer, sin il qual el va. Exempels fissan il cumond dal motor en autos u il cumond d'in robot. Software sco tal che va mo sin in computer, ma n'ha nagin tal effect extern, n'è fundamentalmain betg patentabel en Europa. Uschia na crodan la gronda part dals programs da software betg en il champ d'applicaziun dal dretg da patents. + +En autras parts dal mund, en spezial en ils Stadis Unids, vegnan patents da software concedids in pau pli generusamain. Ma era en ils Stadis Unids na daventa ina idea abstracta u in model da fatschenta betg ina invenziun patentabla mo cun vegnir realisada en software da computer. + +Tar tschertas licenzas na vegnan eventuals patents dal dadi da licenza betg co-licenziads. Quai èn la GPL2, las licenzas BSD e la licenza MIT. + +Per projects che pudessan era vegnir duvrads ordaifer l'Europa u che mussan la furma menziunada d'effect extern, è recumandabel da sclerir ils aspects dal dretg da patents en il cas singul. + +=== Licenziaziun duala + +L'autura u l'autur po licenziar software a medem temp sut differentas licenzas. Quai vegn numnà licenziaziun duala. + +Ina furma interessanta da la licenziaziun duala exista, sche il possessur dals dretgs licenziescha il software sco OSS cun in copyleft ferm (quai ch'impedescha sia integraziun en software proprietar) e porscha al medem temp a prenditurs da licenza interessads ina licenza _cun custs_ che lur permetta d'integrar il software en lur software proprietar. + +Perquai che prenditurs da licenza interessads pon uschia evitar da relaschar lur software proprietar sco OSS, èn els pronts da pajar per la licenza. Vesair era l'agiunta a link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala]. + +Per las autoritads federalas sezzas duess la licenziaziun duala esser nuninteressanta en la gronda part dals cas. Uschè ditg che ils dretgs d'autur sa chattan tar las autoritads federalas (quai ch'è reglà per exempel tenor las cundiziuns generalas da contract da la Confederaziun), pon las autoritads federalas decider sulettas davart ina eventuala licenziaziun duala. + +Sche la mantenziun ed il svilup (vinavant) vegnan externalisads a terzas persunas, po quai esser auter. Sche ils dretgs sa chattan excepziunalmain tar quellas e sche las autoritads federalas s'han mo resalvà il dretg da conceder ina licenza OSS cun copyleft, pudess la terza persuna esser tentada da far ina licenziaziun duala. Sche quai duai vegnir impedì, duess quai vegnir exclus contractualmain. + +=== Midada posteriura da licenzas + +Emprim è da tegnair en scrit che licenzas OSS èn fundamentalmain nunmidablas e nunrevocablas. Prenditurs da licenza ch'han concludì il contract da licenza _avant_ ina midada pon utilisar, midar e dar vinavant a terzas persunas il code vinavant sin la basa da la veglia licenza. + +En la pratica maina ina midada da licenza savens ad in fork d'ina nova versiun dal software sut la veglia licenza, che vegn sviluppà vinavant independentamain dals prenditurs da licenza fin qua. + +L'introducziun d'ina nova licenza per software è mo pussaivla, sche tut ils possessurs dals dretgs d'autur dal software èn perencletgs. Midadas èn capitadas en la pratica, per exempel tar la midada d'ina licenza permissiva ad ina licenza copyleft. + +=== Numnar ils contribuents (collaboraturs e terzas persunas) + +Sch'in program da computer vegn creà en il rapport da lavur, survegn il patrun ina licenza exclusiva per ses diever (art. 17 LDAu). Als emploiads restan uschia en il fund mo ils dretgs da la persunalitad sin il software (resp. tut tenor l'opiniun giuridica mo lur zona centrala). Il medem vala per terzas persunas che sviluppan software per las autoritads federalas, uschenavant che valan las CGCfootnote:[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] correspundentas da la Confederaziun che transfereschan ils dretgs resultants a las autoritads federalas. + +Tuttina sa pona la dumonda, sche contribuents (collaboraturs, terzas persunas) duain avair il dretg u l'obligaziun da sa dar da enconuscher sco auturas ed auturs da contribuziuns en repositoris open source. + +In argument per las autoritads federalas d'utilisar OSS è la purschida da plazzas da lavur attractivas: L'OSS porscha als contribuents la pussaivladad da mussar publicamain lur savida e da sa construir uschia ina reputaziun. Lur abilitads daventan verifitgablas, vegnan confermadas da pers, e tgi ch'ha obtegnì influenza en in project OSS po duvrar quai sco lev tar la tschertga d'ina plazza. + +In ulteriur argument pudessan esser ils dretgs da la persunalitad, dals quals la zona centrala na po vegnir prendida a l'autura u a l'autur original ni tras contract ni tras lescha. Questa zona centrala è dentant pitschna tar programs da computer; da pretender che la sviluppadra u il sviluppader d'in program da computer duess era avair in dretg da vegnir numnà giss probablamain memia lunsch. + +Ultra da quai premetta in barat tranter persunas spezialisadas en la communitad ch'ellas possian vegnir contactadas individualmain dad auters. + +Tut tenor il project po perquai esser sensa da dar als contribuents la pussaivladad da sa dar da enconuscher en la communitad sco contribuents. + +Dal puntg da vista da la protecziun da datas è da evitar in sforz a quai, cun quai che il barat en la communitad na premetta betg la publicaziun dals nums – pseudonims èn pli tgunsch la regla che l'excepziun. Sche contribuents na vulan betg publitgar lur nums, duess lur perquai vegnir dada la pussaivladad da cumparair sut in pseudonim. + +*I vegn recumandà da numnar ils nums dals sviluppaders en ils commits, uschenavant che il project na s'oppona betg.* + +*En mintga cas duessan las autoritads federalas cumparair sco possessuras dals dretgs.* + +=== Dretg d'autur, licenzas per l'IA generativa per crear code + +Qua ans referin nus mo a code ch'è vegnì creà cun agid d'IA generativa. Ulteriuras infurmaziuns davart quest tema sa chattan en link:em002-6.pdf[Em002-6 FAQ davart OSS++*++ en il chapitel 2.2]. Code creà d'in LLM n'è sez betg protegì dal dretg d'autur. Las datas d'instrucziun duvradas dal LLM pon dentant esser protegidas dal dretg d'autur. Sche il code correspunda 1:1, duess era la licenza vegnir surpigliada. Sche il code è vegnì creà a tocs e suenter midà dals sviluppaders, è il ristg pitschen ch'el vala sco software derivà. Da resguardar è che tscherts LLM pretendan ina caracterisaziun correspundenta dal code; eventualas cunvegnas contractualas davart quai ston vegnir observadas. + +=== Contributor Licence Agreements (CLA) e Developer Certificate of Origin (DCO) + +Sche pliras auturas ed auturs lavuran al code d'in project open source, survegnan els dretgs cuminaivels sin il code resultant. + +La licenziaziun dal code a terzas persunas ha lieu via la licenza OSS, cun quai ch'i nascha in agen contract da licenza tranter mintga persuna che utilisescha e mintga autura resp. autur (fastg da licenzas). Questa constellaziun po manar ad ina situaziun giuridica malclera, per exempel en relaziuns internaziunalas (vesair 8.1 survart). Sche interpresas decidan da metter lur software sut ina licenza OSS e d'acceptar contribuziuns da terzas persunas, han ellas a moments il basegn da mantegnair ina tscherta controlla davart il code. + +Uschia po esser interessant da mantegnair averta la pussaivladad da metter il project sut ina nova licenza, u ins vul suttametter code licenzià copyleft ad ina licenziaziun duala e dovra per quai dapli dretgs che quels ch'ins survegniss dals contribuents via ina simpla licenza OSS (vesair 8.5 survart). Contributor Licence Agreements (a moments era Copyright Transfer Agreements) duain schliar tals problems. + +In *Contributor Licence Agreement (CLA)* è ina *cunvegna lianta giuridicamain* che fixescha las *cundiziuns per contribuziuns al project*. + +Contribuents èn obligads da consentir a questa cunvegna, avant che cuntegns pon vegnir contribuids al project. En il fund concedan ils contribuents al project ed a ses utilisaders il dretg da *utilisar, da midar e da derasar vinavant* las contribuziuns fatgas. Ultra da quai vegn confermà che las contribuziuns *èn vegnidas scrittas independentamain u legitimadas da terzas persunas*. + +Il *Developer Certificate of Origin (DCO)* è in *sistem da controlla introducì* il 2004 da la Linux Foundation, ch'è sumegliant en l'intent al Contributor Licence Agreement (CLA) e che represchenta in instrument alternativ adattà. Ils contribuents conferman per mintga contribuziun al project che *(a) els èn autorisads da far la contribuziun, (b) la contribuziun è cuverta d'ina licenza cumpatibla cun il project e (c) els consentan a la derasaziun ed a l'utilisaziun da la contribuziun sco open source*. + +L'instrument principal dals CLA è u la cessiun dals dretgs d'autur dals contribuents a la sviluppadra principala resp. al sviluppader principal u a l'organisaziun purtanta (tar Copyright Transfer Agreements) u la concessiun d'ina licenza uschè vasta sco pussaivel, per ordinari nunrevocabla, dals contribuents a la sviluppadra principala (p.ex. ha Apache definì in CLA). Era contribuziuns a projects serrads suttastattan savens ad in CLA. + +CLA èn contestads en la communitad OSSfootnote:[Per exempel: https://ben.balter.com/2018/01/02/why-you-probably-shouldnt-add-a-cla-to-your-open-source-project/], tranter auter perquai ch'els pon avrir largias en il copyleft. Perquai datti danedadad era CLA che restrenschan la sviluppadra principala tar la concessiun d'ina nova licenza per il code dal project. + +[mermaid,align="center",alt="Transferiment da code da funtauna e da dretgs en differentas constellaziuns"] +.... +flowchart LR + subgraph TP["Terzas persunas"] + TP1["nagins documents agens"] + TP2["CLA
DCO
licenza OSS"] + TP3["CLA
DCO
licenza OSS
contract"] + TP4["nagins documents agens"] + end + subgraph FA["Administraziun federala"] + FA1["CGC da la Confederaziun
contract"] + FA2["nagins documents agens"] + FA3["licenza OSS
contract
(DCO)
(CLA)"] + FA4["licenza OSS
(DCO)
(CLA)"] + end + TP1 -- "creaziun" --> FA1 + TP2 -- "contribuziun da l'administraziun federala" --- FA2 + TP3 <-- "collavuraziun" --> FA3 + TP4 -- "contribuziun da terzas persunas" --> FA4 +.... + +Illustraziun 4: Transferiment da code da funtauna e da dretgs en differentas constellaziuns + +Legenda: + +* Ils quaders mussan *nua ch'ils dretgs èn definids* en mintga constellaziun. +* *Creaziun* e *contribuziun da terzas persunas*: L'administraziun federala ha la pussanza da concepir. +* *Collavuraziun*: Ils documents vegnan concordads tranter las partidas. +* *Contribuziun da l'administraziun federala*: L'administraziun federala n'ha nagina pussanza da concepir, ina examinaziun è necessaria. +* Ils documents giuridics èn ordinads tenor prioritad da survart engiu; documents en parentesas èn pli gugent da evitar. + +Per *svilups agens* (creation) n'existan nagins problems: Tenor l'art. 17 LDAu è l'autoritad federala possessura dals dretgs d'utilisaziun sin software creà da ses agens collaboraturs. Tar *sviluppaders terzs* duessan las autoritads federalas s'assicurar ils dretgs (per exempel cun utilisar las CGC correspundentas da la Confederaziun). Uschia n'è qua nagin CLA u DCO necessari. + +Nua che autoritads federalas èn sviluppaders principals ed acceptan contribuziuns e collavuraziuns, duess vegnir renunzià a l'utilisaziun d'in CLA. Empè da quai pon vegnir duvrads Digital Certificates of Origin (explitgads cun in exempel en link:em002-4.pdf[Em002-4 Guida da communitads OSS], chapitel 3.3). Fundamentalmain duessan contribuziuns a projects d'autoritads federalas sa basar sin la licenza OSS, per betg augmentar vinavant la sava per contribuziuns. + +Sch'i vegn tuttina constatà en il cas singul, suenter ina examinaziun adequata, in basegn per in CLA, duess l'autoritad federala utilisar il CLA dad Apache.footnote:[https://www.apache.org/licenses/contributor-agreements.html] En quest cas duessan questa decisiun ed il CLA vegnir notads en las remartgas finalas tant da la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[glista da controlla Em002-2.1 Evaluaziun preliminara] sco era da la link:em002-4-1-checklist-oss-community.pdf[glista da controlla Em002-4.1 Communitad OSS]. + +Sche autoritads federalas contribueschan a software da terzas persunas che pretenda in CLA, sto il servetsch giuridic examinar en il cas singul, sche l'autoritad federala po acceptar il CLA existent.footnote:[Per in tschert recepient stuess l'administraziun federala examinar la suttascripziun d'in CLA mo ina giada. En autras organisaziuns vegn quai perquai tractà sco affar sin in aut nivel, cun quai che CLA suttascrits vegnan tegnids en l'archiv dals contracts. CLA na dastgan betg sminuir las obligaziuns da l'autoritad federala tenor l'art. 9 EMBAG.] Ils suandants puncts ston vegnir determinads: + +* Ha ina autra autoritad federala gia suttascrit il CLA? +* Tgi examinescha il CLA? +* Tgi il suttascriva? (La persuna che suttascriva sto esser autorisada da suttascriver per la Confederaziun vers terzas persunas) +* Nua vegn el archivà? +* Co vegnan il CLA u il DCO documentads en il project? +* Co vegn garantì che il code relaschà restia publitgà? (Quai resta tenor l'art. 9 EMBAG en la responsabladad da l'autoritad federala, vesair [KBB-MB].) + +Criteris pussaivels per l'examinaziun èn: + +* Cumpatibilitad cun l'art. 9 EMBAG: Resta il code avert? +* Vesa l'autoritad federala ristgs per sasezza? +* Vesa l'autoritad federala in profit per sasezza (p.ex. il code na sto betg vegnir tgirà u sviluppà vinavant suletta) u per auters (entaifer il federalissem da la Svizra u en tut l'Europa sa lascha cuntanscher senza lavur supplementara in effect pli vast)? +* Èn ils dretgs concedids adequats? +* Na vegnan a l'autoritad federala imponidas naginas obligaziuns (nunnecessarias)? +* Correspunda il CLA en il fund al CLA dad Apache? + +=== Problems cun la (L)GPL-3.0 e l'IoT + +_[BITKOM2023]_ renda attent sin in problem tar l'utilisaziun da licenzas (L)GPL-3.0 en connex cun software installà sin apparats: Tals apparats stuessan permetter l'installaziun d'agnas resp. novas versiuns da software. Quai po esser nungiavischà per motivs da segirezza. + +=== Posiziun giuridica da la documentaziun + +Tenor l'art. 5 LDAu n'èn «decisiuns, protocols e rapports d'autoritads e d'administraziuns publicas» betg protegids dal dretg d'autur. + +Quai va pli lunsch che CC-0, perquai che il possessur dals dretgs na sto betg laschar ir l'ovra en il domeni public cun renunziar mundialmain a tut ils dretgs d'autur ed als dretgs da protecziun parents. Ella è gia libra per lescha. Il messadi davart l'art. 5 LDAu tegna en scrit: «La disposiziun permetta anc adina la protecziun dal dretg d'autur per ina entira retscha d'ovras ch'èn naschidas da l'activitad uffiziala u en connex cun quella. + +Documents da cumissiuns da studi e da gruppas da lavur internas da l'administraziun, expertisas u revistas d'uffizis federals per exempel na crodan betg sut la norma. Vi da lur derasaziun libra n'exista nagin interess predominant, perquai ch'ellas n'influenzeschan betg la posiziun giuridica da la burgaisa e dal burgais.» + +Uschia sa lascha argumentar che per blers dals documents relevants e per la documentaziun publitgada d'autoritads federalas en connex cun software open source n'exista nagina protecziun dal dretg d'autur. Il criteri è, sche il document tutga la posiziun giuridica da la burgaisa e dal burgais e sch'el è uschia exceptà da la protecziun dal dretg d'autur. Sche quai n'è betg il cas, duess vegnir duvrada per la documentaziun ina licenza adattada (CC-0footnote:[https://www.creativecommons.ch/], CC-BY, CC-BY-SA u eventualmain LGPL). + +Tuttina fiss la situaziun, en spezial tar l'utilisaziun internaziunala da la documentaziun, malclera per blers utilisaders. + +Nus considerain perquai sco raschunaivel che – sco tar quest document – vegnia era inditgada per segirezza ina relaschada correspundenta. + +== Ulteriuras infurmaziuns davart dumondas giuridicas + +Ulteriuras infurmaziuns davart software open source, davart caracteristicas specificas da licenzas e davart aspects giuridics profunds sa chattan en numerusas publicaziuns che vegnan preschentadas sutvart (vesair era las referenzas a la fin dal document). + +* Il text _«Open Source Software im EMBAG, Analyse des neuen Art. 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben»_ da Rika Koch e Simon Schlauri, en il volum da la Conferenza davart l'acquist informatic 2023 a Berna, porscha ina orientaziun supplementara davart la realisaziun da l'art. 9 EMBAG. +* Il _Leitfaden Open-Source-Software 2.0_ dal BITKOM tudestg tracta detagliadamain dumondas giuridicas enturn l'open source _[BITKOM2023]_. El sa basa dentant sin la situaziun giuridica en Germania. +* Wolfgang Straub examinescha en ses cudesch _Softwareschutz: Urheberrecht, Patentrecht, Open Source_ ils detagls giuridics dal copyleft cun relaziun al dretg d'autur svizzer e va suenter la cumpatibilitad da licenzas open source [St2011]. Il chapitel davart il software open source (sco era translaziuns tudestgas da differentas licenzas open source resguardond la terminologia giuridica svizra) èn disponibels libramain sut _www.it-recht.ch._ +* Till Jaeger ed Axel Metzger respundan en lur cudesch cumplessiv _Open Source Software – Rechtliche Rahmenbedingungen der Freien Software [JaAx2016]_ profundamain a numerusas dumondas giuridicas enturn il software open source. Els sa basan dentant sin la situaziun giuridica en Germania. +* Kropp Jonathan/Bauer Alexander, Open Source Compliance und Litigation, CB 2019 p. 285 ss., 285. +* Reymond Michel José, Questions de responsabilité civile et contractuelle soulevées par la distribution de «logiciels libres» (open source), SZW 2022 p. 69 ss. + +Ultra da quai infurmeschan differents portals online detagliadamain davart las caracteristicas e las dumondas da singulas licenzas open source. + +* Sin la plattafurma GitHub https://choosealicense.com sa laschan tscherner las finamiras giavischadas per in project open source, sin quai che la licenza open source adattada vegn proponida. +* Sut https://opensource.guide/legal/ metta GitHub a disposiziun ina guida online che tracta dumondas giuridicas specificas. +* Sut https://www.gnu.org/licenses/license-list.de.html sa chattan curts commentaris davart differentas licenzas cun indicaziuns davart la cumpatibilitad, en spezial davart la GPL. +* Sut https://opensource.org/faq tracta l'Open Source Initiative numerusas dumondas e respostas davart ils aspects giuridics da licenzas open source. +* Sut https://copyleft.org/guide sa chatta ina guida detagliada che explitgescha ils detagls dal copyleft. +* Sut https://tldrlegal.com vegnan resumadas las licenzas open source las pli impurtantas tenor quai che la respectiva licenza permetta («can»), quai ch'ella scumonda («cannot») e quai ch'ella prescriva («must»). +* Sut https://opensource.com/tags/licensing vegnan publitgads cuntinuadamain artitgels davart dumondas actualas da licenzas. +* Sut https://www.ifross.org/faq-haeufig-gestellte-fragen ha l'«Institut für Rechtsfragen der Freien und Open Source Software» privat a Berlin (ifrOSS) publitgà numerusas respostas a dumondas giuridicas frequentas. + +L'observaziun da licenzas open source vegn oz realisada en emprima lingia cun utensilis da software (per ulteriuras infurmaziuns davart la conformitad open source vesair era Fröhlich-Bleuler _[Fr2012]_ sco er Kuhn, Williamson e Sandler _[KuWiSa2008]_). Uschia èn per exempel differents utensilis open source da la Linux Foundation documentads e publitgads sut il term «fossology» sut https://www.fossology.org. Era purschiders commerzials sco Black Duckfootnote:[https://www.blackducksoftware.com] u FOSSAfootnote:[https://fossa.com] porschan differentas soluziuns proprietaras cun las qualas la cumpatibilitad da las licenzas open source utilisadas po vegnir examinada. + +== Agiunta + +=== Midadas envers la versiun precedenta + +* Resumaziun per la direcziun agiuntada. +* Las licenzas AGPL e MIT vegnan nov recumandadas sco preferiblas. +* Nov en il chapitel 8.8: Dretg d'autur per code generà cun IA. +* Chapitel 8.9 CLA e CDO amplià fitg. +* Differentas meglieraziuns redacziunalas e precisaziuns. +* Dapli exempels inditgads. + +=== Referenzas + +Vesair link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala]. + +=== Abreviaziuns + +Vesair link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala] ed link:em002-6.pdf[Em002-6 FAQ davart OSS]. + +=== Exempels da relaschadas e da lur licenza + +En l'avegnir vegn questa glista remplazzada tras ina collecziun da metadatas via publiccode.yml. + +=== D.1 Loom + +URL:: +https://gitlab.com/swiss-armed-forces/cyber-command/cea/loom +Autoritad federala:: +Cyber Command +Descripziun:: +Loom è ina maschina da tschertgar documents efficienta e simpla da manar. Ella automatisescha l'indexaziun da funtaunas da datas configuradas, fa OCR, extrahescha cuntegns e metadatas, pussibilitescha il tagging e porscha pussaivladads da tschertgar e da manar efficientas. +Onn:: +2025 +Licenza:: +MIT +Motivaziun:: +- + +=== D.2 trustbroker.swiss + +URL:: +https://github.com/trustbroker-swiss/trustbroker.swiss +Autoritad federala:: +ChF, UFIT +Descripziun:: +Trust Broker Swiss metta a disposiziun servetschs da federaziun tranter relying parties (applicaziuns, purschiders da servetschs, auters sistems IAM u policy enforcement points) e purschiders d'identitad (IdP, numnads era claims providers) ed utilisescha memorisaders d'attributs fidads per arricchir utilisaders autentifitgads. + +El pussibilitescha a purschiders d'identitad/claims ed a relying parties da barattar infurmaziuns via ina terza partida che zuppenta las specificitads dal IdP e metta a disposiziun ina identitad unifitgada u almain verifitgada supplementarmain. +Onn:: +2024 +Licenza:: +AGPL +Motivaziun:: +Midadas dal code duain adina restar avertas e returnar. ++ +Per il Trust Broker è vegnida fatga ina examinaziun fitg detagliada da la dumonda da la licenza. Tar projects fitg gronds po ella vegnir fatga en questa profunditad da detagl. Tuttas licenzas cumpatiblas cun la software bill of materials èn vegnidas inditgadas en in pool da licenzas. + +=== D.3 Geocat.ch + +URL:: +https://github.com/geonetwork/core-geonetwork +Autoritad federala:: +Swisstopo +Descripziun:: +GeoNetwork è ina applicaziun da catalog per administrar resursas cun referenza spaziala. Ella porscha funcziuns efficientas per elavurar e tschertgar metadatas sco er in visualisatur da chartas web interactiv. Ella vegn actualmain duvrada en numerusas iniziativas per infrastructuras da geodatas en tut il mund. +Onn:: +2012 +Licenza:: +GPL 2.0 +Motivaziun:: +- + +=== D.4 GWEN / ampycloud / c4dl-multi / dvas /… + +URL:: +https://meteoswiss.github.io/ampycloud/ +Autoritad federala:: +MeteoSvizra +Descripziun:: +Pachet Python per determinar la proporziun da cuvrida dal tschiel e l'autezza da basa da stresas da nivels sin la basa da datas da ceilometer. +Onn:: +2023 +Licenza:: +Differentas licenzas, FSS +Motivaziun:: +- + +=== D.5 Applicaziun EMSG (management da mantegniment en zonas d'abitadi) + +URL:: +https://github.com/astra-emsg/ASTRA.EMSG +Autoritad federala:: +MeteoSvizra +Descripziun:: +EMSG è ina applicaziun web GIS en C# sviluppada da l'administraziun federala svizra per administrar il management da mantegniment da sistems da vias urbans. +Onn:: +2017 +Licenza:: +BSD +Motivaziun:: +- + +=== D.6 Applicaziun certificat Covid + +URL:: +https://github.com/admin-ch/CovidCertificate-Documents +Autoritad federala:: +UFIT +Descripziun:: +Applicaziun svizra per certificats COVID +Onn:: +2020 +Licenza:: +MIT +Motivaziun:: +Uschè permissiv sco pussaivel, per che mintgin possia utilisar il code. + +=== D.7 Pagina d'internet GovCert + +URL:: +https://github.com/govcert-ch/website +Autoritad federala:: +NCSC +Descripziun:: +Code da funtauna da la pagina d'internet per il Computer Emergency Response Team (GovCERT) da l'administraziun federala svizra +Onn:: +2023 +Licenza:: +MIT +Motivaziun:: +- + +=== D.8 Differentas bibliotecas davart open data (p.ex. linked data) + +URL:: +https://github.com/SwissFederalArchives +Autoritad federala:: +AFS +Descripziun:: +Il repositori da l'Archiv federal svizzer sin GitHub porscha access als codes da funtauna da nossas applicaziuns. El As permetta da crear agens forks e d'annunziar sbagls u da proponer funcziunalitads ampliadas via l'interfatscha «Issues». +Onn:: +2023 +Licenza:: +AGPL, Apache, MIT +Motivaziun:: +Opendata e software open source van en la medema direcziun. L'AGPL permetta ina avertadad maximala. + +=== D.9 Apache FOP adattà per PDF archivabels + +URL:: +https://xmlgraphics.apache.org/fop/ +Autoritad federala:: +IPI +Descripziun:: +L'IPI vuleva ina versiun dad Apache FOP che po generar PDF archivabels. Per quai è vegnida dada en incumbensa ad in dals sviluppaders centrals (Jeremias Märki) ina extensiun. Ils adattaments èn fluids directamain en il project. +Onn:: +2007 +Licenza:: +Apache +Motivaziun:: +Extensiuns èn vegnidas fatgas ad in project open source existent. + +=== D.10 Endataziun electronica conforma al dretg cun eKomm + +URL:: +https://launchpad.net/ekomm +Autoritad federala:: +IPI +Descripziun:: +L'IPI vuleva software per l'endataziun electronica. +Onn:: +2009 +Licenza:: +Apache +Motivaziun:: +L'IPI vuleva che il purschider (Glue) fetschia la relaschada ed ha permess quella sco permissiva (integraziun en agnas applicaziuns). +endif::[] diff --git a/docs/em002-4-1-checklist-oss-community.adoc b/docs/em002-4-1-checklist-oss-community.adoc new file mode 100644 index 0000000..7737c79 --- /dev/null +++ b/docs/em002-4-1-checklist-oss-community.adoc @@ -0,0 +1,751 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-4.1 OSS Community Checklist +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-4.1 Checkliste OSS-Community +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-4.1 Liste de contrôle Communauté OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-4.1 Lista di controllo Community OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-4.1 Glista da controlla Communitad OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +This checklist goes together with _Em002-2 Instructions for Publishing Open Source Software_ and _Em002-4 OSS Community Guidelines_. + +It must be filled in at the start of a project or at the start of the clarifications for release and subsequently completed. + +For OSS support models, please refer to Section 8 of _Em002-1 Practical Guidelines for Open Source Software in the Federal Administration_. + +== Subject matter + +=== Name and brief description of the software + +Enter the name of the software. + +field::[rows=1] + +=== Contact person and authorisation + +Name the contact person of the specialist department and the persons responsible who have authorised publication of the software. + +field::[rows=3] + +== Checklist + +Type of community + +The community may already exist, which greatly simplifies the task. + +[%interactive] +* [ ] Exists (third party may have the lead) +* [ ] The Confederation has the lead +* [ ] Equal partners (Confederation and partners/suppliers) +* [ ] Other + +Library or entire software? + +There is usually no community concept for libraries. An add-on can only be used together with a commercial product. + +[%interactive] +* [ ] Entire software +* [ ] Library +* [ ] Add-on +* [ ] Other + +What type of community is planned? + +The choice of community type should be justified in two to three sentences. + +[%interactive] +* [ ] None, only publication (as-is) (minimum release) + +Note: email must be available, publicode.yaml must be filled in +* [ ] Releases/issue tracker (minimum support, allow third-party support if necessary) +* [ ] Community + +Are there potential or actual co-users of the software? + +Are there potential customers for the software? Possible and known users can be listed in the text box (see _Em002-2 Instructions for Publishing Open Source Software,_ Section 3.1.1). + +[%interactive] +* [ ] None conceivable +* [ ] Potential users (are conceivable) +* [ ] Known users (have already contacted us) + +[%interactive] +* [ ] Stakeholders (already defined/known members of the community) + +List of relevant jobs/companies. + +This gives an idea of how relevant the software is for third parties. + +Who takes charge of product management? + +Product management is primarily responsible for further development of the product. Especially if this role is assumed by third parties, the companies/organisations should be named if possible. + +[%interactive] +* [ ] Federal office +* [ ] Service provider +* [ ] Supplier(s) / third parties +* [ ] Joint organisation +* [ ] Open + +Integration of suppliers + +How are the suppliers involved? + +[%interactive] +* [ ] Contractor +* [ ] Partner +* [ ] Responsible body +* [ ] Other + +Type of organisation + +What organisational form does the community take? This should be explained in detail, especially if 'Other' is selected. On account of the effort this entails, a new association should only be set up if there is a very good reason for doing so. + +[%interactive] +* [ ] Public sector only +* [ ] Simple partnership +* [ ] New or existing association +* [ ] Other (e.g. a foundation, existing or not) + +Cost distribution + +This should be set out in the community concept. Section 5.5 of _Em002-4 OSS Community Guidelines_ provides information on this. + +What means and resources are required? The cost distribution considerations should be briefly stated. + +[%interactive] +* [ ] The Confederation pays +* [ ] Each party covers its own costs +* [ ] Originator pays principle +* [ ] The Confederation does not assume any costs from the community +* [ ] Cost sharing (e.g. by way of an association) +* [ ] Release, partially assumed by third parties (e.g. because software was created before 1 January 2024 and they absolutely want to use the software) + +[%interactive] +* [ ] If additional services are offered in accordance with Art. 9 paras 5 and 6 EMOTA, is this set out in the community concept? + +The community concept contains the relevant information. + +[%interactive] +* [ ] Has the community concept been created? + +The community concept has been created or an existing one is being adopted? + +(please insert link) + +[%interactive] +* [ ] Are the necessary contracts in place? +* [ ] Contributor Licence Agreement (CLA)footnote:[See also _Em002-3 OSS Licensing Guidelines_. Alternatively, Developer Certificates of Origin (DCO) can also be used.] created or adopted +* [ ] Association founded, if necessary. + +== Concluding remarks + +Comments and references to other relevant documents + +field::[rows=4] + +*Filing of form* + +Please file this form with the project documentation and submit it to the appropriate office in your organisational unit. + +*Licence of the checklist template: CC0 1.0 Universal* + +This document is published under the CC0 licence. It may be freely used, modified and distributed, including for commercial purposes and in any format. +endif::[] + +ifeval::["{lang}" == "de"] +Diese Checkliste gehört zu _Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software_ und _Em002-4 Leitfaden OSS-Community_. + +Sie ist zu Beginn eines Projekts oder zu Beginn der Abklärungen für die Freigabe auszufüllen und anschliessend zu vervollständigen. + +Zu den OSS-Supportmodellen siehe Kapitel 8 von _Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung_. + +== Gegenstand + +=== Name und Kurzbeschreibung der Software + +Tragen Sie den Namen der Software ein. + +field::[rows=1] + +=== Ansprechperson und Bewilligung + +Nennen Sie die Ansprechperson der Fachabteilung sowie die verantwortlichen Personen, welche die Veröffentlichung der Software bewilligt haben. + +field::[rows=3] + +== Checkliste + +Art der Community + +Die Community kann bereits bestehen, was die Aufgabe stark vereinfacht. + +[%interactive] +* [ ] Besteht (Dritte können die Führung haben) +* [ ] Der Bund hat die Führung +* [ ] Gleichberechtigte Partner (Bund und Partner/Lieferanten) +* [ ] Andere + +Bibliothek oder gesamte Software? + +Für Bibliotheken besteht in der Regel kein Community-Konzept. Ein Add-on kann nur zusammen mit einem kommerziellen Produkt genutzt werden. + +[%interactive] +* [ ] Gesamte Software +* [ ] Bibliothek +* [ ] Add-on +* [ ] Andere + +Welche Art von Community ist geplant? + +Die Wahl der Community-Art sollte in zwei bis drei Sätzen begründet werden. + +[%interactive] +* [ ] Keine, nur Veröffentlichung (as-is) (minimale Freigabe) + +Hinweis: E-Mail muss verfügbar sein, publicode.yaml muss ausgefüllt sein +* [ ] Releases/Issue-Tracker (minimaler Support, nötigenfalls Support durch Dritte zulassen) +* [ ] Community + +Gibt es potenzielle oder tatsächliche Mitnutzende der Software? + +Gibt es potenzielle Abnehmer für die Software? Mögliche und bekannte Nutzende können im Textfeld aufgeführt werden (siehe _Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software,_ Kapitel 3.1.1). + +[%interactive] +* [ ] Keine denkbar +* [ ] Potenzielle Nutzende (sind denkbar) +* [ ] Bekannte Nutzende (haben sich bereits gemeldet) + +[%interactive] +* [ ] Anspruchsgruppen (bereits definierte/bekannte Mitglieder der Community) + +Liste der relevanten Stellen/Unternehmen. + +Dies gibt einen Hinweis darauf, wie relevant die Software für Dritte ist. + +Wer übernimmt das Produktmanagement? + +Das Produktmanagement ist in erster Linie für die Weiterentwicklung des Produkts verantwortlich. Insbesondere wenn diese Rolle von Dritten übernommen wird, sollten die Unternehmen/Organisationen wenn möglich genannt werden. + +[%interactive] +* [ ] Bundesamt +* [ ] Leistungserbringer +* [ ] Lieferant(en) / Dritte +* [ ] Gemeinsame Organisation +* [ ] Offen + +Einbindung der Lieferanten + +Wie sind die Lieferanten eingebunden? + +[%interactive] +* [ ] Auftragnehmer +* [ ] Partner +* [ ] Trägerschaft +* [ ] Andere + +Art der Organisation + +Welche Organisationsform hat die Community? Dies sollte insbesondere bei der Wahl von «Andere» ausführlich erläutert werden. Wegen des damit verbundenen Aufwands sollte ein neuer Verein nur bei sehr guter Begründung gegründet werden. + +[%interactive] +* [ ] Nur öffentliche Hand +* [ ] Einfache Gesellschaft +* [ ] Neuer oder bestehender Verein +* [ ] Andere (z. B. eine bestehende oder neue Stiftung) + +Kostenverteilung + +Diese sollte im Community-Konzept festgehalten werden. Kapitel 5.5 von _Em002-4 Leitfaden OSS-Community_ gibt darüber Auskunft. + +Welche Mittel und Ressourcen sind erforderlich? Die Überlegungen zur Kostenverteilung sollten kurz dargelegt werden. + +[%interactive] +* [ ] Der Bund zahlt +* [ ] Jede Partei trägt ihre eigenen Kosten +* [ ] Verursacherprinzip +* [ ] Der Bund übernimmt keine Kosten der Community +* [ ] Kostenteilung (z. B. über einen Verein) +* [ ] Freigabe, teilweise von Dritten übernommen (z. B. weil die Software vor dem 1. Januar 2024 entstanden ist und sie die Software unbedingt nutzen möchten) + +[%interactive] +* [ ] Werden zusätzliche Leistungen nach Art. 9 Abs. 5 und 6 EMBAG angeboten, ist dies im Community-Konzept festgehalten? + +Das Community-Konzept enthält die entsprechenden Angaben. + +[%interactive] +* [ ] Wurde das Community-Konzept erstellt? + +Das Community-Konzept wurde erstellt oder ein bestehendes wird übernommen? + +(bitte Link einfügen) + +[%interactive] +* [ ] Liegen die erforderlichen Verträge vor? +* [ ] Contributor Licence Agreement (CLA)footnote:[Siehe auch _Em002-3 Leitfaden OSS-Lizenzierung_. Alternativ können auch Developer Certificates of Origin (DCO) verwendet werden.] erstellt oder übernommen +* [ ] Verein gegründet, sofern erforderlich. + +== Schlussbemerkungen + +Bemerkungen und Verweise auf weitere relevante Dokumente + +field::[rows=4] + +*Ablage des Formulars* + +Legen Sie dieses Formular bei der Projektdokumentation ab und reichen Sie es der zuständigen Stelle in Ihrer Organisationseinheit ein. + +*Lizenz der Checklisten-Vorlage: CC0 1.0 Universal* + +Dieses Dokument wird unter der CC0-Lizenz veröffentlicht. Es darf frei genutzt, verändert und verbreitet werden, auch zu kommerziellen Zwecken und in jedem Format. +endif::[] + +ifeval::["{lang}" == "fr"] +Cette liste de contrôle accompagne les documents _Em002-2 Instructions pour la publication de logiciels open source_ et _Em002-4 Guide des communautés OSS_. + +Elle doit être remplie au début d'un projet ou au début des clarifications en vue de la publication, puis complétée par la suite. + +Concernant les modèles de support OSS, voir le chapitre 8 du _Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale_. + +== Objet + +=== Nom et brève description du logiciel + +Indiquez le nom du logiciel. + +field::[rows=1] + +=== Personne de contact et autorisation + +Indiquez la personne de contact du service spécialisé ainsi que les personnes responsables qui ont autorisé la publication du logiciel. + +field::[rows=3] + +== Liste de contrôle + +Type de communauté + +La communauté peut déjà exister, ce qui simplifie considérablement la tâche. + +[%interactive] +* [ ] Existe (des tiers peuvent en assurer la direction) +* [ ] La Confédération en assure la direction +* [ ] Partenaires sur un pied d'égalité (Confédération et partenaires/fournisseurs) +* [ ] Autre + +Bibliothèque ou logiciel complet ? + +Il n'existe en règle générale pas de concept de communauté pour les bibliothèques. Un add-on ne peut être utilisé qu'avec un produit commercial. + +[%interactive] +* [ ] Logiciel complet +* [ ] Bibliothèque +* [ ] Add-on +* [ ] Autre + +Quel type de communauté est prévu ? + +Le choix du type de communauté devrait être justifié en deux ou trois phrases. + +[%interactive] +* [ ] Aucune, publication uniquement (as-is) (publication minimale) + +Remarque : une adresse électronique doit être disponible, le fichier publicode.yaml doit être rempli +* [ ] Releases / suivi des problèmes (support minimal, autoriser au besoin le support par des tiers) +* [ ] Communauté + +Existe-t-il des coutilisateurs potentiels ou effectifs du logiciel ? + +Existe-t-il des clients potentiels pour le logiciel ? Les utilisateurs possibles et connus peuvent être indiqués dans le champ de texte (voir _Em002-2 Instructions pour la publication de logiciels open source,_ chapitre 3.1.1). + +[%interactive] +* [ ] Aucun envisageable +* [ ] Utilisateurs potentiels (sont envisageables) +* [ ] Utilisateurs connus (se sont déjà manifestés) + +[%interactive] +* [ ] Parties prenantes (membres de la communauté déjà définis ou connus) + +Liste des services / entreprises concernés. + +Cela donne une indication de la pertinence du logiciel pour des tiers. + +Qui assume la gestion du produit ? + +La gestion du produit est en premier lieu responsable du développement ultérieur de celui-ci. En particulier lorsque ce rôle est assumé par des tiers, les entreprises ou organisations devraient si possible être nommées. + +[%interactive] +* [ ] Office fédéral +* [ ] Prestataire +* [ ] Fournisseur(s) / tiers +* [ ] Organisation commune +* [ ] Ouvert + +Intégration des fournisseurs + +Comment les fournisseurs sont-ils intégrés ? + +[%interactive] +* [ ] Mandataire +* [ ] Partenaire +* [ ] Organe responsable +* [ ] Autre + +Type d'organisation + +Quelle forme d'organisation la communauté revêt-elle ? Cela devrait être expliqué en détail, en particulier si « Autre » est choisi. Compte tenu de la charge que cela représente, une nouvelle association ne devrait être créée que pour de très bonnes raisons. + +[%interactive] +* [ ] Secteur public uniquement +* [ ] Société simple +* [ ] Association nouvelle ou existante +* [ ] Autre (p. ex. une fondation, existante ou non) + +Répartition des coûts + +Elle devrait être fixée dans le concept de communauté. Le chapitre 5.5 du _Em002-4 Guide des communautés OSS_ fournit des informations à ce sujet. + +Quels moyens et quelles ressources sont nécessaires ? Les réflexions relatives à la répartition des coûts devraient être brièvement exposées. + +[%interactive] +* [ ] La Confédération paie +* [ ] Chaque partie supporte ses propres coûts +* [ ] Principe de causalité +* [ ] La Confédération ne prend en charge aucun coût de la communauté +* [ ] Partage des coûts (p. ex. par le biais d'une association) +* [ ] Publication, partiellement prise en charge par des tiers (p. ex. parce que le logiciel a été créé avant le 1er janvier 2024 et qu'ils souhaitent absolument l'utiliser) + +[%interactive] +* [ ] Si des prestations supplémentaires sont proposées conformément à l'art. 9, al. 5 et 6, LMETA, cela est-il fixé dans le concept de communauté ? + +Le concept de communauté contient les indications correspondantes. + +[%interactive] +* [ ] Le concept de communauté a-t-il été établi ? + +Le concept de communauté a été établi ou un concept existant est repris ? + +(veuillez insérer le lien) + +[%interactive] +* [ ] Les contrats nécessaires sont-ils disponibles ? +* [ ] Contributor Licence Agreement (CLA)footnote:[Voir également le _Em002-3 Guide de licences OSS_. À défaut, des Developer Certificates of Origin (DCO) peuvent aussi être utilisés.] établi ou repris +* [ ] Association fondée, si nécessaire. + +== Remarques finales + +Remarques et renvois à d'autres documents pertinents + +field::[rows=4] + +*Classement du formulaire* + +Veuillez classer ce formulaire avec la documentation de projet et le remettre au service compétent de votre unité d'organisation. + +*Licence du modèle de liste de contrôle : CC0 1.0 Universal* + +Ce document est publié sous licence CC0. Il peut être librement utilisé, modifié et diffusé, y compris à des fins commerciales et dans tout format. +endif::[] + +ifeval::["{lang}" == "it"] +La presente lista di controllo accompagna i documenti _Em002-2 Istruzioni per la pubblicazione di software open source_ ed _Em002-4 Guida alle community OSS_. + +Va compilata all'inizio di un progetto o all'inizio degli accertamenti in vista della pubblicazione e completata in seguito. + +Per i modelli di supporto OSS si veda il capitolo 8 della _Em002-1 Guida pratica per il software open source nell'Amministrazione federale_. + +== Oggetto + +=== Nome e breve descrizione del software + +Indicate il nome del software. + +field::[rows=1] + +=== Persona di contatto e autorizzazione + +Indicate la persona di contatto del servizio specializzato nonché le persone responsabili che hanno autorizzato la pubblicazione del software. + +field::[rows=3] + +== Lista di controllo + +Tipo di community + +La community può già esistere, il che semplifica notevolmente il compito. + +[%interactive] +* [ ] Esiste (terzi possono avere la direzione) +* [ ] La Confederazione ha la direzione +* [ ] Partner con pari diritti (Confederazione e partner/fornitori) +* [ ] Altro + +Libreria o software completo? + +Per le librerie di regola non esiste un concetto di community. Un add-on può essere utilizzato soltanto insieme a un prodotto commerciale. + +[%interactive] +* [ ] Software completo +* [ ] Libreria +* [ ] Add-on +* [ ] Altro + +Quale tipo di community è previsto? + +La scelta del tipo di community andrebbe motivata in due o tre frasi. + +[%interactive] +* [ ] Nessuna, solo pubblicazione (as-is) (pubblicazione minima) + +Nota: deve essere disponibile un indirizzo e-mail, il file publicode.yaml deve essere compilato +* [ ] Release / issue tracker (supporto minimo, se necessario ammettere il supporto da parte di terzi) +* [ ] Community + +Vi sono coutenti potenziali o effettivi del software? + +Vi sono potenziali acquirenti del software? Gli utenti possibili e noti possono essere indicati nel campo di testo (cfr. _Em002-2 Istruzioni per la pubblicazione di software open source,_ capitolo 3.1.1). + +[%interactive] +* [ ] Nessuno ipotizzabile +* [ ] Utenti potenziali (sono ipotizzabili) +* [ ] Utenti noti (si sono già annunciati) + +[%interactive] +* [ ] Parti interessate (membri della community già definiti o noti) + +Elenco dei servizi / delle imprese rilevanti. + +Ciò fornisce un'indicazione sulla rilevanza del software per i terzi. + +Chi assume la gestione del prodotto? + +La gestione del prodotto è responsabile in primo luogo dell'ulteriore sviluppo dello stesso. In particolare se tale ruolo è assunto da terzi, le imprese o organizzazioni andrebbero possibilmente indicate. + +[%interactive] +* [ ] Ufficio federale +* [ ] Fornitore di prestazioni +* [ ] Fornitore/i / terzi +* [ ] Organizzazione comune +* [ ] Aperto + +Coinvolgimento dei fornitori + +In che modo i fornitori sono coinvolti? + +[%interactive] +* [ ] Mandatario +* [ ] Partner +* [ ] Ente responsabile +* [ ] Altro + +Tipo di organizzazione + +Quale forma organizzativa assume la community? Ciò andrebbe illustrato in dettaglio, in particolare se si sceglie «Altro». Dato l'onere che comporta, una nuova associazione dovrebbe essere costituita soltanto in presenza di ottime ragioni. + +[%interactive] +* [ ] Solo ente pubblico +* [ ] Società semplice +* [ ] Associazione nuova o esistente +* [ ] Altro (p. es. una fondazione, esistente o nuova) + +Ripartizione dei costi + +Andrebbe stabilita nel concetto di community. Il capitolo 5.5 della _Em002-4 Guida alle community OSS_ fornisce informazioni al riguardo. + +Quali mezzi e risorse sono necessari? Le considerazioni sulla ripartizione dei costi andrebbero esposte brevemente. + +[%interactive] +* [ ] Paga la Confederazione +* [ ] Ogni parte sostiene i propri costi +* [ ] Principio di causalità +* [ ] La Confederazione non assume alcun costo della community +* [ ] Ripartizione dei costi (p. es. tramite un'associazione) +* [ ] Pubblicazione, in parte assunta da terzi (p. es. perché il software è stato creato prima del 1° gennaio 2024 e intendono assolutamente utilizzarlo) + +[%interactive] +* [ ] Se sono offerte prestazioni supplementari secondo l'art. 9 cpv. 5 e 6 LMeCA, ciò è stabilito nel concetto di community? + +Il concetto di community contiene le indicazioni corrispondenti. + +[%interactive] +* [ ] Il concetto di community è stato allestito? + +Il concetto di community è stato allestito oppure ne viene ripreso uno esistente? + +(inserire il collegamento) + +[%interactive] +* [ ] I contratti necessari sono disponibili? +* [ ] Contributor Licence Agreement (CLA)footnote:[Cfr. anche la _Em002-3 Guida alle licenze OSS_. In alternativa possono essere utilizzati anche i Developer Certificates of Origin (DCO).] allestito o ripreso +* [ ] Associazione costituita, se necessario. + +== Osservazioni conclusive + +Osservazioni e rinvii ad altri documenti rilevanti + +field::[rows=4] + +*Archiviazione del modulo* + +Archiviate questo modulo insieme alla documentazione di progetto e inoltratelo al servizio competente della vostra unità organizzativa. + +*Licenza del modello di lista di controllo: CC0 1.0 Universal* + +Il presente documento è pubblicato sotto licenza CC0. Può essere liberamente utilizzato, modificato e diffuso, anche a scopi commerciali e in qualsiasi formato. +endif::[] + +ifeval::["{lang}" == "rm"] +Questa glista da controlla appartegna a _Em002-2 Instrucziuns per publitgar software open source_ ed a _Em002-4 Guida da communitads OSS_. + +Ella sto vegnir emplenida al cumenzament d'in project u al cumenzament da las scleridas per la relaschada e vegnir cumplettada pli tard. + +Concernent ils models da support OSS vesair il chapitel 8 da _Em002-1 Guida pratica per software open source en l'administraziun federala_. + +== Object + +=== Num e curta descripziun dal software + +Endatai il num dal software. + +field::[rows=1] + +=== Persuna da contact ed autorisaziun + +Numnai la persuna da contact da la partiziun spezialisada sco er las persunas responsablas che han autorisà la publicaziun dal software. + +field::[rows=3] + +== Glista da controlla + +Gener da la communitad + +La communitad po gia exister, quai che simplifitgescha fitg l'incumbensa. + +[%interactive] +* [ ] Exista (terzas persunas pon avair la direcziun) +* [ ] La Confederaziun ha la direcziun +* [ ] Partenaris cun ils medems dretgs (Confederaziun e partenaris/furniturs) +* [ ] Auter + +Biblioteca u software entir? + +Per bibliotecas n'exista da regla nagin concept da communitad. In add-on po vegnir utilisà mo ensemen cun in product commerzial. + +[%interactive] +* [ ] Software entir +* [ ] Biblioteca +* [ ] Add-on +* [ ] Auter + +Tge gener da communitad è planisà? + +La tscherna dal gener da communitad duess vegnir motivada en duas fin trais frasas. + +[%interactive] +* [ ] Nagina, mo publicaziun (as-is) (relaschada minimala) + +Indicaziun: l'e-mail sto esser disponibel, la publicode.yaml sto esser emplenida +* [ ] Releases/issue-tracker (support minimal, permetter sche necessari il support tras terzas persunas) +* [ ] Communitad + +Dattia co-utilisaders potenzials u effectivs dal software? + +Dattia potenzials cumpraders per il software? Utilisaders pussaivels ed enconuschents pon vegnir inditgads en il champ da text (vesair _Em002-2 Instrucziuns per publitgar software open source,_ chapitel 3.1.1). + +[%interactive] +* [ ] Nagins imaginabels +* [ ] Utilisaders potenzials (èn imaginabels) +* [ ] Utilisaders enconuschents (s'han gia annunziads) + +[%interactive] +* [ ] Gruppas d'interess (commembers da la communitad gia definids/enconuschents) + +Glista dals posts/da las interpresas relevantas. + +Quai dat in indizi, quant relevant che il software è per terzas persunas. + +Tgi surpiglia il management dal product? + +Il management dal product è en emprima lingia responsabel per il svilup vinavant dal product. En spezial sche quest rol vegn surpiglià da terzas persunas, duessan las interpresas/organisaziuns vegnir numnadas sche pussaivel. + +[%interactive] +* [ ] Uffizi federal +* [ ] Purschider da prestaziuns +* [ ] Furnitur(s) / terzas persunas +* [ ] Organisaziun cuminaivla +* [ ] Avert + +Integraziun dals furniturs + +Co èn ils furniturs integrads? + +[%interactive] +* [ ] Incumbensà +* [ ] Partenari +* [ ] Purtader +* [ ] Auter + +Gener da l'organisaziun + +Tge furma d'organisaziun ha la communitad? Quai duess vegnir explitgà detagliadamain, en spezial tar la tscherna da «Auter». Pervia da la lavur ch'igl è collià cun quai, duess ina nova associaziun vegnir fundada mo cun ina fitg buna motivaziun. + +[%interactive] +* [ ] Mo il maun public +* [ ] Societad simpla +* [ ] Associaziun nova u existenta +* [ ] Auter (p.ex. ina fundaziun, existenta u nova) + +Repartiziun dals custs + +Quella duess vegnir fixada en il concept da communitad. Il chapitel 5.5 da _Em002-4 Guida da communitads OSS_ dat infurmaziuns davart quai. + +Tge meds e resursas èn necessaris? Las reflexiuns davart la repartiziun dals custs duessan vegnir exponidas curtamain. + +[%interactive] +* [ ] La Confederaziun paja +* [ ] Mintga partida porta ses agens custs +* [ ] Princip dal chaschunader +* [ ] La Confederaziun na surpiglia nagins custs da la communitad +* [ ] Partiziun dals custs (p.ex. via in'associaziun) +* [ ] Relaschada, en part surpigliada da terzas persunas (p.ex. perquai che il software è vegnì creà avant ils 1. da schaner 2024 ed ellas vulan absolutamain utilisar il software) + +[%interactive] +* [ ] Sche prestaziuns supplementaras tenor l'art. 9 al. 5 e 6 EMBAG vegnan purschidas, è quai fixà en il concept da communitad? + +Il concept da communitad cuntegna las indicaziuns correspundentas. + +[%interactive] +* [ ] È il concept da communitad vegnì elavurà? + +Il concept da communitad è vegnì elavurà u in existent vegn surpiglià? + +(inserir p.pl. il link) + +[%interactive] +* [ ] Èn ils contracts necessaris avant maun? +* [ ] Contributor Licence Agreement (CLA)footnote:[Vesair era _Em002-3 Guida da licenzas OSS_. Alternativamain pon era vegnir utilisads Developer Certificates of Origin (DCO).] elavurà u surpiglià +* [ ] Associaziun fundada, sche necessari. + +== Remartgas finalas + +Remartgas e renviaments ad ulteriurs documents relevants + +field::[rows=4] + +*Archivaziun dal formular* + +Archivai quest formular tar la documentaziun dal project ed inoltrai el al post cumpetent en Vossa unitad d'organisaziun. + +*Licenza dal model da la glista da controlla: CC0 1.0 Universal* + +Quest document vegn publitgà sut la licenza CC0. El dastga vegnir utilisà, midà e derasà liberamain, era per intents commerzials ed en mintga format. +endif::[] diff --git a/docs/em002-4.adoc b/docs/em002-4.adoc new file mode 100644 index 0000000..5bc3755 --- /dev/null +++ b/docs/em002-4.adoc @@ -0,0 +1,4400 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-4 OSS Community Guidelines +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-4 Leitfaden OSS-Community +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-4 Guide des communautés OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-4 Guida alle community OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-4 Guida da communitads OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +NOTE: This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main {url-repo}/tree/main[README]. + +== Main points at a glance + +The most important points of the document are listed below. + +* The establishment or maintenance of an OSS community is *not required* under Art. 9 EMOTA. +* A community is relevant if a user group makes sense and *synergies* with other users of the software are to be created. +* A community is not limited to the software itself, but can also include the processes in the environment and the standardisation of data. +* An *initial effort* must always be made to build a community. This usually continues. In many cases, it makes sense for the lead office to also bear the coordination costs. +* Communities should fulfil a *purpose*. There need to be interested parties and participants. +* A community can emerge and then be formalised. +* The goal of the community is to increase the *benefit for everyone*. General principle: 'You get back at least as much as you put in'. +* The community should be *structured as simply as possible*. +* In a first step, the community should be briefly reviewed using the checklist link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. Only if it makes sense should it be further developed. +* Formalisation takes place via a *community concept*. As much as possible should be taken from existing sources. General principle: 'Don't reinvent the wheel'. +* If collaboration is the aim, this must be taken into account at the very beginning of the project, as potential partners should already be picked up during the requirements analysis. This also needs to be well planned from the outset in terms of legal and procurement law. +* The options for joining an existing collaboration in regard to legal and procurement law must be examined. +* No community needs to be set up for contributions. However, if required by the project, the corresponding *Contributor Licence Agreement (CLA)* must be signed or the developers must be authorised by the project to submit the software under a Developer Certificate of Origin (DCO). + +== Introduction + +These guidelines are intended for ICT professionals who are responsible for an application and want to offer it as open source or contribute to such an application. + +This must be organised either formally or informally. + +This document provides important information for organising and building a communityfootnote:[The community of an open source project typically represents a pyramid. + +The foundation of this pyramid is the users of the software, especially the committed ones who actively participate in the community, for example in the form of bug reports and feature requests or through contributions to mailing lists. + +Directly above in the pyramid are contributors. These are parts of the community that propose their own code contributions. They typically do not have write access to the repository. Their contributions are reviewed by maintainers of the project and incorporated into the repository after reaching the project-typical quality. + +At the top of the pyramid are the maintainers or committers of a project. In this role, a developer has a higher responsibility. This is expressed, for example, in the ability to accept contributions. This right is often manifested through write access to the repository. At this level, control over the software, its quality, and range of functions takes place. In more complex projects, this level can be further subdivided. For example, the Linux kernel is known to have subsystem maintainers at multiple levels, and ultimately only a single developer, Linus Torvalds, incorporates the patches into the project repository. Another example is projects of the Eclipse Foundation, which typically have a project lead with additional rights in the context of the Eclipse Foundation development process, such as initiating the release process or formal election of committers or project leads _[BITKOM2023]_.] and also for open development directly as an open source project. + +As a second element, to promote standardisation, a directory of existing community concepts is maintained as part of this document. The idea is that new communities can be built with minimum effort based on successful solutions. + +This document does not include direct recommendations for organising communities for software libraries (parts of software that fulfil partial functions, e.g. PDF generation). Normally, no separate concept is developed for these; instead, they use the simple template defined in the repository's storage template. + +The document link:em002-1.pdf[Em002-01 Practical Guidelines for Open Source Software in the Federal Administration] contains in Section 4 fundamental forms of collaboration, in Section 8 the various support models, and in the Annex information on market behaviour of open source. + +== Type, aim and purpose of a community + +A community can pursue the following purposes: + +* Survey of additional requirements +* Dissemination of knowledge about the application +* Better feedback from users +* Promoting translations, documentation and training +* Spreading standardisation +* Generally improved interaction with users +* Expansion of cooperation to include other parties +* Promotion of further software based on the software + +The type of community best suited for an application depends heavily on the professional environment, potential users, and the strategy of the publishing institution. There are many different ways to build communities. Ideally, for a suitable project, it may be possible to join an existing community. Alternatively, a community can be built with one or more equal partners. + +It is important that a *governance structure* should be established and the relevant points documented in a *community concept* (see also _[BITKOM2023]_ Section 4.1 and _[IZqCab2023]_). + +It should be noted that communities for software can also be combined with those for data, standardisation and business topics. The community can then encompass processes, standardisation, software and data. Existing frameworks such as eOperations, DVS and eCH can also be used where appropriate. + +An important aspect of a functioning community is that participants receive more than they invest. + +The following constellations exist: + +* *Community around a federal OSS*: Governance and community concept must be created. In this context, it is also necessary to regulate how third parties can make contributions. +* *New collaboration to solve a problem*: In addition to governance and the community concept, the entire legal structure of the collaboration must be established. +* *Joining a collaboration*: The Federal Administration must examine whether and how it can do this. +* *Contribution to a third-party project*: The point to be checked is the project's policy for contribution (Contributor Licence Agreement, Developer Certificate of Origin, etc.). + +Procurement law issues are dealt with in link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and Open Source Software]. + +=== Special case: New collaboration for the development, maintenance and support of open source software + +The collective costs of open source software decrease when it is developed and further maintained collaboratively. This can occur without formal cooperation arrangements, or with no more than joint planning. + +Where a more formal collaboration is sought, a market assessment should be carried out to ensure that collaboration is the most appropriate form of cooperation. Collaborations are more cost-effective than individual development by each party (see link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]). + +It should be noted that, for collaborations, it makes sense to initiate the collaboration at a very early stage in the HERMESfootnote:[https://www.hermes.admin.ch/en/project-management/method-overview.html] project methodology --- specifically during the situation analysis and requirements phases. + +Collaboration is generally permitted in Switzerland under Article 4 EMOTA. + +In addition to all other considerations, collaborations have both a legal and a procurement law dimension. At present, each case is assessed individually. Over time, standardised templates will become established. + +==== Legal dimension + +Association memberships are feasible, though these are generally assessed on a case-by-case basis: who is behind the association, and what obligations are being entered into. Delegation of memberships to eOperations or similar organisations would be possible. + +As long as no money changes hands and no formal obligations need to be entered into, a Memorandum of Understanding at the level of the federal office or the Federal Chancellery is possible. + +A situation requiring the conclusion of an international treaty should be avoided. + +There are also two special casesfootnote:[https://www.eda.admin.ch/deza/en/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] in which a collaboration would already be covered: + +* Contracts awarded under an international agreement concerning the joint implementation of a project by signatory states. +* Contracts awarded in accordance with the special procedures or conditions of an international organisation. + +==== Procurement law dimension + +In many cases, collaboration will take place between public sector organisations. In such cases, procurement is unproblematic where the arrangement is 'in-state' (see link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and Open Source Software]). + +Contracts with foreign companies not domiciled in Switzerland are possible, provided procurement law requirements are met. + +The procurement of an organisation's own resources takes place within the framework of a standard procurement process, or has already been completed. + +=== Special case: Joining an existing collaboration + +This requires both a legal basis and compliance with procurement law. + +The simplest approach is to participate on a 'each party bears its own costs' basis. This can also cover overhead costs, provided that either internal resources or correctly tendered external resources are used. + +Direct participation in foreign collaborations is more difficult. A simple association via a Memorandum of Understanding is the easiest option to achieve. + +=== Special case: Contributing code to third-party OSS projects + +Where the Federal Administration makes modifications to the code of an existing OSS project, it makes sense to contribute these changes directly upstream to the original project. This means that ongoing maintenance no longer needs to be carried out by the Federal Administration. + +Under Article 9 EMOTA, such contributions are in fact encouraged. From a procurement law perspective, this is unproblematic. + +It is important that the rights holder makes the contribution. This means that the Federal Administration assumes responsibility for doing so on behalf of its staff and contractors. Specifically, any Contributor Licence Agreement for the project must be signed, or a Developer Certificate of Origin must be included with the pull request. + +A **Developer Certificate of Origin**footnote:[https://developercertificate.org/] *(DCO)* for the Federal Administration could read: + +[quote, 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. +____ + +The structure of a Contributor Licence Agreement is described in link:em002-3.pdf[Em002-3 OSS Licensing Guidelines], Section 8.9. + +The effective transfer of code takes place in accordance with the guidelines of the respective project. + +== Community concept + +A community's core is ultimately its structure and governance. These are recorded in a community concept. + +The community concept to be created by the project or application manager (or commissioned from third parties) should follow this section structure. Depending on the nature of specific community, not all sub-sections are necessary. Ideally, many sections will refer to already standardised documents or use standard processes of the corresponding repositories. The community concept can also be applied to existing projects led by others, especially if the effective governance is not yet documented in writing. + +By formalising the community, all participants are brought together and the onboarding of new participants is simplified. + +Structural draft of a community concept: + +[arabic] +. Overview table (name, repository, contact address, licence, depth of support, existing/new) +. Objectives +[loweralpha] +.. of the application +.. of the community +. Organisation +[loweralpha] +.. Owner of the code +.. Organisational form / committees +.. Voting rights +.. Project management +.. Procurement issues (if applicable) +.. Other governance aspects +. Roadmap and change process +. Development process +[loweralpha] +.. Open development +.. Committer rights +.. Review process +.. Task distribution and name citations +.. Backups +. Financing of the community +. Marketing +. Handling external contributions +[loweralpha] +.. Handling reported errors +.. Handling enquiries +.. Handling pull requests +.. Handling forks +.. CLA, DCO and assignment of rights/intellectual property +. Operation of the application + +In principle, each federal authority is responsible for creating the community concepts. DTI can publish existing patterns/examples and accepts corresponding examples for publication. It also makes sense for community managers to exchange information with each other. + +A possible source for parts is also the documentation of the Eclipse Foundation,footnote:[See https://www.eclipse.org/projects/handbook/#starting] although appropriate tailoring should be carried out here in the sense of 'only doing what is necessary'. + +== Fundamental decisions when building a community + +The principles of the community, or lack thereof, are determined using link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. The relevant fundamental questions are set out in the morphological box below; each dimension is discussed in the sections that follow. + +[.landscape] +[cols="3,2,2,2,2,2",options="header"] +|=== +|Dimension |(a) |(b) |(c) |(d) |(e) + +|A -- Product management +|Confederation +|Joint organisation +|Open organisation +|Third parties +| + +|B -- Integration of suppliers +|Contractor +|Partner +|Independent +|Lead +| + +|C -- Cost distribution +|Confederation +|Each their own +|Originator pays +|Distribution key +|Contribution + +|D -- Support +|Minimum release +|Support by the Confederation +|Support by third parties +| +| + +|E -- Development +|Internal +|Third parties +|Open +| +| +|=== + +_Morphological box OSS community._ + +It is advisable to *focus primarily on the near future* when designing the community; for example, if there are not yet any concrete interested parties for the application, it usually makes little sense to define a community with a simple company, its own association and complex processes for developing the roadmap.footnote:[With an association (or foundation), a separate legal entity is created to look after the software and the product. This only pays off from a certain level of importance, complexity and the existence of several (equal) partners. A roadmap is used to show the wider public and potential additional users of the software what is planned.]footnote:[It may also be possible, especially for projects that involve several state actors from the outset, to approach existing foundations and see whether the projects and governance can be managed under their umbrella, analogous to https://finos.org or https://osr.finos.org or https://www.eclipse.org/collaborations/ or https://iot.eclipse.org or https://outreach.eclipse.foundation/open-regulatory-compliance.] + +=== Product management + +Depending on the type of application, its strategic importance and its status in the life cycle, there are different variants for mapping product management. For organisations within federal authorities, this always concerns the application managers. The definition of the technical and technological roadmap and the release processes are particularly relevant for the community concept. + +Possibilities: + +[loweralpha] +. *Organisations within the Confederation*: The Confederation wants to retain control; it alone defines the roadmap. +. *Joint organisation*: Together with other users or suppliers. +. *Open organisation*: Loose connections, no active roadmap. +. *Third parties*: Either the product already exists or the work is to be outsourced. + +==== Organisations within the Confederation: + +If the application is of high strategic importance or the Confederation depends on being able to implement its changes quickly, then it can make sense to retain control. + +The federal authority alone decides, through the requirements manager, what is incorporated in the software and when. + +For potential other users of the application, this means that they are practically forced to use their own version (fork) of the application. + +Otherwise, they have hardly any opportunity to implement adjustments and extensions that may be important to them. This does not argue against publishing as open source: the code management toolsfootnote:[e.g. GitHub] offer extensive support for such scenarios, and adjustments and error corrections can be selectively adopted in both directions. + +Sharing the costs is typically difficult with this model. + +==== Joint (Confederation has the lead or equal partners) + +Decisions regarding the roadmap and priorities should be coordinated and made jointly with the other members of the community. The Confederation participates as a member of the community but is not the lead organisation. + +For joint decision-making to work, structures and rules must be determined in advance. This also defines how the costs for implementing the jointly decided adjustments are divided among each other. + +With this model, a single version of the application is created, which is then used by all members. As a result, the total costs are significantly lower compared to the other variants. However, the flexibility of individual users is also lower, and they must coordinate their adjustment requests in advance with all others. Decision-making is slower and more time-consuming. + +This model is best suited for applications that are to be further developed jointly with clearly defined other organisations (e.g. cantons). + +==== Open organisation + +In this model, the processes and structures are only loosely defined. The Confederation formally retains control but is open to contributions and adjustments. + +No roadmap or only a very rough one is defined; consensus is reached informally and in discussions directly on the publication platform. The community itself tends to be dynamic; members can be very active for a while and then withdraw again. + +This model is also suitable for smaller applications that are already in productive use and are 'finished'. This is also usually the best form for technically orientated applications or components that potentially appeal to a broader target group which cannot be precisely defined in advance. + +==== Third party + +In this model, the processes and structures are defined by a third party and the federal authority is a member of the community but does not have the lead. This may have happened because, for example, the project was defined by another state or canton. Or it may be that the Confederation is not interested in continuing the program itself and transfer this task. + +=== Integration of suppliers + +There are basically the following possibilities for integrating suppliers: + +[loweralpha] +. *Supplier as contractor*: They are generally considered replaceable in the medium term. The supplier should develop the application cost-effectively and to a high quality based on orders from product management (or the community), but has at most advisory influence on the roadmap and prioritisation. +. *Long-term partners with co-determination*: They should be able to actively co-determine the development. This strengthens their role and they are potentially willing to invest in the application themselves. Typically, in this model, the suppliers then distribute the software and actively look for new customers. +. *Independent:* The suppliers define for themselves whether and how they want to work on the project. This can occur, for example, if several suppliers want to generate their own business based on the software. Liberal licences can potentially promote this. It can also occur if the Confederation's strategy differs from that of the supplier. In this scenario, it is likely that the supplier will create a fork. +. *Lead*: If the supplier takes over product management, then they have the lead. The development is then determined by them. On the other hand, this can also mean that the Federal Administration has to take very little responsibility. With a minimum release, it is possible for the supplier to take on this role on their own. + +If the supplier takes on a strong role, this brings advantages for the Federal Administration: by actively marketing the application, there is a chance that the community will grow faster and stronger, thus reducing the costs per member more quickly. + +If a model with strong supplier co-determination is chosen, care must be taken that this does not result in a deviation from procurement law regulations. It is usually advisable to involve at least two suppliers to avoid creating too strong a dependency on a single supplier. There should also be the possibility for other suppliers to join the community. + +=== Cost distribution + +The following options are available for splitting the costs of maintenance, further development and new functions: + +[loweralpha] +. *Organisations within the Confederation*: Especially when building ecosystems or if the federal authority will retain full control, the federal authority must also bear the costs. +. *Each their own*: Everyone pays for the changes they want themselves. If necessary, it is decided on a case-by-case basis to pay for certain extensions jointly. Recurring costs are billed according to a distribution key or on demand. +. *Originator pays principle*: Those who actually need the services or features pay for them. Standardised hourly rates may be applied. +. *Distribution key*: The costs are divided within the community according to a defined key. This only differs for specific expansions. These should be paid for directly by the users concerned. The cost divider can be, for example, the size of the canton concerned or the number of users. Regarding the distribution key, see also the section 'Cost allocation'. +. *Contribution*: If the federal authority only contributes personnel to an existing project. + +Basically, variant b (cost sharing) usually only makes sense if there is also joint product management as in variant b (joint). Only those who can have a say will be willing to bear the follow-up costs of the decisions. + +=== Support + +Within the cost distribution and effort, it is important to clarify who provides what support. According to Art. 9 EMOTA, a pure minimum release is possible. This variant may not deliver the desired effect and does not in itself build a community in which the federal authority has influence. + +[loweralpha] +. *Minimum release*: No support (i.e. release generally occurs without organised support and participation of the federal authority). +. *Support by the Confederation*: The federal authority (or its service provider) provides defined support. +. *Support by third parties*: The federal authority or the community defines a support organisation. + +The effect to be achieved, e.g. on the Swiss ecosystem or initial funding of a community, can lead to the Confederation providing support. The level of support must of course be defined. In principle, a fee may also be charged. Due to the mechanisms of the Confederation, service providers or suppliers are then more likely to be able to offer commercial support. + +Offices may offer paid support in accordance with EMOTA (possibly also via service providers and third parties). To do this, they must publish the corresponding fees on their website, as the necessary legal basis is in place. The connection to the payment system can be discussed with the FDF. + +Examples of support and fees can be found in Annex G. + +=== Development + +The basic methodology of development can also have an influence on the type of community. + +[loweralpha] +. *Internal*: The use of internal repositories means that third parties cannot work directly. The stricter the separation, the more integration effort the Confederation has to make if it wants to incorporate third-party extensions. The release process is also more complex. +. *Third parties*: Either a supplier works on their own or the product already started/led by a third party is developed according to defined rules. +. *Open*: Software development takes place directly in a public repository. The release according to EMOTA is therefore largely guaranteed. The expenses are to be paid during development. In this scenario, collaboration with third parties can also take place earlier (and more easily). + +== Detailed content for the community concept + +This section provides guidance on writing the community concept based on the fundamental decisions made (as per Section 5). + +_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:: +{empty} + +The community concept should be a dynamic document that can be adapted in consultation with the community. The concept should reflect the current situation and propose future development options. If more members join the community later, the organisation and processes can be further elaborated, and more complex mechanisms can be introduced. The following sub-sections directly follow the proposed structure of the community concept (see Section 4). + +If product management lies with third parties, they will define the concepts for the community. + +=== Key information + +The following key information should be drawn up and published for each community so that potential interested parties can register for the software and the community: + +* Software name +* Repository +* Owner +* Responsible organisational unit/office +* Contact address +* Licence used +* Support level +* Existing project + +This information can all be displayed with publiccode.yml.footnote:[https://yml.publiccode.tools/] + +=== Objectives + +The objective should contain the actual purpose or 'vision' of the application. This vision should also be included in the *README.md* file in the repository (see link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Analysis and Preparation Checklist]). + +At the same time, it should also describe what the community is aiming for: + +* Who should join? +* Who are the potential interested parties? +* Should new members be actively sought? +* What are the main goals pursued by publishing as open source? + +=== Organisation and governance + +In principle, for new developments, the aim is for the Confederation to be the owner of the master rights to the source code. + +The type of project management depends on which organisation had the lead (SAFe, HERMES) in the case of the Confederation. The organisational form should always seek minimum overhead (existing rather than new; simple partnership rather than an association). + +_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: ++ +-- +* Management Board: Defines the strategy and prioritisation. +* Expert group: Develops requirements and specific content at the expert level. Depending on the scope, a separate expert group can also be established for each topic. +-- ++ +The owner of the code is the office that published it. ++ +If the structures become more complex or more than five users or additional members are involved, it may be worth considering whether the community should be better organised as an association. Compare the explanations in the variant directly below. + +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: ++ +-- +* No direct integration: External parties can only submit suggestions and contributions (as pull requests). +* Involvement as contributors: External parties who make frequent and good contributions are directly involved. +* Handover to external parties possible: If, after publication, external parties contribute more to further development than the publishing organisation, the application can also be transferred to them. +-- ++ +The publishing organisation retains ownership. This variant corresponds to the organisation of 'classic' open source projects; see for example https://opensource.guide/leadership-and-governance/ for further information. + +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: ++ +-- +* No direct integration: External parties can only submit suggestions and contributions (as pull requests). +* Involvement as contributors: External parties who make frequent and good contributions are directly involved. +* Handover to external parties possible: If, after publication, external parties contribute more to further development than the publishing organisation, the application can also be transferred to them. +-- ++ +The publishing organisation retains ownership. + +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: ++ +-- +* No direct integration: External parties can only submit suggestions and contributions (as pull requests). +* Involvement as contributors: External parties who make frequent and good contributions are directly involved. +* Handover to external parties possible: If, after publication, external parties contribute more to further development than the publishing organisation, the application can also be transferred to them. +-- ++ +The publishing organisation retains ownership. This variant corresponds to the organisation of 'classic' open source projects; see for example https://opensource.guide/leadership-and-governance/ for further information. + +With regard to governance, _[BITKOM2023]_ Section 4.1, _[IZqCab2023]_ or https://github.com/todogroup/ospo-career-path/blob/main/OSPO-101/module7/README.md#governance-models can also be consulted. + +Examples of articles of association can be found in Annex E. + +NB: As the release must be guaranteed in accordance with Art. 9 EMOTA, the Federal Administration must ensure that the publication cannot be suddenly withdrawn (see the 'Open Source in Procurement Guidelines -- Software purchasing under Art. 9 EMOTA' _[BBL-WL]_, paragraph V.2). + +=== Roadmap and change process + +_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). + +=== Development process + +If open development comes into play, it should be defined here. Task distribution and naming of central positions in the community concept are important. Also, how the security of the repository content is ensured. + +_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. + +=== Cost sharing and suppliers + +_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._ + +=== Marketing + +_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. + +=== Handling external contributions + +_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. + +In general, it should be noted that contributions can range from supporting other users to taking responsibility for entire parts of a project (see _[BITKOM2023]_ Section 4.2). + +=== Operation of the application + +_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. + +Support levels and support contacts should also be specified in this section. + +== Important information for community managers + +=== It takes time + +Building communities is something that should be planned for the long term. Perseverance and consistency are two important qualities needed for a successful community. + +=== Further suggestions for community building + +Further suggestions for good community management can be found at https://opensource.guide/code-of-conduct/ and https://opensource.guide/best-practices/. + +=== Communications + +Publishing software and documentation opens a new communication channel for the Federal Administration. If this is not done carefully and professionally, the public image of the Confederation can suffer. + +OSS communities in the Federal Administration are faced with conflicting demands regarding communication: on the one hand, the general *guidelines for communication* apply; on the other hand, the community should facilitate *simple formal and informal collaboration* across organisational boundaries, preferably without formal quality controls and releases. + +The use of public repositories and potentially public issue tracking and wikis means that individual project staff members' statements are visible to the public unfiltered. This requires project staff to maintain a professional demeanour and adhere to quality standards for publications in such settings. + +In OSS projects, this is normally regulated through the *Code of Conduct*. The Federal Administration's own Code of Conductfootnote:[https://www.epa.admin.ch/dam/epa/fr/dokumente/aktuell/medienservice/120_verhaltenskodex_e.pdf.download.pdf/120_verhaltenskodex_e.pdf] is very general, but the core principle is applicable here: "Staff carry out their duties with a sense of responsibility, integrity and loyalty. In their private lives they also take care not to tarnish the reputation, the credibility and the image of the Confederation" + +=== Open development + +If software development is planned in an open repository from the start, release happens automatically. The relevant checklists according to the instructions link:em002-2.pdf[Em002-2] must be completed at the beginning, and the development processes of the service provider/supplier must allow this. The advantage is that the community can be built from the very beginning. Multiple organisations can also collaborate on the development. + +Closed repositories are an intermediate form, but are used for other partners in a collaboration. + +=== User management + +The project (or the support organisation) determines whether developers and other project staff work on the project under their own name or anonymously. If people are not working anonymously and already have logins on the platforms, it is easiest to use these (whether business or private). + +The platform should generally allow the inclusion of third parties, as otherwise no developers from outside the Confederation will be able to collaborate. + +When leaving the project, the corresponding rights on the project must be deleted. Product management is responsible for this. + +=== Merging communities + +Where possible, the number of communities should be kept small. This means: + +* If a community already exists where a similar structure is envisaged for similar problems involving the same people, a single community should be used. +* Multiple projects that are related and address the same target audience can be consolidated into one community. +* No fundamentally different community structures should be created unnecessarily where existing ones are already in place. + +=== Handling third-party contributions + +The contribution of software to other projects is addressed in Section 3.3. The same principles apply in reverse. + +The following points are important: + +* A suitable Contributor Licence Agreement must be used to ensure that the source code subsequently belongs to the Confederation (see also link:em002-3.pdf[Em002-3 OSS Licensing Guidelines], section on Contributor Licence Agreements). This must be signed by the owner of the contribution. +* Confirmations must be filed. +* Contributions must be reviewed before being integrated into the codebase. +* Submissions should be responded to in a timely manner (issues, requests, pull requests) and handled as constructively as possible. +* All channels and governance arrangements should be listed in the community concept, on the website and in the repository. + +=== Security-relevant reports + +In addition to standard bug reports, provision must be made -- where the nature of the project requires it -- for security-related vulnerabilities to be reported confidentially, as is the case with a bug bounty programme, for example. + +The documents from trustbroker.swiss can serve as an example: + +* https://github.com/trustbroker-swiss/trustbroker.swiss/blob/main/Security-and-Vulnerability-Disclosure.md + +=== Avoiding forks + +While forks are natural in the open source world, reintegrating source code, features and so on from forks is far from straightforward. It may be worth reaching out to the individuals or organisations considering a fork and trying to keep them engaged with the main project. Striking a balance between competing interests is often necessary in such cases. + +=== Cost allocation + +It makes sense to agree on general distribution keys between the main partners. These can be adjusted every few years or when the situation fundamentally changes. For efficient work on the software, the large partners should tend to take on slightly larger shares than they actually have to (if necessary, also the overall coordination). The organisation should work and not argue about finances. If the collaboration covers several projects (for example, the industry solutions in the field of standard gauge railways), a standardised distribution key should be used for all projects. From the perspective of federal authorities, it is an improvement if the costs do not have to be borne alone. + +Possible criteria for distribution keys: + +* Estimation of benefit distribution (e.g. between federal authority and a supplier hoping for other customers) +* Number of inhabitants/users (e.g. between offices, communes, cities) +* Financial strength (e.g. cantons) +* Gross national product (e.g. between cantons) +* Who wants more control + +To avoid discussions, the distribution key should not simply be attached to the annual budget. A clause along the lines of the originator pays principle may allow faster adjustments for some partners if they are willing to pay extra. + +The distribution key should also apply to overheads, maintenance/support, and a minimum of further development. These parts should be solved in the long term if possible. + +It should be borne in mind that when third-party funding is involved, those parties will typically want a greater say. Community management needs to be equipped to handle this. + +=== Supplementary services according to Art. 9 paras 5 and 6 EMOTA + +The federal authorities can (themselves, through service providers or suppliers) provide supplementary services, particularly for integration, maintenance, ensuring information security, and support. + +The limitation is that they should serve the authorities' tasks and can be provided with proportionate effort. + +It follows that the federal authority cannot be the development company for third parties. It fixes bugs, can handle security-relevant aspects, can provide some support and integration assistance (all activities that help to build a community). New developments and additional features for third parties should primarily focus on the normal work purpose of the authority. Of course, it may be that providing the software is part of the task, in which case developments can be made at any time. It is also stated that software development is not the core task of the federal authority. + +This means that if features are substantially developed exclusively for third parties, they are to be integrated in partnership or through the supplier. + +To avoid procurement law problems, care should be taken in procuring software and services to ensure that features can be provided to third parties (possibly only governmental third parties) by suppliers. + +The setting of fees has already been touched upon in the 'Support' section. EMOTA is already the legal basis for such fees. These must be communicated on the website of the respective federal authority. Examples are listed in Annex G. + +Art. 9 para. 6 states that normally the private sector should not be competed with. This means that the fees should not be set too low and should at least cover costs. In case of doubt, it is better to set hourly rates too high rather than too low. + +Generally, it is recommended to work with one to three different standard hourly rates. + +If a federal department wishes to define exceptions to para. 6, this must not compete with the private sector. Under certain circumstances, it may be easiest to set the fees and increase them if there is opposition from private sector companies that can actually offer the service. + +=== Digital sovereignty + +As long as the Confederation does not have its own repository, to ensure digital sovereignty, it is recommended to regularly make copies from public repositories. + +It should be noted that not only the source code but also other information such as issue tracking, wiki, configurations, etc. is copied. + +Furthermore, user management needs to be resolved to ensure control over the published source code. The overarching goal is to ensure development independent of the respective platform and to enable the community to switch.footnote:[See also https://www.bfh.ch/de/aktuell/news/2024/neue-studie-digitale-souveraenitaet/] + +== Annex + +=== Changes from previous version + +* Section 1 'Main points at a glance' added +* Community purpose added to Section 3 +* Sections 3.1 to 3.3 on Collaboration added +* New Section 7.7 Handling third-party contributions +* Noted that suppliers should not publish entirely on their own (in accordance with _[BBL-WL]_, V.2) +* Publicode.yml mentioned +* Alignment with new link:em002-7.pdf[Em002-7] +* Further editorial changes and improvements + +=== References + +See _Em002 Strategic Guidelines for Open Source Software in the Federal Administration_. + +=== Abbreviations + +See link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration] and link:em002-6.pdf[Em002-6 FAQ about OSS]. + +=== Examples of existing community concepts + +In the spirit of collecting best practices, the following are community concepts and comparable documents that have already been developed. These are not necessarily just concepts from federal authorities, but also from other organisations. + +* GERES Community (http://geres-community.ch) + +Classification: + +* Product management a) Joint development +* Supplier rather a) Contractor +* Cost distribution: b) Cost sharing + +NB: The commune register GERES is not open source, but many aspects of the organisation can also be relevant for open source applications. Documents: Statutes (public) and Rules of Procedure (on request). + +* https://www.igovportal.ch[iGov Portal] + +#This section currently contains concepts from the Canton of Bern and will be supplemented as soon as federal examples are available.# + +=== Examples of collaborations + +The following examples illustrate how collaborations have been structured. + +=== Collaboration: ZenDiS in Germany + +ZenDiSfootnote:[https://www.zendis.de/en[ZenDiS home page: Co-creating Digital Sovereignty]] is an organisation whose aim is to reduce dependency in public administration (primarily in Germany) by promoting open source software. + +[mermaid,align="center",alt="Goals and approaches to strengthening digital sovereignty (ZenDiS)"] +.... +block-beta + columns 12 + H1["Goals"]:12 + G1["I. Ability to switch supplier"]:4 G2["II. Ability to shape solutions"]:4 G3["III. Influence on suppliers"]:4 + H2["Solution approaches"]:12 + B1["1. Forward-looking analysis
and management of
dependencies"]:3 B3["3. Vendor-independent
modularity, (open) standards
and interfaces in IT"]:3 B5["5. Collaborative co-design
of IT solutions"]:3 B7["7. Legal requirements"]:3 + B2["2. Procurement or development
of alternative IT solutions
(e.g. OSS)"]:3 B4["4. Building digital skills
and expert knowledge"]:3 B6["6. Shared understanding
and approach"]:3 B8["8. Political governance"]:3 + classDef highlight fill:#dae8fc,stroke:#000000,color:#000000 + class B2 highlight +.... + +Figure 1: Goals and approaches to strengthening digital sovereignty (ZenDiS) + +ZenDiS works with strategic partners to this end. + +Cooperation between the Federal Administration and ZenDiS is therefore unlikely to be unrestricted, and coordination would not be binding. This may change in due course. + +In concrete terms, the Federal Administration would need to establish its own organisation for Switzerland and coordinate informally with ZenDiS. This could potentially be done via eOperations, though eOperations only becomes active when a specific requirement is raised and a budget is made available. A justification for such a parallel organisation could be found in the context of eGovernment or EMOTA. + +NB: ZenDiS is subject to EU/German procurement law. There are significant differences compared to Switzerland. ZenDiS therefore cannot be replicated on a one-to-one basis in Switzerland, and cooperation with ZenDiS is not straightforward. + +=== Collaboration: Open Trip Planner (OTP) + +Open Trip Plannerfootnote:[https://www.opentripplanner.org/[OpenTripPlanner]] is an open source travel planning application. It is organised as a project of the Software Freedom Conservancy in New York. Individual developers are employed by transport companies and suppliers. A notable feature is that a public sector actor -- specifically ENTURfootnote:[https://entur.no/] -- has taken on one of the leading roles. ENTUR develops primarily for its own needs but also has a collaborative focus, particularly for the Nordic countries. ENTUR is organised as a company owned by the Norwegian Ministry of Transport and Communications. As the largest actor, ENTUR also absorbs a significant share of the coordination costs. Anyone can submit feature requests; these are discussed in coordination meetings and developed if someone funds them. Funding is provided primarily on a per-feature basis by the interested party or parties. In essence, each party bears its own costs. Support services would also need to be put out to tender separately in Switzerland. + +=== New collaboration initiated by the Confederation: Swiss Trust Broker + +The Trust Brokerfootnote:[https://github.com/trustbroker-swiss/trustbroker.swiss[GitHub - trustbroker-swiss/trustbroker.swiss: Documentation of the trustbroker.swiss service]] is a piece of Confederation software for eIAM, available as open source. Development is carried out by the Confederation. Several cantons have decided to deploy it either directly as SaaS or with their own instances. As it is available under the AGPL licence, any extensions made will benefit the Confederation in turn. Given its security-critical nature, development for the Federal Administration is carried out exclusively by the Confederation. Other organisations may submit requirements, which will be implemented if the project team considers them appropriate. + +=== New collaboration initiated by the cantons: inosca + +Through inosca,footnote:[https://inosca.ch/] a number of cantons have established a development community focused on electronic permits, originating with the eBau project.footnote:[https://github.com/inosca/ebau] eBau also includes Caluma,footnote:[https://github.com/projectcaluma] a framework for collaborative editing -- an example of a component extracted from a broader solution and developed into a standalone, widely applicable framework. This can also be used in other projects, even where some parts are subject to exception conditions, thereby allowing the maximum number of other bodies to benefit from the code. + +The community meets at least once a month (optionally twice) to exchange views on technical topics and plan the shared roadmap. All participants may raise topics. Where a topic is deemed relevant to the community, interested cantons come forward and organise themselves into a working group. Outcomes are fed back continuously to the community. inosca operates on a fundamental principle: those who design, fund. That is, all cantons participating in a working group share the cost of the new feature. The feature is put out to tender and costs are divided among the community according to a predefined cost-sharing formula. Once a feature is completed and deployed, it immediately becomes freely available to all other cantons. + +The community has additionally decided to set aside a modest fixed annual amount to cover the administrative costs of running the community. This budget is allocated each year to the parties taking on an organisational role. + +=== SNOWPACK by WSL -- direct contributions from developers + +SNOWPACKfootnote:[https://snow-models.gitlab-pages.wsl.ch/snowpack-web/] is an open source project developed by WSL for modelling snowpack formation. It is a highly specialised model, and the community has accordingly been integrated into the existing specialist community. Some issues have already been earmarked as potential contributions. The working model here is that each party bears its own costs and contributes features. Coding style and release process guidelines are also documented in this context. + +=== Inspiration for association statutes + +The statutes should be kept as simple as possible. + +The following statutes can serve as inspiration. + +* eCH: https://www.ech.ch/sites/default/files/page/STAT_d_DEF_2014-04-10_ech-Statuten.pdf +* Stop Piracy: https://www.stop-piracy.ch/wp-content/uploads/2022/01/Statuten_d_10_09_2021.pdf + +#Further examples of statutes will be added as soon as they are available.# + +=== Examples of support and fees + +* Fees for statistical services: https://www.fedlex.admin.ch/eli/cc/2003/326/en[https://www.fedlex.admin.ch/eli/cc/2003/326/en] +* FDPIC fees: https://www.edoeb.admin.ch/edoeb/en/home/datenschutz/grundlagen/dsfa.html +* Free services from IPI for courses in the field of intellectual property (not software, but as an example): https://www.ige.ch/en/services/ip-academy/general-information/prices + +Examples will be added as soon as they are available. +endif::[] + +ifeval::["{lang}" == "de"] +NOTE: Dieses Dokument ist ein laufend weiterentwickelter Entwurf und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Weitere Informationen finden Sie im {url-repo}/tree/main[README]. + +== Das Wichtigste auf einen Blick + +Nachfolgend sind die wichtigsten Punkte des Dokuments aufgeführt. + +* Der Aufbau oder Betrieb einer OSS-Community ist nach Art. 9 EMBAG *nicht erforderlich*. +* Eine Community ist relevant, wenn eine Anwendergruppe sinnvoll ist und *Synergien* mit anderen Nutzenden der Software geschaffen werden sollen. +* Eine Community beschränkt sich nicht auf die Software selbst, sondern kann auch die Prozesse im Umfeld und die Standardisierung von Daten umfassen. +* Für den Aufbau einer Community ist stets ein *Initialaufwand* zu leisten. Dieser setzt sich in der Regel fort. Vielfach ist es sinnvoll, dass das federführende Amt auch die Koordinationskosten trägt. +* Communities sollen einen *Zweck* erfüllen. Es braucht Interessierte und Beteiligte. +* Eine Community kann entstehen und anschliessend formalisiert werden. +* Ziel der Community ist es, den *Nutzen für alle* zu erhöhen. Grundsatz: «Man erhält mindestens so viel zurück, wie man einbringt». +* Die Community sollte *so einfach wie möglich strukturiert* sein. +* In einem ersten Schritt sollte die Community anhand der Checkliste link:em002-4-1-checklist-oss-community.pdf[Em002-4.1] kurz geprüft werden. Nur wenn sie sinnvoll ist, sollte sie weiterentwickelt werden. +* Die Formalisierung erfolgt über ein *Community-Konzept*. Möglichst viel sollte aus bestehenden Quellen übernommen werden. Grundsatz: «Das Rad nicht neu erfinden». +* Wird eine Zusammenarbeit angestrebt, so ist dies bereits zu Beginn des Projekts zu berücksichtigen, da potenzielle Partner schon bei der Anforderungsanalyse abgeholt werden sollten. Auch rechtlich und beschaffungsrechtlich muss dies von Anfang an gut geplant sein. +* Die Möglichkeiten für den Beitritt zu einer bestehenden Zusammenarbeit sind rechtlich und beschaffungsrechtlich zu prüfen. +* Für Beiträge muss keine Community aufgebaut werden. Verlangt es das Projekt jedoch, so ist das entsprechende *Contributor Licence Agreement (CLA)* zu unterzeichnen oder müssen die Entwickelnden vom Projekt befugt sein, die Software unter einem Developer Certificate of Origin (DCO) einzureichen. + +== Einleitung + +Dieser Leitfaden richtet sich an IKT-Fachpersonen, die für eine Anwendung verantwortlich sind und diese als Open Source anbieten oder zu einer solchen Anwendung beitragen wollen. + +Dies ist entweder formell oder informell zu organisieren. + +Dieses Dokument liefert wichtige Informationen für die Organisation und den Aufbau einer Communityfootnote:[Die Community eines Open-Source-Projekts stellt typischerweise eine Pyramide dar. + +Das Fundament dieser Pyramide bilden die Nutzenden der Software, insbesondere die engagierten, die sich aktiv in der Community beteiligen, etwa in Form von Fehlermeldungen und Feature-Wünschen oder durch Beiträge zu Mailinglisten. + +Direkt darüber stehen in der Pyramide die Contributors. Dies sind Teile der Community, die eigene Codebeiträge vorschlagen. Sie haben typischerweise keinen Schreibzugriff auf das Repository. Ihre Beiträge werden von Maintainern des Projekts geprüft und nach Erreichen der projekttypischen Qualität ins Repository übernommen. + +An der Spitze der Pyramide stehen die Maintainer bzw. Committer eines Projekts. In dieser Rolle trägt eine Entwicklerin oder ein Entwickler eine höhere Verantwortung. Dies zeigt sich beispielsweise in der Möglichkeit, Beiträge anzunehmen. Dieses Recht manifestiert sich häufig über den Schreibzugriff auf das Repository. Auf dieser Ebene findet die Kontrolle über die Software, ihre Qualität und ihren Funktionsumfang statt. Bei komplexeren Projekten kann diese Ebene weiter unterteilt sein. So hat beispielsweise der Linux-Kernel bekanntlich Subsystem-Maintainer auf mehreren Ebenen, und schliesslich übernimmt nur eine einzige Entwicklerpersönlichkeit, Linus Torvalds, die Patches ins Projekt-Repository. Ein weiteres Beispiel sind Projekte der Eclipse Foundation, die typischerweise über einen Project Lead mit zusätzlichen Rechten im Rahmen des Entwicklungsprozesses der Eclipse Foundation verfügen, etwa das Auslösen des Release-Prozesses oder die formelle Wahl von Committern oder Project Leads _[BITKOM2023]_.] sowie für die offene Entwicklung direkt als Open-Source-Projekt. + +Als zweites Element wird zur Förderung der Standardisierung im Rahmen dieses Dokuments ein Verzeichnis bestehender Community-Konzepte geführt. Die Idee ist, dass neue Communities mit minimalem Aufwand auf der Grundlage erfolgreicher Lösungen aufgebaut werden können. + +Dieses Dokument enthält keine direkten Empfehlungen für die Organisation von Communities für Softwarebibliotheken (Teile von Software, die Teilfunktionen erfüllen, z. B. PDF-Erzeugung). Normalerweise wird für diese kein eigenes Konzept erarbeitet; stattdessen verwenden sie die einfache Vorlage, die in der Ablagevorlage des Repositorys festgelegt ist. + +Das Dokument link:em002-1.pdf[Em002-01 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung] enthält in Kapitel 4 grundlegende Formen der Zusammenarbeit, in Kapitel 8 die verschiedenen Supportmodelle und im Anhang Informationen zum Marktverhalten von Open Source. + +== Art, Ziel und Zweck einer Community + +Eine Community kann die folgenden Zwecke verfolgen: + +* Erhebung zusätzlicher Anforderungen +* Verbreitung von Wissen über die Anwendung +* Bessere Rückmeldungen von Nutzenden +* Förderung von Übersetzungen, Dokumentation und Schulungen +* Verbreitung der Standardisierung +* Allgemein verbesserte Interaktion mit den Nutzenden +* Ausweitung der Zusammenarbeit auf weitere Beteiligte +* Förderung weiterer Software auf Basis der Software + +Welche Art von Community für eine Anwendung am besten geeignet ist, hängt stark vom fachlichen Umfeld, den potenziellen Nutzenden und der Strategie der veröffentlichenden Institution ab. Es gibt viele unterschiedliche Wege, Communities aufzubauen. Idealerweise kann sich ein geeignetes Projekt einer bestehenden Community anschliessen. Alternativ kann eine Community mit einem oder mehreren gleichberechtigten Partnern aufgebaut werden. + +Wichtig ist, dass eine *Governance-Struktur* festgelegt und die massgebenden Punkte in einem *Community-Konzept* dokumentiert werden (siehe auch _[BITKOM2023]_ Kapitel 4.1 und _[IZqCab2023]_). + +Zu beachten ist, dass Communities für Software auch mit solchen für Daten, Standardisierung und fachliche Themen kombiniert werden können. Die Community kann dann Prozesse, Standardisierung, Software und Daten umfassen. Bestehende Gefässe wie eOperations, DVS und eCH können ebenfalls genutzt werden, wo dies sinnvoll ist. + +Ein wichtiger Aspekt einer funktionierenden Community ist, dass die Beteiligten mehr erhalten, als sie investieren. + +Es bestehen die folgenden Konstellationen: + +* *Community rund um eine OSS des Bundes*: Governance und Community-Konzept sind zu erstellen. In diesem Zusammenhang ist auch zu regeln, wie Dritte Beiträge leisten können. +* *Neue Zusammenarbeit zur Lösung eines Problems*: Neben Governance und Community-Konzept ist die gesamte rechtliche Struktur der Zusammenarbeit aufzubauen. +* *Beitritt zu einer Zusammenarbeit*: Die Bundesverwaltung muss prüfen, ob und wie sie dies tun kann. +* *Beitrag zu einem Drittprojekt*: Zu prüfen ist die Politik des Projekts für Beiträge (Contributor Licence Agreement, Developer Certificate of Origin usw.). + +Beschaffungsrechtliche Fragen werden in link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und Open-Source-Software] behandelt. + +=== Sonderfall: Neue Zusammenarbeit für Entwicklung, Wartung und Support von Open-Source-Software + +Die Gesamtkosten von Open-Source-Software sinken, wenn sie gemeinsam entwickelt und weiter gepflegt wird. Dies kann ohne förmliche Kooperationsvereinbarungen erfolgen oder mit nicht mehr als einer gemeinsamen Planung. + +Wird eine förmlichere Zusammenarbeit angestrebt, so sollte eine Marktabklärung durchgeführt werden, um sicherzustellen, dass die Zusammenarbeit die geeignetste Form der Kooperation ist. Zusammenarbeiten sind kostengünstiger als eine Einzelentwicklung durch jede Partei (siehe link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]). + +Zu beachten ist, dass es bei Zusammenarbeiten sinnvoll ist, die Zusammenarbeit sehr früh in der Projektmethodik HERMESfootnote:[https://www.hermes.admin.ch/de/projektmanagement/methodenuebersicht.html] anzustossen – konkret während der Phasen Situationsanalyse und Anforderungen. + +Zusammenarbeit ist in der Schweiz nach Artikel 4 EMBAG grundsätzlich zulässig. + +Neben allen weiteren Überlegungen haben Zusammenarbeiten sowohl eine rechtliche als auch eine beschaffungsrechtliche Dimension. Derzeit wird jeder Fall einzeln beurteilt. Mit der Zeit werden sich standardisierte Vorlagen etablieren. + +==== Rechtliche Dimension + +Vereinsmitgliedschaften sind machbar, werden aber in der Regel im Einzelfall beurteilt: Wer steht hinter dem Verein, und welche Verpflichtungen werden eingegangen? Eine Delegation von Mitgliedschaften an eOperations oder ähnliche Organisationen wäre möglich. + +Solange kein Geld fliesst und keine förmlichen Verpflichtungen eingegangen werden müssen, ist ein Memorandum of Understanding auf Ebene des Bundesamts oder der Bundeskanzlei möglich. + +Eine Situation, die den Abschluss eines völkerrechtlichen Vertrags erfordert, sollte vermieden werden. + +Es gibt zudem zwei Sonderfälle,footnote:[https://www.eda.admin.ch/deza/de/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] in denen eine Zusammenarbeit bereits abgedeckt wäre: + +* Aufträge, die im Rahmen einer internationalen Vereinbarung über die gemeinsame Durchführung eines Projekts durch Signatarstaaten vergeben werden. +* Aufträge, die nach den besonderen Verfahren oder Bedingungen einer internationalen Organisation vergeben werden. + +==== Beschaffungsrechtliche Dimension + +In vielen Fällen findet die Zusammenarbeit zwischen Organisationen des öffentlichen Sektors statt. In solchen Fällen ist die Beschaffung unproblematisch, sofern die Konstellation «staatsintern» ist (siehe link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und Open-Source-Software]). + +Verträge mit ausländischen Unternehmen ohne Sitz in der Schweiz sind möglich, sofern die Anforderungen des Beschaffungsrechts erfüllt sind. + +Die Beschaffung eigener Ressourcen einer Organisation erfolgt im Rahmen eines üblichen Beschaffungsprozesses oder ist bereits abgeschlossen. + +=== Sonderfall: Beitritt zu einer bestehenden Zusammenarbeit + +Dies erfordert sowohl eine rechtliche Grundlage als auch die Einhaltung des Beschaffungsrechts. + +Am einfachsten ist die Beteiligung nach dem Grundsatz «jede Partei trägt ihre eigenen Kosten». Damit lassen sich auch Gemeinkosten abdecken, sofern entweder interne Ressourcen oder korrekt ausgeschriebene externe Ressourcen eingesetzt werden. + +Eine direkte Beteiligung an ausländischen Zusammenarbeiten ist schwieriger. Ein einfacher Zusammenschluss über ein Memorandum of Understanding ist am einfachsten zu erreichen. + +=== Sonderfall: Codebeiträge an Drittprojekte + +Nimmt die Bundesverwaltung Änderungen am Code eines bestehenden OSS-Projekts vor, so ist es sinnvoll, diese Änderungen direkt upstream in das ursprüngliche Projekt einzubringen. Damit muss die laufende Pflege nicht mehr von der Bundesverwaltung geleistet werden. + +Nach Artikel 9 EMBAG sind solche Beiträge sogar erwünscht. Beschaffungsrechtlich ist dies unproblematisch. + +Wichtig ist, dass die Rechtsinhaberin den Beitrag leistet. Das heisst, dass die Bundesverwaltung dies stellvertretend für ihre Mitarbeitenden und Auftragnehmer verantwortet. Konkret ist ein allfälliges Contributor Licence Agreement des Projekts zu unterzeichnen oder ist dem Pull Request ein Developer Certificate of Origin beizulegen. + +Ein **Developer Certificate of Origin**footnote:[https://developercertificate.org/] *(DCO)* für die Bundesverwaltung könnte lauten: + +[quote, 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. +____ + +Der Aufbau eines Contributor Licence Agreement wird in link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung], Kapitel 8.9, beschrieben. + +Die effektive Übergabe des Codes erfolgt nach den Richtlinien des jeweiligen Projekts. + +== Community-Konzept + +Der Kern einer Community sind letztlich ihre Struktur und ihre Governance. Diese werden in einem Community-Konzept festgehalten. + +Das von der Projekt- oder Applikationsverantwortung zu erstellende (oder bei Dritten in Auftrag gegebene) Community-Konzept sollte dieser Kapitelstruktur folgen. Je nach Art der konkreten Community sind nicht alle Unterkapitel nötig. Idealerweise verweisen viele Kapitel auf bereits standardisierte Dokumente oder nutzen Standardprozesse der entsprechenden Repositories. Das Community-Konzept lässt sich auch auf bestehende, von anderen geführte Projekte anwenden, insbesondere wenn die tatsächliche Governance noch nicht schriftlich dokumentiert ist. + +Mit der Formalisierung der Community werden alle Beteiligten zusammengeführt und das Onboarding neuer Beteiligter wird vereinfacht. + +Strukturentwurf eines Community-Konzepts: + +[arabic] +. Übersichtstabelle (Name, Repository, Kontaktadresse, Lizenz, Tiefe des Supports, bestehend/neu) +. Ziele +[loweralpha] +.. der Anwendung +.. der Community +. Organisation +[loweralpha] +.. Eigentümerin des Codes +.. Organisationsform / Gremien +.. Stimmrechte +.. Projektleitung +.. Beschaffungsfragen (sofern zutreffend) +.. Weitere Governance-Aspekte +. Roadmap und Änderungsprozess +. Entwicklungsprozess +[loweralpha] +.. Offene Entwicklung +.. Committer-Rechte +.. Review-Prozess +.. Aufgabenverteilung und Namensnennungen +.. Backups +. Finanzierung der Community +. Marketing +. Umgang mit externen Beiträgen +[loweralpha] +.. Umgang mit gemeldeten Fehlern +.. Umgang mit Anfragen +.. Umgang mit Pull Requests +.. Umgang mit Forks +.. CLA, DCO und Zuweisung von Rechten/geistigem Eigentum +. Betrieb der Anwendung + +Grundsätzlich ist jede Bundesbehörde für die Erstellung der Community-Konzepte verantwortlich. DTI kann bestehende Muster/Beispiele veröffentlichen und nimmt entsprechende Beispiele zur Veröffentlichung entgegen. Sinnvoll ist zudem, dass sich die Community-Managerinnen und -Manager untereinander austauschen. + +Eine mögliche Quelle für Teile ist auch die Dokumentation der Eclipse Foundation,footnote:[Siehe https://www.eclipse.org/projects/handbook/#starting] wobei hier im Sinne von «nur das Nötige tun» ein angemessenes Tailoring vorzunehmen ist. + +== Grundsatzentscheide beim Aufbau einer Community + +Die Grundsätze der Community – oder deren Verzicht – werden anhand von link:em002-4-1-checklist-oss-community.pdf[Em002-4.1] festgelegt. Die massgebenden Grundsatzfragen finden sich im nachstehenden morphologischen Kasten; jede Dimension wird in den folgenden Kapiteln erläutert. + +[.landscape] +[cols="3,2,2,2,2,2",options="header"] +|=== +|Dimension |(a) |(b) |(c) |(d) |(e) + +|A -- Produktmanagement +|Bund +|Gemeinsame Organisation +|Offene Organisation +|Dritte +| + +|B -- Einbindung der Lieferanten +|Auftragnehmer +|Partner +|Unabhängig +|Führung +| + +|C -- Kostenverteilung +|Bund +|Jede und jeder für sich +|Verursacherprinzip +|Verteilschlüssel +|Beitrag + +|D -- Support +|Minimale Freigabe +|Support durch den Bund +|Support durch Dritte +| +| + +|E -- Entwicklung +|Intern +|Dritte +|Offen +| +| +|=== + +_Morphologischer Kasten OSS-Community._ + +Es empfiehlt sich, bei der Gestaltung der Community *primär auf die nahe Zukunft zu fokussieren*; gibt es beispielsweise noch keine konkreten Interessierten für die Anwendung, so ist es meist wenig sinnvoll, eine Community mit einer einfachen Gesellschaft, einem eigenen Verein und komplexen Prozessen für die Entwicklung der Roadmap zu definieren.footnote:[Mit einem Verein (oder einer Stiftung) wird eine eigene juristische Person geschaffen, die sich um die Software und das Produkt kümmert. Dies lohnt sich erst ab einer gewissen Bedeutung, Komplexität und dem Bestehen mehrerer (gleichberechtigter) Partner. Eine Roadmap dient dazu, der breiteren Öffentlichkeit und potenziellen weiteren Nutzenden der Software aufzuzeigen, was geplant ist.]footnote:[Insbesondere bei Projekten, an denen von Anfang an mehrere staatliche Akteure beteiligt sind, kann es auch möglich sein, auf bestehende Stiftungen zuzugehen und zu prüfen, ob die Projekte und die Governance unter deren Dach geführt werden können, analog zu https://finos.org oder https://osr.finos.org oder https://www.eclipse.org/collaborations/ oder https://iot.eclipse.org oder https://outreach.eclipse.foundation/open-regulatory-compliance.] + +=== Produktmanagement + +Je nach Art der Anwendung, ihrer strategischen Bedeutung und ihrem Stand im Lebenszyklus bestehen verschiedene Varianten zur Abbildung des Produktmanagements. Bei Organisationen innerhalb von Bundesbehörden betrifft dies stets die Applikationsverantwortlichen. Für das Community-Konzept besonders relevant sind die Definition der fachlichen und technologischen Roadmap sowie die Release-Prozesse. + +Möglichkeiten: + +[loweralpha] +. *Organisationen innerhalb des Bundes*: Der Bund will die Kontrolle behalten; er definiert die Roadmap allein. +. *Gemeinsame Organisation*: Zusammen mit anderen Nutzenden oder Lieferanten. +. *Offene Organisation*: Lose Verbindungen, keine aktive Roadmap. +. *Dritte*: Entweder besteht das Produkt bereits oder die Arbeit soll ausgelagert werden. + +==== Organisationen innerhalb des Bundes: + +Ist die Anwendung von hoher strategischer Bedeutung oder ist der Bund darauf angewiesen, seine Änderungen rasch umsetzen zu können, so kann es sinnvoll sein, die Kontrolle zu behalten. + +Die Bundesbehörde entscheidet über die Anforderungsverantwortung allein, was wann in die Software einfliesst. + +Für potenzielle andere Nutzende der Anwendung bedeutet dies, dass sie praktisch gezwungen sind, eine eigene Version (Fork) der Anwendung zu verwenden. + +Andernfalls haben sie kaum Möglichkeiten, für sie allenfalls wichtige Anpassungen und Erweiterungen umzusetzen. Dies spricht nicht gegen eine Veröffentlichung als Open Source: Die Werkzeuge zur Codeverwaltungfootnote:[z. B. GitHub] bieten umfangreiche Unterstützung für solche Szenarien, und Anpassungen sowie Fehlerkorrekturen können in beide Richtungen selektiv übernommen werden. + +Eine Kostenteilung ist bei diesem Modell typischerweise schwierig. + +==== Gemeinsam (Bund hat die Führung oder gleichberechtigte Partner) + +Entscheide zu Roadmap und Prioritäten sollten mit den übrigen Mitgliedern der Community abgestimmt und gemeinsam gefällt werden. Der Bund beteiligt sich als Mitglied der Community, ist aber nicht die federführende Organisation. + +Damit die gemeinsame Entscheidfindung funktioniert, müssen Strukturen und Regeln vorgängig festgelegt werden. Damit wird auch definiert, wie die Kosten für die Umsetzung der gemeinsam beschlossenen Anpassungen untereinander aufgeteilt werden. + +Bei diesem Modell entsteht eine einzige Version der Anwendung, die dann von allen Mitgliedern genutzt wird. Dadurch sind die Gesamtkosten im Vergleich zu den anderen Varianten deutlich tiefer. Die Flexibilität der einzelnen Nutzenden ist jedoch geringer, und sie müssen ihre Anpassungswünsche vorgängig mit allen anderen abstimmen. Die Entscheidfindung ist langsamer und aufwendiger. + +Dieses Modell eignet sich am besten für Anwendungen, die gemeinsam mit klar definierten anderen Organisationen (z. B. Kantonen) weiterentwickelt werden sollen. + +==== Offene Organisation + +Bei diesem Modell sind die Prozesse und Strukturen nur lose definiert. Der Bund behält formell die Kontrolle, ist aber offen für Beiträge und Anpassungen. + +Es wird keine oder nur eine sehr grobe Roadmap definiert; der Konsens wird informell und in Diskussionen direkt auf der Veröffentlichungsplattform erreicht. Die Community selbst ist eher dynamisch; Mitglieder können eine Zeit lang sehr aktiv sein und sich dann wieder zurückziehen. + +Dieses Modell eignet sich auch für kleinere Anwendungen, die bereits produktiv im Einsatz und «fertig» sind. Es ist zudem meist die beste Form für technisch orientierte Anwendungen oder Komponenten, die potenziell eine breitere, vorgängig nicht genau bestimmbare Zielgruppe ansprechen. + +==== Dritte + +Bei diesem Modell werden die Prozesse und Strukturen von Dritten definiert und die Bundesbehörde ist Mitglied der Community, hat aber nicht die Führung. Dies kann daher rühren, dass das Projekt beispielsweise von einem anderen Staat oder Kanton definiert wurde. Oder es kann sein, dass der Bund nicht daran interessiert ist, das Programm selbst weiterzuführen, und diese Aufgabe überträgt. + +=== Einbindung der Lieferanten + +Für die Einbindung von Lieferanten bestehen grundsätzlich die folgenden Möglichkeiten: + +[loweralpha] +. *Lieferant als Auftragnehmer*: Er gilt mittelfristig grundsätzlich als ersetzbar. Der Lieferant soll die Anwendung auf Basis von Aufträgen des Produktmanagements (oder der Community) kostengünstig und in hoher Qualität entwickeln, hat aber höchstens beratenden Einfluss auf Roadmap und Priorisierung. +. *Langfristige Partner mit Mitbestimmung*: Sie sollen die Entwicklung aktiv mitbestimmen können. Dies stärkt ihre Rolle und sie sind potenziell bereit, selbst in die Anwendung zu investieren. Typischerweise vertreiben die Lieferanten in diesem Modell die Software und suchen aktiv neue Kundinnen und Kunden. +. *Unabhängig:* Die Lieferanten legen selbst fest, ob und wie sie am Projekt arbeiten wollen. Dies kann etwa vorkommen, wenn mehrere Lieferanten auf Basis der Software eigenes Geschäft generieren wollen. Liberale Lizenzen können dies potenziell fördern. Es kann auch vorkommen, wenn die Strategie des Bundes von jener des Lieferanten abweicht. In diesem Szenario ist wahrscheinlich, dass der Lieferant einen Fork erstellt. +. *Führung*: Übernimmt der Lieferant das Produktmanagement, so hat er die Führung. Die Entwicklung wird dann von ihm bestimmt. Andererseits kann dies auch bedeuten, dass die Bundesverwaltung nur sehr wenig Verantwortung übernehmen muss. Bei einer minimalen Freigabe ist es möglich, dass der Lieferant diese Rolle eigenständig übernimmt. + +Übernimmt der Lieferant eine starke Rolle, so bringt dies Vorteile für die Bundesverwaltung: Durch die aktive Vermarktung der Anwendung besteht die Chance, dass die Community schneller und stärker wächst und so die Kosten pro Mitglied rascher sinken. + +Wird ein Modell mit starker Mitbestimmung der Lieferanten gewählt, so ist darauf zu achten, dass daraus keine Abweichung von beschaffungsrechtlichen Vorgaben resultiert. In der Regel empfiehlt es sich, mindestens zwei Lieferanten einzubeziehen, um keine zu starke Abhängigkeit von einem einzigen Lieferanten zu schaffen. Zudem sollte die Möglichkeit bestehen, dass weitere Lieferanten der Community beitreten. + +=== Kostenverteilung + +Für die Aufteilung der Kosten für Wartung, Weiterentwicklung und neue Funktionen stehen die folgenden Optionen zur Verfügung: + +[loweralpha] +. *Organisationen innerhalb des Bundes*: Insbesondere beim Aufbau von Ökosystemen oder wenn die Bundesbehörde die volle Kontrolle behalten will, muss die Bundesbehörde auch die Kosten tragen. +. *Jede und jeder für sich*: Alle bezahlen die von ihnen gewünschten Änderungen selbst. Nötigenfalls wird im Einzelfall entschieden, bestimmte Erweiterungen gemeinsam zu bezahlen. Wiederkehrende Kosten werden nach einem Verteilschlüssel oder nach Bedarf verrechnet. +. *Verursacherprinzip*: Wer die Leistungen oder Funktionen tatsächlich benötigt, bezahlt dafür. Es können standardisierte Stundensätze angewendet werden. +. *Verteilschlüssel*: Die Kosten werden innerhalb der Community nach einem definierten Schlüssel aufgeteilt. Davon weichen nur spezifische Erweiterungen ab. Diese sollten direkt von den betroffenen Nutzenden bezahlt werden. Der Kostenteiler kann beispielsweise die Grösse des betroffenen Kantons oder die Zahl der Nutzenden sein. Zum Verteilschlüssel siehe auch das Kapitel «Kostenaufteilung». +. *Beitrag*: Wenn die Bundesbehörde lediglich Personal in ein bestehendes Projekt einbringt. + +Grundsätzlich ist Variante b (Kostenteilung) in der Regel nur dann sinnvoll, wenn auch ein gemeinsames Produktmanagement wie in Variante b (gemeinsam) besteht. Nur wer mitreden kann, wird bereit sein, die Folgekosten der Entscheide zu tragen. + +=== Support + +Im Rahmen von Kostenverteilung und Aufwand ist zu klären, wer welchen Support leistet. Nach Art. 9 EMBAG ist eine reine minimale Freigabe möglich. Diese Variante erzielt unter Umständen nicht die gewünschte Wirkung und baut für sich genommen keine Community auf, in der die Bundesbehörde Einfluss hat. + +[loweralpha] +. *Minimale Freigabe*: Kein Support (d. h. die Freigabe erfolgt in der Regel ohne organisierten Support und ohne Beteiligung der Bundesbehörde). +. *Support durch den Bund*: Die Bundesbehörde (oder ihr Leistungserbringer) leistet definierten Support. +. *Support durch Dritte*: Die Bundesbehörde oder die Community definiert eine Supportorganisation. + +Die zu erzielende Wirkung, etwa auf das Schweizer Ökosystem oder eine Anschubfinanzierung einer Community, kann dazu führen, dass der Bund Support leistet. Der Umfang des Supports ist selbstverständlich zu definieren. Grundsätzlich kann auch eine Gebühr erhoben werden. Aufgrund der Mechanismen des Bundes dürften Leistungserbringer oder Lieferanten eher in der Lage sein, kommerziellen Support anzubieten. + +Ämter dürfen nach EMBAG kostenpflichtigen Support anbieten (allenfalls auch über Leistungserbringer und Dritte). Dazu müssen sie die entsprechenden Gebühren auf ihrer Website veröffentlichen, da die nötige gesetzliche Grundlage besteht. Die Anbindung an das Zahlsystem kann mit dem EFD besprochen werden. + +Beispiele für Support und Gebühren finden sich in Anhang G. + +=== Entwicklung + +Auch die grundsätzliche Methodik der Entwicklung kann Einfluss auf die Art der Community haben. + +[loweralpha] +. *Intern*: Die Nutzung interner Repositories bedeutet, dass Dritte nicht direkt mitarbeiten können. Je strikter die Trennung, desto mehr Integrationsaufwand hat der Bund zu leisten, wenn er Erweiterungen Dritter übernehmen will. Auch der Freigabeprozess ist aufwendiger. +. *Dritte*: Entweder arbeitet ein Lieferant eigenständig, oder das bereits von Dritten gestartete bzw. geführte Produkt wird nach definierten Regeln entwickelt. +. *Offen*: Die Softwareentwicklung erfolgt direkt in einem öffentlichen Repository. Die Freigabe nach EMBAG ist damit weitgehend gewährleistet. Die Aufwände fallen während der Entwicklung an. In diesem Szenario kann die Zusammenarbeit mit Dritten auch früher (und einfacher) erfolgen. + +== Detaillierte Inhalte für das Community-Konzept + +Dieses Kapitel gibt Hinweise zum Verfassen des Community-Konzepts auf Basis der getroffenen Grundsatzentscheide (gemäss Kapitel 5). + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +offen / Partner / Bund:: +Inhalte oder Vorschläge, wenn die Grundsatzentscheide lauten: + +Produktmanagement c) Offene Organisation + +Einbindung der Lieferanten: b) Lieferant als Partner + +Kostenverteilung: b) Jede und jeder für sich + +_Der obige Text kann in die Vorlage kopiert und angepasst werden._ + +Gemeinsam / - / Jede und jeder für sich:: +Inhalte oder Vorschläge, wenn die Grundsatzentscheide lauten: + +Produktmanagement b) Gemeinsame Entwicklung + +Einbindung der Lieferanten: a) oder b) (nicht relevant) + +Kostenverteilung: c) Verursacherprinzip oder d) Kostenteilung + +Gemeinsam / - / Verursacher:: +{empty} + +Das Community-Konzept sollte ein dynamisches Dokument sein, das in Absprache mit der Community angepasst werden kann. Das Konzept sollte die aktuelle Situation abbilden und künftige Entwicklungsoptionen vorschlagen. Treten später weitere Mitglieder der Community bei, so können Organisation und Prozesse weiter ausgearbeitet und komplexere Mechanismen eingeführt werden. Die folgenden Unterkapitel folgen direkt der vorgeschlagenen Struktur des Community-Konzepts (siehe Kapitel 4). + +Liegt das Produktmanagement bei Dritten, so definieren diese die Konzepte für die Community. + +=== Eckdaten + +Die folgenden Eckdaten sollten für jede Community erarbeitet und veröffentlicht werden, damit sich potenziell Interessierte für die Software und die Community anmelden können: + +* Name der Software +* Repository +* Eigentümerin +* Verantwortliche Organisationseinheit/Amt +* Kontaktadresse +* Verwendete Lizenz +* Supportstufe +* Bestehendes Projekt + +Diese Angaben lassen sich alle mit publiccode.yml abbilden.footnote:[https://yml.publiccode.tools/] + +=== Ziele + +Das Ziel sollte den eigentlichen Zweck oder die «Vision» der Anwendung enthalten. Diese Vision sollte auch in der Datei *README.md* im Repository aufgeführt werden (siehe link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung]). + +Gleichzeitig sollte auch beschrieben werden, was die Community anstrebt: + +* Wer soll beitreten? +* Wer sind die potenziell Interessierten? +* Sollen neue Mitglieder aktiv gesucht werden? +* Welches sind die Hauptziele, die mit der Veröffentlichung als Open Source verfolgt werden? + +=== Organisation und Governance + +Grundsätzlich wird bei Neuentwicklungen angestrebt, dass der Bund Inhaber der Hauptrechte am Quellcode ist. + +Die Art der Projektführung hängt davon ab, welche Organisation beim Bund die Führung hatte (SAFe, HERMES). Bei der Organisationsform ist stets ein minimaler Overhead anzustreben (bestehendes statt neues Gefäss; einfache Gesellschaft statt Verein). + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +Bund / - / Intern:: +Da der Bund die direkte Kontrolle behält, sind keine zusätzlichen Organisationsstrukturen nötig. + +Die veröffentlichende Stelle (z. B. ein Bundesamt) bleibt Eigentümerin und übernimmt sämtliche Koordinationsaufgaben. In diesem Fall kann das Kapitel «Organisation» sehr kurz gehalten werden. + +Gemeinsam / - / Intern:: +Für dieses Szenario wird in der Regel die Organisation als *einfache Gesellschaft* empfohlen. + +Damit die gemeinsame Entwicklung und die Abstimmung von Roadmap und Anforderungen möglich sind, empfiehlt es sich, zwei Gremien mit je einer teilnehmenden Person pro Community-Mitglied zu bilden: ++ +-- +* Steuerungsgremium: definiert Strategie und Priorisierung. +* Fachgruppe: erarbeitet Anforderungen und konkrete Inhalte auf Fachebene. Je nach Umfang kann auch je Thema eine eigene Fachgruppe eingesetzt werden. +-- ++ +Eigentümerin des Codes ist das Amt, das ihn veröffentlicht hat. ++ +Werden die Strukturen komplexer oder sind mehr als fünf Nutzende bzw. zusätzliche Mitglieder beteiligt, so kann es sich lohnen zu prüfen, ob die Community besser als Verein organisiert werden sollte. Vergleiche die Erläuterungen in der Variante direkt darunter. + +Gemeinsam / - / Dritte:: +Empfohlen wird die Organisation als *Verein*. + +Entweder wird eigens für die Anwendung ein Verein gegründet, oder die Anwendung wird an einen bestehenden Verein übertragen. Ein Verein wird empfohlen, weil sonst die Kostenverteilung komplex wird und innerhalb der Koordinationsaufgaben voraussichtlich genügend Arbeit anfällt, um eine Geschäftsführung in Teilzeit für den Verein anzustellen. ++ +Die Rechte am Code werden dann an den Verein übertragen, der das Community-Management und die Bestellungen bei Lieferanten übernimmt. + +Gemeinsam / Auftragnehmer / Intern:: +Empfohlen wird die Organisation als *Verein*. Entweder wird eigens für die Anwendung ein Verein gegründet, oder die Anwendung wird an einen bestehenden Verein übertragen. Ein Verein wird empfohlen, weil sonst die Kostenverteilung komplex wird und innerhalb der Koordinationsaufgaben voraussichtlich genügend Arbeit anfällt, um eine Geschäftsführung in Teilzeit für den Verein anzustellen. ++ +Die Rechte am Code werden dann an den Verein übertragen, der das Community-Management und die Bestellungen bei Lieferanten übernimmt. + +Hier sind die Lieferanten nicht Mitglieder des Vereins, sondern lediglich Auftragnehmer. Die Geschäftsführung sollte nicht von einem Lieferanten gestellt werden. + +Gemeinsam / Auftragnehmer / Dritte:: +Empfohlen wird die Organisation als *Verein*. Entweder wird eigens für die Anwendung ein Verein gegründet, oder die Anwendung wird an einen bestehenden Verein übertragen. Ein Verein wird empfohlen, weil sonst die Kostenverteilung komplex wird und innerhalb der Koordinationsaufgaben voraussichtlich genügend Arbeit anfällt, um eine Geschäftsführung in Teilzeit für den Verein anzustellen. + +Die Rechte am Code werden dann an den Verein übertragen, der das Community-Management und die Bestellungen bei Lieferanten übernimmt. + +Die Lieferanten sind Mitglieder des Vereins; die Geschäftsführung kann auch von einem Lieferanten gestellt werden. + +offen / - / Intern:: +Es besteht *kein Bedarf für eine detaillierte Beschreibung einer Organisation*, da sie bewusst offen gestaltet ist. Wichtig ist jedoch festzulegen, wer externe Anfragen entgegennimmt und bearbeitet (Verantwortung). Zudem ist zu bestimmen, ob und in welchem Umfang externe Personen einbezogen werden können: ++ +-- +* Keine direkte Einbindung: Externe können nur Vorschläge und Beiträge einreichen (als Pull Requests). +* Einbindung als Contributors: Externe, die häufig und gute Beiträge leisten, werden direkt eingebunden. +* Übergabe an Externe möglich: Tragen nach der Veröffentlichung Externe mehr zur Weiterentwicklung bei als die veröffentlichende Organisation, so kann die Anwendung auch an sie übertragen werden. +-- ++ +Die veröffentlichende Organisation bleibt Eigentümerin. Diese Variante entspricht der Organisation «klassischer» Open-Source-Projekte; siehe für weitere Informationen beispielsweise https://opensource.guide/leadership-and-governance/. + +offen / Auftragnehmer / Intern:: +Es besteht *kein Bedarf für eine detaillierte Beschreibung einer Organisation*, da sie bewusst offen gestaltet ist. Wichtig ist jedoch festzulegen, wer externe Anfragen entgegennimmt und bearbeitet (Verantwortung). Zudem ist zu bestimmen, ob und in welchem Umfang externe Personen einbezogen werden können: ++ +-- +* Keine direkte Einbindung: Externe können nur Vorschläge und Beiträge einreichen (als Pull Requests). +* Einbindung als Contributors: Externe, die häufig und gute Beiträge leisten, werden direkt eingebunden. +* Übergabe an Externe möglich: Tragen nach der Veröffentlichung Externe mehr zur Weiterentwicklung bei als die veröffentlichende Organisation, so kann die Anwendung auch an sie übertragen werden. +-- ++ +Die veröffentlichende Organisation bleibt Eigentümerin. + +Diese Variante entspricht der Organisation «klassischer» Open-Source-Projekte; siehe für weitere Informationen beispielsweise https://opensource.guide/leadership-and-governance/. + +Der Lieferant sollte nur rein technische Koordinationsaufgaben übernehmen (Code-Review, Beurteilung). + +Dritte / Partner / Intern:: +Es besteht *kein Bedarf für eine detaillierte Beschreibung einer Organisation*, da sie bewusst offen gestaltet ist. Wichtig ist jedoch festzulegen, wer externe Anfragen entgegennimmt und bearbeitet (Verantwortung). Zudem ist zu bestimmen, ob und in welchem Umfang externe Personen einbezogen werden können: ++ +-- +* Keine direkte Einbindung: Externe können nur Vorschläge und Beiträge einreichen (als Pull Requests). +* Einbindung als Contributors: Externe, die häufig und gute Beiträge leisten, werden direkt eingebunden. +* Übergabe an Externe möglich: Tragen nach der Veröffentlichung Externe mehr zur Weiterentwicklung bei als die veröffentlichende Organisation, so kann die Anwendung auch an sie übertragen werden. +-- ++ +Die veröffentlichende Organisation bleibt Eigentümerin. Diese Variante entspricht der Organisation «klassischer» Open-Source-Projekte; siehe für weitere Informationen beispielsweise https://opensource.guide/leadership-and-governance/. + +Bezüglich Governance können auch _[BITKOM2023]_ Kapitel 4.1, _[IZqCab2023]_ oder https://github.com/todogroup/ospo-career-path/blob/main/OSPO-101/module7/README.md#governance-models beigezogen werden. + +Beispiele für Vereinsstatuten finden sich in Anhang E. + +Hinweis: Da die Freigabe nach Art. 9 EMBAG gewährleistet sein muss, hat die Bundesverwaltung sicherzustellen, dass die Veröffentlichung nicht plötzlich zurückgezogen werden kann (siehe «Wegleitung Open Source in der Beschaffung – Softwareeinkauf nach Art. 9 EMBAG» _[BBL-WL]_, Ziffer V.2). + +=== Roadmap und Änderungsprozess + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +Bund / Auftragnehmer / -:: +Die Bundesbehörde definiert die Roadmap und entscheidet, welche Änderungen umgesetzt werden. Dafür werden die Standardprozesse des Amtes XY verwendet. + +Bund / Partner / -:: +Die Bundesbehörde definiert die Roadmap in Zusammenarbeit mit der Firma XY. Sie entscheidet, welche Änderungen umgesetzt werden. Dafür werden die Standardprozesse des Amtes XY verwendet. + +Gemeinsam / - / Intern:: +Der Prozess zur Entwicklung der Roadmap und zur Genehmigung von Änderungen ist von den Mitgliedern der Gesellschaft oder des Vereins festzulegen. Je nach Mitgliederstruktur (Anzahl, Grössenverhältnis usw.) können andere Prozesse angemessen sein. + +Die Prozesse müssen jedoch Massnahmen zur Konfliktlösung und Mehrheitsfindung enthalten. + +Gemeinsam / - / Dritte:: +Der Prozess zur Entwicklung der Roadmap und zur Genehmigung von Änderungen ist von den Mitgliedern der Gesellschaft oder des Vereins festzulegen. Je nach Mitgliederstruktur (Anzahl, Grössenverhältnis usw.) können andere Prozesse angemessen sein. ++ +Die Prozesse müssen jedoch Massnahmen zur Konfliktlösung und Mehrheitsfindung enthalten. ++ +Mit dem Zusatz, dass auch ein Kostenverteilschlüssel festzulegen ist. Zu überlegen ist zudem, wie mit der Kostenteilung für Anpassungen umzugehen ist, die von den betreffenden Mitgliedern nicht gewünscht sind. Insbesondere in Vereinen mit unterschiedlich grossen Mitgliedern können Situationen entstehen, in denen ein grosses Mitglied (z. B. die Bundesbehörde) einen erheblichen Teil der Kosten für eine Erweiterung trägt, ohne daraus einen Nutzen zu ziehen. + +offen / - / -:: +_Beispiel, nicht für alle Situationen geeignet_ + +Es besteht kein Bedarf, eine Roadmap zu erstellen; die Anwendung erfüllt die Bedürfnisse derzeit. ++ +Über Änderungen wird in einer offenen Diskussion entschieden und ein Konsens angestrebt. Der endgültige Entscheid liegt bei der Eigentümerin des Codes (Schweizerische Eidgenossenschaft). + +=== Entwicklungsprozess + +Kommt offene Entwicklung zum Tragen, so ist dies hier zu definieren. Wichtig sind die Aufgabenverteilung und die Nennung zentraler Stellen im Community-Konzept. Ebenso, wie die Sicherheit der Repository-Inhalte gewährleistet wird. + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +Bund / - / -:: +Die Committer-Rechte (Schreibzugriff auf den Code) liegen bei den vom Bund ausgewählten Personen/Stellen/Lieferanten. Nach Ablauf des Vertrags werden die jeweiligen Rechte entzogen. ++ +Die Leistungserbringer und Lieferanten sind für die Durchführung des technischen Code-Review-Prozesses für externe Beiträge verantwortlich, die vom Bund fachlich angenommen wurden. Sie sind für die technische Qualität verantwortlich. Die Lieferanten werden für diese Arbeit vom Bund entschädigt. + +Gemeinsam / Auftragnehmer / Intern:: +Grundsätzlich erhalten alle von einem Community-Mitglied beauftragten Stellen Schreibzugriff auf den Code (Committer-Rechte). Nach Ablauf des Vertrags werden die jeweiligen Rechte entzogen. ++ +Betrifft geänderter Code Kernbereiche der Anwendung, so müssen alle Änderungen von einer eigens dafür von der Community beauftragten Stelle geprüft werden. Diese Stelle ist für die technische Qualität der Anwendung verantwortlich. Sie ist zudem für die Prüfung von Änderungen zuständig, die von der Community fachlich angenommen wurden. + +Gemeinsam / Partner / Dritte:: +Die Committer-Rechte (Schreibzugriff auf den Code) liegen bei den Mitgliedern der Community. Diese Personen organisieren sich selbst und tragen gemeinsam die Verantwortung für die Qualität des Codes. ++ +Beauftragt ein Community-Mitglied einen externen Lieferanten für eine Anpassung oder Erweiterung, so wird die Anpassung von einem Mitglied der Community geprüft. Es wird dafür vom Auftraggeber entschädigt. ++ +Änderungen am Kern der Anwendung müssen von einem zweiten Mitglied der Community geprüft werden. ++ +Die Lieferanten, die Community-Mitglieder sind, sind zudem für die Prüfung externer Beiträge und neuen technischen Codes verantwortlich, der vom Verein fachlich angenommen wurde. + +offen / - / -:: +Anfänglich liegen die Committer-Rechte bei den Entwickelnden oder ihren Arbeitgebern. Committer-Rechte werden allen Entwickelnden erteilt, die während mehrerer Monate aktiv zum Projekt beitragen und angemessene Sozialkompetenz zeigen. ++ +Die einzelnen Entwickelnden behalten ihre Committer-Rechte grundsätzlich, auch wenn sie den Arbeitgeber wechseln oder der Bund einen anderen Lieferanten wählt. Committer-Rechte erlöschen nur, wenn sie freiwillig abgegeben werden oder die Mehrheit der übrigen Committer deren Entzug beschliesst. ++ +Der Bund hat das Recht, einzelne Entwickelnde der von ihm beauftragten Unternehmen als Committer zu benennen. Er hat nicht das Recht, jemandem die Committer-Rechte ohne Grund zu entziehen. ++ +Code-Reviews werden von mindestens einer Person durchgeführt, die als Committer tätig ist. Die Committer organisieren sich selbst. ++ +Der Bund verpflichtet sich, die Review-Arbeit zu entschädigen, soweit dies für ihn finanziell machbar ist. + +=== Kostenteilung und Lieferanten + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +Bund / Auftragnehmer / Intern:: +Die Lieferanten werden periodisch über WTO-Ausschreibungen oder ein freihändiges Verfahren ausgewählt (je nach Umfang der Wartungsleistungen). + +Bund / Partner / -:: +*Wichtig:* Vorgängig prüfen, ob dies im konkreten Fall beschaffungsrechtlich zulässig ist. ++ +Wir werden die Dokumentation zu diesem Punkt ergänzen. Der Bund wählt den Lieferanten XXX als strategischen Partner und strebt eine langfristige Zusammenarbeit an. + +Gemeinsam / Auftragnehmer / Intern:: +Jedes Mitglied der Community beauftragt eigenständig einen oder mehrere Softwarelieferanten mit der Umsetzung der von ihm benötigten Anpassungen und Erweiterungen. Für Anpassungen, die von mehreren Mitgliedern gewünscht werden, wird die Kostenteilung im Einzelfall vereinbart. Das Mitglied mit dem grössten Kostenanteil ist für die Auswahl und Beauftragung des Lieferanten verantwortlich. (Regelungen zur Softwarewartung) + +Gemeinsam / Auftragnehmer / Dritte:: +Der Verein wählt die Softwarelieferanten periodisch zentral über WTO-Ausschreibungen oder freihändige Verfahren aus (je nach Umfang der Wartungsleistungen). Die Kosten werden den Mitgliedern nach einem Schlüssel zugewiesen: (festzulegen: nach Bevölkerung, Nutzenden usw.) + +Gemeinsam / Partner / Intern:: +Jedes Mitglied der Community beauftragt eigenständig einen oder mehrere Softwarelieferanten mit der Umsetzung der von ihm benötigten Anpassungen und Erweiterungen. Für Anpassungen, die von mehreren Mitgliedern gewünscht werden, wird die Kostenteilung im Einzelfall vereinbart. Das Mitglied mit dem grössten Kostenanteil ist für die Auswahl und Beauftragung des Lieferanten verantwortlich. ++ +_(Regelungen zur Softwarewartung)_ Nötigenfalls ergänzt durch einen Beitrag der beteiligten Lieferanten. Beispiel: _Jedes Softwareentwicklungsunternehmen, das Mitglied der Community ist, verpflichtet sich, jährlich mindestens XY Arbeitstage auf eigene Kosten in die Weiterentwicklung, die technologische Aktualisierung oder das Marketing der Anwendung zu investieren._ + +Gemeinsam / Partner / Dritte:: +Der Verein wählt die Softwarelieferanten periodisch zentral über WTO-Ausschreibungen oder freihändige Verfahren aus (je nach Umfang der Wartungsleistungen). Die Kosten werden den Mitgliedern nach einem Schlüssel zugewiesen: (festzulegen: nach Bevölkerung, Nutzenden usw.) Nötigenfalls ergänzt durch den Zusatz: _Jedes Softwareentwicklungsunternehmen, das Mitglied der Community ist, verpflichtet sich, jährlich mindestens XY Arbeitstage auf eigene Kosten in die Weiterentwicklung, die technologische Aktualisierung oder das Marketing der Anwendung zu investieren._ + +Dritte / Auftragnehmer / -:: +Die Lieferanten werden periodisch über WTO-Ausschreibungen oder ein freihändiges Verfahren ausgewählt (je nach Umfang der Wartungsleistungen). Mit dem Zusatz: _Die von potenziellen Lieferanten beigetragenen Verbesserungen und Aktivitäten in der Community werden als Faktor in der Bewertung berücksichtigt._ ++ +Von Externen gewünschte Änderungen werden nicht vom Bund finanziert, sondern müssen von diesen selbst in Auftrag gegeben und bezahlt werden. + +Dritte / Partner / -:: +Die Lieferanten werden periodisch über WTO-Ausschreibungen oder ein freihändiges Verfahren ausgewählt (je nach Umfang der Wartungsleistungen). Mit dem Zusatz: _Die von potenziellen Lieferanten beigetragenen Verbesserungen und Aktivitäten in der Community werden als Faktor in der Bewertung berücksichtigt. Von Externen gewünschte Änderungen werden nicht vom Bund finanziert, sondern müssen von diesen selbst in Auftrag gegeben und bezahlt werden._ + +=== Marketing + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +Bund / Auftragnehmer / -:: +Der Bund vermarktet die Anwendung nicht aktiv, veröffentlicht sie aber auf Open-Source-Softwareplattformen. Die Veröffentlichung der Anwendung wird in Fachgremien bekannt gegeben. Melden sich Interessierte, so prüfen wir, ob eine gemeinsame Community aufgebaut oder mit deren Version der Software weitergearbeitet wird. + +Gemeinsam / Partner / -:: +Zusätzlich: + +Lieferanten dürfen die Anwendung vermarkten und weitere Interessierte suchen. Der Bund darf als Referenz genannt werden. Wir nehmen bewusst in Kauf, dass dadurch abweichende Versionen der Software entstehen können. + +Gemeinsam / Auftragnehmer / Intern:: +Die Anwendung wird von den Mitgliedern oder vom Verein vermarktet. + +Gemeinsam / Partner / Intern:: +Die Anwendung wird von den Lieferanten vermarktet. + +Gemeinsam / - / Dritte:: +Die Anwendung wird vom Verein, von der einfachen Gesellschaft und deren Mitgliedern vermarktet. + +offen / - / -:: +Die Anwendung darf von Lieferanten vermarktet werden, oder es kann auf explizites Marketing verzichtet werden. ++ +Alternative ohne explizites Marketing: Der Bund vermarktet die Anwendung nicht aktiv, veröffentlicht sie aber auf Open-Source-Softwareplattformen. In Fachgremien weisen wir darauf hin, dass wir die Anwendung veröffentlicht haben und dass eine Zusammenarbeit willkommen ist. Wir zeigen Interessierten die Software und versuchen, sie in unsere Prozesse zur Gestaltung der Roadmap einzubinden. + +=== Umgang mit externen Beiträgen + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +Bund / Auftragnehmer / -:: +Externe Beiträge und Anfragen müssen auch dann bearbeitet werden, wenn der Bund alleiniger Entscheidträger bezüglich der Software bleibt (ausser bei minimaler Freigabe, wo ein Fork unvermeidlich ist). Wir schlagen folgendes Vorgehen vor: ++ +*Umgang mit gemeldeten Fehlern* + +Wir versuchen, von externen Personen gemeldete Fehler zu reproduzieren, und fragen nötigenfalls nach. Gelingt die Reproduktion, so gibt der Bund die Fehlerbehebung in Auftrag. Lässt sich der Fehler nicht verifizieren oder ist der Aufwand zu dessen Behebung unverhältnismässig hoch, so entschuldigen wir uns bei der meldenden Person und fragen, ob sie einen Pull Request zur Behebung einreichen könnte. ++ +*Umgang mit Anfragen* + +Wir beantworten jede eingehende Anfrage. Lässt sich eine Anfrage nicht mit vertretbarem Aufwand klären und erscheint ein weiterer Zeiteinsatz ineffizient, so entschuldigen wir uns unter Hinweis auf beschränkte Ressourcen und bieten an, die anfragende Person für die weitere Beratung mit einem Lieferanten in Kontakt zu bringen. ++ +*Umgang mit Pull Requests* + +Wir prüfen jeden Pull Request sorgfältig. Um unnötigen Aufwand auf Seiten der beitragenden Person zu vermeiden, weisen wir sofort darauf hin, wenn etwas unserer Roadmap widerspricht oder fraglich ist, ob wir den Beitrag annehmen. Der Bund entscheidet eigenständig und nach fachlichen Kriterien, welche Beiträge er annimmt. Fehlerkorrekturen, die den Review-Prozess bestanden haben, werden immer angenommen. ++ +*Umgang mit Forks* + +Wir unterstützen Forks unserer Anwendung. Wer die Anwendung einführt, sollte einen eigenen Fork erstellen. Wir prüfen die entstehenden Forks mindestens einmal jährlich und übernehmen gute und passende Erweiterungen. + +Gemeinsam / - / -:: +Extern bezeichnet Beiträge von ausserhalb der definierten Community (Vereinsmitglieder). Abweichungen von oben: + +*Umgang mit Forks* + +Wir wollen (langlebige) Forks der Anwendung verhindern. Interessierte sollen stattdessen der Community direkt beitreten. Innerhalb der Community versuchen wir sicherzustellen, dass alle Mitglieder die Hauptversion nutzen. + +Offen / - / -:: +Der Aufbau einer funktionierenden Community und einer offenen Kultur ist uns wichtig. ++ +*Umgang mit gemeldeten Fehlern* + +Wir versuchen, gemeldete Fehler zu reproduzieren und zu beheben. Wir setzen die aktive Mitwirkung der meldenden Personen voraus. Wenn möglich sollten sie direkt einen Pull Request mit einer Fehlerkorrektur erstellen. ++ +*Umgang mit Anfragen* + +Wir behandeln jede Anfrage innerhalb von höchstens einer Woche. Anfragen aktiver Beitragender werden mit Priorität und vertieft behandelt. Wir versuchen, andere Mitglieder in die Bearbeitung von Anfragen einzubeziehen. ++ +*Umgang mit Pull Requests* + +Wir wollen möglichst viele qualitativ hochwertige Pull Requests erhalten. Wir beziehen alle aktiven Beitragenden in die Reviews und die technische und fachliche Beurteilung von Pull Requests ein. Bei umstrittenen Beiträgen versuchen wir, über eine informelle Abstimmung zu einem Entscheid zu gelangen. ++ +*Umgang mit Forks* + +Wir versuchen, Forks durch aktives und offenes Community-Management unnötig zu machen. Entstehen dennoch Forks, so prüfen wir diese aktiv und versuchen, die dort entwickelten Erweiterungen und Verbesserungen zu übernehmen. In solchen Fällen fordern wir aktiv Pull Requests an. + +Allgemein ist festzuhalten, dass Beiträge von der Unterstützung anderer Nutzender bis zur Übernahme der Verantwortung für ganze Teile eines Projekts reichen können (siehe _[BITKOM2023]_ Kapitel 4.2). + +=== Betrieb der Anwendung + +_Produktmanagement / Lieferant als / Entwicklung -- Vorschlag_ + +Gemeinsam / - / -:: +Ein zentraler Betrieb kann optional zusätzlich vom zentralen Verein angeboten werden, im Sinne von Software as a Service (SaaS). Es ist zu prüfen, ob dies gewünscht ist. + +- / Partner / -:: +Es ist festzulegen, ob der Lieferant die Software auch betreiben soll. + +- / Führung / -:: +Es ist festzuhalten, dass der Lieferant für den Betrieb verantwortlich ist. + +Supportstufen und Supportkontakte sollten in diesem Kapitel ebenfalls festgelegt werden. + +== Wichtige Informationen für Community-Managerinnen und -Manager + +=== Es braucht Zeit + +Der Aufbau von Communities ist etwas, das langfristig geplant werden sollte. Ausdauer und Beständigkeit sind zwei wichtige Eigenschaften für eine erfolgreiche Community. + +=== Weitere Anregungen zum Community-Aufbau + +Weitere Anregungen für ein gutes Community-Management finden sich unter https://opensource.guide/code-of-conduct/ und https://opensource.guide/best-practices/. + +=== Kommunikation + +Die Veröffentlichung von Software und Dokumentation eröffnet der Bundesverwaltung einen neuen Kommunikationskanal. Geschieht dies nicht sorgfältig und professionell, so kann das öffentliche Ansehen des Bundes leiden. + +OSS-Communities in der Bundesverwaltung stehen bezüglich Kommunikation in einem Spannungsfeld: Einerseits gelten die allgemeinen *Vorgaben für die Kommunikation*, andererseits soll die Community eine *einfache formelle und informelle Zusammenarbeit* über Organisationsgrenzen hinweg ermöglichen, vorzugsweise ohne formelle Qualitätskontrollen und Freigaben. + +Die Nutzung öffentlicher Repositories und allenfalls öffentlicher Issue-Trackings und Wikis bedeutet, dass Äusserungen einzelner Projektmitarbeitender ungefiltert für die Öffentlichkeit sichtbar sind. Dies verlangt von den Projektmitarbeitenden ein professionelles Auftreten und die Einhaltung von Qualitätsstandards für Veröffentlichungen in solchen Umgebungen. + +In OSS-Projekten wird dies normalerweise über den *Code of Conduct* geregelt. Der Verhaltenskodex der Bundesverwaltungfootnote:[https://www.epa.admin.ch/dam/epa/de/dokumente/aktuell/medienservice/120_verhaltenskodex_d.pdf.download.pdf/120_verhaltenskodex_d.pdf] ist sehr allgemein gehalten, doch der Kerngrundsatz ist hier anwendbar: «Die Mitarbeitenden erfüllen ihre Aufgaben verantwortungsbewusst, integer und loyal. Auch im Privatleben achten sie darauf, das Ansehen, die Glaubwürdigkeit und das Image des Bundes nicht zu beeinträchtigen.» + +=== Offene Entwicklung + +Ist die Softwareentwicklung von Anfang an in einem offenen Repository geplant, so erfolgt die Freigabe automatisch. Die massgebenden Checklisten nach der Anleitung link:em002-2.pdf[Em002-2] sind zu Beginn auszufüllen, und die Entwicklungsprozesse des Leistungserbringers bzw. Lieferanten müssen dies zulassen. Der Vorteil ist, dass die Community von Anfang an aufgebaut werden kann. Mehrere Organisationen können zudem gemeinsam an der Entwicklung mitwirken. + +Geschlossene Repositories sind eine Zwischenform, werden aber für andere Partner in einer Zusammenarbeit eingesetzt. + +=== Benutzerverwaltung + +Das Projekt (oder die Trägerorganisation) legt fest, ob Entwickelnde und andere Projektmitarbeitende unter eigenem Namen oder anonym am Projekt arbeiten. Arbeiten die Personen nicht anonym und verfügen sie bereits über Logins auf den Plattformen, so ist es am einfachsten, diese zu verwenden (ob geschäftlich oder privat). + +Die Plattform sollte grundsätzlich die Einbindung Dritter erlauben, da sonst keine Entwickelnden ausserhalb des Bundes mitarbeiten können. + +Beim Verlassen des Projekts sind die entsprechenden Rechte am Projekt zu löschen. Dafür ist das Produktmanagement verantwortlich. + +=== Zusammenführung von Communities + +Wo möglich sollte die Zahl der Communities klein gehalten werden. Das bedeutet: + +* Besteht bereits eine Community, in der für ähnliche Probleme mit denselben Personen eine ähnliche Struktur vorgesehen ist, so sollte eine einzige Community genutzt werden. +* Mehrere Projekte, die zusammenhängen und dieselbe Zielgruppe ansprechen, können zu einer Community zusammengeführt werden. +* Es sollten nicht unnötig grundlegend andere Community-Strukturen geschaffen werden, wo bereits bestehende vorhanden sind. + +=== Umgang mit Beiträgen Dritter + +Der Beitrag von Software an andere Projekte wird in Kapitel 3.3 behandelt. Die gleichen Grundsätze gelten umgekehrt. + +Wichtig sind die folgenden Punkte: + +* Es muss ein geeignetes Contributor Licence Agreement verwendet werden, um sicherzustellen, dass der Quellcode anschliessend dem Bund gehört (siehe auch link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung], Kapitel zu den Contributor Licence Agreements). Dieses ist von der Eigentümerin bzw. dem Eigentümer des Beitrags zu unterzeichnen. +* Bestätigungen sind abzulegen. +* Beiträge sind vor der Integration in die Codebasis zu prüfen. +* Eingaben sollten zeitnah beantwortet (Issues, Requests, Pull Requests) und möglichst konstruktiv behandelt werden. +* Sämtliche Kanäle und Governance-Regelungen sollten im Community-Konzept, auf der Website und im Repository aufgeführt werden. + +=== Sicherheitsrelevante Meldungen + +Neben üblichen Fehlermeldungen ist – wo es die Art des Projekts erfordert – vorzusehen, dass sicherheitsrelevante Schwachstellen vertraulich gemeldet werden können, wie dies beispielsweise bei einem Bug-Bounty-Programm der Fall ist. + +Als Beispiel können die Dokumente von trustbroker.swiss dienen: + +* https://github.com/trustbroker-swiss/trustbroker.swiss/blob/main/Security-and-Vulnerability-Disclosure.md + +=== Forks vermeiden + +Forks sind in der Open-Source-Welt zwar natürlich, doch ist die Wiedereingliederung von Quellcode, Funktionen usw. aus Forks alles andere als einfach. Es kann sich lohnen, auf die Personen oder Organisationen zuzugehen, die einen Fork erwägen, und zu versuchen, sie im Hauptprojekt zu halten. Ein Ausgleich zwischen konkurrierenden Interessen ist in solchen Fällen oft nötig. + +=== Kostenaufteilung + +Es ist sinnvoll, zwischen den Hauptpartnern allgemeine Verteilschlüssel zu vereinbaren. Diese können alle paar Jahre oder bei grundlegender Änderung der Situation angepasst werden. Für eine effiziente Arbeit an der Software sollten die grossen Partner tendenziell etwas grössere Anteile übernehmen, als sie eigentlich müssten (nötigenfalls auch die Gesamtkoordination). Die Organisation soll arbeiten und nicht über Finanzen streiten. Erstreckt sich die Zusammenarbeit über mehrere Projekte (beispielsweise die Branchenlösungen im Bereich Normalspurbahnen), so sollte für alle Projekte ein einheitlicher Verteilschlüssel verwendet werden. Aus Sicht der Bundesbehörden ist es eine Verbesserung, wenn die Kosten nicht allein getragen werden müssen. + +Mögliche Kriterien für Verteilschlüssel: + +* Abschätzung der Nutzenverteilung (z. B. zwischen Bundesbehörde und einem Lieferanten, der auf weitere Kundschaft hofft) +* Zahl der Einwohnenden/Nutzenden (z. B. zwischen Ämtern, Gemeinden, Städten) +* Finanzkraft (z. B. Kantone) +* Bruttoinlandprodukt (z. B. zwischen Kantonen) +* Wer mehr Kontrolle will + +Um Diskussionen zu vermeiden, sollte der Verteilschlüssel nicht einfach an das Jahresbudget gekoppelt werden. Eine Klausel im Sinne des Verursacherprinzips kann für einzelne Partner raschere Anpassungen ermöglichen, wenn sie bereit sind, zusätzlich zu zahlen. + +Der Verteilschlüssel sollte auch für Gemeinkosten, Wartung/Support und ein Minimum an Weiterentwicklung gelten. Diese Teile sollten wenn möglich langfristig gelöst werden. + +Zu bedenken ist, dass bei Drittfinanzierung die betreffenden Parteien typischerweise mehr Mitsprache wollen. Das Community-Management muss darauf vorbereitet sein. + +=== Ergänzende Leistungen nach Art. 9 Abs. 5 und 6 EMBAG + +Die Bundesbehörden können (selbst, über Leistungserbringer oder Lieferanten) ergänzende Leistungen erbringen, insbesondere für Integration, Wartung, Sicherstellung der Informationssicherheit und Support. + +Die Einschränkung ist, dass sie den Aufgaben der Behörden dienen und mit verhältnismässigem Aufwand erbracht werden können. + +Daraus folgt, dass die Bundesbehörde nicht das Entwicklungsunternehmen für Dritte sein kann. Sie behebt Fehler, kann sicherheitsrelevante Aspekte behandeln, kann etwas Support und Integrationshilfe leisten (alles Tätigkeiten, die dem Aufbau einer Community dienen). Neuentwicklungen und zusätzliche Funktionen für Dritte sollten sich in erster Linie am normalen Arbeitszweck der Behörde orientieren. Selbstverständlich kann es sein, dass die Bereitstellung der Software Teil der Aufgabe ist; in diesem Fall können jederzeit Entwicklungen erfolgen. Festgehalten wird zudem, dass die Softwareentwicklung nicht die Kernaufgabe der Bundesbehörde ist. + +Das bedeutet: Werden Funktionen im Wesentlichen ausschliesslich für Dritte entwickelt, so sind sie partnerschaftlich oder über den Lieferanten zu integrieren. + +Um beschaffungsrechtliche Probleme zu vermeiden, ist bei der Beschaffung von Software und Leistungen darauf zu achten, dass Funktionen Dritten (allenfalls nur staatlichen Dritten) durch Lieferanten bereitgestellt werden können. + +Die Festlegung von Gebühren wurde bereits im Kapitel «Support» angesprochen. Das EMBAG ist bereits die gesetzliche Grundlage für solche Gebühren. Diese sind auf der Website der jeweiligen Bundesbehörde zu kommunizieren. Beispiele sind in Anhang G aufgeführt. + +Art. 9 Abs. 6 hält fest, dass der Privatwirtschaft normalerweise keine Konkurrenz gemacht werden soll. Das bedeutet, dass die Gebühren nicht zu tief angesetzt werden und mindestens kostendeckend sein sollten. Im Zweifelsfall sind Stundensätze eher zu hoch als zu tief anzusetzen. + +Generell wird empfohlen, mit ein bis drei verschiedenen Standardstundensätzen zu arbeiten. + +Will ein Bundesdepartement Ausnahmen zu Abs. 6 festlegen, so darf dies der Privatwirtschaft keine Konkurrenz machen. Unter Umständen ist es am einfachsten, die Gebühren festzulegen und sie zu erhöhen, falls Widerstand von Privatunternehmen entsteht, welche die Leistung tatsächlich anbieten können. + +=== Digitale Souveränität + +Solange der Bund kein eigenes Repository hat, wird zur Sicherstellung der digitalen Souveränität empfohlen, regelmässig Kopien öffentlicher Repositories zu erstellen. + +Zu beachten ist, dass nicht nur der Quellcode, sondern auch weitere Informationen wie Issue-Tracking, Wiki, Konfigurationen usw. kopiert werden. + +Zudem ist die Benutzerverwaltung zu lösen, um die Kontrolle über den veröffentlichten Quellcode sicherzustellen. Übergeordnetes Ziel ist es, eine von der jeweiligen Plattform unabhängige Entwicklung zu gewährleisten und der Community einen Wechsel zu ermöglichen.footnote:[Siehe auch https://www.bfh.ch/de/aktuell/news/2024/neue-studie-digitale-souveraenitaet/] + +== Anhang + +=== Änderungen gegenüber der Vorversion + +* Kapitel 1 «Das Wichtigste auf einen Blick» ergänzt +* Zweck der Community in Kapitel 3 ergänzt +* Kapitel 3.1 bis 3.3 zur Zusammenarbeit ergänzt +* Neues Kapitel 7.7 Umgang mit Beiträgen Dritter +* Festgehalten, dass Lieferanten nicht vollständig eigenständig veröffentlichen sollen (nach _[BBL-WL]_, V.2) +* Publicode.yml erwähnt +* Abstimmung mit dem neuen link:em002-7.pdf[Em002-7] +* Weitere redaktionelle Änderungen und Verbesserungen + +=== Referenzen + +Siehe _Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung_. + +=== Abkürzungen + +Siehe link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung] und link:em002-6.pdf[Em002-6 FAQ zu OSS]. + +=== Beispiele bestehender Community-Konzepte + +Im Sinne einer Sammlung von Best Practices folgen nachstehend Community-Konzepte und vergleichbare Dokumente, die bereits erarbeitet wurden. Dies sind nicht zwingend nur Konzepte von Bundesbehörden, sondern auch von anderen Organisationen. + +* GERES Community (http://geres-community.ch) + +Einordnung: + +* Produktmanagement a) Gemeinsame Entwicklung +* Lieferant eher a) Auftragnehmer +* Kostenverteilung: b) Kostenteilung + +Hinweis: Das Gemeinderegister GERES ist nicht Open Source, doch viele Aspekte der Organisation können auch für Open-Source-Anwendungen relevant sein. Dokumente: Statuten (öffentlich) und Geschäftsordnung (auf Anfrage). + +* https://www.igovportal.ch[iGov Portal] + +#Dieses Kapitel enthält derzeit Konzepte des Kantons Bern und wird ergänzt, sobald Beispiele des Bundes verfügbar sind.# + +=== Beispiele von Zusammenarbeiten + +Die folgenden Beispiele zeigen, wie Zusammenarbeiten strukturiert wurden. + +=== Zusammenarbeit: ZenDiS in Deutschland + +ZenDiSfootnote:[https://www.zendis.de/en[ZenDiS-Website: Co-creating Digital Sovereignty]] ist eine Organisation, deren Ziel es ist, die Abhängigkeit in der öffentlichen Verwaltung (primär in Deutschland) durch die Förderung von Open-Source-Software zu verringern. + +[mermaid,align="center",alt="Ziele und Ansätze zur Stärkung der digitalen Souveränität (ZenDiS)"] +.... +block-beta + columns 12 + H1["Ziele"]:12 + G1["I. Wechselmöglichkeit"]:4 G2["II. Gestaltungsfähigkeit"]:4 G3["III. Einfluss auf Anbieter"]:4 + H2["Lösungsansätze"]:12 + B1["1. Vorausschauende Analyse
und Steuerung von
Abhängigkeiten"]:3 B3["3. Herstellerunabhängige
Modularität, (offene) Standards
und Schnittstellen in der IT"]:3 B5["5. Kooperative Mitgestaltung
von IT-Lösungen"]:3 B7["7. Rechtliche Vorgaben"]:3 + B2["2. Beschaffung bzw. Entwicklung
alternativer IT-Lösungen
(z. B. OSS)"]:3 B4["4. Aufbau digitaler Kompetenzen
und Expertenwissen"]:3 B6["6. Gemeinsames Verständnis
und Vorgehen"]:3 B8["8. Politische Steuerung"]:3 + classDef highlight fill:#dae8fc,stroke:#000000,color:#000000 + class B2 highlight +.... + +Abbildung 1: Ziele und Ansätze zur Stärkung der digitalen Souveränität (ZenDiS) + +ZenDiS arbeitet dazu mit strategischen Partnern zusammen. + +Eine Zusammenarbeit zwischen der Bundesverwaltung und ZenDiS dürfte daher kaum uneingeschränkt möglich sein, und eine Koordination wäre nicht verbindlich. Dies kann sich mit der Zeit ändern. + +Konkret müsste die Bundesverwaltung eine eigene Organisation für die Schweiz aufbauen und sich informell mit ZenDiS abstimmen. Dies könnte allenfalls über eOperations erfolgen, wobei eOperations erst tätig wird, wenn ein konkreter Bedarf angemeldet und ein Budget bereitgestellt wird. Eine Begründung für eine solche Parallelorganisation liesse sich im Kontext von E-Government oder EMBAG finden. + +Hinweis: ZenDiS untersteht dem EU- bzw. deutschen Beschaffungsrecht. Es bestehen erhebliche Unterschiede zur Schweiz. ZenDiS lässt sich daher nicht eins zu eins in der Schweiz nachbilden, und eine Zusammenarbeit mit ZenDiS ist nicht ohne Weiteres möglich. + +=== Zusammenarbeit: Open Trip Planner (OTP) + +Open Trip Plannerfootnote:[https://www.opentripplanner.org/[OpenTripPlanner]] ist eine Open-Source-Anwendung für die Reiseplanung. Sie ist als Projekt der Software Freedom Conservancy in New York organisiert. Einzelne Entwickelnde sind bei Verkehrsunternehmen und Lieferanten angestellt. Bemerkenswert ist, dass ein Akteur der öffentlichen Hand – konkret ENTURfootnote:[https://entur.no/] – eine der führenden Rollen übernommen hat. ENTUR entwickelt primär für den eigenen Bedarf, hat aber auch einen Kooperationsfokus, insbesondere für die nordischen Länder. ENTUR ist als Unternehmen im Eigentum des norwegischen Verkehrsministeriums organisiert. Als grösster Akteur übernimmt ENTUR auch einen erheblichen Teil der Koordinationskosten. Alle können Feature-Wünsche einreichen; diese werden in Koordinationssitzungen diskutiert und entwickelt, wenn jemand sie finanziert. Die Finanzierung erfolgt primär pro Feature durch die interessierte Partei bzw. die interessierten Parteien. Im Kern trägt jede Partei ihre eigenen Kosten. Supportleistungen müssten in der Schweiz zudem separat ausgeschrieben werden. + +=== Neue vom Bund angestossene Zusammenarbeit: Swiss Trust Broker + +Der Trust Brokerfootnote:[https://github.com/trustbroker-swiss/trustbroker.swiss[GitHub - trustbroker-swiss/trustbroker.swiss: Documentation of the trustbroker.swiss service]] ist eine Software des Bundes für eIAM, die als Open Source verfügbar ist. Die Entwicklung erfolgt durch den Bund. Mehrere Kantone haben entschieden, sie entweder direkt als SaaS oder mit eigenen Instanzen einzusetzen. Da sie unter der AGPL-Lizenz verfügbar ist, kommen vorgenommene Erweiterungen wiederum dem Bund zugute. Aufgrund ihrer sicherheitskritischen Natur erfolgt die Entwicklung für die Bundesverwaltung ausschliesslich durch den Bund. Andere Organisationen können Anforderungen einreichen, die umgesetzt werden, wenn das Projektteam sie als angemessen erachtet. + +=== Neue von den Kantonen angestossene Zusammenarbeit: inosca + +Über inoscafootnote:[https://inosca.ch/] haben mehrere Kantone eine Entwicklungsgemeinschaft für elektronische Bewilligungen aufgebaut, die ihren Ursprung im Projekt eBau hat.footnote:[https://github.com/inosca/ebau] eBau umfasst auch Caluma,footnote:[https://github.com/projectcaluma] ein Framework für die gemeinsame Bearbeitung – ein Beispiel für eine Komponente, die aus einer breiteren Lösung herausgelöst und zu einem eigenständigen, breit anwendbaren Framework entwickelt wurde. Dieses kann auch in anderen Projekten genutzt werden, selbst wenn einzelne Teile Ausnahmebedingungen unterliegen, sodass möglichst viele andere Stellen vom Code profitieren können. + +Die Community trifft sich mindestens einmal monatlich (optional zweimal), um sich über technische Themen auszutauschen und die gemeinsame Roadmap zu planen. Alle Beteiligten können Themen einbringen. Wird ein Thema als für die Community relevant erachtet, so melden sich interessierte Kantone und organisieren sich in einer Arbeitsgruppe. Die Ergebnisse fliessen laufend an die Community zurück. inosca arbeitet nach einem Grundprinzip: Wer gestaltet, finanziert. Das heisst, alle an einer Arbeitsgruppe beteiligten Kantone teilen sich die Kosten der neuen Funktion. Die Funktion wird ausgeschrieben und die Kosten werden nach einer vordefinierten Kostenteilungsformel unter der Community aufgeteilt. Sobald eine Funktion fertiggestellt und eingeführt ist, steht sie sofort allen anderen Kantonen frei zur Verfügung. + +Die Community hat zusätzlich entschieden, einen bescheidenen festen Jahresbetrag für die administrativen Kosten des Community-Betriebs zurückzustellen. Dieses Budget wird jedes Jahr den Parteien zugewiesen, die eine organisatorische Rolle übernehmen. + +=== SNOWPACK der WSL – direkte Beiträge von Entwickelnden + +SNOWPACKfootnote:[https://snow-models.gitlab-pages.wsl.ch/snowpack-web/] ist ein Open-Source-Projekt der WSL zur Modellierung der Schneedeckenbildung. Es handelt sich um ein hochspezialisiertes Modell, und die Community wurde entsprechend in die bestehende Fachgemeinschaft integriert. Einzelne Issues sind bereits als mögliche Beiträge vorgemerkt. Das Arbeitsmodell ist hier, dass jede Partei ihre eigenen Kosten trägt und Funktionen beisteuert. Richtlinien zu Coding Style und Release-Prozess sind in diesem Zusammenhang ebenfalls dokumentiert. + +=== Anregungen für Vereinsstatuten + +Die Statuten sollten so einfach wie möglich gehalten werden. + +Die folgenden Statuten können als Anregung dienen. + +* eCH: https://www.ech.ch/sites/default/files/page/STAT_d_DEF_2014-04-10_ech-Statuten.pdf +* Stop Piracy: https://www.stop-piracy.ch/wp-content/uploads/2022/01/Statuten_d_10_09_2021.pdf + +#Weitere Beispiele von Statuten werden ergänzt, sobald sie verfügbar sind.# + +=== Beispiele für Support und Gebühren + +* Gebühren für statistische Dienstleistungen: https://www.fedlex.admin.ch/eli/cc/2003/326/de[https://www.fedlex.admin.ch/eli/cc/2003/326/de] +* Gebühren des EDÖB: https://www.edoeb.admin.ch/edoeb/de/home/datenschutz/grundlagen/dsfa.html +* Kostenlose Leistungen des IGE für Kurse im Bereich des geistigen Eigentums (nicht Software, aber als Beispiel): https://www.ige.ch/de/dienstleistungen/ip-academy/allgemeine-informationen/preise + +Beispiele werden ergänzt, sobald sie verfügbar sind. +endif::[] + +ifeval::["{lang}" == "fr"] +NOTE: Le présent document est un projet en cours d'élaboration et fait partie des outils destinés à soutenir l'administration fédérale dans la publication de code open source. Pour de plus amples informations, voir le {url-repo}/tree/main[README] principal. + +== L'essentiel en bref + +Les points les plus importants du document sont énumérés ci-après. + +* La constitution ou l'exploitation d'une communauté OSS *n'est pas exigée* par l'art. 9 LMETA. +* Une communauté est pertinente lorsqu'un groupe d'utilisateurs a du sens et que des *synergies* avec d'autres utilisateurs du logiciel doivent être créées. +* Une communauté ne se limite pas au logiciel lui-même, mais peut aussi englober les processus environnants et la standardisation des données. +* La constitution d'une communauté implique toujours un *effort initial*. Celui-ci se poursuit en règle générale. Dans de nombreux cas, il est judicieux que l'office pilote supporte également les coûts de coordination. +* Les communautés doivent remplir un *but*. Il faut des personnes intéressées et des participants. +* Une communauté peut émerger puis être formalisée. +* L'objectif de la communauté est d'accroître le *bénéfice pour tous*. Principe général : « on récupère au moins autant que ce que l'on apporte ». +* La communauté devrait être *structurée aussi simplement que possible*. +* Dans un premier temps, la communauté devrait être brièvement examinée à l'aide de la liste de contrôle link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. Ce n'est que si elle est pertinente qu'elle devrait être développée. +* La formalisation s'effectue au moyen d'un *concept de communauté*. Il convient de reprendre autant que possible des sources existantes. Principe général : « ne pas réinventer la roue ». +* Si une collaboration est visée, cela doit être pris en compte dès le tout début du projet, car les partenaires potentiels devraient déjà être associés lors de l'analyse des exigences. Cela doit aussi être bien planifié dès le départ sur le plan juridique et sous l'angle du droit des marchés publics. +* Les possibilités d'adhérer à une collaboration existante doivent être examinées sur le plan juridique et sous l'angle du droit des marchés publics. +* Aucune communauté ne doit être constituée pour des contributions. Toutefois, si le projet l'exige, le *Contributor Licence Agreement (CLA)* correspondant doit être signé, ou les développeurs doivent être autorisés par le projet à soumettre le logiciel sous un Developer Certificate of Origin (DCO). + +== Introduction + +Le présent guide s'adresse aux spécialistes TIC responsables d'une application qui souhaitent la proposer en open source ou contribuer à une telle application. + +Cela doit être organisé soit formellement, soit informellement. + +Le présent document fournit des informations importantes pour l'organisation et la constitution d'une communautéfootnote:[La communauté d'un projet open source représente typiquement une pyramide. + +La base de cette pyramide est constituée des utilisateurs du logiciel, en particulier ceux qui s'engagent et participent activement à la communauté, par exemple sous forme de signalements d'erreurs et de demandes de fonctionnalités ou par des contributions à des listes de diffusion. + +Directement au-dessus, dans la pyramide, se trouvent les contributeurs. Il s'agit de parties de la communauté qui proposent leurs propres contributions de code. Ils n'ont typiquement pas d'accès en écriture au dépôt. Leurs contributions sont examinées par les mainteneurs du projet et intégrées au dépôt après avoir atteint la qualité propre au projet. + +Au sommet de la pyramide se trouvent les mainteneurs ou committers d'un projet. Dans ce rôle, un développeur assume une responsabilité accrue. Cela se traduit par exemple par la possibilité d'accepter des contributions. Ce droit se manifeste souvent par un accès en écriture au dépôt. À ce niveau s'exerce le contrôle du logiciel, de sa qualité et de son étendue fonctionnelle. Dans les projets plus complexes, ce niveau peut être subdivisé. Ainsi, le noyau Linux compte notoirement des mainteneurs de sous-systèmes à plusieurs niveaux, et en définitive un seul développeur, Linus Torvalds, intègre les correctifs dans le dépôt du projet. Un autre exemple est celui des projets de l'Eclipse Foundation, qui disposent typiquement d'un project lead doté de droits supplémentaires dans le cadre du processus de développement de l'Eclipse Foundation, comme le déclenchement du processus de publication ou l'élection formelle de committers ou de project leads _[BITKOM2023]_.] ainsi que pour le développement ouvert directement en tant que projet open source. + +En deuxième élément, afin de favoriser la standardisation, un répertoire de concepts de communauté existants est tenu dans le cadre du présent document. L'idée est que de nouvelles communautés puissent être constituées avec un effort minimal sur la base de solutions éprouvées. + +Le présent document ne contient pas de recommandations directes pour l'organisation de communautés autour de bibliothèques logicielles (parties de logiciels remplissant des fonctions partielles, p. ex. la génération de PDF). Normalement, aucun concept distinct n'est élaboré pour celles-ci ; elles utilisent plutôt le modèle simple défini dans le modèle de dépôt. + +Le document link:em002-1.pdf[Em002-01 Guide pratique pour les logiciels open source dans l'administration fédérale] contient, au chapitre 4, les formes fondamentales de collaboration, au chapitre 8 les différents modèles de support et, en annexe, des informations sur le comportement de marché de l'open source. + +== Type, objectif et but d'une communauté + +Une communauté peut poursuivre les buts suivants : + +* Recensement d'exigences supplémentaires +* Diffusion de connaissances sur l'application +* Meilleurs retours des utilisateurs +* Promotion des traductions, de la documentation et des formations +* Diffusion de la standardisation +* Interaction globalement améliorée avec les utilisateurs +* Extension de la coopération à d'autres parties +* Promotion d'autres logiciels fondés sur le logiciel + +Le type de communauté le mieux adapté à une application dépend fortement de l'environnement métier, des utilisateurs potentiels et de la stratégie de l'institution qui publie. Il existe de nombreuses manières de constituer des communautés. Idéalement, un projet approprié peut rejoindre une communauté existante. Une communauté peut aussi être constituée avec un ou plusieurs partenaires sur un pied d'égalité. + +Il importe qu'une *structure de gouvernance* soit établie et que les points déterminants soient documentés dans un *concept de communauté* (voir aussi _[BITKOM2023]_ chapitre 4.1 et _[IZqCab2023]_). + +Il convient de noter que les communautés logicielles peuvent aussi être combinées avec celles portant sur les données, la standardisation et les thèmes métier. La communauté peut alors englober processus, standardisation, logiciels et données. Des cadres existants tels qu'eOperations, l'ANS et eCH peuvent également être utilisés lorsque cela est judicieux. + +Un aspect important d'une communauté qui fonctionne est que les participants reçoivent plus qu'ils n'investissent. + +Les constellations suivantes existent : + +* *Communauté autour d'un OSS de la Confédération* : la gouvernance et le concept de communauté doivent être élaborés. Dans ce contexte, il faut aussi régler la manière dont des tiers peuvent apporter des contributions. +* *Nouvelle collaboration pour résoudre un problème* : outre la gouvernance et le concept de communauté, toute la structure juridique de la collaboration doit être mise en place. +* *Adhésion à une collaboration* : l'administration fédérale doit examiner si et comment elle peut le faire. +* *Contribution à un projet de tiers* : le point à vérifier est la politique du projet en matière de contributions (Contributor Licence Agreement, Developer Certificate of Origin, etc.). + +Les questions de droit des marchés publics sont traitées dans link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et des logiciels open source]. + +=== Cas particulier : nouvelle collaboration pour le développement, la maintenance et le support de logiciels open source + +Les coûts globaux d'un logiciel open source diminuent lorsqu'il est développé et entretenu en commun. Cela peut se faire sans accords de coopération formels, ou avec rien de plus qu'une planification commune. + +Lorsqu'une collaboration plus formelle est recherchée, une analyse de marché devrait être effectuée afin de s'assurer que la collaboration est la forme de coopération la plus appropriée. Les collaborations sont plus avantageuses que le développement individuel par chaque partie (voir link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]). + +Il convient de noter que pour les collaborations, il est judicieux d'engager la collaboration très tôt dans la méthodologie de projet HERMESfootnote:[https://www.hermes.admin.ch/fr/gestion-de-projet/apercu-de-la-methode.html] — concrètement durant les phases d'analyse de la situation et des exigences. + +La collaboration est en principe admise en Suisse selon l'article 4 LMETA. + +Outre toutes les autres considérations, les collaborations comportent une dimension juridique et une dimension de droit des marchés publics. À l'heure actuelle, chaque cas est apprécié individuellement. Avec le temps, des modèles standardisés s'établiront. + +==== Dimension juridique + +Les adhésions à des associations sont envisageables, même si elles sont généralement appréciées au cas par cas : qui se trouve derrière l'association et quelles obligations sont contractées ? Une délégation des adhésions à eOperations ou à des organisations similaires serait possible. + +Tant qu'aucun argent ne circule et qu'aucune obligation formelle ne doit être contractée, un Memorandum of Understanding au niveau de l'office fédéral ou de la Chancellerie fédérale est possible. + +Une situation exigeant la conclusion d'un traité international devrait être évitée. + +Il existe en outre deux cas particuliersfootnote:[https://www.eda.admin.ch/deza/fr/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] dans lesquels une collaboration serait déjà couverte : + +* Les marchés adjugés en vertu d'un accord international concernant la réalisation conjointe d'un projet par des États signataires. +* Les marchés adjugés conformément aux procédures ou conditions particulières d'une organisation internationale. + +==== Dimension de droit des marchés publics + +Dans de nombreux cas, la collaboration se déroule entre organisations du secteur public. Dans de tels cas, l'acquisition ne pose pas de problème lorsque la configuration est « intra-étatique » (voir link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et des logiciels open source]). + +Des contrats avec des entreprises étrangères non domiciliées en Suisse sont possibles, pour autant que les exigences du droit des marchés publics soient respectées. + +L'acquisition des ressources propres d'une organisation s'effectue dans le cadre d'un processus d'acquisition ordinaire, ou est déjà achevée. + +=== Cas particulier : adhésion à une collaboration existante + +Cela requiert à la fois une base légale et le respect du droit des marchés publics. + +L'approche la plus simple consiste à participer selon le principe « chaque partie supporte ses propres coûts ». Cela peut aussi couvrir les frais généraux, pour autant que des ressources internes ou des ressources externes correctement mises au concours soient utilisées. + +Une participation directe à des collaborations étrangères est plus difficile. Un simple rattachement via un Memorandum of Understanding est l'option la plus facile à réaliser. + +=== Cas particulier : contributions de code à des projets OSS de tiers + +Lorsque l'administration fédérale apporte des modifications au code d'un projet OSS existant, il est judicieux de contribuer ces modifications directement en amont au projet d'origine. Ainsi, la maintenance courante ne doit plus être assurée par l'administration fédérale. + +Selon l'article 9 LMETA, de telles contributions sont même souhaitées. Du point de vue du droit des marchés publics, cela ne pose pas de problème. + +Il importe que ce soit le titulaire des droits qui apporte la contribution. Cela signifie que l'administration fédérale en assume la responsabilité pour le compte de ses collaborateurs et mandataires. Concrètement, tout Contributor Licence Agreement du projet doit être signé, ou un Developer Certificate of Origin doit être joint à la pull request. + +Un **Developer Certificate of Origin**footnote:[https://developercertificate.org/] *(DCO)* pour l'administration fédérale pourrait se lire ainsi : + +[quote, 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. +____ + +La structure d'un Contributor Licence Agreement est décrite dans link:em002-3.pdf[Em002-3 Guide de licences OSS], chapitre 8.9. + +Le transfert effectif du code s'effectue conformément aux directives du projet concerné. + +== Concept de communauté + +Le cœur d'une communauté réside en fin de compte dans sa structure et sa gouvernance. Celles-ci sont consignées dans un concept de communauté. + +Le concept de communauté à élaborer par la direction de projet ou d'application (ou à confier à des tiers) devrait suivre la structure de chapitres ci-après. Selon la nature de la communauté concrète, tous les sous-chapitres ne sont pas nécessaires. Idéalement, de nombreux chapitres renverront à des documents déjà standardisés ou utiliseront les processus standard des dépôts correspondants. Le concept de communauté peut aussi s'appliquer à des projets existants dirigés par d'autres, en particulier lorsque la gouvernance effective n'est pas encore documentée par écrit. + +La formalisation de la communauté rassemble tous les participants et simplifie l'intégration de nouveaux participants. + +Projet de structure d'un concept de communauté : + +[arabic] +. Tableau de synthèse (nom, dépôt, adresse de contact, licence, niveau de support, existant/nouveau) +. Objectifs +[loweralpha] +.. de l'application +.. de la communauté +. Organisation +[loweralpha] +.. Propriétaire du code +.. Forme d'organisation / organes +.. Droits de vote +.. Direction de projet +.. Questions d'acquisition (le cas échéant) +.. Autres aspects de gouvernance +. Feuille de route et processus de modification +. Processus de développement +[loweralpha] +.. Développement ouvert +.. Droits de committer +.. Processus de revue +.. Répartition des tâches et mentions nominatives +.. Sauvegardes +. Financement de la communauté +. Marketing +. Traitement des contributions externes +[loweralpha] +.. Traitement des erreurs signalées +.. Traitement des demandes +.. Traitement des pull requests +.. Traitement des forks +.. CLA, DCO et attribution des droits / de la propriété intellectuelle +. Exploitation de l'application + +En principe, chaque autorité fédérale est responsable de l'élaboration des concepts de communauté. Le secteur TNI peut publier des modèles et exemples existants et accepte des exemples correspondants en vue de leur publication. Il est également judicieux que les responsables de communauté échangent entre eux. + +Une source possible pour certaines parties est également la documentation de l'Eclipse Foundation,footnote:[Voir https://www.eclipse.org/projects/handbook/#starting] étant entendu qu'il convient ici de procéder à une adaptation appropriée dans l'esprit de « ne faire que le nécessaire ». + +== Décisions de principe lors de la constitution d'une communauté + +Les principes de la communauté, ou la renonciation à celle-ci, sont déterminés à l'aide de link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. Les questions de principe déterminantes figurent dans la boîte morphologique ci-dessous ; chaque dimension est présentée dans les sections qui suivent. + +[.landscape] +[cols="3,2,2,2,2,2",options="header"] +|=== +|Dimension |(a) |(b) |(c) |(d) |(e) + +|A -- Gestion du produit +|Confédération +|Organisation commune +|Organisation ouverte +|Tiers +| + +|B -- Intégration des fournisseurs +|Mandataire +|Partenaire +|Indépendant +|Direction +| + +|C -- Répartition des coûts +|Confédération +|Chacun pour soi +|Principe de causalité +|Clé de répartition +|Contribution + +|D -- Support +|Publication minimale +|Support par la Confédération +|Support par des tiers +| +| + +|E -- Développement +|Interne +|Tiers +|Ouvert +| +| +|=== + +_Boîte morphologique communauté OSS._ + +Il est recommandé, lors de la conception de la communauté, de *se concentrer avant tout sur le proche avenir* ; s'il n'existe par exemple pas encore de parties intéressées concrètes pour l'application, il n'est généralement guère judicieux de définir une communauté dotée d'une société simple, de sa propre association et de processus complexes pour l'élaboration de la feuille de route.footnote:[Avec une association (ou une fondation), une personne morale distincte est créée pour s'occuper du logiciel et du produit. Cela ne se justifie qu'à partir d'un certain niveau d'importance, de complexité et de l'existence de plusieurs partenaires (sur un pied d'égalité). Une feuille de route sert à montrer au public élargi et aux utilisateurs potentiels supplémentaires du logiciel ce qui est prévu.]footnote:[Il peut aussi être possible, en particulier pour des projets impliquant dès le départ plusieurs acteurs étatiques, de s'adresser à des fondations existantes et d'examiner si les projets et la gouvernance peuvent être conduits sous leur égide, à l'instar de https://finos.org ou https://osr.finos.org ou https://www.eclipse.org/collaborations/ ou https://iot.eclipse.org ou https://outreach.eclipse.foundation/open-regulatory-compliance.] + +=== Gestion du produit + +Selon le type d'application, son importance stratégique et sa position dans le cycle de vie, il existe différentes variantes pour représenter la gestion du produit. Pour les organisations au sein des autorités fédérales, cela concerne toujours les responsables d'application. La définition de la feuille de route fonctionnelle et technologique ainsi que les processus de publication sont particulièrement pertinents pour le concept de communauté. + +Possibilités : + +[loweralpha] +. *Organisations au sein de la Confédération* : la Confédération veut garder le contrôle ; elle définit seule la feuille de route. +. *Organisation commune* : avec d'autres utilisateurs ou fournisseurs. +. *Organisation ouverte* : liens lâches, pas de feuille de route active. +. *Tiers* : soit le produit existe déjà, soit le travail doit être externalisé. + +==== Organisations au sein de la Confédération : + +Si l'application revêt une grande importance stratégique ou si la Confédération dépend de sa capacité à mettre en œuvre rapidement ses modifications, il peut être judicieux de garder le contrôle. + +L'autorité fédérale décide seule, par l'intermédiaire de la responsabilité des exigences, de ce qui est intégré dans le logiciel et à quel moment. + +Pour les autres utilisateurs potentiels de l'application, cela signifie qu'ils sont pratiquement contraints d'utiliser leur propre version (fork) de l'application. + +À défaut, ils n'ont guère la possibilité de mettre en œuvre des adaptations et extensions qui peuvent leur être importantes. Cela ne plaide pas contre une publication en open source : les outils de gestion de codefootnote:[p. ex. GitHub] offrent un large soutien pour de tels scénarios, et les adaptations ainsi que les corrections d'erreurs peuvent être reprises de manière sélective dans les deux sens. + +Un partage des coûts est typiquement difficile avec ce modèle. + +==== Commun (la Confédération dirige ou partenaires sur un pied d'égalité) + +Les décisions relatives à la feuille de route et aux priorités devraient être coordonnées et prises conjointement avec les autres membres de la communauté. La Confédération participe en tant que membre de la communauté, mais n'est pas l'organisation pilote. + +Pour que la prise de décision commune fonctionne, des structures et des règles doivent être fixées au préalable. Cela définit aussi la manière dont les coûts de mise en œuvre des adaptations décidées en commun sont répartis entre les parties. + +Avec ce modèle, une version unique de l'application est créée, puis utilisée par tous les membres. Les coûts totaux sont de ce fait nettement inférieurs par rapport aux autres variantes. La flexibilité de chaque utilisateur est toutefois moindre, et ils doivent coordonner au préalable leurs demandes d'adaptation avec tous les autres. La prise de décision est plus lente et plus laborieuse. + +Ce modèle convient le mieux aux applications destinées à être développées conjointement avec d'autres organisations clairement définies (p. ex. les cantons). + +==== Organisation ouverte + +Dans ce modèle, les processus et structures ne sont définis que de manière lâche. La Confédération conserve formellement le contrôle, mais est ouverte aux contributions et adaptations. + +Aucune feuille de route, ou seulement une feuille de route très sommaire, n'est définie ; le consensus est trouvé de manière informelle et dans des discussions directement sur la plateforme de publication. La communauté elle-même est plutôt dynamique ; des membres peuvent être très actifs un certain temps puis se retirer. + +Ce modèle convient aussi aux applications plus petites déjà utilisées en production et « achevées ». C'est également la meilleure forme, en général, pour des applications ou composants à orientation technique qui s'adressent potentiellement à un public plus large ne pouvant pas être défini précisément à l'avance. + +==== Tiers + +Dans ce modèle, les processus et structures sont définis par un tiers et l'autorité fédérale est membre de la communauté sans en avoir la direction. Cela peut tenir au fait que le projet a par exemple été défini par un autre État ou canton. Ou il se peut que la Confédération ne soit pas intéressée à poursuivre elle-même le programme et transfère cette tâche. + +=== Intégration des fournisseurs + +Il existe en principe les possibilités suivantes pour intégrer les fournisseurs : + +[loweralpha] +. *Fournisseur comme mandataire* : il est en principe considéré comme remplaçable à moyen terme. Le fournisseur doit développer l'application de manière économique et de haute qualité sur la base des commandes de la gestion du produit (ou de la communauté), mais n'a au plus qu'une influence consultative sur la feuille de route et la priorisation. +. *Partenaires à long terme avec codécision* : ils doivent pouvoir codéterminer activement le développement. Cela renforce leur rôle et ils sont potentiellement disposés à investir eux-mêmes dans l'application. Typiquement, dans ce modèle, les fournisseurs distribuent le logiciel et recherchent activement de nouveaux clients. +. *Indépendant :* les fournisseurs définissent eux-mêmes s'ils veulent travailler sur le projet et de quelle manière. Cela peut se produire par exemple lorsque plusieurs fournisseurs veulent générer leur propre activité sur la base du logiciel. Des licences libérales peuvent potentiellement le favoriser. Cela peut aussi se produire lorsque la stratégie de la Confédération diverge de celle du fournisseur. Dans ce scénario, il est probable que le fournisseur crée un fork. +. *Direction* : si le fournisseur reprend la gestion du produit, il en a la direction. Le développement est alors déterminé par lui. En contrepartie, cela peut aussi signifier que l'administration fédérale n'a que très peu de responsabilités à assumer. Avec une publication minimale, il est possible que le fournisseur assume ce rôle de son propre chef. + +Si le fournisseur assume un rôle fort, cela présente des avantages pour l'administration fédérale : par une commercialisation active de l'application, il y a une chance que la communauté croisse plus vite et plus fortement, réduisant ainsi plus rapidement les coûts par membre. + +Si un modèle avec forte codécision des fournisseurs est choisi, il faut veiller à ce qu'il n'en résulte pas une dérogation aux règles du droit des marchés publics. Il est généralement recommandé d'impliquer au moins deux fournisseurs afin de ne pas créer une dépendance trop forte envers un seul. Il devrait aussi être possible pour d'autres fournisseurs de rejoindre la communauté. + +=== Répartition des coûts + +Les options suivantes sont disponibles pour répartir les coûts de maintenance, de développement ultérieur et de nouvelles fonctionnalités : + +[loweralpha] +. *Organisations au sein de la Confédération* : en particulier lors de la constitution d'écosystèmes ou si l'autorité fédérale conserve le contrôle total, elle doit aussi en supporter les coûts. +. *Chacun pour soi* : chacun paie lui-même les modifications qu'il souhaite. Au besoin, il est décidé au cas par cas de financer certaines extensions en commun. Les coûts récurrents sont facturés selon une clé de répartition ou à la demande. +. *Principe de causalité* : ceux qui ont effectivement besoin des prestations ou fonctionnalités les paient. Des tarifs horaires standardisés peuvent être appliqués. +. *Clé de répartition* : les coûts sont répartis au sein de la communauté selon une clé définie. Seules les extensions spécifiques y dérogent. Celles-ci devraient être payées directement par les utilisateurs concernés. Le diviseur de coûts peut être, par exemple, la taille du canton concerné ou le nombre d'utilisateurs. Concernant la clé de répartition, voir aussi le chapitre « Répartition des coûts ». +. *Contribution* : lorsque l'autorité fédérale n'apporte que du personnel à un projet existant. + +Fondamentalement, la variante b (partage des coûts) n'a généralement de sens que s'il existe aussi une gestion commune du produit comme dans la variante b (commun). Seuls ceux qui peuvent avoir voix au chapitre seront disposés à supporter les coûts subséquents des décisions. + +=== Support + +Dans le cadre de la répartition des coûts et de la charge, il importe de clarifier qui fournit quel support. Selon l'art. 9 LMETA, une pure publication minimale est possible. Cette variante peut ne pas produire l'effet souhaité et ne constitue pas en soi une communauté dans laquelle l'autorité fédérale a de l'influence. + +[loweralpha] +. *Publication minimale* : aucun support (c'est-à-dire que la publication a généralement lieu sans support organisé ni participation de l'autorité fédérale). +. *Support par la Confédération* : l'autorité fédérale (ou son prestataire) fournit un support défini. +. *Support par des tiers* : l'autorité fédérale ou la communauté définit une organisation de support. + +L'effet recherché, p. ex. sur l'écosystème suisse ou un financement initial d'une communauté, peut conduire la Confédération à fournir du support. L'étendue du support doit naturellement être définie. En principe, un émolument peut aussi être perçu. En raison des mécanismes de la Confédération, les prestataires ou fournisseurs sont alors plus à même de proposer un support commercial. + +Les offices peuvent proposer un support payant conformément à la LMETA (le cas échéant aussi via des prestataires et des tiers). Pour ce faire, ils doivent publier les émoluments correspondants sur leur site web, la base légale nécessaire étant en place. Le raccordement au système de paiement peut être discuté avec le DFF. + +Des exemples de support et d'émoluments figurent à l'annexe G. + +=== Développement + +La méthodologie fondamentale du développement peut aussi influencer le type de communauté. + +[loweralpha] +. *Interne* : l'utilisation de dépôts internes signifie que des tiers ne peuvent pas travailler directement. Plus la séparation est stricte, plus la Confédération doit fournir d'efforts d'intégration si elle veut reprendre des extensions de tiers. Le processus de publication est également plus complexe. +. *Tiers* : soit un fournisseur travaille de son côté, soit le produit déjà lancé ou dirigé par un tiers est développé selon des règles définies. +. *Ouvert* : le développement logiciel a lieu directement dans un dépôt public. La publication selon la LMETA est ainsi largement garantie. Les dépenses interviennent pendant le développement. Dans ce scénario, la collaboration avec des tiers peut aussi intervenir plus tôt (et plus facilement). + +== Contenus détaillés pour le concept de communauté + +Ce chapitre donne des indications pour la rédaction du concept de communauté sur la base des décisions de principe prises (selon le chapitre 5). + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +ouvert / Partenaire / Confédération:: +Contenus ou suggestions, si les décisions de principe sont : + +Gestion du produit c) Organisation ouverte + +Intégration des fournisseurs : b) Fournisseur comme partenaire + +Répartition des coûts : b) Chacun pour soi + +_Le texte ci-dessus peut être copié dans le modèle et adapté._ + +Commun / - / Chacun pour soi:: +Contenus ou suggestions, si les décisions de principe sont : + +Gestion du produit b) Développement commun + +Intégration des fournisseurs : a) ou b) (non pertinent) + +Répartition des coûts : c) Principe de causalité ou d) Partage des coûts + +Commun / - / Auteur:: +{empty} + +Le concept de communauté devrait être un document dynamique, pouvant être adapté en concertation avec la communauté. Le concept devrait refléter la situation actuelle et proposer des options de développement futures. Si d'autres membres rejoignent ultérieurement la communauté, l'organisation et les processus peuvent être précisés et des mécanismes plus complexes introduits. Les sous-chapitres suivants suivent directement la structure proposée du concept de communauté (voir chapitre 4). + +Si la gestion du produit incombe à des tiers, ceux-ci définissent les concepts pour la communauté. + +=== Données clés + +Les données clés suivantes devraient être établies et publiées pour chaque communauté, afin que les personnes potentiellement intéressées puissent s'inscrire pour le logiciel et la communauté : + +* Nom du logiciel +* Dépôt +* Propriétaire +* Unité d'organisation / office responsable +* Adresse de contact +* Licence utilisée +* Niveau de support +* Projet existant + +Ces indications peuvent toutes être représentées avec publiccode.yml.footnote:[https://yml.publiccode.tools/] + +=== Objectifs + +L'objectif devrait contenir le but réel ou la « vision » de l'application. Cette vision devrait aussi figurer dans le fichier *README.md* du dépôt (voir link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[liste de contrôle Em002-2.2 Analyse et préparation OSS]). + +Dans le même temps, il convient de décrire ce que vise la communauté : + +* Qui doit adhérer ? +* Qui sont les parties potentiellement intéressées ? +* Faut-il rechercher activement de nouveaux membres ? +* Quels sont les principaux objectifs poursuivis par la publication en open source ? + +=== Organisation et gouvernance + +En principe, pour les nouveaux développements, l'objectif est que la Confédération soit titulaire des droits principaux sur le code source. + +Le type de conduite de projet dépend de l'organisation qui avait la direction (SAFe, HERMES) au sein de la Confédération. Pour la forme d'organisation, il convient toujours de viser un minimum de frais généraux (existant plutôt que nouveau ; société simple plutôt qu'association). + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +Confédération / - / Interne:: +Comme la Confédération conserve le contrôle direct, aucune structure organisationnelle supplémentaire n'est nécessaire. + +L'entité qui publie (p. ex. un office fédéral) reste propriétaire et assume toutes les tâches de coordination. Dans ce cas, le chapitre « Organisation » peut être très bref. + +Commun / - / Interne:: +Pour ce scénario, l'organisation en *société simple* est généralement recommandée. + +Afin de permettre le développement commun et la coordination de la feuille de route et des exigences, il est recommandé de créer deux groupes, chacun comptant un participant par membre de la communauté : ++ +-- +* Organe de pilotage : définit la stratégie et la priorisation. +* Groupe d'experts : élabore les exigences et les contenus concrets au niveau technique. Selon l'ampleur, un groupe d'experts distinct peut aussi être institué par thème. +-- ++ +Le propriétaire du code est l'office qui l'a publié. ++ +Si les structures deviennent plus complexes ou si plus de cinq utilisateurs ou membres supplémentaires sont impliqués, il peut valoir la peine d'examiner si la communauté ne serait pas mieux organisée sous forme d'association. Comparer les explications de la variante ci-dessous. + +Commun / - / Tiers:: +L'organisation en *association* est recommandée. + +Soit une association est fondée spécialement pour l'application, soit l'application est transférée à une association existante. Une association est recommandée car, à défaut, la répartition des coûts devient complexe et les tâches de coordination représentent vraisemblablement assez de travail pour employer un gérant à temps partiel pour l'association. ++ +Les droits sur le code sont alors transférés à l'association, qui assume la gestion de la communauté et les commandes auprès des fournisseurs. + +Commun / Mandataire / Interne:: +L'organisation en *association* est recommandée. Soit une association est fondée spécialement pour l'application, soit l'application est transférée à une association existante. Une association est recommandée car, à défaut, la répartition des coûts devient complexe et les tâches de coordination représentent vraisemblablement assez de travail pour employer un gérant à temps partiel pour l'association. ++ +Les droits sur le code sont alors transférés à l'association, qui assume la gestion de la communauté et les commandes auprès des fournisseurs. + +Ici, les fournisseurs ne sont pas membres de l'association, mais uniquement mandataires. Le gérant ne devrait pas être fourni par un fournisseur. + +Commun / Mandataire / Tiers:: +L'organisation en *association* est recommandée. Soit une association est fondée spécialement pour l'application, soit l'application est transférée à une association existante. Une association est recommandée car, à défaut, la répartition des coûts devient complexe et les tâches de coordination représentent vraisemblablement assez de travail pour employer un gérant à temps partiel pour l'association. + +Les droits sur le code sont alors transférés à l'association, qui assume la gestion de la communauté et les commandes auprès des fournisseurs. + +Les fournisseurs sont membres de l'association ; le gérant peut aussi être fourni par un fournisseur. + +ouvert / - / Interne:: +Il n'est *pas nécessaire de décrire en détail une organisation*, celle-ci étant délibérément conçue de manière ouverte. Il importe toutefois d'établir qui reçoit et traite les demandes externes (responsabilité). Il faut aussi déterminer si et dans quelle mesure des personnes externes peuvent être associées : ++ +-- +* Aucune intégration directe : les externes ne peuvent soumettre que des suggestions et des contributions (sous forme de pull requests). +* Intégration comme contributeurs : les externes qui apportent des contributions fréquentes et de qualité sont directement intégrés. +* Transfert à des externes possible : si, après la publication, des externes contribuent davantage au développement que l'organisation qui publie, l'application peut aussi leur être transférée. +-- ++ +L'organisation qui publie reste propriétaire. Cette variante correspond à l'organisation des projets open source « classiques » ; voir par exemple https://opensource.guide/leadership-and-governance/ pour plus d'informations. + +ouvert / Mandataire / Interne:: +Il n'est *pas nécessaire de décrire en détail une organisation*, celle-ci étant délibérément conçue de manière ouverte. Il importe toutefois d'établir qui reçoit et traite les demandes externes (responsabilité). Il faut aussi déterminer si et dans quelle mesure des personnes externes peuvent être associées : ++ +-- +* Aucune intégration directe : les externes ne peuvent soumettre que des suggestions et des contributions (sous forme de pull requests). +* Intégration comme contributeurs : les externes qui apportent des contributions fréquentes et de qualité sont directement intégrés. +* Transfert à des externes possible : si, après la publication, des externes contribuent davantage au développement que l'organisation qui publie, l'application peut aussi leur être transférée. +-- ++ +L'organisation qui publie reste propriétaire. + +Cette variante correspond à l'organisation des projets open source « classiques » ; voir par exemple https://opensource.guide/leadership-and-governance/ pour plus d'informations. + +Le fournisseur ne devrait assumer que des tâches de coordination purement techniques (revue de code, évaluation). + +Tiers / Partenaire / Interne:: +Il n'est *pas nécessaire de décrire en détail une organisation*, celle-ci étant délibérément conçue de manière ouverte. Il importe toutefois d'établir qui reçoit et traite les demandes externes (responsabilité). Il faut aussi déterminer si et dans quelle mesure des personnes externes peuvent être associées : ++ +-- +* Aucune intégration directe : les externes ne peuvent soumettre que des suggestions et des contributions (sous forme de pull requests). +* Intégration comme contributeurs : les externes qui apportent des contributions fréquentes et de qualité sont directement intégrés. +* Transfert à des externes possible : si, après la publication, des externes contribuent davantage au développement que l'organisation qui publie, l'application peut aussi leur être transférée. +-- ++ +L'organisation qui publie reste propriétaire. Cette variante correspond à l'organisation des projets open source « classiques » ; voir par exemple https://opensource.guide/leadership-and-governance/ pour plus d'informations. + +S'agissant de la gouvernance, _[BITKOM2023]_ chapitre 4.1, _[IZqCab2023]_ ou https://github.com/todogroup/ospo-career-path/blob/main/OSPO-101/module7/README.md#governance-models peuvent également être consultés. + +Des exemples de statuts d'association figurent à l'annexe E. + +Remarque : la publication devant être garantie conformément à l'art. 9 LMETA, l'administration fédérale doit s'assurer que celle-ci ne puisse pas être soudainement retirée (voir les « directives Open Source dans les acquisitions — achat de logiciels selon l'art. 9 LMETA » _[BBL-WL]_, chiffre V.2). + +=== Feuille de route et processus de modification + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +Confédération / Mandataire / -:: +L'autorité fédérale définit la feuille de route et décide quelles modifications sont mises en œuvre. Les processus standard de l'office XY sont utilisés à cette fin. + +Confédération / Partenaire / -:: +L'autorité fédérale définit la feuille de route en collaboration avec l'entreprise XY. Elle décide quelles modifications sont mises en œuvre. Les processus standard de l'office XY sont utilisés à cette fin. + +Commun / - / Interne:: +Le processus d'élaboration de la feuille de route et d'approbation des modifications doit être déterminé par les membres de la société ou de l'association. Selon la structure des membres (nombre, rapport de taille, etc.), d'autres processus peuvent être appropriés. + +Les processus doivent toutefois comporter des mesures de résolution des conflits et de recherche de majorité. + +Commun / - / Tiers:: +Le processus d'élaboration de la feuille de route et d'approbation des modifications doit être déterminé par les membres de la société ou de l'association. Selon la structure des membres (nombre, rapport de taille, etc.), d'autres processus peuvent être appropriés. ++ +Les processus doivent toutefois comporter des mesures de résolution des conflits et de recherche de majorité. ++ +Avec l'ajout qu'une clé de répartition des coûts doit également être établie. Il convient aussi de réfléchir à la manière de traiter le partage des coûts pour des adaptations non souhaitées par les membres concernés. En particulier dans les associations comptant des membres de tailles inégales, des situations peuvent survenir où un grand membre (p. ex. l'autorité fédérale) supporte une part importante des coûts d'une extension sans en tirer profit. + +ouvert / - / -:: +_Exemple, ne convient pas à toutes les situations_ + +Il n'est pas nécessaire d'établir une feuille de route ; l'application répond actuellement aux besoins. ++ +Les modifications sont décidées dans une discussion ouverte et un consensus est recherché. La décision finale appartient au propriétaire du code (Confédération suisse). + +=== Processus de développement + +Si le développement ouvert entre en jeu, il doit être défini ici. La répartition des tâches et la désignation des postes centraux dans le concept de communauté sont importantes. De même que la manière dont la sécurité du contenu du dépôt est assurée. + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +Confédération / - / -:: +Les droits de committer (accès en écriture au code) appartiennent aux personnes/entités/fournisseurs sélectionnés par la Confédération. À l'expiration du contrat, les droits correspondants sont révoqués. ++ +Les prestataires et fournisseurs sont responsables de la conduite du processus technique de revue de code pour les contributions externes acceptées sur le fond par la Confédération. Ils répondent de la qualité technique. Les fournisseurs sont indemnisés pour ce travail par la Confédération. + +Commun / Mandataire / Interne:: +En principe, toutes les entités mandatées par un membre de la communauté reçoivent un accès en écriture au code (droits de committer). À l'expiration du contrat, les droits correspondants sont révoqués. ++ +Lorsque du code modifié touche des domaines centraux de l'application, toutes les modifications doivent être examinées par une entité spécialement mandatée à cet effet par la communauté. Cette entité répond de la qualité technique de l'application. Elle est aussi chargée d'examiner les modifications acceptées sur le fond par la communauté. + +Commun / Partenaire / Tiers:: +Les droits de committer (accès en écriture au code) appartiennent aux membres de la communauté. Ces personnes s'organisent elles-mêmes et assument conjointement la responsabilité de la qualité du code. ++ +Si un membre de la communauté mandate un fournisseur externe pour une adaptation ou une extension, celle-ci est examinée par un membre de la communauté. Il est indemnisé pour cela par le mandant. ++ +Les modifications du cœur de l'application doivent être examinées par un second membre de la communauté. ++ +Les fournisseurs membres de la communauté sont en outre chargés d'examiner les contributions externes et le nouveau code technique accepté sur le fond par l'association. + +ouvert / - / -:: +Initialement, les droits de committer appartiennent aux développeurs ou à leurs employeurs. Les droits de committer sont accordés à tous les développeurs qui contribuent activement au projet pendant plusieurs mois et font preuve d'une compétence sociale appropriée. ++ +Les développeurs conservent en principe leurs droits de committer, même s'ils changent d'employeur ou si la Confédération choisit un autre fournisseur. Les droits de committer ne s'éteignent que s'ils sont abandonnés volontairement ou si la majorité des autres committers décide de les révoquer. ++ +La Confédération a le droit de désigner comme committers certains développeurs des entreprises qu'elle mandate. Elle n'a pas le droit de retirer sans motif les droits de committer à quelqu'un. ++ +Les revues de code sont effectuées par au moins une personne agissant comme committer. Les committers s'organisent eux-mêmes. ++ +La Confédération s'engage à indemniser le travail de revue dans la mesure où cela lui est financièrement possible. + +=== Partage des coûts et fournisseurs + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +Confédération / Mandataire / Interne:: +Les fournisseurs sont sélectionnés périodiquement par appels d'offres OMC ou par une procédure de gré à gré (selon l'ampleur des prestations de maintenance). + +Confédération / Partenaire / -:: +*Important :* vérifier au préalable si cela est admissible au regard du droit des marchés publics dans le cas concret. ++ +Nous compléterons la documentation sur ce point. La Confédération choisit le fournisseur XXX comme partenaire stratégique et vise une coopération à long terme. + +Commun / Mandataire / Interne:: +Chaque membre de la communauté mandate de manière autonome un ou plusieurs fournisseurs de logiciels pour mettre en œuvre les adaptations et extensions dont il a besoin. Pour les adaptations souhaitées par plusieurs membres, le partage des coûts est convenu au cas par cas. Le membre supportant la plus grande part des coûts est responsable de la sélection et du mandat au fournisseur. (Réglementations relatives à la maintenance logicielle) + +Commun / Mandataire / Tiers:: +L'association sélectionne périodiquement les fournisseurs de logiciels de manière centralisée par appels d'offres OMC ou procédures de gré à gré (selon l'ampleur des prestations de maintenance). Les coûts sont attribués aux membres selon une clé : (à définir : par population, utilisateurs, etc.) + +Commun / Partenaire / Interne:: +Chaque membre de la communauté mandate de manière autonome un ou plusieurs fournisseurs de logiciels pour mettre en œuvre les adaptations et extensions dont il a besoin. Pour les adaptations souhaitées par plusieurs membres, le partage des coûts est convenu au cas par cas. Le membre supportant la plus grande part des coûts est responsable de la sélection et du mandat au fournisseur. ++ +_(Réglementations relatives à la maintenance logicielle)_ Au besoin complété par une contribution des fournisseurs participants. Exemple : _Chaque entreprise de développement logiciel membre de la communauté s'engage à investir chaque année au moins XY jours de travail à ses propres frais dans le développement, la mise à jour technologique ou le marketing de l'application._ + +Commun / Partenaire / Tiers:: +L'association sélectionne périodiquement les fournisseurs de logiciels de manière centralisée par appels d'offres OMC ou procédures de gré à gré (selon l'ampleur des prestations de maintenance). Les coûts sont attribués aux membres selon une clé : (à définir : par population, utilisateurs, etc.) Au besoin complété par l'ajout suivant : _Chaque entreprise de développement logiciel membre de la communauté s'engage à investir chaque année au moins XY jours de travail à ses propres frais dans le développement, la mise à jour technologique ou le marketing de l'application._ + +Tiers / Mandataire / -:: +Les fournisseurs sont sélectionnés périodiquement par appels d'offres OMC ou par une procédure de gré à gré (selon l'ampleur des prestations de maintenance). Avec l'ajout suivant : _Les améliorations apportées par les fournisseurs potentiels et leurs activités dans la communauté sont prises en compte comme facteur dans l'évaluation._ ++ +Les modifications souhaitées par des externes ne sont pas financées par la Confédération, mais doivent être commandées et payées par eux-mêmes. + +Tiers / Partenaire / -:: +Les fournisseurs sont sélectionnés périodiquement par appels d'offres OMC ou par une procédure de gré à gré (selon l'ampleur des prestations de maintenance). Avec l'ajout suivant : _Les améliorations apportées par les fournisseurs potentiels et leurs activités dans la communauté sont prises en compte comme facteur dans l'évaluation. Les modifications souhaitées par des externes ne sont pas financées par la Confédération, mais doivent être commandées et payées par eux-mêmes._ + +=== Marketing + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +Confédération / Mandataire / -:: +La Confédération ne commercialise pas activement l'application, mais la publie sur des plateformes de logiciels open source. La publication de l'application est annoncée dans les organes spécialisés. Si des parties intéressées se manifestent, nous examinons s'il convient de constituer une communauté commune ou de poursuivre avec leur version du logiciel. + +Commun / Partenaire / -:: +En complément : + +Les fournisseurs peuvent commercialiser l'application et rechercher d'autres parties intéressées. La Confédération peut être citée comme référence. Nous acceptons consciemment que des versions divergentes du logiciel puissent en résulter. + +Commun / Mandataire / Interne:: +L'application est commercialisée par les membres ou par l'association. + +Commun / Partenaire / Interne:: +L'application est commercialisée par les fournisseurs. + +Commun / - / Tiers:: +L'application est commercialisée par l'association, la société simple et leurs membres. + +ouvert / - / -:: +L'application peut être commercialisée par des fournisseurs, ou il peut être renoncé à un marketing explicite. ++ +Alternative sans marketing explicite : la Confédération ne commercialise pas activement l'application, mais la publie sur des plateformes de logiciels open source. Dans les organes spécialisés, nous signalons que nous avons publié l'application et qu'une collaboration est bienvenue. Nous présentons le logiciel aux personnes intéressées et tentons de les intégrer dans nos processus d'élaboration de la feuille de route. + +=== Traitement des contributions externes + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +Confédération / Mandataire / -:: +Les contributions et demandes externes doivent aussi être traitées même si la Confédération reste seule décideuse concernant le logiciel (sauf en cas de publication minimale, où un fork est inévitable). Nous proposons l'approche suivante : ++ +*Traitement des erreurs signalées* + +Nous tentons de reproduire les erreurs signalées par des personnes externes et demandons des précisions au besoin. Si la reproduction réussit, la Confédération commande la correction des erreurs. Si l'erreur ne peut pas être vérifiée ou si l'effort de correction est disproportionné, nous présentons nos excuses à la personne ayant signalé l'erreur et lui demandons si elle pourrait soumettre une pull request pour y remédier. ++ +*Traitement des demandes* + +Nous répondons à chaque demande entrante. Si une demande ne peut pas être traitée avec un effort raisonnable et qu'un investissement supplémentaire de temps semble inefficient, nous présentons nos excuses en invoquant des ressources limitées et proposons de mettre la personne en contact avec un fournisseur pour un conseil plus approfondi. ++ +*Traitement des pull requests* + +Nous examinons chaque pull request avec soin. Afin d'éviter un effort inutile du côté du contributeur, nous signalons immédiatement si quelque chose contredit notre feuille de route ou s'il est douteux que nous acceptions la contribution. La Confédération décide de manière autonome et selon des critères techniques quelles contributions elle accepte. Les corrections d'erreurs ayant passé le processus de revue sont toujours acceptées. ++ +*Traitement des forks* + +Nous soutenons les forks de notre application. Celui qui déploie l'application devrait créer son propre fork. Nous examinons les forks qui en résultent au moins une fois par an et reprenons les extensions bonnes et adaptées. + +Commun / - / -:: +Externe désigne les contributions provenant de l'extérieur de la communauté définie (membres de l'association). Différences par rapport à ci-dessus : + +*Traitement des forks* + +Nous voulons éviter les forks (durables) de l'application. Les personnes intéressées devraient plutôt rejoindre directement la communauté. Au sein de la communauté, nous tentons de garantir que tous les membres utilisent la version principale. + +Ouvert / - / -:: +La constitution d'une communauté qui fonctionne et d'une culture ouverte nous importe. ++ +*Traitement des erreurs signalées* + +Nous tentons de reproduire et de corriger les erreurs signalées. Nous présupposons la collaboration active des personnes qui signalent. Si possible, elles devraient créer directement une pull request avec une correction d'erreur. ++ +*Traitement des demandes* + +Nous traitons chaque demande dans un délai d'une semaine au maximum. Les demandes de contributeurs actifs sont traitées en priorité et de manière approfondie. Nous tentons d'associer d'autres membres au traitement des demandes. ++ +*Traitement des pull requests* + +Nous souhaitons recevoir autant de pull requests de haute qualité que possible. Nous associons tous les contributeurs actifs aux revues ainsi qu'à l'évaluation technique et métier des pull requests. Pour les contributions controversées, nous tentons de parvenir à une décision par un vote informel. ++ +*Traitement des forks* + +Nous tentons de rendre les forks inutiles par une gestion de communauté active et ouverte. Si des forks apparaissent malgré tout, nous les examinons activement et tentons de reprendre les extensions et améliorations qui y ont été développées. Dans de tels cas, nous sollicitons activement des pull requests. + +De manière générale, il convient de relever que les contributions peuvent aller du soutien à d'autres utilisateurs jusqu'à la prise en charge de la responsabilité de parties entières d'un projet (voir _[BITKOM2023]_ chapitre 4.2). + +=== Exploitation de l'application + +_Gestion du produit / Fournisseur comme / Développement -- Proposition_ + +Commun / - / -:: +Une exploitation centralisée peut être proposée en option par l'association centrale, au sens du Software as a Service (SaaS). Il convient d'examiner si cela est souhaité. + +- / Partenaire / -:: +Il convient de préciser si le fournisseur doit aussi exploiter le logiciel. + +- / Direction / -:: +Il convient d'indiquer que le fournisseur est responsable de l'exploitation. + +Les niveaux de support et les contacts de support devraient également être précisés dans ce chapitre. + +== Informations importantes pour les responsables de communauté + +=== Cela prend du temps + +La constitution de communautés est une démarche à planifier sur le long terme. La persévérance et la constance sont deux qualités importantes pour une communauté réussie. + +=== Autres suggestions pour la constitution d'une communauté + +D'autres suggestions pour une bonne gestion de communauté figurent sur https://opensource.guide/code-of-conduct/ et https://opensource.guide/best-practices/. + +=== Communication + +La publication de logiciels et de documentation ouvre un nouveau canal de communication pour l'administration fédérale. Si cela n'est pas fait avec soin et professionnalisme, l'image publique de la Confédération peut en pâtir. + +Les communautés OSS de l'administration fédérale se trouvent dans un champ de tension en matière de communication : d'une part s'appliquent les *prescriptions générales de communication*, d'autre part la communauté doit permettre une *collaboration formelle et informelle simple* au-delà des frontières organisationnelles, de préférence sans contrôles qualité ni validations formels. + +L'utilisation de dépôts publics et, le cas échéant, de suivis de problèmes et de wikis publics signifie que les propos de chaque collaborateur du projet sont visibles sans filtre par le public. Cela exige des collaborateurs du projet une attitude professionnelle et le respect de standards de qualité pour les publications dans de tels environnements. + +Dans les projets OSS, cela est normalement réglé par le *Code of Conduct*. Le code de comportement de l'administration fédéralefootnote:[https://www.epa.admin.ch/dam/epa/fr/dokumente/aktuell/medienservice/120_verhaltenskodex_f.pdf.download.pdf/120_verhaltenskodex_f.pdf] est très général, mais le principe central est applicable ici : « Les collaborateurs accomplissent leurs tâches avec conscience, intégrité et loyauté. Dans leur vie privée aussi, ils veillent à ne pas porter atteinte à la réputation, à la crédibilité et à l'image de la Confédération. » + +=== Développement ouvert + +Si le développement logiciel est prévu dès le départ dans un dépôt ouvert, la publication se fait automatiquement. Les listes de contrôle déterminantes selon les instructions link:em002-2.pdf[Em002-2] doivent être remplies au début, et les processus de développement du prestataire ou du fournisseur doivent le permettre. L'avantage est que la communauté peut être constituée dès le tout début. Plusieurs organisations peuvent en outre collaborer au développement. + +Les dépôts fermés constituent une forme intermédiaire, mais sont utilisés pour d'autres partenaires dans une collaboration. + +=== Gestion des utilisateurs + +Le projet (ou l'organisation porteuse) détermine si les développeurs et autres collaborateurs du projet travaillent sous leur propre nom ou de manière anonyme. Si les personnes ne travaillent pas anonymement et disposent déjà de comptes sur les plateformes, il est plus simple d'utiliser ceux-ci (professionnels ou privés). + +La plateforme devrait en principe permettre l'intégration de tiers, faute de quoi aucun développeur extérieur à la Confédération ne pourra collaborer. + +Lors du départ du projet, les droits correspondants sur le projet doivent être supprimés. La gestion du produit en est responsable. + +=== Fusion de communautés + +Dans la mesure du possible, le nombre de communautés devrait rester restreint. Cela signifie : + +* S'il existe déjà une communauté où une structure similaire est prévue pour des problèmes similaires impliquant les mêmes personnes, une seule communauté devrait être utilisée. +* Plusieurs projets connexes s'adressant au même public cible peuvent être regroupés en une seule communauté. +* Il ne faut pas créer inutilement des structures de communauté fondamentalement différentes là où il en existe déjà. + +=== Traitement des contributions de tiers + +La contribution de logiciels à d'autres projets est traitée au chapitre 3.3. Les mêmes principes s'appliquent en sens inverse. + +Les points suivants sont importants : + +* Un Contributor Licence Agreement approprié doit être utilisé afin de garantir que le code source appartienne ensuite à la Confédération (voir aussi link:em002-3.pdf[Em002-3 Guide de licences OSS], chapitre sur les Contributor Licence Agreements). Celui-ci doit être signé par le propriétaire de la contribution. +* Les confirmations doivent être classées. +* Les contributions doivent être examinées avant leur intégration dans la base de code. +* Les soumissions devraient recevoir une réponse dans un délai raisonnable (issues, requests, pull requests) et être traitées de la manière la plus constructive possible. +* Tous les canaux et arrangements de gouvernance devraient figurer dans le concept de communauté, sur le site web et dans le dépôt. + +=== Signalements relevant de la sécurité + +Outre les signalements d'erreurs usuels, il convient de prévoir — lorsque la nature du projet l'exige — que les vulnérabilités relevant de la sécurité puissent être signalées de manière confidentielle, comme c'est le cas par exemple d'un programme de bug bounty. + +Les documents de trustbroker.swiss peuvent servir d'exemple : + +* https://github.com/trustbroker-swiss/trustbroker.swiss/blob/main/Security-and-Vulnerability-Disclosure.md + +=== Éviter les forks + +Si les forks sont naturels dans le monde de l'open source, la réintégration du code source, des fonctionnalités et ainsi de suite issus de forks est loin d'être simple. Il peut valoir la peine d'approcher les personnes ou organisations envisageant un fork et de tenter de les maintenir engagées dans le projet principal. Trouver un équilibre entre des intérêts concurrents est souvent nécessaire dans de tels cas. + +=== Répartition des coûts + +Il est judicieux de convenir de clés de répartition générales entre les principaux partenaires. Celles-ci peuvent être adaptées tous les quelques années ou lorsque la situation change fondamentalement. Pour un travail efficace sur le logiciel, les grands partenaires devraient plutôt assumer des parts un peu plus importantes qu'ils ne le devraient effectivement (au besoin aussi la coordination générale). L'organisation doit travailler et non se disputer sur les finances. Si la collaboration porte sur plusieurs projets (par exemple les solutions sectorielles dans le domaine des chemins de fer à voie normale), une clé de répartition uniforme devrait être utilisée pour tous les projets. Du point de vue des autorités fédérales, c'est une amélioration si les coûts ne doivent pas être supportés seuls. + +Critères possibles pour les clés de répartition : + +* Estimation de la répartition des bénéfices (p. ex. entre une autorité fédérale et un fournisseur espérant d'autres clients) +* Nombre d'habitants/d'utilisateurs (p. ex. entre offices, communes, villes) +* Capacité financière (p. ex. cantons) +* Produit intérieur brut (p. ex. entre cantons) +* Qui veut davantage de contrôle + +Pour éviter les discussions, la clé de répartition ne devrait pas être simplement liée au budget annuel. Une clause dans l'esprit du principe de causalité peut permettre des adaptations plus rapides pour certains partenaires s'ils sont disposés à payer un supplément. + +La clé de répartition devrait aussi s'appliquer aux frais généraux, à la maintenance/au support et à un minimum de développement ultérieur. Ces parties devraient si possible être résolues sur le long terme. + +Il convient de garder à l'esprit que, lorsque des financements de tiers interviennent, ces parties voudront typiquement avoir davantage voix au chapitre. La gestion de la communauté doit être outillée pour y faire face. + +=== Prestations complémentaires selon l'art. 9, al. 5 et 6, LMETA + +Les autorités fédérales peuvent (elles-mêmes, par l'intermédiaire de prestataires ou de fournisseurs) fournir des prestations complémentaires, en particulier pour l'intégration, la maintenance, la garantie de la sécurité de l'information et le support. + +La limite est qu'elles doivent servir les tâches des autorités et pouvoir être fournies avec un effort proportionné. + +Il en découle que l'autorité fédérale ne peut pas être l'entreprise de développement pour des tiers. Elle corrige des erreurs, peut traiter des aspects relevant de la sécurité, peut fournir un certain support et une aide à l'intégration (toutes activités contribuant à constituer une communauté). Les nouveaux développements et fonctionnalités supplémentaires pour des tiers devraient avant tout s'orienter sur le but de travail normal de l'autorité. Il se peut naturellement que la mise à disposition du logiciel fasse partie de la tâche ; dans ce cas, des développements peuvent être réalisés à tout moment. Il est également précisé que le développement logiciel n'est pas la tâche principale de l'autorité fédérale. + +Cela signifie que si des fonctionnalités sont développées pour l'essentiel exclusivement pour des tiers, elles doivent être intégrées en partenariat ou par l'intermédiaire du fournisseur. + +Pour éviter des problèmes de droit des marchés publics, il convient, lors de l'acquisition de logiciels et de prestations, de veiller à ce que des fonctionnalités puissent être fournies à des tiers (le cas échéant uniquement à des tiers étatiques) par des fournisseurs. + +La fixation des émoluments a déjà été abordée au chapitre « Support ». La LMETA constitue déjà la base légale de tels émoluments. Ceux-ci doivent être communiqués sur le site web de l'autorité fédérale concernée. Des exemples figurent à l'annexe G. + +L'art. 9, al. 6, prévoit qu'il ne faut normalement pas concurrencer le secteur privé. Cela signifie que les émoluments ne devraient pas être fixés trop bas et devraient au moins couvrir les coûts. En cas de doute, il vaut mieux fixer des tarifs horaires trop élevés que trop bas. + +De manière générale, il est recommandé de travailler avec un à trois tarifs horaires standard différents. + +Si un département fédéral souhaite définir des exceptions à l'al. 6, cela ne doit pas concurrencer le secteur privé. Dans certaines circonstances, le plus simple peut être de fixer les émoluments et de les augmenter en cas d'opposition d'entreprises privées effectivement en mesure d'offrir la prestation. + +=== Souveraineté numérique + +Tant que la Confédération ne dispose pas de son propre dépôt, il est recommandé, pour assurer la souveraineté numérique, de réaliser régulièrement des copies des dépôts publics. + +Il convient de noter que ce n'est pas seulement le code source qui est copié, mais aussi d'autres informations telles que le suivi des problèmes, le wiki, les configurations, etc. + +Par ailleurs, la gestion des utilisateurs doit être réglée afin d'assurer le contrôle du code source publié. L'objectif général est de garantir un développement indépendant de la plateforme concernée et de permettre à la communauté de changer.footnote:[Voir aussi https://www.bfh.ch/de/aktuell/news/2024/neue-studie-digitale-souveraenitaet/] + +== Annexe + +=== Modifications par rapport à la version précédente + +* Chapitre 1 « L'essentiel en bref » ajouté +* But de la communauté ajouté au chapitre 3 +* Chapitres 3.1 à 3.3 sur la collaboration ajoutés +* Nouveau chapitre 7.7 Traitement des contributions de tiers +* Précisé que les fournisseurs ne devraient pas publier entièrement de leur propre chef (conformément à _[BBL-WL]_, V.2) +* Publicode.yml mentionné +* Harmonisation avec le nouveau link:em002-7.pdf[Em002-7] +* Autres modifications et améliorations rédactionnelles + +=== Références + +Voir _Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale_. + +=== Abréviations + +Voir link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale] et link:em002-6.pdf[Em002-6 FAQ sur l'OSS]. + +=== Exemples de concepts de communauté existants + +Dans l'esprit d'une collecte de bonnes pratiques figurent ci-après des concepts de communauté et documents comparables déjà élaborés. Il ne s'agit pas nécessairement de concepts d'autorités fédérales uniquement, mais aussi d'autres organisations. + +* GERES Community (http://geres-community.ch) + +Classification : + +* Gestion du produit a) Développement commun +* Fournisseur plutôt a) Mandataire +* Répartition des coûts : b) Partage des coûts + +Remarque : le registre communal GERES n'est pas open source, mais de nombreux aspects de l'organisation peuvent aussi être pertinents pour des applications open source. Documents : statuts (publics) et règlement intérieur (sur demande). + +* https://www.igovportal.ch[iGov Portal] + +#Ce chapitre contient actuellement des concepts du canton de Berne et sera complété dès que des exemples fédéraux seront disponibles.# + +=== Exemples de collaborations + +Les exemples suivants illustrent comment des collaborations ont été structurées. + +=== Collaboration : ZenDiS en Allemagne + +ZenDiSfootnote:[https://www.zendis.de/en[Page d'accueil ZenDiS : Co-creating Digital Sovereignty]] est une organisation dont le but est de réduire la dépendance dans l'administration publique (principalement en Allemagne) en promouvant les logiciels open source. + +[mermaid,align="center",alt="Objectifs et approches pour renforcer la souveraineté numérique (ZenDiS)"] +.... +block-beta + columns 12 + H1["Objectifs"]:12 + G1["I. Possibilité de changer de fournisseur"]:4 G2["II. Capacité de conception"]:4 G3["III. Influence sur les fournisseurs"]:4 + H2["Approches de solution"]:12 + B1["1. Analyse et pilotage
prospectifs des dépendances"]:3 B3["3. Modularité indépendante du
fournisseur, standards (ouverts)
et interfaces informatiques"]:3 B5["5. Co-conception coopérative
des solutions informatiques"]:3 B7["7. Exigences juridiques"]:3 + B2["2. Acquisition ou développement
de solutions informatiques
alternatives (p. ex. OSS)"]:3 B4["4. Développement des compétences
numériques et de l'expertise"]:3 B6["6. Compréhension et
démarche communes"]:3 B8["8. Pilotage politique"]:3 + classDef highlight fill:#dae8fc,stroke:#000000,color:#000000 + class B2 highlight +.... + +Figure 1 : Objectifs et approches pour renforcer la souveraineté numérique (ZenDiS) + +ZenDiS collabore à cette fin avec des partenaires stratégiques. + +Une coopération entre l'administration fédérale et ZenDiS ne devrait donc guère être possible sans restriction, et une coordination ne serait pas contraignante. Cela peut changer avec le temps. + +Concrètement, l'administration fédérale devrait mettre en place sa propre organisation pour la Suisse et se coordonner de manière informelle avec ZenDiS. Cela pourrait éventuellement se faire via eOperations, étant précisé qu'eOperations ne devient active que lorsqu'un besoin concret est annoncé et qu'un budget est mis à disposition. Une justification d'une telle organisation parallèle pourrait être trouvée dans le contexte de la cyberadministration ou de la LMETA. + +Remarque : ZenDiS est soumise au droit des marchés publics de l'UE et de l'Allemagne. Il existe des différences importantes par rapport à la Suisse. ZenDiS ne peut donc pas être reproduite à l'identique en Suisse, et une coopération avec ZenDiS n'est pas évidente. + +=== Collaboration : Open Trip Planner (OTP) + +Open Trip Plannerfootnote:[https://www.opentripplanner.org/[OpenTripPlanner]] est une application open source de planification de voyages. Elle est organisée comme un projet de la Software Freedom Conservancy à New York. Certains développeurs sont employés par des entreprises de transport et des fournisseurs. Fait notable, un acteur du secteur public — concrètement ENTURfootnote:[https://entur.no/] — a assumé l'un des rôles dirigeants. ENTUR développe avant tout pour ses propres besoins, mais a aussi une orientation coopérative, en particulier pour les pays nordiques. ENTUR est organisée comme une société détenue par le ministère norvégien des transports et des communications. En tant que plus grand acteur, ENTUR absorbe également une part importante des coûts de coordination. Chacun peut soumettre des demandes de fonctionnalités ; celles-ci sont discutées lors de réunions de coordination et développées si quelqu'un les finance. Le financement est assuré principalement par fonctionnalité, par la ou les parties intéressées. Pour l'essentiel, chaque partie supporte ses propres coûts. Les prestations de support devraient en outre faire l'objet d'un appel d'offres distinct en Suisse. + +=== Nouvelle collaboration initiée par la Confédération : Swiss Trust Broker + +Le Trust Brokerfootnote:[https://github.com/trustbroker-swiss/trustbroker.swiss[GitHub - trustbroker-swiss/trustbroker.swiss: Documentation of the trustbroker.swiss service]] est un logiciel de la Confédération pour eIAM, disponible en open source. Le développement est assuré par la Confédération. Plusieurs cantons ont décidé de le déployer soit directement en SaaS, soit avec leurs propres instances. Comme il est disponible sous licence AGPL, les extensions réalisées profitent à leur tour à la Confédération. Compte tenu de son caractère critique pour la sécurité, le développement pour l'administration fédérale est assuré exclusivement par la Confédération. D'autres organisations peuvent soumettre des exigences, qui seront mises en œuvre si l'équipe de projet les juge appropriées. + +=== Nouvelle collaboration initiée par les cantons : inosca + +Via inosca,footnote:[https://inosca.ch/] plusieurs cantons ont constitué une communauté de développement axée sur les autorisations électroniques, née du projet eBau.footnote:[https://github.com/inosca/ebau] eBau comprend aussi Caluma,footnote:[https://github.com/projectcaluma] un framework d'édition collaborative — un exemple de composant extrait d'une solution plus large et développé en un framework autonome et largement applicable. Celui-ci peut aussi être utilisé dans d'autres projets, même lorsque certaines parties sont soumises à des conditions d'exception, permettant ainsi au plus grand nombre d'autres entités de profiter du code. + +La communauté se réunit au moins une fois par mois (en option deux fois) pour échanger sur des sujets techniques et planifier la feuille de route commune. Tous les participants peuvent soumettre des sujets. Lorsqu'un sujet est jugé pertinent pour la communauté, les cantons intéressés se manifestent et s'organisent en groupe de travail. Les résultats sont restitués en continu à la communauté. inosca fonctionne selon un principe fondamental : qui conçoit, finance. Autrement dit, tous les cantons participant à un groupe de travail se partagent les coûts de la nouvelle fonctionnalité. La fonctionnalité est mise au concours et les coûts sont répartis au sein de la communauté selon une formule de partage des coûts prédéfinie. Dès qu'une fonctionnalité est achevée et déployée, elle devient immédiatement disponible gratuitement pour tous les autres cantons. + +La communauté a en outre décidé de réserver un modeste montant annuel fixe pour couvrir les frais administratifs liés au fonctionnement de la communauté. Ce budget est attribué chaque année aux parties assumant un rôle organisationnel. + +=== SNOWPACK du WSL — contributions directes de développeurs + +SNOWPACKfootnote:[https://snow-models.gitlab-pages.wsl.ch/snowpack-web/] est un projet open source développé par le WSL pour modéliser la formation du manteau neigeux. Il s'agit d'un modèle hautement spécialisé, et la communauté a en conséquence été intégrée dans la communauté spécialisée existante. Certains problèmes ont déjà été identifiés comme contributions potentielles. Le modèle de travail est ici que chaque partie supporte ses propres coûts et apporte des fonctionnalités. Les directives relatives au style de codage et au processus de publication sont également documentées dans ce contexte. + +=== Inspiration pour des statuts d'association + +Les statuts devraient être aussi simples que possible. + +Les statuts suivants peuvent servir d'inspiration. + +* eCH : https://www.ech.ch/sites/default/files/page/STAT_d_DEF_2014-04-10_ech-Statuten.pdf +* Stop Piracy : https://www.stop-piracy.ch/wp-content/uploads/2022/01/Statuten_d_10_09_2021.pdf + +#D'autres exemples de statuts seront ajoutés dès qu'ils seront disponibles.# + +=== Exemples de support et d'émoluments + +* Émoluments pour les prestations statistiques : https://www.fedlex.admin.ch/eli/cc/2003/326/fr[https://www.fedlex.admin.ch/eli/cc/2003/326/fr] +* Émoluments du PFPDT : https://www.edoeb.admin.ch/edoeb/fr/home/datenschutz/grundlagen/dsfa.html +* Prestations gratuites de l'IPI pour des cours dans le domaine de la propriété intellectuelle (pas un logiciel, mais à titre d'exemple) : https://www.ige.ch/fr/prestations/ip-academy/informations-generales/prix + +Des exemples seront ajoutés dès qu'ils seront disponibles. +endif::[] + +ifeval::["{lang}" == "it"] +NOTE: Il presente documento è una bozza in continua evoluzione e fa parte degli strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Per maggiori informazioni si veda il {url-repo}/tree/main[README] principale. + +== L'essenziale in breve + +Di seguito sono elencati i punti più importanti del documento. + +* La costituzione o la gestione di una community OSS *non è richiesta* dall'art. 9 LMeCA. +* Una community è rilevante quando un gruppo di utenti ha senso e devono essere create *sinergie* con altri utenti del software. +* Una community non si limita al software stesso, ma può comprendere anche i processi circostanti e la standardizzazione dei dati. +* Per costituire una community occorre sempre un *onere iniziale*. Esso prosegue di regola nel tempo. In molti casi è opportuno che l'ufficio capofila sostenga anche i costi di coordinamento. +* Le community devono perseguire uno *scopo*. Occorrono interessati e partecipanti. +* Una community può nascere e poi essere formalizzata. +* L'obiettivo della community è accrescere il *beneficio per tutti*. Principio generale: «si ottiene almeno quanto si apporta». +* La community dovrebbe essere *strutturata nel modo più semplice possibile*. +* In un primo momento la community dovrebbe essere esaminata brevemente mediante la lista di controllo link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. Soltanto se è opportuna dovrebbe essere sviluppata ulteriormente. +* La formalizzazione avviene mediante un *concetto di community*. Occorre riprendere il più possibile da fonti esistenti. Principio generale: «non reinventare la ruota». +* Se si mira a una collaborazione, ciò va considerato già all'inizio del progetto, poiché i potenziali partner dovrebbero essere coinvolti sin dall'analisi dei requisiti. Anche sotto il profilo giuridico e del diritto degli acquisti pubblici ciò va pianificato bene sin dall'inizio. +* Le possibilità di aderire a una collaborazione esistente vanno esaminate sotto il profilo giuridico e del diritto degli acquisti pubblici. +* Per i contributi non occorre costituire alcuna community. Se tuttavia il progetto lo richiede, va firmato il corrispondente *Contributor Licence Agreement (CLA)* oppure gli sviluppatori devono essere autorizzati dal progetto a presentare il software sotto un Developer Certificate of Origin (DCO). + +== Introduzione + +La presente guida si rivolge agli specialisti TIC responsabili di un'applicazione che intendono offrirla come open source o contribuire a una simile applicazione. + +Ciò va organizzato in modo formale o informale. + +Il presente documento fornisce informazioni importanti per l'organizzazione e la costituzione di una communityfootnote:[La community di un progetto open source rappresenta tipicamente una piramide. + +La base di questa piramide è costituita dagli utenti del software, in particolare da quelli impegnati che partecipano attivamente alla community, per esempio sotto forma di segnalazioni di errori e richieste di funzionalità o mediante contributi a mailing list. + +Direttamente sopra, nella piramide, si trovano i contributori. Si tratta di parti della community che propongono propri contributi di codice. Essi tipicamente non hanno accesso in scrittura al repository. I loro contributi sono esaminati dai manutentori del progetto e integrati nel repository dopo aver raggiunto la qualità tipica del progetto. + +Al vertice della piramide si trovano i manutentori o committer di un progetto. In tale ruolo uno sviluppatore assume una responsabilità maggiore. Ciò si manifesta per esempio nella possibilità di accettare contributi. Tale diritto si concretizza spesso nell'accesso in scrittura al repository. A questo livello si esercita il controllo sul software, sulla sua qualità e sulla sua gamma di funzioni. Nei progetti più complessi tale livello può essere ulteriormente suddiviso. Il kernel Linux, per esempio, conta notoriamente manutentori di sottosistemi su più livelli e, in definitiva, un solo sviluppatore, Linus Torvalds, integra le patch nel repository del progetto. Un altro esempio è dato dai progetti della Eclipse Foundation, che dispongono tipicamente di un project lead con diritti supplementari nell'ambito del processo di sviluppo della Eclipse Foundation, quali l'avvio del processo di rilascio o l'elezione formale di committer o project lead _[BITKOM2023]_.] nonché per lo sviluppo aperto direttamente come progetto open source. + +Quale secondo elemento, per promuovere la standardizzazione, nell'ambito del presente documento è tenuto un repertorio di concetti di community esistenti. L'idea è che nuove community possano essere costituite con un onere minimo sulla base di soluzioni collaudate. + +Il presente documento non contiene raccomandazioni dirette per l'organizzazione di community attorno a librerie software (parti di software che svolgono funzioni parziali, p. es. la generazione di PDF). Normalmente per esse non viene elaborato alcun concetto proprio; si utilizza invece il modello semplice definito nel modello di archiviazione del repository. + +Il documento link:em002-1.pdf[Em002-01 Guida pratica per il software open source nell'Amministrazione federale] contiene, nel capitolo 4, le forme fondamentali di collaborazione, nel capitolo 8 i diversi modelli di supporto e, nell'allegato, informazioni sul comportamento di mercato dell'open source. + +== Tipo, obiettivo e scopo di una community + +Una community può perseguire i seguenti scopi: + +* Rilevamento di requisiti supplementari +* Diffusione di conoscenze sull'applicazione +* Migliori riscontri dagli utenti +* Promozione di traduzioni, documentazione e formazione +* Diffusione della standardizzazione +* Interazione complessivamente migliore con gli utenti +* Estensione della cooperazione ad altre parti +* Promozione di ulteriore software basato sul software + +Quale tipo di community sia più adatto a un'applicazione dipende fortemente dal contesto specialistico, dai potenziali utenti e dalla strategia dell'istituzione che pubblica. Vi sono molti modi diversi di costituire community. Idealmente, un progetto adeguato può aderire a una community esistente. In alternativa, una community può essere costituita con uno o più partner con pari diritti. + +È importante che venga stabilita una *struttura di governance* e che i punti determinanti siano documentati in un *concetto di community* (cfr. anche _[BITKOM2023]_ capitolo 4.1 e _[IZqCab2023]_). + +Va rilevato che le community per il software possono anche essere combinate con quelle per i dati, la standardizzazione e i temi specialistici. La community può allora comprendere processi, standardizzazione, software e dati. Strutture esistenti quali eOperations, ADS ed eCH possono parimenti essere utilizzate ove opportuno. + +Un aspetto importante di una community funzionante è che i partecipanti ricevano più di quanto investono. + +Esistono le seguenti costellazioni: + +* *Community attorno a un OSS della Confederazione*: la governance e il concetto di community vanno elaborati. In tale contesto occorre anche disciplinare come terzi possano apportare contributi. +* *Nuova collaborazione per risolvere un problema*: oltre alla governance e al concetto di community va costituita l'intera struttura giuridica della collaborazione. +* *Adesione a una collaborazione*: l'Amministrazione federale deve esaminare se e come può farlo. +* *Contributo a un progetto di terzi*: va verificata la politica del progetto in materia di contributi (Contributor Licence Agreement, Developer Certificate of Origin ecc.). + +Le questioni di diritto degli acquisti pubblici sono trattate in link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e del software open source]. + +=== Caso particolare: nuova collaborazione per lo sviluppo, la manutenzione e il supporto di software open source + +I costi complessivi del software open source diminuiscono quando esso è sviluppato e mantenuto congiuntamente. Ciò può avvenire senza accordi di cooperazione formali, o con nulla più di una pianificazione comune. + +Se si mira a una collaborazione più formale, andrebbe svolta un'analisi di mercato per assicurarsi che la collaborazione sia la forma di cooperazione più adeguata. Le collaborazioni sono più economiche dello sviluppo individuale da parte di ciascuna parte (cfr. link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]). + +Va rilevato che per le collaborazioni è opportuno avviare la collaborazione molto presto nella metodologia di progetto HERMESfootnote:[https://www.hermes.admin.ch/it/gestione-di-progetti/panoramica-del-metodo.html] — concretamente durante le fasi di analisi della situazione e dei requisiti. + +La collaborazione è in linea di principio ammessa in Svizzera secondo l'articolo 4 LMeCA. + +Oltre a tutte le altre considerazioni, le collaborazioni presentano sia una dimensione giuridica sia una dimensione di diritto degli acquisti pubblici. Attualmente ogni caso è valutato singolarmente. Con il tempo si affermeranno modelli standardizzati. + +==== Dimensione giuridica + +Le adesioni ad associazioni sono praticabili, anche se sono di regola valutate caso per caso: chi sta dietro l'associazione e quali obblighi vengono assunti? Una delega delle adesioni a eOperations o a organizzazioni analoghe sarebbe possibile. + +Fintanto che non circola denaro e non devono essere assunti obblighi formali, è possibile un Memorandum of Understanding a livello di ufficio federale o di Cancelleria federale. + +Una situazione che richieda la conclusione di un trattato internazionale andrebbe evitata. + +Esistono inoltre due casi particolarifootnote:[https://www.eda.admin.ch/deza/it/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] in cui una collaborazione sarebbe già coperta: + +* Le commesse aggiudicate in virtù di un accordo internazionale concernente la realizzazione congiunta di un progetto da parte di Stati firmatari. +* Le commesse aggiudicate conformemente alle procedure o condizioni particolari di un'organizzazione internazionale. + +==== Dimensione di diritto degli acquisti pubblici + +In molti casi la collaborazione avviene tra organizzazioni del settore pubblico. In tali casi l'acquisto non pone problemi se la configurazione è «intrastatale» (cfr. link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e del software open source]). + +Contratti con imprese estere non domiciliate in Svizzera sono possibili, purché siano soddisfatte le esigenze del diritto degli acquisti pubblici. + +L'acquisto delle risorse proprie di un'organizzazione avviene nel quadro di un processo d'acquisto ordinario, oppure è già concluso. + +=== Caso particolare: adesione a una collaborazione esistente + +Ciò richiede sia una base legale sia il rispetto del diritto degli acquisti pubblici. + +L'approccio più semplice è la partecipazione secondo il principio «ciascuna parte sostiene i propri costi». Ciò può coprire anche le spese generali, purché siano impiegate risorse interne oppure risorse esterne correttamente messe a concorso. + +Una partecipazione diretta a collaborazioni estere è più difficile. Una semplice aggregazione mediante un Memorandum of Understanding è l'opzione più facile da realizzare. + +=== Caso particolare: contributi di codice a progetti OSS di terzi + +Quando l'Amministrazione federale apporta modifiche al codice di un progetto OSS esistente, è opportuno contribuire tali modifiche direttamente a monte al progetto originario. In tal modo la manutenzione corrente non deve più essere assicurata dall'Amministrazione federale. + +Secondo l'articolo 9 LMeCA tali contributi sono anzi auspicati. Sotto il profilo del diritto degli acquisti pubblici ciò non pone problemi. + +È importante che sia il titolare dei diritti ad apportare il contributo. Ciò significa che l'Amministrazione federale se ne assume la responsabilità per conto dei propri collaboratori e mandatari. Concretamente va firmato l'eventuale Contributor Licence Agreement del progetto, oppure va allegato alla pull request un Developer Certificate of Origin. + +Un **Developer Certificate of Origin**footnote:[https://developercertificate.org/] *(DCO)* per l'Amministrazione federale potrebbe recitare: + +[quote, 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. +____ + +La struttura di un Contributor Licence Agreement è descritta in link:em002-3.pdf[Em002-3 Guida alle licenze OSS], capitolo 8.9. + +Il trasferimento effettivo del codice avviene conformemente alle direttive del rispettivo progetto. + +== Concetto di community + +Il nucleo di una community è in definitiva la sua struttura e la sua governance. Queste sono fissate in un concetto di community. + +Il concetto di community, che va elaborato dalla direzione del progetto o dell'applicazione (o commissionato a terzi), dovrebbe seguire la seguente struttura di capitoli. A seconda della natura della community concreta non tutti i sottocapitoli sono necessari. Idealmente molti capitoli rinvieranno a documenti già standardizzati o utilizzeranno processi standard dei repository corrispondenti. Il concetto di community può essere applicato anche a progetti esistenti diretti da altri, in particolare se la governance effettiva non è ancora documentata per iscritto. + +Formalizzando la community si riuniscono tutti i partecipanti e si semplifica l'inserimento di nuovi partecipanti. + +Bozza di struttura di un concetto di community: + +[arabic] +. Tabella riassuntiva (nome, repository, indirizzo di contatto, licenza, livello di supporto, esistente/nuovo) +. Obiettivi +[loweralpha] +.. dell'applicazione +.. della community +. Organizzazione +[loweralpha] +.. Proprietario del codice +.. Forma organizzativa / organi +.. Diritti di voto +.. Direzione del progetto +.. Questioni d'acquisto (se del caso) +.. Ulteriori aspetti di governance +. Roadmap e processo di modifica +. Processo di sviluppo +[loweralpha] +.. Sviluppo aperto +.. Diritti di committer +.. Processo di revisione +.. Ripartizione dei compiti e menzioni nominative +.. Backup +. Finanziamento della community +. Marketing +. Trattamento dei contributi esterni +[loweralpha] +.. Trattamento degli errori segnalati +.. Trattamento delle richieste +.. Trattamento delle pull request +.. Trattamento dei fork +.. CLA, DCO e attribuzione di diritti / proprietà intellettuale +. Esercizio dell'applicazione + +In linea di principio ogni autorità federale è responsabile dell'elaborazione dei concetti di community. Il settore TDT può pubblicare modelli ed esempi esistenti e accoglie esempi corrispondenti in vista della pubblicazione. È inoltre opportuno che i responsabili di community si scambino informazioni tra loro. + +Una possibile fonte per alcune parti è anche la documentazione della Eclipse Foundation,footnote:[Cfr. https://www.eclipse.org/projects/handbook/#starting] fermo restando che qui va effettuato un adeguato adattamento nello spirito del «fare solo il necessario». + +== Decisioni di principio nella costituzione di una community + +I principi della community, o la rinuncia a essa, sono stabiliti mediante link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. Le questioni di principio determinanti figurano nella scatola morfologica seguente; ogni dimensione è illustrata nelle sezioni successive. + +[.landscape] +[cols="3,2,2,2,2,2",options="header"] +|=== +|Dimensione |(a) |(b) |(c) |(d) |(e) + +|A -- Gestione del prodotto +|Confederazione +|Organizzazione comune +|Organizzazione aperta +|Terzi +| + +|B -- Coinvolgimento dei fornitori +|Mandatario +|Partner +|Indipendente +|Direzione +| + +|C -- Ripartizione dei costi +|Confederazione +|Ciascuno per sé +|Principio di causalità +|Chiave di ripartizione +|Contributo + +|D -- Supporto +|Pubblicazione minima +|Supporto da parte della Confederazione +|Supporto da parte di terzi +| +| + +|E -- Sviluppo +|Interno +|Terzi +|Aperto +| +| +|=== + +_Scatola morfologica community OSS._ + +È consigliabile, nel configurare la community, *concentrarsi in primo luogo sul prossimo futuro*; se per esempio non vi sono ancora interessati concreti all'applicazione, di regola ha poco senso definire una community con una società semplice, una propria associazione e processi complessi per l'elaborazione della roadmap.footnote:[Con un'associazione (o una fondazione) si crea una persona giuridica distinta che si occupa del software e del prodotto. Ciò si giustifica soltanto a partire da un certo livello di importanza, complessità e in presenza di più partner (con pari diritti). Una roadmap serve a mostrare al pubblico più ampio e ai potenziali ulteriori utenti del software che cosa è previsto.]footnote:[Può anche essere possibile, in particolare per progetti che coinvolgono sin dall'inizio più attori statali, rivolgersi a fondazioni esistenti e verificare se i progetti e la governance possano essere condotti sotto la loro egida, analogamente a https://finos.org o https://osr.finos.org o https://www.eclipse.org/collaborations/ o https://iot.eclipse.org o https://outreach.eclipse.foundation/open-regulatory-compliance.] + +=== Gestione del prodotto + +A seconda del tipo di applicazione, della sua importanza strategica e della sua posizione nel ciclo di vita, esistono diverse varianti per rappresentare la gestione del prodotto. Per le organizzazioni in seno alle autorità federali ciò riguarda sempre i responsabili dell'applicazione. Per il concetto di community sono particolarmente rilevanti la definizione della roadmap funzionale e tecnologica nonché i processi di rilascio. + +Possibilità: + +[loweralpha] +. *Organizzazioni in seno alla Confederazione*: la Confederazione vuole mantenere il controllo; definisce da sola la roadmap. +. *Organizzazione comune*: insieme ad altri utenti o fornitori. +. *Organizzazione aperta*: legami lassi, nessuna roadmap attiva. +. *Terzi*: o il prodotto esiste già, oppure il lavoro deve essere esternalizzato. + +==== Organizzazioni in seno alla Confederazione: + +Se l'applicazione ha grande importanza strategica o se la Confederazione dipende dalla possibilità di attuare rapidamente le proprie modifiche, può essere opportuno mantenere il controllo. + +L'autorità federale decide da sola, tramite la responsabilità dei requisiti, che cosa confluisce nel software e quando. + +Per i potenziali altri utenti dell'applicazione ciò significa che sono praticamente costretti a utilizzare una propria versione (fork) dell'applicazione. + +In caso contrario hanno ben poche possibilità di attuare adattamenti ed estensioni che possono essere per loro importanti. Ciò non depone contro una pubblicazione come open source: gli strumenti di gestione del codicefootnote:[p. es. GitHub] offrono un ampio supporto per simili scenari, e adattamenti e correzioni di errori possono essere ripresi selettivamente in entrambe le direzioni. + +Una ripartizione dei costi è tipicamente difficile con questo modello. + +==== Comune (la Confederazione ha la direzione o partner con pari diritti) + +Le decisioni su roadmap e priorità dovrebbero essere coordinate e prese congiuntamente con gli altri membri della community. La Confederazione partecipa quale membro della community, ma non è l'organizzazione capofila. + +Affinché la decisione comune funzioni, strutture e regole devono essere stabilite preventivamente. Ciò definisce anche come i costi di attuazione degli adattamenti decisi congiuntamente sono ripartiti tra le parti. + +Con questo modello si crea un'unica versione dell'applicazione, utilizzata poi da tutti i membri. I costi complessivi risultano pertanto nettamente inferiori rispetto alle altre varianti. La flessibilità dei singoli utenti è tuttavia minore ed essi devono coordinare preventivamente le proprie richieste di adattamento con tutti gli altri. La decisione è più lenta e più laboriosa. + +Questo modello è particolarmente adatto ad applicazioni da sviluppare congiuntamente con altre organizzazioni chiaramente definite (p. es. i Cantoni). + +==== Organizzazione aperta + +In questo modello i processi e le strutture sono definiti soltanto in modo lasso. La Confederazione mantiene formalmente il controllo, ma è aperta a contributi e adattamenti. + +Non viene definita alcuna roadmap, o soltanto una molto sommaria; il consenso è raggiunto informalmente e in discussioni direttamente sulla piattaforma di pubblicazione. La community stessa è piuttosto dinamica; i membri possono essere molto attivi per un certo periodo e poi ritirarsi. + +Questo modello è adatto anche ad applicazioni più piccole già in uso produttivo e «concluse». È inoltre di regola la forma migliore per applicazioni o componenti a orientamento tecnico che si rivolgono potenzialmente a un pubblico più ampio non definibile con precisione in anticipo. + +==== Terzi + +In questo modello i processi e le strutture sono definiti da terzi e l'autorità federale è membro della community senza averne la direzione. Ciò può derivare dal fatto che il progetto è stato per esempio definito da un altro Stato o Cantone. Oppure può darsi che la Confederazione non sia interessata a proseguire essa stessa il programma e trasferisca tale compito. + +=== Coinvolgimento dei fornitori + +Per il coinvolgimento dei fornitori esistono in linea di principio le seguenti possibilità: + +[loweralpha] +. *Fornitore quale mandatario*: è in linea di principio considerato sostituibile a medio termine. Il fornitore deve sviluppare l'applicazione in modo economico e con alta qualità sulla base delle commesse della gestione del prodotto (o della community), ma ha al massimo un'influenza consultiva su roadmap e priorità. +. *Partner a lungo termine con codecisione*: devono poter codeterminare attivamente lo sviluppo. Ciò rafforza il loro ruolo ed essi sono potenzialmente disposti a investire essi stessi nell'applicazione. Tipicamente, in questo modello, i fornitori distribuiscono il software e cercano attivamente nuovi clienti. +. *Indipendente:* i fornitori stabiliscono da sé se e come intendono lavorare al progetto. Ciò può accadere per esempio se più fornitori intendono generare attività proprie sulla base del software. Licenze liberali possono potenzialmente favorirlo. Può accadere anche se la strategia della Confederazione diverge da quella del fornitore. In tale scenario è probabile che il fornitore crei un fork. +. *Direzione*: se il fornitore assume la gestione del prodotto, ne ha la direzione. Lo sviluppo è allora determinato da lui. D'altro canto ciò può anche significare che l'Amministrazione federale deve assumersi ben poca responsabilità. Con una pubblicazione minima è possibile che il fornitore assuma tale ruolo di propria iniziativa. + +Se il fornitore assume un ruolo forte, ciò comporta vantaggi per l'Amministrazione federale: mediante una commercializzazione attiva dell'applicazione vi è la possibilità che la community cresca più rapidamente e più fortemente, riducendo così più velocemente i costi per membro. + +Se si sceglie un modello con forte codecisione dei fornitori, occorre vigilare affinché non ne derivi una deroga alle prescrizioni del diritto degli acquisti pubblici. Di regola è consigliabile coinvolgere almeno due fornitori per non creare una dipendenza troppo forte da uno solo. Dovrebbe inoltre sussistere la possibilità che altri fornitori aderiscano alla community. + +=== Ripartizione dei costi + +Per ripartire i costi di manutenzione, sviluppo ulteriore e nuove funzionalità sono disponibili le seguenti opzioni: + +[loweralpha] +. *Organizzazioni in seno alla Confederazione*: in particolare nella costituzione di ecosistemi o se l'autorità federale mantiene il controllo totale, essa deve anche sostenerne i costi. +. *Ciascuno per sé*: ognuno paga da sé le modifiche che desidera. Se necessario si decide caso per caso di finanziare congiuntamente determinate estensioni. I costi ricorrenti sono fatturati secondo una chiave di ripartizione o a richiesta. +. *Principio di causalità*: chi ha effettivamente bisogno delle prestazioni o funzionalità le paga. Possono essere applicate tariffe orarie standardizzate. +. *Chiave di ripartizione*: i costi sono ripartiti all'interno della community secondo una chiave definita. Soltanto le estensioni specifiche vi derogano. Queste dovrebbero essere pagate direttamente dagli utenti interessati. Il divisore dei costi può essere per esempio la dimensione del Cantone interessato o il numero di utenti. Riguardo alla chiave di ripartizione cfr. anche il capitolo «Ripartizione dei costi». +. *Contributo*: quando l'autorità federale apporta soltanto personale a un progetto esistente. + +Fondamentalmente la variante b (ripartizione dei costi) ha di regola senso soltanto se esiste anche una gestione comune del prodotto come nella variante b (comune). Soltanto chi può avere voce in capitolo sarà disposto a sostenere i costi conseguenti alle decisioni. + +=== Supporto + +Nell'ambito della ripartizione dei costi e dell'onere occorre chiarire chi fornisce quale supporto. Secondo l'art. 9 LMeCA è possibile una pura pubblicazione minima. Tale variante può non produrre l'effetto desiderato e non costituisce di per sé una community in cui l'autorità federale abbia influenza. + +[loweralpha] +. *Pubblicazione minima*: nessun supporto (ossia la pubblicazione avviene di regola senza supporto organizzato e senza partecipazione dell'autorità federale). +. *Supporto da parte della Confederazione*: l'autorità federale (o il suo fornitore di prestazioni) fornisce un supporto definito. +. *Supporto da parte di terzi*: l'autorità federale o la community definisce un'organizzazione di supporto. + +L'effetto da conseguire, p. es. sull'ecosistema svizzero o un finanziamento iniziale di una community, può indurre la Confederazione a fornire supporto. L'entità del supporto va naturalmente definita. In linea di principio può anche essere riscosso un emolumento. Per via dei meccanismi della Confederazione, i fornitori di prestazioni o i fornitori sono più verosimilmente in grado di offrire un supporto commerciale. + +Gli uffici possono offrire supporto a pagamento conformemente alla LMeCA (eventualmente anche tramite fornitori di prestazioni e terzi). A tal fine devono pubblicare i relativi emolumenti sul proprio sito web, poiché la necessaria base legale sussiste. Il collegamento al sistema di pagamento può essere discusso con il DFF. + +Esempi di supporto ed emolumenti figurano nell'allegato G. + +=== Sviluppo + +Anche la metodologia fondamentale dello sviluppo può influire sul tipo di community. + +[loweralpha] +. *Interno*: l'utilizzo di repository interni significa che terzi non possono collaborare direttamente. Più rigorosa è la separazione, maggiore è l'onere di integrazione che la Confederazione deve sostenere se intende riprendere estensioni di terzi. Anche il processo di pubblicazione è più complesso. +. *Terzi*: o un fornitore lavora per conto proprio, oppure il prodotto già avviato o diretto da terzi è sviluppato secondo regole definite. +. *Aperto*: lo sviluppo software avviene direttamente in un repository pubblico. La pubblicazione secondo la LMeCA è così ampiamente garantita. Gli oneri si producono durante lo sviluppo. In tale scenario la collaborazione con terzi può avvenire anche prima (e più facilmente). + +== Contenuti dettagliati per il concetto di community + +Il presente capitolo fornisce indicazioni per la redazione del concetto di community sulla base delle decisioni di principio prese (secondo il capitolo 5). + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +aperto / Partner / Confederazione:: +Contenuti o suggerimenti, se le decisioni di principio sono: + +Gestione del prodotto c) Organizzazione aperta + +Coinvolgimento dei fornitori: b) Fornitore quale partner + +Ripartizione dei costi: b) Ciascuno per sé + +_Il testo di cui sopra può essere copiato nel modello e adattato._ + +Comune / - / Ciascuno per sé:: +Contenuti o suggerimenti, se le decisioni di principio sono: + +Gestione del prodotto b) Sviluppo comune + +Coinvolgimento dei fornitori: a) o b) (non rilevante) + +Ripartizione dei costi: c) Principio di causalità o d) Ripartizione dei costi + +Comune / - / Causante:: +{empty} + +Il concetto di community dovrebbe essere un documento dinamico, adattabile d'intesa con la community. Il concetto dovrebbe rispecchiare la situazione attuale e proporre opzioni di sviluppo future. Se in seguito aderiscono altri membri alla community, l'organizzazione e i processi possono essere ulteriormente elaborati e possono essere introdotti meccanismi più complessi. I sottocapitoli seguenti seguono direttamente la struttura proposta del concetto di community (cfr. capitolo 4). + +Se la gestione del prodotto spetta a terzi, questi definiscono i concetti per la community. + +=== Dati essenziali + +I seguenti dati essenziali dovrebbero essere elaborati e pubblicati per ogni community, affinché i potenziali interessati possano registrarsi per il software e la community: + +* Nome del software +* Repository +* Proprietario +* Unità organizzativa / ufficio responsabile +* Indirizzo di contatto +* Licenza utilizzata +* Livello di supporto +* Progetto esistente + +Queste indicazioni possono essere tutte rappresentate con publiccode.yml.footnote:[https://yml.publiccode.tools/] + +=== Obiettivi + +L'obiettivo dovrebbe contenere lo scopo effettivo o la «visione» dell'applicazione. Tale visione dovrebbe figurare anche nel file *README.md* del repository (cfr. link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[lista di controllo Em002-2.2 Analisi e preparazione OSS]). + +Al tempo stesso andrebbe descritto che cosa persegue la community: + +* Chi deve aderire? +* Chi sono i potenziali interessati? +* Vanno ricercati attivamente nuovi membri? +* Quali sono gli obiettivi principali perseguiti con la pubblicazione come open source? + +=== Organizzazione e governance + +In linea di principio, per i nuovi sviluppi si mira a che la Confederazione sia titolare dei diritti principali sul codice sorgente. + +Il tipo di conduzione del progetto dipende da quale organizzazione aveva la direzione (SAFe, HERMES) in seno alla Confederazione. Per la forma organizzativa va sempre perseguito un onere amministrativo minimo (esistente anziché nuovo; società semplice anziché associazione). + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +Confederazione / - / Interno:: +Poiché la Confederazione mantiene il controllo diretto, non sono necessarie strutture organizzative supplementari. + +L'ente che pubblica (p. es. un ufficio federale) resta proprietario e assume tutti i compiti di coordinamento. In tal caso il capitolo «Organizzazione» può essere tenuto molto breve. + +Comune / - / Interno:: +Per questo scenario si raccomanda di regola l'organizzazione quale *società semplice*. + +Affinché lo sviluppo comune e il coordinamento di roadmap e requisiti siano possibili, è consigliabile costituire due organi, ciascuno con un partecipante per membro della community: ++ +-- +* Organo direttivo: definisce strategia e priorità. +* Gruppo specialistico: elabora requisiti e contenuti concreti a livello tecnico. A seconda dell'ampiezza può essere istituito anche un gruppo specialistico per ogni tema. +-- ++ +Proprietario del codice è l'ufficio che lo ha pubblicato. ++ +Se le strutture diventano più complesse o se sono coinvolti più di cinque utenti o membri supplementari, può valere la pena esaminare se la community non sia meglio organizzata come associazione. Si confrontino le spiegazioni della variante immediatamente sottostante. + +Comune / - / Terzi:: +Si raccomanda l'organizzazione quale *associazione*. + +O viene fondata un'associazione appositamente per l'applicazione, oppure l'applicazione viene trasferita a un'associazione esistente. Un'associazione è raccomandata perché altrimenti la ripartizione dei costi diventa complessa e i compiti di coordinamento comportano verosimilmente lavoro sufficiente per assumere un gerente a tempo parziale per l'associazione. ++ +I diritti sul codice sono allora trasferiti all'associazione, che assume la gestione della community e le ordinazioni presso i fornitori. + +Comune / Mandatario / Interno:: +Si raccomanda l'organizzazione quale *associazione*. O viene fondata un'associazione appositamente per l'applicazione, oppure l'applicazione viene trasferita a un'associazione esistente. Un'associazione è raccomandata perché altrimenti la ripartizione dei costi diventa complessa e i compiti di coordinamento comportano verosimilmente lavoro sufficiente per assumere un gerente a tempo parziale per l'associazione. ++ +I diritti sul codice sono allora trasferiti all'associazione, che assume la gestione della community e le ordinazioni presso i fornitori. + +Qui i fornitori non sono membri dell'associazione, bensì soltanto mandatari. Il gerente non dovrebbe essere fornito da un fornitore. + +Comune / Mandatario / Terzi:: +Si raccomanda l'organizzazione quale *associazione*. O viene fondata un'associazione appositamente per l'applicazione, oppure l'applicazione viene trasferita a un'associazione esistente. Un'associazione è raccomandata perché altrimenti la ripartizione dei costi diventa complessa e i compiti di coordinamento comportano verosimilmente lavoro sufficiente per assumere un gerente a tempo parziale per l'associazione. + +I diritti sul codice sono allora trasferiti all'associazione, che assume la gestione della community e le ordinazioni presso i fornitori. + +I fornitori sono membri dell'associazione; il gerente può anche essere fornito da un fornitore. + +aperto / - / Interno:: +Non vi è *alcuna necessità di una descrizione dettagliata di un'organizzazione*, poiché essa è deliberatamente concepita in modo aperto. È tuttavia importante stabilire chi riceve e tratta le richieste esterne (responsabilità). Va inoltre determinato se e in quale misura persone esterne possono essere coinvolte: ++ +-- +* Nessuna integrazione diretta: gli esterni possono soltanto presentare suggerimenti e contributi (come pull request). +* Integrazione quali contributori: gli esterni che apportano contributi frequenti e di qualità sono integrati direttamente. +* Trasferimento a esterni possibile: se, dopo la pubblicazione, gli esterni contribuiscono allo sviluppo più dell'organizzazione che pubblica, l'applicazione può anche essere loro trasferita. +-- ++ +L'organizzazione che pubblica resta proprietaria. Questa variante corrisponde all'organizzazione dei progetti open source «classici»; cfr. per esempio https://opensource.guide/leadership-and-governance/ per maggiori informazioni. + +aperto / Mandatario / Interno:: +Non vi è *alcuna necessità di una descrizione dettagliata di un'organizzazione*, poiché essa è deliberatamente concepita in modo aperto. È tuttavia importante stabilire chi riceve e tratta le richieste esterne (responsabilità). Va inoltre determinato se e in quale misura persone esterne possono essere coinvolte: ++ +-- +* Nessuna integrazione diretta: gli esterni possono soltanto presentare suggerimenti e contributi (come pull request). +* Integrazione quali contributori: gli esterni che apportano contributi frequenti e di qualità sono integrati direttamente. +* Trasferimento a esterni possibile: se, dopo la pubblicazione, gli esterni contribuiscono allo sviluppo più dell'organizzazione che pubblica, l'applicazione può anche essere loro trasferita. +-- ++ +L'organizzazione che pubblica resta proprietaria. + +Questa variante corrisponde all'organizzazione dei progetti open source «classici»; cfr. per esempio https://opensource.guide/leadership-and-governance/ per maggiori informazioni. + +Il fornitore dovrebbe assumere soltanto compiti di coordinamento puramente tecnici (code review, valutazione). + +Terzi / Partner / Interno:: +Non vi è *alcuna necessità di una descrizione dettagliata di un'organizzazione*, poiché essa è deliberatamente concepita in modo aperto. È tuttavia importante stabilire chi riceve e tratta le richieste esterne (responsabilità). Va inoltre determinato se e in quale misura persone esterne possono essere coinvolte: ++ +-- +* Nessuna integrazione diretta: gli esterni possono soltanto presentare suggerimenti e contributi (come pull request). +* Integrazione quali contributori: gli esterni che apportano contributi frequenti e di qualità sono integrati direttamente. +* Trasferimento a esterni possibile: se, dopo la pubblicazione, gli esterni contribuiscono allo sviluppo più dell'organizzazione che pubblica, l'applicazione può anche essere loro trasferita. +-- ++ +L'organizzazione che pubblica resta proprietaria. Questa variante corrisponde all'organizzazione dei progetti open source «classici»; cfr. per esempio https://opensource.guide/leadership-and-governance/ per maggiori informazioni. + +Riguardo alla governance possono essere consultati anche _[BITKOM2023]_ capitolo 4.1, _[IZqCab2023]_ o https://github.com/todogroup/ospo-career-path/blob/main/OSPO-101/module7/README.md#governance-models. + +Esempi di statuti associativi figurano nell'allegato E. + +Nota: poiché la pubblicazione deve essere garantita conformemente all'art. 9 LMeCA, l'Amministrazione federale deve assicurare che essa non possa essere improvvisamente ritirata (cfr. le «direttive Open Source negli acquisti — acquisto di software secondo l'art. 9 LMeCA» _[BBL-WL]_, numero V.2). + +=== Roadmap e processo di modifica + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +Confederazione / Mandatario / -:: +L'autorità federale definisce la roadmap e decide quali modifiche vengono attuate. A tal fine sono utilizzati i processi standard dell'ufficio XY. + +Confederazione / Partner / -:: +L'autorità federale definisce la roadmap in collaborazione con l'impresa XY. Essa decide quali modifiche vengono attuate. A tal fine sono utilizzati i processi standard dell'ufficio XY. + +Comune / - / Interno:: +Il processo di elaborazione della roadmap e di approvazione delle modifiche va stabilito dai membri della società o dell'associazione. A seconda della struttura dei membri (numero, rapporto dimensionale ecc.) possono essere adeguati altri processi. + +I processi devono tuttavia prevedere misure per la risoluzione dei conflitti e la formazione della maggioranza. + +Comune / - / Terzi:: +Il processo di elaborazione della roadmap e di approvazione delle modifiche va stabilito dai membri della società o dell'associazione. A seconda della struttura dei membri (numero, rapporto dimensionale ecc.) possono essere adeguati altri processi. ++ +I processi devono tuttavia prevedere misure per la risoluzione dei conflitti e la formazione della maggioranza. ++ +Con l'aggiunta che va stabilita anche una chiave di ripartizione dei costi. Occorre inoltre riflettere su come trattare la ripartizione dei costi per adattamenti non desiderati dai membri interessati. In particolare nelle associazioni con membri di dimensioni disuguali possono verificarsi situazioni in cui un grande membro (p. es. l'autorità federale) sostiene una parte rilevante dei costi di un'estensione senza trarne alcun beneficio. + +aperto / - / -:: +_Esempio, non adatto a tutte le situazioni_ + +Non occorre elaborare una roadmap; l'applicazione soddisfa attualmente le esigenze. ++ +Le modifiche sono decise in una discussione aperta e si ricerca un consenso. La decisione finale spetta al proprietario del codice (Confederazione Svizzera). + +=== Processo di sviluppo + +Se entra in gioco lo sviluppo aperto, esso va definito qui. Sono importanti la ripartizione dei compiti e l'indicazione delle posizioni centrali nel concetto di community. Nonché il modo in cui è garantita la sicurezza dei contenuti del repository. + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +Confederazione / - / -:: +I diritti di committer (accesso in scrittura al codice) spettano alle persone/agli enti/ai fornitori selezionati dalla Confederazione. Alla scadenza del contratto i rispettivi diritti sono revocati. ++ +I fornitori di prestazioni e i fornitori sono responsabili dello svolgimento del processo tecnico di code review per i contributi esterni accettati nel merito dalla Confederazione. Essi rispondono della qualità tecnica. I fornitori sono indennizzati per tale lavoro dalla Confederazione. + +Comune / Mandatario / Interno:: +In linea di principio tutti gli enti incaricati da un membro della community ricevono l'accesso in scrittura al codice (diritti di committer). Alla scadenza del contratto i rispettivi diritti sono revocati. ++ +Se il codice modificato riguarda settori centrali dell'applicazione, tutte le modifiche devono essere esaminate da un ente appositamente incaricato dalla community. Tale ente risponde della qualità tecnica dell'applicazione. Esso è inoltre competente per l'esame delle modifiche accettate nel merito dalla community. + +Comune / Partner / Terzi:: +I diritti di committer (accesso in scrittura al codice) spettano ai membri della community. Tali persone si organizzano da sé e assumono congiuntamente la responsabilità della qualità del codice. ++ +Se un membro della community incarica un fornitore esterno di un adattamento o di un'estensione, l'adattamento è esaminato da un membro della community. Esso è indennizzato a tal fine dal committente. ++ +Le modifiche al nucleo dell'applicazione devono essere esaminate da un secondo membro della community. ++ +I fornitori membri della community sono inoltre responsabili dell'esame dei contributi esterni e del nuovo codice tecnico accettato nel merito dall'associazione. + +aperto / - / -:: +Inizialmente i diritti di committer spettano agli sviluppatori o ai loro datori di lavoro. I diritti di committer sono concessi a tutti gli sviluppatori che contribuiscono attivamente al progetto per più mesi e dimostrano un'adeguata competenza sociale. ++ +I singoli sviluppatori conservano in linea di principio i propri diritti di committer, anche se cambiano datore di lavoro o se la Confederazione sceglie un altro fornitore. I diritti di committer si estinguono soltanto se vengono ceduti volontariamente o se la maggioranza degli altri committer ne decide la revoca. ++ +La Confederazione ha il diritto di designare quali committer singoli sviluppatori delle imprese che incarica. Non ha il diritto di revocare a qualcuno i diritti di committer senza motivo. ++ +Le code review sono effettuate da almeno una persona che agisce quale committer. I committer si organizzano da sé. ++ +La Confederazione si impegna a indennizzare il lavoro di revisione nella misura in cui ciò le sia finanziariamente possibile. + +=== Ripartizione dei costi e fornitori + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +Confederazione / Mandatario / Interno:: +I fornitori sono selezionati periodicamente mediante bandi OMC o una procedura per incarico diretto (a seconda dell'ampiezza delle prestazioni di manutenzione). + +Confederazione / Partner / -:: +*Importante:* verificare preventivamente se ciò sia ammissibile sotto il profilo del diritto degli acquisti pubblici nel caso concreto. ++ +Completeremo la documentazione su questo punto. La Confederazione sceglie il fornitore XXX quale partner strategico e mira a una cooperazione a lungo termine. + +Comune / Mandatario / Interno:: +Ogni membro della community incarica autonomamente uno o più fornitori di software di attuare gli adattamenti e le estensioni di cui necessita. Per gli adattamenti desiderati da più membri, la ripartizione dei costi è concordata caso per caso. Il membro con la quota di costi maggiore è responsabile della scelta e dell'incarico al fornitore. (Disciplinamenti per la manutenzione del software) + +Comune / Mandatario / Terzi:: +L'associazione seleziona periodicamente i fornitori di software in modo centralizzato mediante bandi OMC o procedure per incarico diretto (a seconda dell'ampiezza delle prestazioni di manutenzione). I costi sono attribuiti ai membri secondo una chiave: (da definire: per popolazione, utenti ecc.) + +Comune / Partner / Interno:: +Ogni membro della community incarica autonomamente uno o più fornitori di software di attuare gli adattamenti e le estensioni di cui necessita. Per gli adattamenti desiderati da più membri, la ripartizione dei costi è concordata caso per caso. Il membro con la quota di costi maggiore è responsabile della scelta e dell'incarico al fornitore. ++ +_(Disciplinamenti per la manutenzione del software)_ Se necessario integrati da un contributo dei fornitori partecipanti. Esempio: _Ogni impresa di sviluppo software membro della community si impegna a investire annualmente almeno XY giorni lavorativi a proprie spese nello sviluppo, nell'aggiornamento tecnologico o nel marketing dell'applicazione._ + +Comune / Partner / Terzi:: +L'associazione seleziona periodicamente i fornitori di software in modo centralizzato mediante bandi OMC o procedure per incarico diretto (a seconda dell'ampiezza delle prestazioni di manutenzione). I costi sono attribuiti ai membri secondo una chiave: (da definire: per popolazione, utenti ecc.) Se necessario integrati dall'aggiunta: _Ogni impresa di sviluppo software membro della community si impegna a investire annualmente almeno XY giorni lavorativi a proprie spese nello sviluppo, nell'aggiornamento tecnologico o nel marketing dell'applicazione._ + +Terzi / Mandatario / -:: +I fornitori sono selezionati periodicamente mediante bandi OMC o una procedura per incarico diretto (a seconda dell'ampiezza delle prestazioni di manutenzione). Con l'aggiunta: _I miglioramenti apportati dai potenziali fornitori e le loro attività nella community sono considerati quale fattore nella valutazione._ ++ +Le modifiche desiderate da esterni non sono finanziate dalla Confederazione, bensì devono essere commissionate e pagate da essi stessi. + +Terzi / Partner / -:: +I fornitori sono selezionati periodicamente mediante bandi OMC o una procedura per incarico diretto (a seconda dell'ampiezza delle prestazioni di manutenzione). Con l'aggiunta: _I miglioramenti apportati dai potenziali fornitori e le loro attività nella community sono considerati quale fattore nella valutazione. Le modifiche desiderate da esterni non sono finanziate dalla Confederazione, bensì devono essere commissionate e pagate da essi stessi._ + +=== Marketing + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +Confederazione / Mandatario / -:: +La Confederazione non commercializza attivamente l'applicazione, ma la pubblica su piattaforme di software open source. La pubblicazione dell'applicazione è annunciata negli organi specializzati. Se si manifestano interessati, esaminiamo se costituire una community comune o proseguire con la loro versione del software. + +Comune / Partner / -:: +In aggiunta: + +I fornitori possono commercializzare l'applicazione e cercare ulteriori interessati. La Confederazione può essere citata come referenza. Accettiamo consapevolmente che ne possano derivare versioni divergenti del software. + +Comune / Mandatario / Interno:: +L'applicazione è commercializzata dai membri o dall'associazione. + +Comune / Partner / Interno:: +L'applicazione è commercializzata dai fornitori. + +Comune / - / Terzi:: +L'applicazione è commercializzata dall'associazione, dalla società semplice e dai loro membri. + +aperto / - / -:: +L'applicazione può essere commercializzata dai fornitori, oppure si può rinunciare a un marketing esplicito. ++ +Alternativa senza marketing esplicito: la Confederazione non commercializza attivamente l'applicazione, ma la pubblica su piattaforme di software open source. Negli organi specializzati segnaliamo di aver pubblicato l'applicazione e che una collaborazione è benvenuta. Mostriamo il software agli interessati e cerchiamo di integrarli nei nostri processi di elaborazione della roadmap. + +=== Trattamento dei contributi esterni + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +Confederazione / Mandatario / -:: +I contributi e le richieste esterni devono essere trattati anche se la Confederazione resta l'unica decisore riguardo al software (salvo in caso di pubblicazione minima, dove un fork è inevitabile). Proponiamo il seguente modo di procedere: ++ +*Trattamento degli errori segnalati* + +Cerchiamo di riprodurre gli errori segnalati da persone esterne e chiediamo precisazioni se necessario. Se la riproduzione riesce, la Confederazione commissiona la correzione degli errori. Se l'errore non può essere verificato o se l'onere per correggerlo è sproporzionato, ci scusiamo con la persona che ha segnalato l'errore e le chiediamo se potrebbe presentare una pull request per porvi rimedio. ++ +*Trattamento delle richieste* + +Rispondiamo a ogni richiesta in entrata. Se una richiesta non può essere chiarita con un onere ragionevole e un ulteriore impiego di tempo appare inefficiente, ci scusiamo richiamando le risorse limitate e offriamo di mettere in contatto la persona con un fornitore per una consulenza approfondita. ++ +*Trattamento delle pull request* + +Esaminiamo con cura ogni pull request. Per evitare oneri inutili al contributore, segnaliamo immediatamente se qualcosa contraddice la nostra roadmap o se è dubbio che accetteremo il contributo. La Confederazione decide autonomamente e secondo criteri tecnici quali contributi accettare. Le correzioni di errori che hanno superato il processo di revisione sono sempre accettate. ++ +*Trattamento dei fork* + +Sosteniamo i fork della nostra applicazione. Chi introduce l'applicazione dovrebbe creare un proprio fork. Esaminiamo i fork che ne risultano almeno una volta all'anno e riprendiamo le estensioni valide e adeguate. + +Comune / - / -:: +Per esterni si intendono i contributi provenienti dall'esterno della community definita (membri dell'associazione). Differenze rispetto a quanto sopra: + +*Trattamento dei fork* + +Vogliamo evitare fork (duraturi) dell'applicazione. Gli interessati dovrebbero invece aderire direttamente alla community. All'interno della community cerchiamo di assicurare che tutti i membri utilizzino la versione principale. + +Aperto / - / -:: +La costituzione di una community funzionante e di una cultura aperta è per noi importante. ++ +*Trattamento degli errori segnalati* + +Cerchiamo di riprodurre e correggere gli errori segnalati. Presupponiamo la collaborazione attiva delle persone che segnalano. Se possibile, esse dovrebbero creare direttamente una pull request con una correzione dell'errore. ++ +*Trattamento delle richieste* + +Trattiamo ogni richiesta entro al massimo una settimana. Le richieste di contributori attivi sono trattate in via prioritaria e in modo approfondito. Cerchiamo di coinvolgere altri membri nel trattamento delle richieste. ++ +*Trattamento delle pull request* + +Vogliamo ricevere il maggior numero possibile di pull request di elevata qualità. Coinvolgiamo tutti i contributori attivi nelle revisioni e nella valutazione tecnica e specialistica delle pull request. Per i contributi controversi cerchiamo di giungere a una decisione mediante una votazione informale. ++ +*Trattamento dei fork* + +Cerchiamo di rendere superflui i fork mediante una gestione della community attiva e aperta. Se nondimeno emergono fork, li esaminiamo attivamente e cerchiamo di riprendere le estensioni e i miglioramenti ivi sviluppati. In tali casi sollecitiamo attivamente pull request. + +In generale va rilevato che i contributi possono spaziare dal sostegno ad altri utenti fino all'assunzione della responsabilità di intere parti di un progetto (cfr. _[BITKOM2023]_ capitolo 4.2). + +=== Esercizio dell'applicazione + +_Gestione del prodotto / Fornitore quale / Sviluppo -- Proposta_ + +Comune / - / -:: +Un esercizio centralizzato può essere offerto in opzione dall'associazione centrale, nel senso del Software as a Service (SaaS). Va esaminato se ciò è desiderato. + +- / Partner / -:: +Va precisato se il fornitore debba anche esercire il software. + +- / Direzione / -:: +Va indicato che il fornitore è responsabile dell'esercizio. + +I livelli di supporto e i contatti di supporto dovrebbero parimenti essere precisati in questo capitolo. + +== Informazioni importanti per i responsabili di community + +=== Ci vuole tempo + +La costituzione di community è qualcosa che va pianificato a lungo termine. Perseveranza e costanza sono due qualità importanti per una community di successo. + +=== Ulteriori suggerimenti per la costituzione di una community + +Ulteriori suggerimenti per una buona gestione della community figurano su https://opensource.guide/code-of-conduct/ e https://opensource.guide/best-practices/. + +=== Comunicazione + +La pubblicazione di software e documentazione apre all'Amministrazione federale un nuovo canale di comunicazione. Se ciò non avviene con cura e professionalità, l'immagine pubblica della Confederazione può risentirne. + +Le community OSS dell'Amministrazione federale si trovano in un campo di tensione riguardo alla comunicazione: da un lato valgono le *prescrizioni generali di comunicazione*, dall'altro la community deve consentire una *collaborazione formale e informale semplice* oltre i confini organizzativi, preferibilmente senza controlli di qualità e approvazioni formali. + +L'utilizzo di repository pubblici ed eventualmente di issue tracking e wiki pubblici significa che le dichiarazioni dei singoli collaboratori del progetto sono visibili al pubblico senza filtri. Ciò richiede ai collaboratori del progetto un atteggiamento professionale e il rispetto di standard qualitativi per le pubblicazioni in simili contesti. + +Nei progetti OSS ciò è normalmente disciplinato mediante il *Code of Conduct*. Il codice di comportamento dell'Amministrazione federalefootnote:[https://www.epa.admin.ch/dam/epa/it/dokumente/aktuell/medienservice/120_verhaltenskodex_i.pdf.download.pdf/120_verhaltenskodex_i.pdf] è formulato in modo molto generale, ma il principio centrale è qui applicabile: «I collaboratori adempiono i loro compiti in modo responsabile, integro e leale. Anche nella vita privata badano a non pregiudicare la reputazione, la credibilità e l'immagine della Confederazione.» + +=== Sviluppo aperto + +Se lo sviluppo software è previsto sin dall'inizio in un repository aperto, la pubblicazione avviene automaticamente. Le liste di controllo determinanti secondo le istruzioni link:em002-2.pdf[Em002-2] vanno compilate all'inizio e i processi di sviluppo del fornitore di prestazioni o del fornitore devono consentirlo. Il vantaggio è che la community può essere costituita sin dal principio. Più organizzazioni possono inoltre collaborare allo sviluppo. + +I repository chiusi costituiscono una forma intermedia, ma sono impiegati per altri partner in una collaborazione. + +=== Gestione degli utenti + +Il progetto (o l'organizzazione promotrice) stabilisce se gli sviluppatori e gli altri collaboratori del progetto lavorano a nome proprio o in forma anonima. Se le persone non lavorano in forma anonima e dispongono già di login sulle piattaforme, è più semplice utilizzare questi (siano essi professionali o privati). + +La piattaforma dovrebbe in linea di principio consentire l'integrazione di terzi, poiché altrimenti nessuno sviluppatore esterno alla Confederazione potrà collaborare. + +Al momento dell'uscita dal progetto i relativi diritti sul progetto vanno cancellati. Ne è responsabile la gestione del prodotto. + +=== Fusione di community + +Ove possibile il numero di community andrebbe mantenuto ridotto. Ciò significa: + +* Se esiste già una community in cui è prevista una struttura analoga per problemi analoghi con le stesse persone, andrebbe utilizzata un'unica community. +* Più progetti correlati che si rivolgono allo stesso pubblico target possono essere riuniti in un'unica community. +* Non andrebbero create inutilmente strutture di community fondamentalmente diverse laddove ne esistano già. + +=== Trattamento dei contributi di terzi + +Il contributo di software ad altri progetti è trattato nel capitolo 3.3. Gli stessi principi valgono in senso inverso. + +Sono importanti i punti seguenti: + +* Va utilizzato un Contributor Licence Agreement adeguato per assicurare che il codice sorgente appartenga in seguito alla Confederazione (cfr. anche link:em002-3.pdf[Em002-3 Guida alle licenze OSS], capitolo sui Contributor Licence Agreement). Esso va firmato dal proprietario del contributo. +* Le conferme vanno archiviate. +* I contributi vanno esaminati prima dell'integrazione nella base di codice. +* Alle sottomissioni andrebbe risposto tempestivamente (issue, request, pull request) e trattandole nel modo più costruttivo possibile. +* Tutti i canali e i disciplinamenti di governance andrebbero indicati nel concetto di community, sul sito web e nel repository. + +=== Segnalazioni rilevanti per la sicurezza + +Oltre alle consuete segnalazioni di errori va previsto — ove la natura del progetto lo richieda — che le vulnerabilità rilevanti per la sicurezza possano essere segnalate in modo confidenziale, come avviene per esempio con un programma di bug bounty. + +I documenti di trustbroker.swiss possono servire da esempio: + +* https://github.com/trustbroker-swiss/trustbroker.swiss/blob/main/Security-and-Vulnerability-Disclosure.md + +=== Evitare i fork + +Se i fork sono naturali nel mondo open source, la reintegrazione di codice sorgente, funzionalità e così via provenienti da fork è tutt'altro che semplice. Può valere la pena rivolgersi alle persone o organizzazioni che stanno valutando un fork e tentare di mantenerle coinvolte nel progetto principale. Trovare un equilibrio tra interessi concorrenti è spesso necessario in tali casi. + +=== Ripartizione dei costi + +È opportuno concordare chiavi di ripartizione generali tra i partner principali. Queste possono essere adeguate ogni qualche anno o quando la situazione cambia fondamentalmente. Per un lavoro efficiente sul software i grandi partner dovrebbero piuttosto assumere quote un po' maggiori di quanto dovrebbero effettivamente (se necessario anche il coordinamento complessivo). L'organizzazione deve lavorare e non litigare sulle finanze. Se la collaborazione riguarda più progetti (per esempio le soluzioni settoriali nel settore delle ferrovie a scartamento normale), andrebbe utilizzata per tutti i progetti una chiave di ripartizione uniforme. Dal punto di vista delle autorità federali è un miglioramento se i costi non devono essere sostenuti da sole. + +Possibili criteri per le chiavi di ripartizione: + +* Stima della ripartizione dei benefici (p. es. tra un'autorità federale e un fornitore che spera in altri clienti) +* Numero di abitanti/utenti (p. es. tra uffici, Comuni, città) +* Capacità finanziaria (p. es. Cantoni) +* Prodotto interno lordo (p. es. tra Cantoni) +* Chi desidera maggiore controllo + +Per evitare discussioni, la chiave di ripartizione non dovrebbe essere semplicemente legata al budget annuale. Una clausola nello spirito del principio di causalità può consentire adeguamenti più rapidi per singoli partner, se questi sono disposti a pagare un supplemento. + +La chiave di ripartizione dovrebbe applicarsi anche alle spese generali, alla manutenzione/al supporto e a un minimo di sviluppo ulteriore. Queste parti andrebbero se possibile risolte a lungo termine. + +Va tenuto presente che, in presenza di finanziamenti di terzi, tali parti vorranno tipicamente maggiore voce in capitolo. La gestione della community deve essere attrezzata per farvi fronte. + +=== Prestazioni supplementari secondo l'art. 9 cpv. 5 e 6 LMeCA + +Le autorità federali possono (esse stesse, tramite fornitori di prestazioni o fornitori) erogare prestazioni supplementari, in particolare per l'integrazione, la manutenzione, la garanzia della sicurezza delle informazioni e il supporto. + +Il limite è che esse devono servire i compiti delle autorità e poter essere erogate con un onere proporzionato. + +Ne consegue che l'autorità federale non può essere l'impresa di sviluppo per terzi. Essa corregge errori, può trattare aspetti rilevanti per la sicurezza, può fornire un certo supporto e aiuto all'integrazione (tutte attività che contribuiscono a costituire una community). I nuovi sviluppi e le funzionalità supplementari per terzi dovrebbero orientarsi in primo luogo allo scopo di lavoro normale dell'autorità. Può naturalmente darsi che la messa a disposizione del software faccia parte del compito; in tal caso possono essere realizzati sviluppi in qualsiasi momento. Si rileva inoltre che lo sviluppo software non è il compito principale dell'autorità federale. + +Ciò significa che, se determinate funzionalità sono sviluppate essenzialmente in via esclusiva per terzi, esse vanno integrate in partenariato o tramite il fornitore. + +Per evitare problemi di diritto degli acquisti pubblici, nell'acquisto di software e prestazioni occorre badare a che funzionalità possano essere messe a disposizione di terzi (eventualmente soltanto terzi statali) dai fornitori. + +La fissazione degli emolumenti è già stata toccata nel capitolo «Supporto». La LMeCA costituisce già la base legale per tali emolumenti. Questi vanno comunicati sul sito web della rispettiva autorità federale. Esempi figurano nell'allegato G. + +L'art. 9 cpv. 6 stabilisce che di norma non si deve fare concorrenza al settore privato. Ciò significa che gli emolumenti non dovrebbero essere fissati troppo bassi e dovrebbero quantomeno coprire i costi. In caso di dubbio è preferibile fissare tariffe orarie troppo alte anziché troppo basse. + +In generale si raccomanda di lavorare con una fino a tre diverse tariffe orarie standard. + +Se un dipartimento federale intende definire eccezioni al cpv. 6, ciò non deve fare concorrenza al settore privato. In determinate circostanze può essere più semplice fissare gli emolumenti e aumentarli in caso di opposizione di imprese private effettivamente in grado di offrire la prestazione. + +=== Sovranità digitale + +Fintanto che la Confederazione non dispone di un proprio repository, per garantire la sovranità digitale si raccomanda di realizzare regolarmente copie dei repository pubblici. + +Va osservato che non viene copiato soltanto il codice sorgente, bensì anche altre informazioni quali issue tracking, wiki, configurazioni ecc. + +Occorre inoltre risolvere la gestione degli utenti per assicurare il controllo sul codice sorgente pubblicato. L'obiettivo generale è garantire uno sviluppo indipendente dalla rispettiva piattaforma e consentire alla community di cambiare.footnote:[Cfr. anche https://www.bfh.ch/de/aktuell/news/2024/neue-studie-digitale-souveraenitaet/] + +== Allegato + +=== Modifiche rispetto alla versione precedente + +* Aggiunto il capitolo 1 «L'essenziale in breve» +* Scopo della community aggiunto al capitolo 3 +* Aggiunti i capitoli 3.1–3.3 sulla collaborazione +* Nuovo capitolo 7.7 Trattamento dei contributi di terzi +* Precisato che i fornitori non dovrebbero pubblicare interamente di propria iniziativa (conformemente a _[BBL-WL]_, V.2) +* Menzionato publicode.yml +* Armonizzazione con il nuovo link:em002-7.pdf[Em002-7] +* Ulteriori modifiche e miglioramenti redazionali + +=== Riferimenti + +Cfr. _Em002 Linee guida strategiche per il software open source nell'Amministrazione federale_. + +=== Abbreviazioni + +Cfr. link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale] ed link:em002-6.pdf[Em002-6 FAQ sull'OSS]. + +=== Esempi di concetti di community esistenti + +Nello spirito di una raccolta di best practice figurano di seguito concetti di community e documenti comparabili già elaborati. Non si tratta necessariamente soltanto di concetti di autorità federali, ma anche di altre organizzazioni. + +* GERES Community (http://geres-community.ch) + +Classificazione: + +* Gestione del prodotto a) Sviluppo comune +* Fornitore piuttosto a) Mandatario +* Ripartizione dei costi: b) Ripartizione dei costi + +Nota: il registro comunale GERES non è open source, ma molti aspetti dell'organizzazione possono essere rilevanti anche per applicazioni open source. Documenti: statuti (pubblici) e regolamento interno (su richiesta). + +* https://www.igovportal.ch[iGov Portal] + +#Il presente capitolo contiene attualmente concetti del Cantone di Berna e sarà completato non appena saranno disponibili esempi federali.# + +=== Esempi di collaborazioni + +I seguenti esempi illustrano come sono state strutturate le collaborazioni. + +=== Collaborazione: ZenDiS in Germania + +ZenDiSfootnote:[https://www.zendis.de/en[Pagina iniziale ZenDiS: Co-creating Digital Sovereignty]] è un'organizzazione il cui obiettivo è ridurre la dipendenza nell'amministrazione pubblica (principalmente in Germania) promuovendo il software open source. + +[mermaid,align="center",alt="Obiettivi e approcci per rafforzare la sovranità digitale (ZenDiS)"] +.... +block-beta + columns 12 + H1["Obiettivi"]:12 + G1["I. Possibilità di cambiare fornitore"]:4 G2["II. Capacità di configurazione"]:4 G3["III. Influenza sui fornitori"]:4 + H2["Approcci risolutivi"]:12 + B1["1. Analisi e gestione previdenti
delle dipendenze"]:3 B3["3. Modularità indipendente dal
fornitore, standard (aperti)
e interfacce informatiche"]:3 B5["5. Configurazione cooperativa
delle soluzioni informatiche"]:3 B7["7. Prescrizioni giuridiche"]:3 + B2["2. Acquisto o sviluppo di
soluzioni informatiche
alternative (p. es. OSS)"]:3 B4["4. Sviluppo di competenze
digitali e conoscenze
specialistiche"]:3 B6["6. Comprensione e
procedura comuni"]:3 B8["8. Pilotaggio politico"]:3 + classDef highlight fill:#dae8fc,stroke:#000000,color:#000000 + class B2 highlight +.... + +Figura 1: Obiettivi e approcci per rafforzare la sovranità digitale (ZenDiS) + +A tal fine ZenDiS collabora con partner strategici. + +Una cooperazione tra l'Amministrazione federale e ZenDiS non dovrebbe quindi essere possibile senza restrizioni, e un coordinamento non sarebbe vincolante. Ciò può cambiare con il tempo. + +Concretamente l'Amministrazione federale dovrebbe costituire una propria organizzazione per la Svizzera e coordinarsi informalmente con ZenDiS. Ciò potrebbe eventualmente avvenire tramite eOperations, fermo restando che eOperations diventa attiva soltanto quando è annunciato un fabbisogno concreto ed è messo a disposizione un budget. Una motivazione per una simile organizzazione parallela potrebbe essere trovata nel contesto del governo elettronico o della LMeCA. + +Nota: ZenDiS è soggetta al diritto degli acquisti pubblici dell'UE e della Germania. Vi sono differenze rilevanti rispetto alla Svizzera. ZenDiS non può quindi essere replicata uno a uno in Svizzera, e una cooperazione con ZenDiS non è agevole. + +=== Collaborazione: Open Trip Planner (OTP) + +Open Trip Plannerfootnote:[https://www.opentripplanner.org/[OpenTripPlanner]] è un'applicazione open source per la pianificazione di viaggi. È organizzata come progetto della Software Freedom Conservancy a New York. Singoli sviluppatori sono impiegati presso imprese di trasporto e fornitori. È degno di nota che un attore del settore pubblico — concretamente ENTURfootnote:[https://entur.no/] — abbia assunto uno dei ruoli guida. ENTUR sviluppa in primo luogo per il proprio fabbisogno, ma ha anche un orientamento cooperativo, in particolare per i Paesi nordici. ENTUR è organizzata quale società di proprietà del Ministero norvegese dei trasporti e delle comunicazioni. In quanto maggiore attore, ENTUR assorbe anche una quota rilevante dei costi di coordinamento. Chiunque può presentare richieste di funzionalità; queste sono discusse nelle riunioni di coordinamento e sviluppate se qualcuno le finanzia. Il finanziamento avviene principalmente per singola funzionalità, da parte della o delle parti interessate. In sostanza ciascuna parte sostiene i propri costi. In Svizzera le prestazioni di supporto dovrebbero inoltre essere messe a concorso separatamente. + +=== Nuova collaborazione avviata dalla Confederazione: Swiss Trust Broker + +Il Trust Brokerfootnote:[https://github.com/trustbroker-swiss/trustbroker.swiss[GitHub - trustbroker-swiss/trustbroker.swiss: Documentation of the trustbroker.swiss service]] è un software della Confederazione per eIAM, disponibile come open source. Lo sviluppo è svolto dalla Confederazione. Diversi Cantoni hanno deciso di impiegarlo direttamente come SaaS o con istanze proprie. Essendo disponibile sotto licenza AGPL, le estensioni realizzate vanno a loro volta a beneficio della Confederazione. Data la sua natura critica per la sicurezza, lo sviluppo per l'Amministrazione federale è svolto esclusivamente dalla Confederazione. Altre organizzazioni possono presentare requisiti, che saranno attuati se il team di progetto li ritiene adeguati. + +=== Nuova collaborazione avviata dai Cantoni: inosca + +Tramite inoscafootnote:[https://inosca.ch/] diversi Cantoni hanno costituito una comunità di sviluppo incentrata sulle autorizzazioni elettroniche, nata dal progetto eBau.footnote:[https://github.com/inosca/ebau] eBau comprende anche Caluma,footnote:[https://github.com/projectcaluma] un framework per l'elaborazione collaborativa — un esempio di componente estratto da una soluzione più ampia e sviluppato in un framework autonomo e ampiamente applicabile. Esso può essere utilizzato anche in altri progetti, anche laddove alcune parti siano soggette a condizioni di eccezione, consentendo così al maggior numero possibile di altri enti di beneficiare del codice. + +La community si riunisce almeno una volta al mese (in opzione due volte) per scambiarsi opinioni su temi tecnici e pianificare la roadmap comune. Tutti i partecipanti possono proporre temi. Se un tema è ritenuto rilevante per la community, i Cantoni interessati si annunciano e si organizzano in un gruppo di lavoro. I risultati sono restituiti continuamente alla community. inosca opera secondo un principio fondamentale: chi progetta, finanzia. Ossia, tutti i Cantoni che partecipano a un gruppo di lavoro si dividono i costi della nuova funzionalità. La funzionalità è messa a concorso e i costi sono ripartiti all'interno della community secondo una formula di ripartizione predefinita. Non appena una funzionalità è completata e introdotta, diventa immediatamente disponibile gratuitamente per tutti gli altri Cantoni. + +La community ha inoltre deciso di accantonare un modesto importo annuo fisso per coprire i costi amministrativi di gestione della community. Tale budget è attribuito ogni anno alle parti che assumono un ruolo organizzativo. + +=== SNOWPACK del WSL — contributi diretti degli sviluppatori + +SNOWPACKfootnote:[https://snow-models.gitlab-pages.wsl.ch/snowpack-web/] è un progetto open source sviluppato dal WSL per modellizzare la formazione del manto nevoso. Si tratta di un modello altamente specializzato e la community è stata di conseguenza integrata nella comunità specialistica esistente. Alcuni issue sono già stati individuati quali potenziali contributi. Il modello di lavoro è qui che ciascuna parte sostiene i propri costi e apporta funzionalità. Le direttive su stile di codifica e processo di rilascio sono parimenti documentate in tale contesto. + +=== Spunti per statuti associativi + +Gli statuti dovrebbero essere mantenuti il più semplici possibile. + +I seguenti statuti possono servire da spunto. + +* eCH: https://www.ech.ch/sites/default/files/page/STAT_d_DEF_2014-04-10_ech-Statuten.pdf +* Stop Piracy: https://www.stop-piracy.ch/wp-content/uploads/2022/01/Statuten_d_10_09_2021.pdf + +#Ulteriori esempi di statuti saranno aggiunti non appena disponibili.# + +=== Esempi di supporto ed emolumenti + +* Emolumenti per prestazioni statistiche: https://www.fedlex.admin.ch/eli/cc/2003/326/it[https://www.fedlex.admin.ch/eli/cc/2003/326/it] +* Emolumenti dell'IFPDT: https://www.edoeb.admin.ch/edoeb/it/home/datenschutz/grundlagen/dsfa.html +* Prestazioni gratuite dell'IPI per corsi nel settore della proprietà intellettuale (non software, ma a titolo di esempio): https://www.ige.ch/it/prestazioni/ip-academy/informazioni-generali/prezzi + +Gli esempi saranno aggiunti non appena disponibili. +endif::[] + +ifeval::["{lang}" == "rm"] +NOTE: Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source. Ulteriuras infurmaziuns chattais Vus en il {url-repo}/tree/main[README]. + +== L'essenzial en curt + +Sutvart èn inditgads ils puncts ils pli impurtants dal document. + +* La construcziun u il manaschi d'ina communitad OSS *n'è betg necessari* tenor l'art. 9 EMBAG. +* Ina communitad è relevanta, sch'ina gruppa d'utilisaders è sensada e sche *sinergias* cun auters utilisaders dal software duain vegnir creadas. +* Ina communitad na sa limitescha betg al software sez, mabain po era cumpigliar ils process en il conturn e la standardisaziun da datas. +* Per construir ina communitad sto adina vegnir prestà ina *lavur iniziala*. Quella cuntinuescha per ordinari. Savens è sensa che l'uffizi manant purtia era ils custs da coordinaziun. +* Communitads duain ademplir in *intent*. I dovra interessads e participants. +* Ina communitad po naschair e vegnir formalisada pli tard. +* La finamira da la communitad è d'augmentar il *profit per tuts*. Princip: «Ins survegn almain uschè bler enavos sco quai ch'ins metta en». +* La communitad duess esser *structurada uschè simplamain sco pussaivel*. +* En in emprim pass duess la communitad vegnir examinada curtamain cun agid da la glista da controlla link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. Mo sch'ella è sensada duess ella vegnir sviluppada vinavant. +* La formalisaziun ha lieu via in *concept da communitad*. Uschè bler sco pussaivel duess vegnir surpiglià da funtaunas existentas. Princip: «Betg reinventar la roda». +* Sch'ina collavuraziun vegn aspirada, sto quai vegnir resguardà gia al cumenzament dal project, perquai che partenaris potenzials duessan vegnir integrads gia tar l'analisa da las pretensiuns. Era giuridicamain e dal puntg da vista dal dretg d'acquist sto quai vegnir planisà bain da l'entschatta. +* Las pussaivladads per entrar en ina collavuraziun existenta ston vegnir examinadas giuridicamain e dal puntg da vista dal dretg d'acquist. +* Per contribuziuns na sto vegnir construida nagina communitad. Sche il project pretenda quai, sto dentant vegnir suttascrit il *Contributor Licence Agreement (CLA)* correspundent u ston ils sviluppaders esser autorisads dal project da suttametter il software sut in Developer Certificate of Origin (DCO). + +== Introducziun + +Questa guida s'adressa a persunas spezialisadas en TIC ch'èn responsablas per ina applicaziun e che vulan la purscher sco open source u contribuir ad ina tala applicaziun. + +Quai sto vegnir organisà u formalmain u informalmain. + +Quest document furnescha infurmaziuns impurtantas per l'organisaziun e la construcziun d'ina communitadfootnote:[La communitad d'in project open source represchenta tipicamain ina piramida. + +Il fundament da questa piramida furman ils utilisaders dal software, en spezial quels engaschads che sa participeschan activamain a la communitad, per exempel en furma d'annunzias da sbagls e da giavischs da funcziuns u tras contribuziuns a glistas da mail. + +Directamain survart stattan en la piramida ils contributors. Quai èn parts da la communitad che proponan agnas contribuziuns da code. Els n'han tipicamain nagin access da scriver al repositori. Lur contribuziuns vegnan examinadas dals maintainers dal project e surpigliadas en il repositori suenter avair cuntanschì la qualitad tipica dal project. + +Al sum da la piramida stattan ils maintainers resp. committers d'in project. En quest rol porta ina sviluppadra u in sviluppader ina pli gronda responsabladad. Quai sa mussa per exempel en la pussaivladad d'acceptar contribuziuns. Quest dretg sa manifestescha savens via l'access da scriver al repositori. Sin quest nivel ha lieu la controlla dal software, da sia qualitad e da sia extensiun funcziunala. Tar projects pli cumplexs po quest nivel vegnir sutdividì vinavant. Uschia ha per exempel il kernel Linux sco enconuschent maintainers da subsistems sin plirs nivels, e finalmain surpiglia mo ina suletta persunalitad da svilup, Linus Torvalds, ils patchs en il repositori dal project. In ulteriur exempel èn projects da la Eclipse Foundation che disponan tipicamain d'in project lead cun dretgs supplementars en il rom dal process da svilup da la Eclipse Foundation, sco il lantschar dal process da release u la elecziun formala da committers u da project leads _[BITKOM2023]_.] sco er per il svilup avert directamain sco project open source. + +Sco segund element vegn manà, per promover la standardisaziun, en il rom da quest document in register da concepts da communitad existents. L'idea è che novas communitads possian vegnir construidas cun ina lavur minimala sin la basa da soluziuns cun success. + +Quest document na cuntegna naginas recumandaziuns directas per l'organisaziun da communitads per bibliotecas da software (parts da software che ademplan funcziuns parzialas, p.ex. la producziun da PDF). Normalmain na vegn elavurà per quellas nagin concept agen; empè da quai utiliseschan ellas il model simpel fixà en il model d'archivaziun dal repositori. + +Il document link:em002-1.pdf[Em002-01 Guida pratica per software open source en l'administraziun federala] cuntegna en il chapitel 4 furmas fundamentalas da collavuraziun, en il chapitel 8 ils differents models da support ed en l'agiunta infurmaziuns davart il cumportament dal martgà da l'open source. + +== Gener, finamira ed intent d'ina communitad + +Ina communitad po persequitar ils suandants intents: + +* Relevaziun da pretensiuns supplementaras +* Derasaziun da savida davart l'applicaziun +* Meglers resuns dals utilisaders +* Promoziun da translaziuns, documentaziun e scolaziuns +* Derasaziun da la standardisaziun +* En general ina interacziun meglierada cun ils utilisaders +* Ampliaziun da la collavuraziun ad ulteriurs participants +* Promoziun d'ulteriur software sin la basa dal software + +Tge gener da communitad ch'è il pli adattà per ina applicaziun dependa ferm dal conturn spezialisà, dals utilisaders potenzials e da la strategia da l'instituziun che publitgescha. I dat bleras vias differentas da construir communitads. Idealmain po in project adattà sa participar ad ina communitad existenta. Alternativamain po ina communitad vegnir construida cun in u plirs partenaris cun ils medems dretgs. + +Impurtant è ch'ina *structura da governanza* vegnia fixada e ch'ils puncts relevants vegnian documentads en in *concept da communitad* (vesair era _[BITKOM2023]_ chapitel 4.1 e _[IZqCab2023]_). + +Da resguardar è che communitads per software pon era vegnir cumbinadas cun talas per datas, standardisaziun e temas spezialisads. La communitad po lura cumpigliar process, standardisaziun, software e datas. Structuras existentas sco eOperations, ADS ed eCH pon era vegnir duvradas, nua che quai è sensa. + +In aspect impurtant d'ina communitad che funcziuna è ch'ils participants survegnian dapli che quai ch'els investeschan. + +I existan las suandantas constellaziuns: + +* *Communitad enturn in OSS da la Confederaziun*: La governanza ed il concept da communitad ston vegnir elavurads. En quest connex sto era vegnir reglà, co che terzas persunas pon prestar contribuziuns. +* *Nova collavuraziun per schliar in problem*: Ultra da la governanza e dal concept da communitad sto vegnir construida l'entira structura giuridica da la collavuraziun. +* *Entrada en ina collavuraziun*: L'administraziun federala sto examinar, sche e co ch'ella po far quai. +* *Contribuziun ad in project da terzas persunas*: Da examinar è la politica dal project per contribuziuns (Contributor Licence Agreement, Developer Certificate of Origin etc.). + +Dumondas dal dretg d'acquist vegnan tractadas en link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist e dal software open source]. + +=== Cas spezial: Nova collavuraziun per svilup, mantenziun e support da software open source + +Ils custs totals dal software open source sa reduceschan, sch'el vegn sviluppà e tgirà vinavant cuminaivlamain. Quai po capitar senza cunvegnas da cooperaziun formalas u cun betg dapli ch'ina planisaziun cuminaivla. + +Sch'ina collavuraziun pli formala vegn aspirada, duess vegnir fatga ina sclerida dal martgà per garantir che la collavuraziun saja la furma da cooperaziun la pli adattada. Collavuraziuns èn pli favuraivlas ch'in svilup singul da mintga partida (vesair link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]). + +Da resguardar è che tar collavuraziuns è sensa da lantschar la collavuraziun fitg baud en la metodica da project HERMESfootnote:[https://www.hermes.admin.ch/de/projektmanagement/methodenuebersicht.html] – concretamain durant las fasas analisa da la situaziun e pretensiuns. + +La collavuraziun è en Svizra fundamentalmain permessa tenor l'artitgel 4 EMBAG. + +Ultra da tuttas autras reflexiuns han collavuraziuns tant ina dimensiun giuridica sco era ina dimensiun dal dretg d'acquist. Actualmain vegn mintga cas giuditgà singularmain. Cun il temp sa vegnan a stabilir models standardisads. + +==== Dimensiun giuridica + +Commembranzas en associaziuns èn realisablas, vegnan dentant per ordinari giuditgadas en il cas singul: Tgi stat davos l'associaziun, e tge obligaziuns vegnan surpigliadas? Ina delegaziun da commembranzas ad eOperations u ad organisaziuns sumegliantas fiss pussaivla. + +Uschè ditg che nagin daner na flueschia e che naginas obligaziuns formalas na ston vegnir surpigliadas, è in Memorandum of Understanding sin il nivel da l'uffizi federal u da la Chanzlia federala pussaivel. + +Ina situaziun che pretenda la conclusiun d'in contract internaziunal duess vegnir evitada. + +I dat ultra da quai dus cas spezials,footnote:[https://www.eda.admin.ch/deza/de/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] en ils quals ina collavuraziun fiss gia cuverta: + +* Incumbensas attribuidas en il rom d'ina cunvegna internaziunala davart la realisaziun cuminaivla d'in project tras stadis signatars. +* Incumbensas attribuidas tenor las proceduras u cundiziuns spezialas d'ina organisaziun internaziunala. + +==== Dimensiun dal dretg d'acquist + +En blers cas ha la collavuraziun lieu tranter organisaziuns dal sectur public. En tals cas è l'acquist senza problems, uschenavant che la constellaziun è «entaifer il stadi» (vesair link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist e dal software open source]). + +Contracts cun interpresas estras senza sedia en Svizra èn pussaivels, uschenavant che las pretensiuns dal dretg d'acquist èn ademplidas. + +L'acquist da las atgnas resursas d'ina organisaziun ha lieu en il rom d'in process d'acquist usità u è gia terminà. + +=== Cas spezial: Entrada en ina collavuraziun existenta + +Quai pretenda tant ina basa legala sco era l'observaziun dal dretg d'acquist. + +Il pli simpel è la participaziun tenor il princip «mintga partida porta ses agens custs». Uschia sa laschan era cuvrir ils custs generals, uschenavant che vegnan duvradas u resursas internas u resursas externas messas a concurs correctamain. + +Ina participaziun directa a collavuraziuns estras è pli difficila. In simpel colliament via in Memorandum of Understanding è il pli simpel da cuntanscher. + +=== Cas spezial: Contribuziuns da code a projects OSS da terzas persunas + +Sche l'administraziun federala fa midadas al code d'in project OSS existent, è sensa da contribuir questas midadas directamain upstream al project original. Uschia na sto la mantenziun currenta betg pli vegnir prestada da l'administraziun federala. + +Tenor l'artitgel 9 EMBAG èn talas contribuziuns schizunt giavischadas. Dal puntg da vista dal dretg d'acquist è quai senza problems. + +Impurtant è che il possessur dals dretgs prestia la contribuziun. Quai munta che l'administraziun federala porta la responsabladad per quai per ses collaboraturs ed incumbensads. Concretamain sto in eventual Contributor Licence Agreement dal project vegnir suttascrit u sto in Developer Certificate of Origin vegnir agiuntà a la pull request. + +In **Developer Certificate of Origin**footnote:[https://developercertificate.org/] *(DCO)* per l'administraziun federala pudess suandar: + +[quote, 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. +____ + +La structura d'in Contributor Licence Agreement vegn descritta en link:em002-3.pdf[Em002-3 Guida da licenzas OSS], chapitel 8.9. + +La surdada effectiva dal code ha lieu tenor las directivas dal project respectiv. + +== Concept da communitad + +Il center d'ina communitad èn a la fin sia structura e sia governanza. Quellas vegnan tegnidas en scrit en in concept da communitad. + +Il concept da communitad da elavurar da la responsabladad dal project u da l'applicaziun (u dà en incumbensa a terzas persunas) duess suandar questa structura da chapitels. Tut tenor il gener da la communitad concreta n'èn betg tut ils sutchapitels necessaris. Idealmain renviescha ina gronda part dals chapitels a documents gia standardisads u utiliseschan process standard dals repositoris correspundents. Il concept da communitad sa lascha era applitgar a projects existents manads dad auters, en spezial sche la governanza effectiva n'è anc betg documentada en scrit. + +Cun la formalisaziun da la communitad vegnan tut ils participants manads ensemen e l'onboarding da novs participants vegn simplifitgà. + +Sboz da structura d'in concept da communitad: + +[arabic] +. Tabella da survista (num, repositori, adressa da contact, licenza, profunditad dal support, existent/nov) +. Finamiras +[loweralpha] +.. da l'applicaziun +.. da la communitad +. Organisaziun +[loweralpha] +.. Possessura dal code +.. Furma d'organisaziun / gremis +.. Dretgs da votar +.. Direcziun dal project +.. Dumondas d'acquist (sche applitgabel) +.. Ulteriurs aspects da governanza +. Roadmap e process da midada +. Process da svilup +[loweralpha] +.. Svilup avert +.. Dretgs da committer +.. Process da review +.. Repartiziun da las incumbensas e menziuns da nums +.. Backups +. Finanziaziun da la communitad +. Marketing +. Tractament da contribuziuns externas +[loweralpha] +.. Tractament da sbagls annunziads +.. Tractament da dumondas +.. Tractament da pull requests +.. Tractament da forks +.. CLA, DCO ed attribuziun da dretgs/proprietad intellectuala +. Manaschi da l'applicaziun + +Fundamentalmain è mintga autoritad federala responsabla per l'elavuraziun dals concepts da communitad. Il sectur TDT po publitgar models/exempels existents ed acceptescha exempels correspundents per la publicaziun. Sensa è ultra da quai ch'ils managers da communitad barattian infurmaziuns tranter els. + +Ina funtauna pussaivla per parts è era la documentaziun da la Eclipse Foundation,footnote:[Vesair https://www.eclipse.org/projects/handbook/#starting] cun quai ch'i sto vegnir fatg qua in tailoring adequat en il senn da «far mo il necessari». + +== Decisiuns fundamentalas tar la construcziun d'ina communitad + +Ils princips da la communitad – u la renunzia ad ella – vegnan fixads cun agid da link:em002-4-1-checklist-oss-community.pdf[Em002-4.1]. Las dumondas fundamentalas relevantas sa chattan en la chascha morfologica qua sutvart; mintga dimensiun vegn explitgada en ils chapitels suandants. + +[.landscape] +[cols="3,2,2,2,2,2",options="header"] +|=== +|Dimensiun |(a) |(b) |(c) |(d) |(e) + +|A -- Management dal product +|Confederaziun +|Organisaziun cuminaivla +|Organisaziun averta +|Terzas persunas +| + +|B -- Integraziun dals furniturs +|Incumbensà +|Partenari +|Independent +|Direcziun +| + +|C -- Repartiziun dals custs +|Confederaziun +|Mintgin per sasez +|Princip dal chaschunader +|Clav da repartiziun +|Contribuziun + +|D -- Support +|Relaschada minimala +|Support tras la Confederaziun +|Support tras terzas persunas +| +| + +|E -- Svilup +|Intern +|Terzas persunas +|Avert +| +| +|=== + +_Chascha morfologica communitad OSS._ + +I è recumandabel da *sa concentrar en emprima lingia sin il futur proxim* tar la concepziun da la communitad; sch'i n'existan per exempel anc nagins interessads concrets per l'applicaziun, è quai per ordinari pauc sensa da definir ina communitad cun ina societad simpla, ina atgna associaziun e process cumplexs per il svilup da la roadmap.footnote:[Cun ina associaziun (u ina fundaziun) vegn creada ina atgna persuna giuridica che sa premura per il software e per il product. Quai paja pir a partir d'ina tscherta impurtanza, cumplexitad e da l'existenza da plirs partenaris (cun ils medems dretgs). Ina roadmap serva a mussar al public pli vast ed als potenzials ulteriurs utilisaders dal software quai ch'è planisà.]footnote:[En spezial tar projects, als quals plirs acturs statals èn participads da l'entschatta, po era esser pussaivel da s'adressar a fundaziuns existentas e d'examinar, sche ils projects e la governanza pon vegnir manads sut lur tetg, analog a https://finos.org u https://osr.finos.org u https://www.eclipse.org/collaborations/ u https://iot.eclipse.org u https://outreach.eclipse.foundation/open-regulatory-compliance.] + +=== Management dal product + +Tut tenor il gener da l'applicaziun, sia impurtanza strategica e ses stadi en il ciclus da vita existan differentas variantas per represchentar il management dal product. Tar organisaziuns entaifer autoritads federalas pertutga quai adina ils responsabels da l'applicaziun. Per il concept da communitad èn spezialmain relevants la definiziun da la roadmap spezialisada e tecnologica sco er ils process da release. + +Pussaivladads: + +[loweralpha] +. *Organisaziuns entaifer la Confederaziun*: La Confederaziun vul mantegnair la controlla; ella definescha suletta la roadmap. +. *Organisaziun cuminaivla*: Ensemen cun auters utilisaders u furniturs. +. *Organisaziun averta*: Colliaziuns lasas, nagina roadmap activa. +. *Terzas persunas*: U il product exista gia u la lavur duai vegnir externalisada. + +==== Organisaziuns entaifer la Confederaziun: + +Sche l'applicaziun ha ina gronda impurtanza strategica u sche la Confederaziun dependa da pudair realisar spert sias midadas, po esser sensa da mantegnair la controlla. + +L'autoritad federala decida via la responsabladad da las pretensiuns suletta, tge ch'influescha cura en il software. + +Per auters utilisaders potenzials da l'applicaziun munta quai ch'els èn praticamain sfurzads dad utilisar ina atgna versiun (fork) da l'applicaziun. + +Uschiglio n'han els bunamain naginas pussaivladads da realisar adattaments ed extensiuns che pon esser impurtants per els. Quai na discurra betg cunter ina publicaziun sco open source: Ils utensilis per administrar il codefootnote:[p.ex. GitHub] porschan in vast sustegn per tals scenaris, ed adattaments e correcturas da sbagls pon vegnir surpigliads selectivamain en omaduas direcziuns. + +Ina partiziun dals custs è tipicamain difficila cun quest model. + +==== Cuminaivel (la Confederaziun ha la direcziun u partenaris cun ils medems dretgs) + +Decisiuns davart la roadmap e las prioritads duessan vegnir accordadas e prendidas cuminaivlamain cun ils auters commembers da la communitad. La Confederaziun sa participescha sco commembra da la communitad, ma n'è betg l'organisaziun mananta. + +Per che il prender decisiuns cuminaivel funcziunia, ston structuras e reglas vegnir fixadas anticipadamain. Uschia vegn era definì, co ch'ils custs per la realisaziun dals adattaments decidids cuminaivlamain vegnan repartids. + +Cun quest model nascha ina suletta versiun da l'applicaziun che vegn lura duvrada da tut ils commembers. Uschia èn ils custs totals cleramain pli bass en cumparegliaziun cun las autras variantas. La flexibilitad dals singuls utilisaders è dentant pli pitschna, ed els ston accordar anticipadamain lur giavischs d'adattaziun cun tut ils auters. Il prender decisiuns è pli plaun e pli custaivel. + +Quest model s'adatta il meglier per applicaziuns che duain vegnir sviluppadas vinavant cuminaivlamain cun autras organisaziuns cleramain definidas (p.ex. chantuns). + +==== Organisaziun averta + +Tar quest model èn ils process e las structuras mo definids lasamain. La Confederaziun mantegna formalmain la controlla, ma è averta per contribuziuns ed adattaments. + +I na vegn definida nagina u mo ina fitg gruassa roadmap; il consens vegn cuntanschì informalmain ed en discussiuns directamain sin la plattafurma da publicaziun. La communitad sezza è pli tgunsch dinamica; commembers pon esser fitg activs in tschert temp e sa retrair lura puspè. + +Quest model s'adatta era per applicaziuns pli pitschnas ch'èn gia en diever productiv e «finidas». Igl è ultra da quai per ordinari la megldra furma per applicaziuns u cumponentas orientadas tecnicamain che s'adresseschan potenzialmain ad ina gruppa da destinaziun pli vasta che na sa lascha betg determinar exactamain anticipadamain. + +==== Terzas persunas + +Tar quest model vegnan ils process e las structuras definids da terzas persunas e l'autoritad federala è commembra da la communitad, ma n'ha betg la direcziun. Quai po derivar dal fatg che il project è vegnì definì per exempel dad in auter stadi u chantun. U i po esser che la Confederaziun n'è betg interessada da manar vinavant sezza il program e transferescha questa incumbensa. + +=== Integraziun dals furniturs + +Per l'integraziun da furniturs existan fundamentalmain las suandantas pussaivladads: + +[loweralpha] +. *Furnitur sco incumbensà*: El vala a media vista fundamentalmain sco remplazzabel. Il furnitur duai sviluppar l'applicaziun sin la basa d'incumbensas dal management dal product (u da la communitad) favuraivlamain ed en auta qualitad, ma ha al pli ina influenza cussegliadra sin la roadmap e la prioritisaziun. +. *Partenaris a lunga vista cun cundecisiun*: Els duain pudair cundeterminar activamain il svilup. Quai rinforza lur rol ed els èn potenzialmain pronts d'investir sezs en l'applicaziun. Tipicamain derasan ils furniturs en quest model il software e tschertgan activamain novas clientas e novs clients. +. *Independent:* Ils furniturs fixeschan sezs, sche e co ch'els vulan lavurar al project. Quai po capitar per exempel, sche plirs furniturs vulan generar in agen martgà sin la basa dal software. Licenzas liberalas pon promover quai potenzialmain. Quai po era capitar, sche la strategia da la Confederaziun divergescha da quella dal furnitur. En quest scenari è probabel che il furnitur creescha in fork. +. *Direcziun*: Sche il furnitur surpiglia il management dal product, ha el la direcziun. Il svilup vegn lura determinà dad el. Da l'autra vart po quai era munta che l'administraziun federala sto surpigliar mo fitg pauca responsabladad. Tar ina relaschada minimala è pussaivel che il furnitur surpiglia quest rol independentamain. + +Sche il furnitur surpiglia in rol ferm, porta quai avantatgs per l'administraziun federala: Tras la commercialisaziun activa da l'applicaziun exista la schanza che la communitad creschia pli spert e pli ferm e che ils custs per commember sa reduceschian pli svelt. + +Sch'in model cun ina ferma cundecisiun dals furniturs vegn tschernì, sto vegnir fatg adatg che nagina divergenza da las prescripziuns dal dretg d'acquist na resultia da quai. Per ordinari è recumandabel d'integrar almain dus furniturs per betg crear ina dependenza memia ferma d'in sulet furnitur. Ultra da quai duess exister la pussaivladad che ulteriurs furniturs possian entrar en la communitad. + +=== Repartiziun dals custs + +Per la repartiziun dals custs per mantenziun, svilup vinavant e novas funcziuns stattan a disposiziun las suandantas opziuns: + +[loweralpha] +. *Organisaziuns entaifer la Confederaziun*: En spezial tar la construcziun d'ecosistems u sche l'autoritad federala vul mantegnair la controlla cumpletta, sto l'autoritad federala era purtar ils custs. +. *Mintgin per sasez*: Tuts pajan sezs las midadas ch'els giavischan. Sche necessari vegn decidì en il cas singul da pajar cuminaivlamain tschertas extensiuns. Custs repetitivs vegnan facturads tenor ina clav da repartiziun u tenor basegn. +. *Princip dal chaschunader*: Tgi che dovra effectivamain las prestaziuns u funcziuns, paja per quellas. I pon vegnir applitgadas tariffas oraras standardisadas. +. *Clav da repartiziun*: Ils custs vegnan repartids entaifer la communitad tenor ina clav definida. Mo extensiuns specificas divergeschan da quai. Quellas duessan vegnir pajadas directamain dals utilisaders pertutgads. Il divisur dals custs po esser per exempel la grondezza dal chantun pertutgà u il dumber dals utilisaders. Concernent la clav da repartiziun vesair era il chapitel «Repartiziun dals custs». +. *Contribuziun*: Sche l'autoritad federala integrescha mo persunal en in project existent. + +Fundamentalmain è la varianta b (partiziun dals custs) per ordinari mo lura sensada, sch'i exista era in management dal product cuminaivel sco en la varianta b (cuminaivel). Mo tgi che po discutar mit vegn ad esser pront da purtar ils custs consecutivs da las decisiuns. + +=== Support + +En il rom da la repartiziun dals custs e da la lavur sto vegnir scleri, tgi che presta tge support. Tenor l'art. 9 EMBAG è ina pura relaschada minimala pussaivla. Questa varianta na cuntanscha eventualmain betg l'effect giavischà e na construescha per sasezza nagina communitad, en la quala l'autoritad federala ha influenza. + +[loweralpha] +. *Relaschada minimala*: Nagin support (quai vul dir che la relaschada ha lieu per ordinari senza support organisà e senza participaziun da l'autoritad federala). +. *Support tras la Confederaziun*: L'autoritad federala (u ses purschider da prestaziuns) presta in support definì. +. *Support tras terzas persunas*: L'autoritad federala u la communitad definescha ina organisaziun da support. + +L'effect da cuntanscher, p.ex. sin l'ecosistem svizzer u ina finanziaziun iniziala d'ina communitad, po manar a quai che la Confederaziun prestia support. L'extensiun dal support sto natiralmain vegnir definida. Fundamentalmain po era vegnir incassada ina taxa. Pervia dals mecanissems da la Confederaziun èn purschiders da prestaziuns u furniturs pli tgunsch en cas da purscher in support commerzial. + +Uffizis dastgan purscher tenor l'EMBAG in support cun custs (eventualmain era via purschiders da prestaziuns e terzas persunas). Per quai ston els publitgar las taxas correspundentas sin lur pagina d'internet, perquai che la basa legala necessaria exista. Il colliament al sistem da pajament po vegnir discutà cun il DFF. + +Exempels per support e taxas sa chattan en l'agiunta G. + +=== Svilup + +Era la metodica fundamentala dal svilup po influenzar il gener da la communitad. + +[loweralpha] +. *Intern*: L'utilisaziun da repositoris interns munta che terzas persunas na pon betg collavurar directamain. Pli stricta che la separaziun è, pli gronda è la lavur d'integraziun che la Confederaziun sto prestar, sch'ella vul surpigliar extensiuns da terzas persunas. Era il process da relaschada è pli custaivel. +. *Terzas persunas*: U in furnitur lavura independentamain, u il product gia cumenzà resp. manà da terzas persunas vegn sviluppà tenor reglas definidas. +. *Avert*: Il svilup da software ha lieu directamain en in repositori public. La relaschada tenor l'EMBAG è uschia amplamain garantida. Las expensas resultan durant il svilup. En quest scenari po la collavuraziun cun terzas persunas era avair lieu pli baud (e pli simplamain). + +== Cuntegns detagliads per il concept da communitad + +Quest chapitel dat indicaziuns per redigier il concept da communitad sin la basa da las decisiuns fundamentalas prendidas (tenor il chapitel 5). + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +avert / Partenari / Confederaziun:: +Cuntegns u propostas, sche las decisiuns fundamentalas èn: + +Management dal product c) Organisaziun averta + +Integraziun dals furniturs: b) Furnitur sco partenari + +Repartiziun dals custs: b) Mintgin per sasez + +_Il text survart po vegnir copià en il model ed adattà._ + +Cuminaivel / - / Mintgin per sasez:: +Cuntegns u propostas, sche las decisiuns fundamentalas èn: + +Management dal product b) Svilup cuminaivel + +Integraziun dals furniturs: a) u b) (betg relevant) + +Repartiziun dals custs: c) Princip dal chaschunader u d) Partiziun dals custs + +Cuminaivel / - / Chaschunader:: +{empty} + +Il concept da communitad duess esser in document dinamic che po vegnir adattà en concertaziun cun la communitad. Il concept duess reflectar la situaziun actuala e proponer opziuns da svilup futuras. Sche pli tard entran ulteriurs commembers en la communitad, pon l'organisaziun ed ils process vegnir elavurads vinavant e pon vegnir introducids mecanissems pli cumplexs. Ils suandants sutchapitels suondan directamain la structura proponida dal concept da communitad (vesair chapitel 4). + +Sche il management dal product sa chatta tar terzas persunas, defineschan quellas ils concepts per la communitad. + +=== Datas centralas + +Las suandantas datas centralas duessan vegnir elavuradas e publitgadas per mintga communitad, per che ils potenzials interessads possian s'annunziar per il software e per la communitad: + +* Num dal software +* Repositori +* Possessura +* Unitad d'organisaziun/uffizi responsabel +* Adressa da contact +* Licenza duvrada +* Stgalim da support +* Project existent + +Questas indicaziuns sa laschan tuttas represchentar cun publiccode.yml.footnote:[https://yml.publiccode.tools/] + +=== Finamiras + +La finamira duess cuntegnair l'intent propri u la «visiun» da l'applicaziun. Questa visiun duess era vegnir inditgada en la datoteca *README.md* en il repositori (vesair link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[glista da controlla Em002-2.2 Analisa e preparaziun OSS]). + +Al medem temp duess era vegnir descrit, tge che la communitad aspira: + +* Tgi duai entrar? +* Tgi èn ils potenzials interessads? +* Duain novs commembers vegnir tschertgads activamain? +* Tge èn las finamiras principalas persequitadas cun la publicaziun sco open source? + +=== Organisaziun e governanza + +Fundamentalmain vegn aspirà tar svilups novs che la Confederaziun saja possessura dals dretgs principals sin il code da funtauna. + +Il gener da la direcziun dal project dependa da tge organisaziun ch'ha gì la direcziun tar la Confederaziun (SAFe, HERMES). Tar la furma d'organisaziun sto adina vegnir aspirà in minimal overhead (structura existenta empè d'ina nova; societad simpla empè d'ina associaziun). + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +Confederaziun / - / Intern:: +Perquai che la Confederaziun mantegna la controlla directa, n'èn naginas structuras d'organisaziun supplementaras necessarias. + +Il post che publitgescha (p.ex. in uffizi federal) resta possessur e surpiglia tuttas incumbensas da coordinaziun. En quest cas po il chapitel «Organisaziun» vegnir tegnì fitg curt. + +Cuminaivel / - / Intern:: +Per quest scenari vegn per ordinari recumandada l'organisaziun sco *societad simpla*. + +Per che il svilup cuminaivel e l'accordanza da la roadmap e da las pretensiuns sajan pussaivels, è recumandabel da furmar dus gremis cun mintgamai ina persuna participanta per commember da la communitad: ++ +-- +* Gremi da direcziun: definescha la strategia e la prioritisaziun. +* Gruppa spezialisada: elavura pretensiuns e cuntegns concrets sin il nivel spezialisà. Tut tenor l'extensiun po era vegnir installada ina atgna gruppa spezialisada per mintga tema. +-- ++ +Possessur dal code è l'uffizi che l'ha publitgà. ++ +Sche las structuras daventan pli cumplexas u sche dapli che tschintg utilisaders resp. commembers supplementars èn participads, po valair la paina d'examinar, sche la communitad duess vegnir organisada meglier sco associaziun. Cumparegliar las explicaziuns en la varianta directamain sutvart. + +Cuminaivel / - / Terzas persunas:: +Recumandada vegn l'organisaziun sco *associaziun*. + +U i vegn fundada ina associaziun spezialmain per l'applicaziun, u l'applicaziun vegn transferida ad ina associaziun existenta. Ina associaziun vegn recumandada, perquai ch'uschiglio daventa la repartiziun dals custs cumplexa e perquai che las incumbensas da coordinaziun cumportan probablamain avunda lavur per engaschar ina gestiun a temp parzial per l'associaziun. ++ +Ils dretgs sin il code vegnan lura transferids a l'associaziun che surpiglia il management da la communitad e las ordinaziuns tar ils furniturs. + +Cuminaivel / Incumbensà / Intern:: +Recumandada vegn l'organisaziun sco *associaziun*. U i vegn fundada ina associaziun spezialmain per l'applicaziun, u l'applicaziun vegn transferida ad ina associaziun existenta. Ina associaziun vegn recumandada, perquai ch'uschiglio daventa la repartiziun dals custs cumplexa e perquai che las incumbensas da coordinaziun cumportan probablamain avunda lavur per engaschar ina gestiun a temp parzial per l'associaziun. ++ +Ils dretgs sin il code vegnan lura transferids a l'associaziun che surpiglia il management da la communitad e las ordinaziuns tar ils furniturs. + +Qua n'èn ils furniturs betg commembers da l'associaziun, mabain mo incumbensads. La gestiun na duess betg vegnir messa a disposiziun d'in furnitur. + +Cuminaivel / Incumbensà / Terzas persunas:: +Recumandada vegn l'organisaziun sco *associaziun*. U i vegn fundada ina associaziun spezialmain per l'applicaziun, u l'applicaziun vegn transferida ad ina associaziun existenta. Ina associaziun vegn recumandada, perquai ch'uschiglio daventa la repartiziun dals custs cumplexa e perquai che las incumbensas da coordinaziun cumportan probablamain avunda lavur per engaschar ina gestiun a temp parzial per l'associaziun. + +Ils dretgs sin il code vegnan lura transferids a l'associaziun che surpiglia il management da la communitad e las ordinaziuns tar ils furniturs. + +Ils furniturs èn commembers da l'associaziun; la gestiun po era vegnir messa a disposiziun d'in furnitur. + +avert / - / Intern:: +I n'exista *nagin basegn per ina descripziun detagliada d'ina organisaziun*, perquai ch'ella è concepida conscientamain avertamain. Impurtant è dentant da fixar, tgi che recepescha ed elavura las dumondas externas (responsabladad). Ultra da quai sto vegnir determinà, sche ed en tge dimensiun che persunas externas pon vegnir integradas: ++ +-- +* Nagina integraziun directa: Externs pon mo inoltrar propostas e contribuziuns (sco pull requests). +* Integraziun sco contributors: Externs che prestan savens e bunas contribuziuns vegnan integrads directamain. +* Surdada ad externs pussaivla: Sche suenter la publicaziun contribueschan externs dapli al svilup vinavant che l'organisaziun che publitgescha, po l'applicaziun era vegnir transferida ad els. +-- ++ +L'organisaziun che publitgescha resta possessura. Questa varianta correspunda a l'organisaziun da projects open source «classics»; vesair per ulteriuras infurmaziuns per exempel https://opensource.guide/leadership-and-governance/. + +avert / Incumbensà / Intern:: +I n'exista *nagin basegn per ina descripziun detagliada d'ina organisaziun*, perquai ch'ella è concepida conscientamain avertamain. Impurtant è dentant da fixar, tgi che recepescha ed elavura las dumondas externas (responsabladad). Ultra da quai sto vegnir determinà, sche ed en tge dimensiun che persunas externas pon vegnir integradas: ++ +-- +* Nagina integraziun directa: Externs pon mo inoltrar propostas e contribuziuns (sco pull requests). +* Integraziun sco contributors: Externs che prestan savens e bunas contribuziuns vegnan integrads directamain. +* Surdada ad externs pussaivla: Sche suenter la publicaziun contribueschan externs dapli al svilup vinavant che l'organisaziun che publitgescha, po l'applicaziun era vegnir transferida ad els. +-- ++ +L'organisaziun che publitgescha resta possessura. + +Questa varianta correspunda a l'organisaziun da projects open source «classics»; vesair per ulteriuras infurmaziuns per exempel https://opensource.guide/leadership-and-governance/. + +Il furnitur duess mo surpigliar incumbensas da coordinaziun puramain tecnicas (code review, giudicaziun). + +Terzas persunas / Partenari / Intern:: +I n'exista *nagin basegn per ina descripziun detagliada d'ina organisaziun*, perquai ch'ella è concepida conscientamain avertamain. Impurtant è dentant da fixar, tgi che recepescha ed elavura las dumondas externas (responsabladad). Ultra da quai sto vegnir determinà, sche ed en tge dimensiun che persunas externas pon vegnir integradas: ++ +-- +* Nagina integraziun directa: Externs pon mo inoltrar propostas e contribuziuns (sco pull requests). +* Integraziun sco contributors: Externs che prestan savens e bunas contribuziuns vegnan integrads directamain. +* Surdada ad externs pussaivla: Sche suenter la publicaziun contribueschan externs dapli al svilup vinavant che l'organisaziun che publitgescha, po l'applicaziun era vegnir transferida ad els. +-- ++ +L'organisaziun che publitgescha resta possessura. Questa varianta correspunda a l'organisaziun da projects open source «classics»; vesair per ulteriuras infurmaziuns per exempel https://opensource.guide/leadership-and-governance/. + +Concernent la governanza pon era vegnir consultads _[BITKOM2023]_ chapitel 4.1, _[IZqCab2023]_ u https://github.com/todogroup/ospo-career-path/blob/main/OSPO-101/module7/README.md#governance-models. + +Exempels da statuts d'associaziun sa chattan en l'agiunta E. + +Indicaziun: Perquai che la relaschada sto esser garantida tenor l'art. 9 EMBAG, sto l'administraziun federala garantir che la publicaziun na possia betg vegnir revocada spontanamain (vesair la «directiva Open Source en l'acquist – cumpra da software tenor l'art. 9 EMBAG» _[BBL-WL]_, cifra V.2). + +=== Roadmap e process da midada + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +Confederaziun / Incumbensà / -:: +L'autoritad federala definescha la roadmap e decida, tge midadas che vegnan realisadas. Per quai vegnan duvrads ils process standard da l'uffizi XY. + +Confederaziun / Partenari / -:: +L'autoritad federala definescha la roadmap en collavuraziun cun la firma XY. Ella decida, tge midadas che vegnan realisadas. Per quai vegnan duvrads ils process standard da l'uffizi XY. + +Cuminaivel / - / Intern:: +Il process per sviluppar la roadmap e per approvar midadas sto vegnir fixà dals commembers da la societad u da l'associaziun. Tut tenor la structura dals commembers (dumber, relaziun da grondezza etc.) pon auters process esser adequats. + +Ils process ston dentant cuntegnair mesiras per schliar conflicts e per chattar maioritads. + +Cuminaivel / - / Terzas persunas:: +Il process per sviluppar la roadmap e per approvar midadas sto vegnir fixà dals commembers da la societad u da l'associaziun. Tut tenor la structura dals commembers (dumber, relaziun da grondezza etc.) pon auters process esser adequats. ++ +Ils process ston dentant cuntegnair mesiras per schliar conflicts e per chattar maioritads. ++ +Cun il supplement ch'era ina clav da repartiziun dals custs sto vegnir fixada. Da reflectar è ultra da quai, co ch'i sto vegnir tractà cun la partiziun dals custs per adattaments che n'èn betg giavischads dals commembers pertutgads. En spezial en associaziuns cun commembers da grondezza differenta pon naschair situaziuns, en las qualas in grond commember (p.ex. l'autoritad federala) porta ina part considerabla dals custs per ina extensiun senza trair in profit da quai. + +avert / - / -:: +_Exempel, betg adattà per tuttas situaziuns_ + +I n'exista nagin basegn da crear ina roadmap; l'applicaziun adempla actualmain ils basegns. ++ +Davart midadas vegn decidì en ina discussiun averta ed in consens vegn aspirà. La decisiun finala sa chatta tar la possessura dal code (Confederaziun svizra). + +=== Process da svilup + +Sche il svilup avert vegn applitgà, sto quai vegnir definì qua. Impurtants èn la repartiziun da las incumbensas e la menziun da posts centrals en il concept da communitad. Er, co che la segirezza dals cuntegns dal repositori vegn garantida. + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +Confederaziun / - / -:: +Ils dretgs da committer (access da scriver al code) sa chattan tar las persunas/ils posts/ils furniturs tschernids da la Confederaziun. Suenter la scadenza dal contract vegnan ils dretgs respectivs retratgs. ++ +Ils purschiders da prestaziuns ed ils furniturs èn responsabels per exequir il process tecnic da code review per contribuziuns externas ch'èn vegnidas acceptadas dal puntg da vista spezialisà da la Confederaziun. Els èn responsabels per la qualitad tecnica. Ils furniturs vegnan recumpensads per questa lavur da la Confederaziun. + +Cuminaivel / Incumbensà / Intern:: +Fundamentalmain survegnan tut ils posts incumbensads d'in commember da la communitad l'access da scriver al code (dretgs da committer). Suenter la scadenza dal contract vegnan ils dretgs respectivs retratgs. ++ +Sche code midà pertutga secturs centrals da l'applicaziun, ston tuttas midadas vegnir examinadas d'in post incumbensà spezialmain per quai da la communitad. Quest post è responsabel per la qualitad tecnica da l'applicaziun. El è ultra da quai cumpetent per examinar midadas ch'èn vegnidas acceptadas dal puntg da vista spezialisà da la communitad. + +Cuminaivel / Partenari / Terzas persunas:: +Ils dretgs da committer (access da scriver al code) sa chattan tar ils commembers da la communitad. Questas persunas s'organiseschan sezzas e portan cuminaivlamain la responsabladad per la qualitad dal code. ++ +Sch'in commember da la communitad incumbensescha in furnitur extern per in adattament u ina extensiun, vegn l'adattament examinà d'in commember da la communitad. El vegn recumpensà per quai dal mandant. ++ +Midadas al center da l'applicaziun ston vegnir examinadas d'in segund commember da la communitad. ++ +Ils furniturs ch'èn commembers da la communitad èn ultra da quai responsabels per examinar contribuziuns externas e nov code tecnic ch'è vegnì acceptà dal puntg da vista spezialisà da l'associaziun. + +avert / - / -:: +Al cumenzament sa chattan ils dretgs da committer tar ils sviluppaders u tar lur patruns. Dretgs da committer vegnan concedids a tut ils sviluppaders che contribueschan activamain al project durant plirs mais e che mussan ina cumpetenza sociala adequata. ++ +Ils singuls sviluppaders mantegnan fundamentalmain lur dretgs da committer, era sch'els midan il patrun u sche la Confederaziun tscherna in auter furnitur. Dretgs da committer extinguan mo, sch'els vegnan dads davent voluntarmain u sche la maioritad dals auters committers decida lur retratga. ++ +La Confederaziun ha il dretg da numnar singuls sviluppaders da las interpresas ch'ella incumbensescha sco committers. Ella n'ha betg il dretg da retrair ad insatgi ils dretgs da committer senza motiv. ++ +Code reviews vegnan fatgas dad almain ina persuna ch'è activa sco committer. Ils committers s'organiseschan sezs. ++ +La Confederaziun s'oblighescha da recumpensar la lavur da review, uschenavant che quai è finanzialmain pussaivel per ella. + +=== Partiziun dals custs e furniturs + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +Confederaziun / Incumbensà / Intern:: +Ils furniturs vegnan tschernids periodicamain via concurs OMC u ina procedura libra (tut tenor l'extensiun da las prestaziuns da mantenziun). + +Confederaziun / Partenari / -:: +*Impurtant:* Examinar anticipadamain, sche quai è permess dal puntg da vista dal dretg d'acquist en il cas concret. ++ +Nus vegnin a cumplettar la documentaziun davart quest punct. La Confederaziun tscherna il furnitur XXX sco partenari strategic ed aspira ina collavuraziun a lunga vista. + +Cuminaivel / Incumbensà / Intern:: +Mintga commember da la communitad incumbensescha independentamain in u plirs furniturs da software cun la realisaziun dals adattaments e da las extensiuns ch'el dovra. Per adattaments giavischads da plirs commembers vegn la partiziun dals custs convegnida en il cas singul. Il commember cun la pli gronda part dals custs è responsabel per la tscherna e l'incumbensa dal furnitur. (Reglamentaziuns per la mantenziun dal software) + +Cuminaivel / Incumbensà / Terzas persunas:: +L'associaziun tscherna ils furniturs da software periodicamain centralmain via concurs OMC u proceduras libras (tut tenor l'extensiun da las prestaziuns da mantenziun). Ils custs vegnan attribuids als commembers tenor ina clav: (da fixar: tenor populaziun, utilisaders etc.) + +Cuminaivel / Partenari / Intern:: +Mintga commember da la communitad incumbensescha independentamain in u plirs furniturs da software cun la realisaziun dals adattaments e da las extensiuns ch'el dovra. Per adattaments giavischads da plirs commembers vegn la partiziun dals custs convegnida en il cas singul. Il commember cun la pli gronda part dals custs è responsabel per la tscherna e l'incumbensa dal furnitur. ++ +_(Reglamentaziuns per la mantenziun dal software)_ Sche necessari cumplettà tras ina contribuziun dals furniturs participads. Exempel: _Mintga interpresa da svilup da software ch'è commembra da la communitad s'oblighescha dad investir mintg'onn almain XY dis da lavur sin agens custs en il svilup vinavant, l'actualisaziun tecnologica u il marketing da l'applicaziun._ + +Cuminaivel / Partenari / Terzas persunas:: +L'associaziun tscherna ils furniturs da software periodicamain centralmain via concurs OMC u proceduras libras (tut tenor l'extensiun da las prestaziuns da mantenziun). Ils custs vegnan attribuids als commembers tenor ina clav: (da fixar: tenor populaziun, utilisaders etc.) Sche necessari cumplettà tras il supplement: _Mintga interpresa da svilup da software ch'è commembra da la communitad s'oblighescha dad investir mintg'onn almain XY dis da lavur sin agens custs en il svilup vinavant, l'actualisaziun tecnologica u il marketing da l'applicaziun._ + +Terzas persunas / Incumbensà / -:: +Ils furniturs vegnan tschernids periodicamain via concurs OMC u ina procedura libra (tut tenor l'extensiun da las prestaziuns da mantenziun). Cun il supplement: _Las meglieraziuns contribuidas da furniturs potenzials e las activitads en la communitad vegnan resguardadas sco factur en la valitaziun._ ++ +Midadas giavischadas dad externs na vegnan betg finanziadas da la Confederaziun, mabain ston vegnir dadas en incumbensa e pajadas dad els sezs. + +Terzas persunas / Partenari / -:: +Ils furniturs vegnan tschernids periodicamain via concurs OMC u ina procedura libra (tut tenor l'extensiun da las prestaziuns da mantenziun). Cun il supplement: _Las meglieraziuns contribuidas da furniturs potenzials e las activitads en la communitad vegnan resguardadas sco factur en la valitaziun. Midadas giavischadas dad externs na vegnan betg finanziadas da la Confederaziun, mabain ston vegnir dadas en incumbensa e pajadas dad els sezs._ + +=== Marketing + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +Confederaziun / Incumbensà / -:: +La Confederaziun na commercialisescha betg activamain l'applicaziun, ma la publitgescha sin plattafurmas da software open source. La publicaziun da l'applicaziun vegn communitgada en gremis spezialisads. Sch'i s'annunzian interessads, examinain nus, sch'ina communitad cuminaivla duai vegnir construida u sch'i duai vegnir lavurà vinavant cun lur versiun dal software. + +Cuminaivel / Partenari / -:: +Supplementarmain: + +Furniturs dastgan commercialisar l'applicaziun e tschertgar ulteriurs interessads. La Confederaziun dastga vegnir numnada sco referenza. Nus prendain conscientamain en cumpra ch'i possian naschair versiuns divergentas dal software. + +Cuminaivel / Incumbensà / Intern:: +L'applicaziun vegn commercialisada dals commembers u da l'associaziun. + +Cuminaivel / Partenari / Intern:: +L'applicaziun vegn commercialisada dals furniturs. + +Cuminaivel / - / Terzas persunas:: +L'applicaziun vegn commercialisada da l'associaziun, da la societad simpla e da lur commembers. + +avert / - / -:: +L'applicaziun dastga vegnir commercialisada da furniturs, u i po vegnir renunzià ad in marketing explicit. ++ +Alternativa senza marketing explicit: La Confederaziun na commercialisescha betg activamain l'applicaziun, ma la publitgescha sin plattafurmas da software open source. En gremis spezialisads rendain nus attent ch'avain publitgà l'applicaziun e ch'ina collavuraziun è bainvegnida. Nus mussain il software als interessads ed empruvain da ls integrar en noss process per concepir la roadmap. + +=== Tractament da contribuziuns externas + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +Confederaziun / Incumbensà / -:: +Contribuziuns e dumondas externas ston era vegnir elavuradas, sche la Confederaziun resta la suletta ch'ha da decider davart il software (ordaifer tar ina relaschada minimala, nua ch'in fork è inevitabel). Nus proponin il suandant proceder: ++ +*Tractament da sbagls annunziads* + +Nus empruvain da reproducir sbagls annunziads da persunas externas e dumandain sche necessari. Sche la reproducziun reussescha, dat la Confederaziun en incumbensa la reparaziun dals sbagls. Sche il sbagl na sa lascha betg verifitgar u sche la lavur per il reparar è dischproporziunadamain gronda, ans stgisain nus tar la persuna che ha annunzià e dumandain, sch'ella pudess inoltrar ina pull request per il reparar. ++ +*Tractament da dumondas* + +Nus respundain mintga dumonda entrada. Sch'ina dumonda na sa lascha betg sclerir cun ina lavur adequata e sch'in ulteriur investiment da temp para inefficient, ans stgisain nus cun inditgar las resursas limitadas ed offrin da metter la persuna che dumonda en contact cun in furnitur per ina cussegliaziun vinavant. ++ +*Tractament da pull requests* + +Nus examinain mintga pull request accuratamain. Per evitar ina lavur nunnecessaria da vart da la persuna che contribuescha, rendain nus immediatamain attent, sche insatge cuntradi a nossa roadmap u sch'igl è dubitus, sche nus acceptain la contribuziun. La Confederaziun decida independentamain e tenor criteris spezialisads, tge contribuziuns ch'ella accepta. Correcturas da sbagls ch'han surpassà il process da review vegnan adina acceptadas. ++ +*Tractament da forks* + +Nus sustegnain forks da nossa applicaziun. Tgi ch'introducescha l'applicaziun duess crear in agen fork. Nus examinain ils forks resultants almain ina giada l'onn e surpigliain extensiuns bunas ed adattadas. + +Cuminaivel / - / -:: +Extern designescha contribuziuns da ordaifer la communitad definida (commembers da l'associaziun). Divergenzas da survart: + +*Tractament da forks* + +Nus vulain impedir forks (da lunga durada) da l'applicaziun. Interessads duessan empè da quai entrar directamain en la communitad. Entaifer la communitad empruvain nus da garantir che tut ils commembers utiliseschian la versiun principala. + +Avert / - / -:: +La construcziun d'ina communitad che funcziuna e d'ina cultura averta è impurtanta per nus. ++ +*Tractament da sbagls annunziads* + +Nus empruvain da reproducir e da reparar sbagls annunziads. Nus premettain la collavuraziun activa da las persunas che annunzian. Sche pussaivel duessan ellas crear directamain ina pull request cun ina correctura dal sbagl. ++ +*Tractament da dumondas* + +Nus tractain mintga dumonda entaifer maximalmain in'emna. Dumondas da contribuents activs vegnan tractadas cun prioritad e profundamain. Nus empruvain d'integrar auters commembers en l'elavuraziun da dumondas. ++ +*Tractament da pull requests* + +Nus vulain survegnir uschè bleras pull requests da buna qualitad sco pussaivel. Nus integrain tut ils contribuents activs en las reviews ed en la giudicaziun tecnica e spezialisada da pull requests. Tar contribuziuns contestadas empruvain nus da vegnir ad ina decisiun via ina votaziun informala. ++ +*Tractament da forks* + +Nus empruvain da render forks nunnecessaris tras in management da communitad activ ed avert. Sch'i nascha tuttina forks, ils examinain nus activamain ed empruvain da surpigliar las extensiuns e las meglieraziuns sviluppadas là. En tals cas pretendain nus activamain pull requests. + +En general è da tegnair en scrit che contribuziuns pon ir dal sustegn dad auters utilisaders fin a la surpigliada da la responsabladad per parts entiras d'in project (vesair _[BITKOM2023]_ chapitel 4.2). + +=== Manaschi da l'applicaziun + +_Management dal product / Furnitur sco / Svilup -- Proposta_ + +Cuminaivel / - / -:: +In manaschi central po vegnir purschì opziunalmain supplementarmain da l'associaziun centrala, en il senn da Software as a Service (SaaS). I sto vegnir examinà, sche quai è giavischà. + +- / Partenari / -:: +I sto vegnir fixà, sche il furnitur duai era manar il software. + +- / Direcziun / -:: +I sto vegnir tegnì en scrit che il furnitur è responsabel per il manaschi. + +Stgalims da support e contacts da support duessan vegnir fixads era en quest chapitel. + +== Infurmaziuns impurtantas per managers da communitad + +=== I dovra temp + +La construcziun da communitads è insatge che duess vegnir planisà a lunga vista. Persistenza e cuntinuitad èn duas caracteristicas impurtantas per ina communitad cun success. + +=== Ulteriuras suggestiuns per la construcziun d'ina communitad + +Ulteriuras suggestiuns per in bun management da communitad sa chattan sut https://opensource.guide/code-of-conduct/ e https://opensource.guide/best-practices/. + +=== Communicaziun + +La publicaziun da software e da documentaziun avra a l'administraziun federala in nov chanal da communicaziun. Sche quai na capita betg cun quità e professiunalmain, po la reputaziun publica da la Confederaziun patir. + +Communitads OSS en l'administraziun federala sa chattan concernent la communicaziun en in champ da tensiun: Da l'ina vart valan las *prescripziuns generalas per la communicaziun*, da l'autra vart duai la communitad pussibilitar ina *collavuraziun formala ed informala simpla* sur cunfins organisatorics, preferiblamain senza controllas da qualitad e relaschadas formalas. + +L'utilisaziun da repositoris publics ed eventualmain d'issue-trackings e wikis publics munta che expressiuns da singuls collaboraturs dal project èn visiblas senza filter per il public. Quai pretenda dals collaboraturs dal project in'apparientscha professiunala e l'observaziun da standards da qualitad per publicaziuns en tals conturns. + +En projects OSS vegn quai normalmain reglà via il *Code of Conduct*. Il codex da cumportament da l'administraziun federalafootnote:[https://www.epa.admin.ch/dam/epa/de/dokumente/aktuell/medienservice/120_verhaltenskodex_d.pdf.download.pdf/120_verhaltenskodex_d.pdf] è tegnì fitg en general, ma il princip central è applitgabel qua: «Ils collaboraturs ademplan lur incumbensas en moda responsabla, integra e loyala. Era en la vita privata fan els adatg da betg donnegiar la reputaziun, la credibilitad e l'image da la Confederaziun.» + +=== Svilup avert + +Sche il svilup da software è planisà da l'entschatta en in repositori avert, ha la relaschada lieu automaticamain. Las glistas da controlla relevantas tenor las instrucziuns link:em002-2.pdf[Em002-2] ston vegnir emplenidas al cumenzament, ed ils process da svilup dal purschider da prestaziuns resp. dal furnitur ston permetter quai. L'avantatg è che la communitad po vegnir construida da l'entschatta. Pliras organisaziuns pon ultra da quai collavurar al svilup. + +Repositoris serrads èn ina furma intermediara, ma vegnan duvrads per auters partenaris en ina collavuraziun. + +=== Administraziun dals utilisaders + +Il project (u l'organisaziun purtanta) fixescha, sche ils sviluppaders ed auters collaboraturs dal project lavuran al project sut agen num u anonimamain. Sche las persunas na lavuran betg anonimamain e sch'ellas disponan gia da logins sin las plattafurmas, è quai il pli simpel d'utilisar quels (saja quai professiunal u privat). + +La plattafurma duess fundamentalmain permetter l'integraziun da terzas persunas, perquai che uschiglio na pon nagins sviluppaders ordaifer la Confederaziun collavurar. + +Cun bandunar il project ston ils dretgs correspundents sin il project vegnir stizzads. Per quai è il management dal product responsabel. + +=== Reuniun da communitads + +Nua ch'igl è pussaivel duess il dumber da communitads vegnir tegnì pitschen. Quai munta: + +* Sch'i exista gia ina communitad, en la quala è previsa ina structura sumeglianta per problems sumeglionts cun las medemas persunas, duess vegnir duvrada ina suletta communitad. +* Plirs projects che èn en connex e che s'adresseschan a la medema gruppa da destinaziun pon vegnir reunids en ina communitad. +* I na duessan betg vegnir creadas nunnecessariamain structuras da communitad fundamentalmain autras, nua ch'i existan gia talas. + +=== Tractament da contribuziuns da terzas persunas + +La contribuziun da software ad auters projects vegn tractada en il chapitel 3.3. Ils medems princips valan al revers. + +Impurtants èn ils suandants puncts: + +* I sto vegnir duvrà in Contributor Licence Agreement adattà per garantir che il code da funtauna appartegnia suenter a la Confederaziun (vesair era link:em002-3.pdf[Em002-3 Guida da licenzas OSS], chapitel davart ils Contributor Licence Agreements). Quel sto vegnir suttascrit dal possessur da la contribuziun. +* Confermaziuns ston vegnir archivadas. +* Contribuziuns ston vegnir examinadas avant l'integraziun en la basa dal code. +* Endataziuns duessan vegnir respundidas a temp (issues, requests, pull requests) e vegnir tractadas uschè constructivamain sco pussaivel. +* Tut ils chanals e las reglamentaziuns da governanza duessan vegnir inditgads en il concept da communitad, sin la pagina d'internet ed en il repositori. + +=== Annunzias relevantas per la segirezza + +Ultra da las annunzias da sbagls usitadas sto vegnir previs – nua che il gener dal project pretenda quai – che debilitads relevantas per la segirezza possian vegnir annunziadas confidenzialmain, sco quai ch'è per exempel il cas tar in program da bug bounty. + +Sco exempel pon servir ils documents da trustbroker.swiss: + +* https://github.com/trustbroker-swiss/trustbroker.swiss/blob/main/Security-and-Vulnerability-Disclosure.md + +=== Evitar forks + +Schebain che forks èn en il mund open source natirals, è la reintegraziun da code da funtauna, funcziuns etc. da forks tut auter che simpla. I po valair la paina da s'adressar a las persunas u organisaziuns che considereschan in fork e d'empruvar da las mantegnair en il project principal. Ina cumpensaziun tranter interess concurrents è savens necessaria en tals cas. + +=== Repartiziun dals custs + +Igl è sensa da convegnir clavs da repartiziun generalas tranter ils partenaris principals. Quellas pon vegnir adattadas mintga paucs onns u en cas d'ina midada fundamentala da la situaziun. Per ina lavur efficienta al software duessan ils gronds partenaris surpigliar tendenzialmain parts in pau pli grondas che quai ch'els stuessan propriamain (sche necessari era la coordinaziun totala). L'organisaziun duai lavurar e betg sa dispitar davart las finanzas. Sche la collavuraziun s'extenda sur plirs projects (per exempel las soluziuns da branscha en il sectur da las viafiers da scartament normal), duess vegnir duvrada per tut ils projects ina clav da repartiziun unitara. Dal puntg da vista da las autoritads federalas è quai ina meglieraziun, sche ils custs na ston betg vegnir purtads sulets. + +Criteris pussaivels per clavs da repartiziun: + +* Stimaziun da la repartiziun dal profit (p.ex. tranter autoritad federala ed in furnitur che spera ulteriura clientella) +* Dumber dals abitants/utilisaders (p.ex. tranter uffizis, vischnancas, citads) +* Forza finanziala (p.ex. chantuns) +* Product intern brut (p.ex. tranter chantuns) +* Tgi che vul dapli controlla + +Per evitar discussiuns na duess la clav da repartiziun betg vegnir colliada simplamain cun il budget annual. Ina clausula en il senn dal princip dal chaschunader po pussibilitar per singuls partenaris adattaziuns pli spertas, sch'els èn pronts da pajar supplementarmain. + +La clav da repartiziun duess era valair per ils custs generals, la mantenziun/il support ed in minimum da svilup vinavant. Questas parts duessan sche pussaivel vegnir schliadas a lunga vista. + +Da resguardar è che tar la finanziaziun da terzas persunas vulan questas partidas tipicamain dapli cundecisiun. Il management da la communitad sto esser preparà per quai. + +=== Prestaziuns cumplementaras tenor l'art. 9 al. 5 e 6 EMBAG + +Las autoritads federalas pon (sezzas, via purschiders da prestaziuns u furniturs) prestar prestaziuns cumplementaras, en spezial per l'integraziun, la mantenziun, la garanzia da la segirezza da las infurmaziuns ed il support. + +La restricziun è ch'ellas duain servir a las incumbensas da las autoritads e pudair vegnir prestadas cun ina lavur proporziunada. + +Da quai resulta che l'autoritad federala na po betg esser l'interpresa da svilup per terzas persunas. Ella repara sbagls, po tractar aspects relevants per la segirezza, po prestar in pau support ed agid d'integraziun (tut activitads che servan a la construcziun d'ina communitad). Novs svilups e funcziuns supplementaras per terzas persunas duessan s'orientar en emprima lingia a l'intent da lavur normal da l'autoritad. Natiralmain po esser che la messa a disposiziun dal software saja part da l'incumbensa; en quest cas pon svilups avair lieu da tut temp. I vegn ultra da quai tegnì en scrit che il svilup da software n'è betg l'incumbensa centrala da l'autoritad federala. + +Quai munta: Sche funcziuns vegnan sviluppadas en il fund exclusivamain per terzas persunas, ston ellas vegnir integradas en partenadi u via il furnitur. + +Per evitar problems dal dretg d'acquist sto vegnir fatg adatg tar l'acquist da software e da prestaziuns che funcziuns possian vegnir messas a disposiziun a terzas persunas (eventualmain mo a terzas persunas statalas) tras furniturs. + +La fixaziun da taxas è gia vegnida tangida en il chapitel «Support». L'EMBAG è gia la basa legala per talas taxas. Quellas ston vegnir communitgadas sin la pagina d'internet da la respectiva autoritad federala. Exempels èn inditgads en l'agiunta G. + +L'art. 9 al. 6 tegna en scrit ch'i na duai normalmain betg vegnir fatg concurrenza a l'economia privata. Quai munta che las taxas na duessan betg vegnir fixadas memia bass e duessan almain cuvrir ils custs. En cas da dubi èn tariffas oraras pli tgunsch da fixar memia aut che memia bass. + +En general vegn recumandà da lavurar cun ina fin trais differentas tariffas oraras standard. + +Sch'in departament federal vul fixar excepziuns a l'al. 6, na dastga quai betg far concurrenza a l'economia privata. Sut tschertas circumstanzas è quai il pli simpel da fixar las taxas e da las augmentar, sch'i nascha resistenza dad interpresas privatas che pon effectivamain purscher la prestaziun. + +=== Suveranitad digitala + +Uschè ditg che la Confederaziun n'ha nagin agen repositori, vegn recumandà per garantir la suveranitad digitala da far regularmain copias da repositoris publics. + +Da resguardar è che betg mo il code da funtauna, mabain era ulteriuras infurmaziuns sco issue-tracking, wiki, configuraziuns etc. vegnan copiadas. + +Ultra da quai sto vegnir schliada l'administraziun dals utilisaders per garantir la controlla dal code da funtauna publitgà. La finamira surordinada è da garantir in svilup independent da la respectiva plattafurma e da pussibilitar a la communitad ina midada.footnote:[Vesair era https://www.bfh.ch/de/aktuell/news/2024/neue-studie-digitale-souveraenitaet/] + +== Agiunta + +=== Midadas envers la versiun precedenta + +* Chapitel 1 «L'essenzial en curt» agiuntà +* Intent da la communitad agiuntà en il chapitel 3 +* Chapitels 3.1 fin 3.3 davart la collavuraziun agiuntads +* Nov chapitel 7.7 Tractament da contribuziuns da terzas persunas +* Tegnì en scrit che furniturs na duessan betg publitgar cumplettamain independentamain (tenor _[BBL-WL]_, V.2) +* Publicode.yml menziunà +* Accordanza cun il nov link:em002-7.pdf[Em002-7] +* Ulteriuras midadas e meglieraziuns redacziunalas + +=== Referenzas + +Vesair _Em002 Directivas strategicas per software open source en l'administraziun federala_. + +=== Abreviaziuns + +Vesair link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala] ed link:em002-6.pdf[Em002-6 FAQ davart OSS]. + +=== Exempels da concepts da communitad existents + +En il senn d'ina collecziun da best practices suondan sutvart concepts da communitad e documents cumparegliabels ch'èn gia vegnids elavurads. Quai n'èn betg necessariamain mo concepts d'autoritads federalas, mabain era dad autras organisaziuns. + +* GERES Community (http://geres-community.ch) + +Classificaziun: + +* Management dal product a) Svilup cuminaivel +* Furnitur pli tgunsch a) Incumbensà +* Repartiziun dals custs: b) Partiziun dals custs + +Indicaziun: Il register communal GERES n'è betg open source, ma blers aspects da l'organisaziun pon era esser relevants per applicaziuns open source. Documents: Statuts (publics) ed urden da gestiun (sin dumonda). + +* https://www.igovportal.ch[iGov Portal] + +#Quest chapitel cuntegna actualmain concepts dal chantun Berna e vegn cumplettà, uschespert che exempels da la Confederaziun èn disponibels.# + +=== Exempels da collavuraziuns + +Ils suandants exempels mussan, co che collavuraziuns èn vegnidas structuradas. + +=== Collavuraziun: ZenDiS en Germania + +ZenDiSfootnote:[https://www.zendis.de/en[Pagina d'internet ZenDiS: Co-creating Digital Sovereignty]] è ina organisaziun che ha per finamira da reducir la dependenza en l'administraziun publica (primarmain en Germania) tras la promoziun da software open source. + +[mermaid,align="center",alt="Finamiras ed access per rinforzar la suveranitad digitala (ZenDiS)"] +.... +block-beta + columns 12 + H1["Finamiras"]:12 + G1["I. Pussaivladad da midar furnitur"]:4 G2["II. Abilitad da concepir"]:4 G3["III. Influenza sin ils furniturs"]:4 + H2["Access da schliaziun"]:12 + B1["1. Analisa e direcziun
prevesentas da las dependenzas"]:3 B3["3. Modularitad independenta
dal furnitur, standards (averts)
ed interfatschas informaticas"]:3 B5["5. Cundefiniziun cooperativa
da soluziuns informaticas"]:3 B7["7. Prescripziuns giuridicas"]:3 + B2["2. Acquist u svilup da
soluziuns informaticas
alternativas (p.ex. OSS)"]:3 B4["4. Construcziun da cumpetenzas
digitalas e da savida
spezialisada"]:3 B6["6. Chapientscha e
proceder cuminaivels"]:3 B8["8. Direcziun politica"]:3 + classDef highlight fill:#dae8fc,stroke:#000000,color:#000000 + class B2 highlight +.... + +Illustraziun 1: Finamiras ed access per rinforzar la suveranitad digitala (ZenDiS) + +ZenDiS collavura per quai cun partenaris strategics. + +Ina collavuraziun tranter l'administraziun federala e ZenDiS na duess perquai bunamain betg esser pussaivla senza restricziuns, ed ina coordinaziun na fiss betg lianta. Quai po sa midar cun il temp. + +Concretamain stuess l'administraziun federala construir ina atgna organisaziun per la Svizra e sa coordinar informalmain cun ZenDiS. Quai pudess eventualmain capitar via eOperations, cun quai che eOperations vegn pir activa, sch'in basegn concret vegn annunzià ed in budget vegn mess a disposiziun. Ina motivaziun per ina tala organisaziun parallela sa laschass chattar en il context dal cybergovern u da l'EMBAG. + +Indicaziun: ZenDiS suttastat al dretg d'acquist da l'UE resp. da la Germania. I existan differenzas considerablas envers la Svizra. ZenDiS na sa lascha perquai betg reproducir in a in en Svizra, ed ina collavuraziun cun ZenDiS n'è betg simpla. + +=== Collavuraziun: Open Trip Planner (OTP) + +Open Trip Plannerfootnote:[https://www.opentripplanner.org/[OpenTripPlanner]] è ina applicaziun open source per la planisaziun da viadis. Ella è organisada sco project da la Software Freedom Conservancy a New York. Singuls sviluppaders èn engaschads tar interpresas da traffic e furniturs. Remartgabel è ch'in actur dal maun public – concretamain ENTURfootnote:[https://entur.no/] – ha surpiglià in dals rols manants. ENTUR sviluppa primarmain per l'agen basegn, ma ha era in focus da cooperaziun, en spezial per ils pajais nordics. ENTUR è organisada sco interpresa en la proprietad dal Ministeri norvegais dal traffic e da la communicaziun. Sco il pli grond actur surpiglia ENTUR era ina part considerabla dals custs da coordinaziun. Mintgin po inoltrar giavischs da funcziuns; quels vegnan discutads en sesidas da coordinaziun e sviluppads, sche insatgi ils finanziescha. La finanziaziun ha lieu primarmain per funcziun tras la resp. las partidas interessadas. En il fund porta mintga partida ses agens custs. Prestaziuns da support stuessan en Svizra ultra da quai vegnir messas a concurs separadamain. + +=== Nova collavuraziun lantschada da la Confederaziun: Swiss Trust Broker + +Il Trust Brokerfootnote:[https://github.com/trustbroker-swiss/trustbroker.swiss[GitHub - trustbroker-swiss/trustbroker.swiss: Documentation of the trustbroker.swiss service]] è in software da la Confederaziun per eIAM ch'è disponibel sco open source. Il svilup ha lieu tras la Confederaziun. Plirs chantuns han decidì d'il duvrar u directamain sco SaaS u cun agnas instanzas. Perquai ch'el è disponibel sut la licenza AGPL, van extensiuns fatgas puspè a bun a la Confederaziun. Pervia da sia natira critica per la segirezza ha il svilup per l'administraziun federala lieu exclusivamain tras la Confederaziun. Autras organisaziuns pon inoltrar pretensiuns che vegnan realisadas, sche il team dal project las considerescha sco adequatas. + +=== Nova collavuraziun lantschada dals chantuns: inosca + +Via inoscafootnote:[https://inosca.ch/] han plirs chantuns construì ina communitad da svilup per permissiuns electronicas ch'ha sia origin en il project eBau.footnote:[https://github.com/inosca/ebau] eBau cumpiglia era Caluma,footnote:[https://github.com/projectcaluma] in framework per l'elavuraziun cuminaivla – in exempel per ina cumponenta ch'è vegnida extratga d'ina soluziun pli vasta e sviluppada ad in framework independent ed amplamain applitgabel. Quel po era vegnir duvrà en auters projects, era sche singulas parts suttastattan a cundiziuns d'excepziun, uschia che pussaivlamain blers auters posts pon profitar dal code. + +La communitad sa scuntra almain ina giada al mais (opziunalmain duas giadas) per barattar temas tecnics e per planisar la roadmap cuminaivla. Tut ils participants pon inducir temas. Sch'in tema vegn considerà sco relevant per la communitad, s'annunzian ils chantuns interessads e s'organiseschan en ina gruppa da lavur. Ils resultats fluescha cuntinuadamain enavos a la communitad. inosca lavura tenor in princip fundamental: Tgi che concepescha, finanziescha. Quai vul dir che tut ils chantuns participads ad ina gruppa da lavur sa dividan ils custs da la nova funcziun. La funcziun vegn messa a concurs ed ils custs vegnan repartids en la communitad tenor ina formula da partiziun dals custs predefinida. Uschespert ch'ina funcziun è terminada ed introducida, stat ella immediatamain a disposiziun libramain a tut ils auters chantuns. + +La communitad ha supplementarmain decidì da metter da vart ina modesta summa annuala fixa per ils custs administrativs dal manaschi da la communitad. Quest budget vegn attribuì mintg'onn a las partidas che surpiglian in rol organisatoric. + +=== SNOWPACK da la WSL – contribuziuns directas da sviluppaders + +SNOWPACKfootnote:[https://snow-models.gitlab-pages.wsl.ch/snowpack-web/] è in project open source sviluppà da la WSL per modellar la furmaziun da la cuverta da naiv. I sa tracta d'in model fitg spezialisà, e la communitad è vegnida integrada correspundentamain en la communitad spezialisada existenta. Singuls issues èn gia vegnids notads sco contribuziuns pussaivlas. Il model da lavur è qua che mintga partida porta ses agens custs e contribuescha funcziuns. Directivas davart il coding style ed il process da release èn documentadas en quest connex era. + +=== Suggestiuns per statuts d'associaziun + +Ils statuts duessan vegnir tegnids uschè simpels sco pussaivel. + +Ils suandants statuts pon servir sco suggestiun. + +* eCH: https://www.ech.ch/sites/default/files/page/STAT_d_DEF_2014-04-10_ech-Statuten.pdf +* Stop Piracy: https://www.stop-piracy.ch/wp-content/uploads/2022/01/Statuten_d_10_09_2021.pdf + +#Ulteriurs exempels da statuts vegnan agiuntads, uschespert ch'els èn disponibels.# + +=== Exempels per support e taxas + +* Taxas per prestaziuns statisticas: https://www.fedlex.admin.ch/eli/cc/2003/326/de[https://www.fedlex.admin.ch/eli/cc/2003/326/de] +* Taxas dal PFPD: https://www.edoeb.admin.ch/edoeb/de/home/datenschutz/grundlagen/dsfa.html +* Prestaziuns gratuitas da l'IPI per curs en il sectur da la proprietad intellectuala (betg software, ma sco exempel): https://www.ige.ch/de/dienstleistungen/ip-academy/allgemeine-informationen/preise + +Exempels vegnan agiuntads, uschespert ch'els èn disponibels. +endif::[] diff --git a/docs/em002-5.adoc b/docs/em002-5.adoc new file mode 100644 index 0000000..dfc7f47 --- /dev/null +++ b/docs/em002-5.adoc @@ -0,0 +1,1676 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-5 EMOTA and OSS Factsheet +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-5 Merkblatt EMBAG und OSS +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-5 Aide-mémoire LMETA et OSS +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-5 Promemoria LMeCA e OSS +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-5 Fegl d'infurmaziun EMBAG ed OSS +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +[IMPORTANT] +==== +This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main {url-repo}/tree/main[README]. +==== + +''' + +== Information sheet: Application of OSS Article 9 EMOTA + +The new https://www.fedlex.admin.ch/eli/cc/2023/682/en#art_9[Federal Act on the Use of Electronic Means to Carry Out Official Tasks (EMOTA)] came into force on 1 January 2024. It stipulates that federal authorities must publish the source code of software they develop or commission. Exceptions are made where third-party rights or security-relevant reasons preclude or restrict publication. + +image::./assets/four-cs/four-cs-cases.en.svg[The four Cs divided into case a) and case b),600] + +This document provides guidance for [.underline]#project managers# or other [.underline]#persons responsible for the procurement of software#. + +== Introductory questions: + +Does the federal authority procure or use standard software without customisation? +If yes, see a) + +or + +Does a software application or component have to be developed specifically for the federal government (customised software = make)? +If yes, see b) + +=== a) Procurement and use of standard software + +Where the Confederation purchases software without customisation, Article 9 EMOTA does not apply. Every federal authority is free to decide whether to procure and use open source or other software. +Assistance with the procurement of software can be found on the website of the https://www.beschaffung.admin.ch/bpl/de/home/fachstellen/kompetenzzentrum-beschaffungswesen-bund-kbb.html[Federal Office for Buildings and Logistics (FOBL)] and the https://perimap.admin.ch/goto_perimap_file_46835_download.html[Information sheet on software procurement and Art. 9 EMOTA] from the CCPP. If necessary, link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and OSS] can also be consulted. + +=== b) Creation or further development of software + +If a federal authority develops software itself or through third parties, OSS Article 9 EMOTA must be applied. This also includes software that is further developed as part of a contribution in existing OSS projects. Publication of source code can only be avoided in relation to third-party rights or for security-relevant reasons. Please complete the link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist]. + +NOTE: This checklist also serves as a justification for why software [.underline]#does not# have to be published. It should therefore be consulted as early as possible in the project. The guide link:em002-2.pdf[Em002-2] describes the entire process. + +Further questions to be clarified are: + +=== Under which open source licence is it published? + +The fundamental question of whether the software is published under a [.underline]#copyleft# licence (in which case AGPL V3 is a good choice, for example) or [.underline]#permissively# (in which case under an MIT licence, for example) must be answered. With regard to licence selection, the link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] provides detailed information. Please complete the link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist]. + +NOTE: Ideally, this should be completed by the (technical) project manager or IT architect. + +=== Where and how should the software and associated artefacts be published? + +Please complete the link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist] + +NOTE: This is a collective record of where and how software is published. It may be necessary to involve other organisations. + +=== Should an OSS community be established? + +link:em002-4.pdf[Em002-4 OSS Community Guidelines] describe the advantages and tasks involved in setting up an OSS community on the basis of a concept. + +[.underline]#If yes#: Fill in the link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist] which provides information about the desired type and platform for the community. + +NOTE: The project team has a great deal of leeway here as to whether and what type of community should be created. It may be necessary to involve other units. + +Answer these questions and check regularly (approx. once a year) whether there have been any significant changes. + +Each federal authority (e.g. office, administrative unit) that develops or commissions software is independently responsible for the entire publication process. + +== Overview of tools and resources + +include::partials/document-map.en.adoc[] + +For procurement, the FOBL additionally provides the General Terms and Conditions, the tender registration, the tender kick-off slides and the procurement project templates. + +The tools and resources are available on the Federal Chancellery website +under https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[OSS tools]. They are also {url-repo}/tree/main/docs[published in English on GitHub] where you can give feedback directly. The OSS Catalogue (opensource.admin.ch) provides an overview of software published by the federal authorities. For enquiries please contact: mailto:opensource@bk.admin.ch[opensource@bk.admin.ch]. + +== Target groups of the various OSS tools + +The OSS tools and resources are aimed at different target groups. The following table provides a recommendation as to which documents are relevant for each target group. + +// The only block title on a table in the document set, and it stays. 4d1056c +// avoided them because auto-numbering would have renumbered the tables whose +// numbers Em002-7's prose cites; Em002-5 has one table, no hand-written number +// and no prose in any of the five languages that cites one. The block title is +// a real

- - - - - - - - - - - - - - - - - - - - - - - - - - - - **Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- - -# 1. Use of these guidelines -Under Article 9 of the Federal Act on the Use of Electronic Means to Carry Out Official Tasks (EMOTA), the Confederation is required to disclose the source code of software that it develops or commissions for the performance of its duties.1 The DTI Sector of the Federal Chancellery has derived overarching objectives from this legal mandate in the Strategic Guidelines for Open Source Software. - -This document serves as practical guidelines on the legal and strategic requirements. It is designed to assist federal administrative units in the use, procurement and release of open source software. It provides all interested parties with a comprehensive overview of the subject and refers to additional information in the other resources. - -However, depending on your prior knowledge and needs, you may wish to read the guides selectively before moving on to the other tools. The following outline will help you find the appropriate starting point. If you are unsure, it is recommended that you read through the guidelines first. - -## Intention / Stakeholders - -General introduction to open source software - -- Section Definitions -- Section Potential and challenges -- Section Findability of OSS solutions -- [Em002-5 OSS Tools information sheet](em002-5.md) -- [Em002-3 OSS Licensing Guidelines](em002-3.md) -- [Em002-6 FAQ about OSS](em002-6.md) - -General introduction to EMOTA for decision-makers - -- [Em002-5 OSS Tools information sheet](em002-5.md) -- [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](em002.md) - -Procurement only of software to be used - -- Section Maturity levels for OSS in the Federal Administration -- Section Use of unmodified open source software -- [Em002-7 Strategic Aspects of Procurement and OSS](em002-7.md) -- Software Procurement and Art. 9 EMOTA information sheet [KBB-MB] -- OSS in Procurement guidelines [BBL-WL] - -New IT development and release - -- Section Development with open source components and release of source code -- Section Collaboration in open projects (contribution) -- [Em002-2 Instructions for Publishing OSS](em002-2.md) -- [Em002-2.1 OSS Preliminary Assessment Checklist](em002-2.1.md) -- [Em002-2.2 OSS Analysis and Preparation Checklist](em002-2.2.md) -- [Em002-2.3 OSS Release and Publication Checklist](em002-2.3.md) -- [Em002-4 OSS Community Guidelines](em002-4.md) -- [Em002-4.1 OSS Community Checklist](em002-4.1.md) - -Procurement of created software (service or work) - -- Section Maturity levels for OSS in the Federal Administration -- Section Development with open source components and release of source code -- Section Collaboration in open projects (contribution) -- [Em002-7 Strategic Aspects of Procurement and OSS](em002-7.md) -- FOBL toolbox, including the Open Source in Procurement guidelines -- CCPP public administration learning and template platform (www.perimap.admin.ch)including Software Procurement and Art. 9 EMOTA [KBB-MB] -- OSS in Procurement guidelines [BBL-WL] -- [Em002-2 Instructions for Publishing OSS](em002-2.md) -- [Em002-2.1 OSS Preliminary Assessment Checklist](em002-2.1.md) -- [Em002-2.2 OSS Analysis and Preparation Checklist](em002-2.2.md) -- [Em002-2.3 OSS Release and Publication Checklist](em002-2.3.md) -- [Em002-4 OSS Community Guidelines](em002-4.md) -- [Em002-4.1 OSS Community Checklist](em002-4.1.md) - -Legal clarifications for release - -- [Em002-6 Frequently Asked Questions about Publishing OSS (OSS-FAQ)](em002-6.md) -- [Em002-3 OSS Licensing Guidelines](em002-3.md) - -Working principles for project managers - -- [HERMES documents](https://www.hermes.admin.ch/) -- [Em002-5 OSS Tools information sheet](em002-5.md) - -Contributions of software to third parties and collaborations - -- [Em002-4 OSS Community Guidelines](em002-4.md) -- [Em002-4.1 OSS Community Checklist](em002-4.1.md) -- [Em002-7 Strategic Aspects of Procurement and OSS](em002-7.md) -- [Em002-3 OSS Licensing Guidelines](em002-3.md) - -The following diagram gives an overview of the documents relevant to OSS in the Federal Administration. - -![Overview of OSS tools in relation to Art. 9 EMOTA](./assets/em002/media/image2.png) - -Figure 1: Overview of OSS tools in relation to Art. 9 EMOTA - -# Definitions - -
-- the table's accessible name -- and open-govpress supplies +// both the number and the localised word for "Table", so unlike the captions in +// Em002-2, Em002-3 and Em002-7 there is nothing here to keep in step by hand. +.OSS tools and resources by target group +[.landscape] +[options="header",cols="3,1,1,1,1,1,1,1,1,1"] +|=== +|Document \ Target group |Management |IT management (a) |ISBO / DSBO (a) |Application Manager |Project Management |Legal Services |Procurement |Development |Communications + +|Em002 Strategic Guidelines +a|X + +3,4,5 +a|*X* + +2-5 + +Annex B, C +a|X + +2-5 + +Annex B, C +| +a|(X) + +5 + +Annex B +| +| +| +|(X) + +|Em002-1 Practical Guidelines +|X +|*X* +|*X* +|*X* +|X +| +| +| +| + +|Em002-2 Instructions for Publishing OSS +| +a|(X) + +1,3,5 +a|X + +1,3 5 +a|(X) + +1,3,5 +a|*(X)* + +3,5 +| +| +a|X + +1-5 +| + +|Em002-2.1 OSS Preliminary Assessment Checklist +| +a|*(X)* + +(c) +a|*X* + +(b), (c) +a|X + +(b) +a|X + +(b) +| +| +| +| + +|Em002-2.2 OSS Analysis and Preparation Checklist +| +| +a|*X* + +*(c)* +a|*X* + +*(c)* +a|*X* + +*(c)* +| +| +a|X + +(b) +| + +|Em002-2.3 OSS Release and Publication Checklist +| +| +a|*X* + +(c) +a|*X* + +(c) +| +| +| +a|X + +(b) +a|X + +(d) + +|Em002-3 OSS Licensing Guidelines +| +|*(X)* +|*(X)* +| +| +|*X* +a|(X) + +8 +|(X) +| + +|Em002-4 OSS Community Guidelines +a|(X) + +3 +a|X + +3,5 +a|X + +4,5 +|*X* +| +| +| +|(X) +|X + +|Em002-4.1 OSS Community Checklist +| +a|*(X)* + +(c) +a|*(X)* + +(c) +a|(X) + +(d) +a|X + +(b) +a|(X) + +(d) +| +| +a|(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 +| +| +|=== + +Glossary: + +* X -- Target group, (X) -- If interested/needed, at least management summary +* (a) person responsible for Art. 9 EMOTA in the OU. Can be IT management or delegated +* (b) fill in +* (c) authorise +* (d) to consult +* (e) Primarily for information and reference +* Bold = Proposal of the responsible body in an OU (may be regulated differently) +* Numbers and capital letters: relevant sections and annexes. If none are specified, the entire document is relevant. +* Responsibility for the documents: FCh/DTI for the Em002 documents, CCPP and FOBL for the last three rows +endif::[] + +ifeval::["{lang}" == "de"] +[IMPORTANT] +==== +Dieses Dokument ist ein laufend weiterentwickelter Entwurf und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Weitere Informationen finden Sie im {url-repo}/tree/main[README]. +==== + +''' + +== Merkblatt: Anwendung von OSS Artikel 9 EMBAG + +Das neue https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[Bundesgesetz über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG)] ist am 1. Januar 2024 in Kraft getreten. Es verpflichtet die Bundesbehörden, den Quellcode von Software offenzulegen, die sie entwickeln oder entwickeln lassen. Ausnahmen bestehen, wenn Rechte Dritter oder sicherheitsrelevante Gründe die Veröffentlichung ausschliessen oder einschränken. + +image::./assets/four-cs/four-cs-cases.de.svg[Die 4 C unterteilt in Fall a) und Fall b),600] + +Dieses Dokument richtet sich an [.underline]#Projektleiterinnen und Projektleiter# sowie an weitere [.underline]#für die Beschaffung von Software verantwortliche Personen#. + +== Einleitende Fragen: + +Beschafft oder nutzt die Bundesbehörde Standardsoftware ohne Anpassungen? +Wenn ja, siehe a) + +oder + +Muss eine Softwareanwendung oder -komponente eigens für den Bund entwickelt werden (Individualsoftware = make)? +Wenn ja, siehe b) + +=== a) Beschaffung und Nutzung von Standardsoftware + +Kauft der Bund Software ohne Anpassungen, so ist Artikel 9 EMBAG nicht anwendbar. Jede Bundesbehörde entscheidet frei, ob sie Open-Source-Software oder andere Software beschafft und einsetzt. +Unterstützung bei der Beschaffung von Software bietet die Website des https://www.beschaffung.admin.ch/bpl/de/home/fachstellen/kompetenzzentrum-beschaffungswesen-bund-kbb.html[Bundesamts für Bauten und Logistik (BBL)] sowie das https://perimap.admin.ch/goto_perimap_file_46835_download.html[Merkblatt zur Softwarebeschaffung und Art. 9 EMBAG] der KBB. Bei Bedarf kann zusätzlich link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und OSS] beigezogen werden. + +=== b) Erstellung oder Weiterentwicklung von Software + +Entwickelt eine Bundesbehörde Software selbst oder durch Dritte, so ist OSS Artikel 9 EMBAG anzuwenden. Dazu zählt auch Software, die im Rahmen eines Beitrags an bestehende OSS-Projekte weiterentwickelt wird. Auf die Veröffentlichung des Quellcodes kann nur mit Blick auf Rechte Dritter oder aus sicherheitsrelevanten Gründen verzichtet werden. Bitte füllen Sie die link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] aus. + +NOTE: Diese Checkliste dient auch als Begründung dafür, weshalb Software [.underline]#nicht# veröffentlicht werden muss. Sie sollte deshalb möglichst früh im Projekt beigezogen werden. Die Anleitung link:em002-2.pdf[Em002-2] beschreibt den gesamten Prozess. + +Weitere zu klärende Fragen sind: + +=== Unter welcher Open-Source-Lizenz wird veröffentlicht? + +Zu beantworten ist die Grundsatzfrage, ob die Software unter einer [.underline]#Copyleft#-Lizenz (dann ist beispielsweise die AGPL V3 eine gute Wahl) oder [.underline]#permissiv# (dann beispielsweise unter einer MIT-Lizenz) veröffentlicht wird. Zur Lizenzwahl gibt der link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] ausführlich Auskunft. Bitte füllen Sie die link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] aus. + +NOTE: Idealerweise wird dies durch die (technische) Projektleitung oder die IT-Architektin bzw. den IT-Architekten ausgefüllt. + +=== Wo und wie sollen die Software und die zugehörigen Artefakte veröffentlicht werden? + +Bitte füllen Sie die link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] aus. + +NOTE: Es handelt sich um eine gesamthafte Erfassung, wo und wie Software veröffentlicht wird. Unter Umständen sind weitere Organisationen einzubeziehen. + +=== Soll eine OSS-Community aufgebaut werden? + +Der link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] beschreibt die Vorteile und die Aufgaben beim Aufbau einer OSS-Community auf der Grundlage eines Konzepts. + +[.underline]#Wenn ja#: Füllen Sie die link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] aus, die Auskunft über die gewünschte Art und Plattform der Community gibt. + +NOTE: Das Projektteam hat hier grossen Spielraum, ob und welche Art von Community aufgebaut werden soll. Unter Umständen sind weitere Stellen einzubeziehen. + +Beantworten Sie diese Fragen und prüfen Sie regelmässig (rund einmal jährlich), ob sich wesentliche Änderungen ergeben haben. + +Jede Bundesbehörde (z. B. Amt, Verwaltungseinheit), die Software entwickelt oder entwickeln lässt, ist eigenständig für den gesamten Veröffentlichungsprozess verantwortlich. + +== Übersicht über die Hilfsmittel + +include::partials/document-map.de.adoc[] + +Für die Beschaffung stellt das BBL zusätzlich die Allgemeinen Geschäftsbedingungen, die Ausschreibungsregistrierung, die Kick-off-Folien für Ausschreibungen und die Vorlagen für Beschaffungsprojekte bereit. + +Die Hilfsmittel stehen auf der Website der Bundeskanzlei +unter https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[OSS-Hilfsmittel] zur Verfügung. Sie sind zudem {url-repo}/tree/main/docs[auf Englisch auf GitHub veröffentlicht], wo Sie direkt Rückmeldungen geben können. Der OSS-Katalog (opensource.admin.ch) gibt einen Überblick über die von den Bundesbehörden veröffentlichte Software. Für Anfragen wenden Sie sich an: mailto:opensource@bk.admin.ch[opensource@bk.admin.ch]. + +== Zielgruppen der verschiedenen OSS-Hilfsmittel + +Die OSS-Hilfsmittel richten sich an unterschiedliche Zielgruppen. Die folgende Tabelle enthält eine Empfehlung, welche Dokumente für welche Zielgruppe relevant sind. + +// Siehe den englischen Block für die Begründung dieses Blocktitels. +.OSS-Hilfsmittel nach Zielgruppe +[.landscape] +[options="header",cols="3,1,1,1,1,1,1,1,1,1"] +|=== +|Dokument \ Zielgruppe |Geschäftsleitung |IT-Leitung (a) |ISBO / DSBO (a) |Application Manager |Projektleitung |Rechtsdienst |Beschaffung |Entwicklung |Kommunikation + +|Em002 Strategische Leitlinien +a|X + +3,4,5 +a|*X* + +2-5 + +Anhang B, C +a|X + +2-5 + +Anhang B, C +| +a|(X) + +5 + +Anhang B +| +| +| +|(X) + +|Em002-1 Praxisleitfaden +|X +|*X* +|*X* +|*X* +|X +| +| +| +| + +|Em002-2 Anleitung zur Veröffentlichung von OSS +| +a|(X) + +1,3,5 +a|X + +1,3 5 +a|(X) + +1,3,5 +a|*(X)* + +3,5 +| +| +a|X + +1-5 +| + +|Em002-2.1 Checkliste OSS-Vorabklärung +| +a|*(X)* + +(c) +a|*X* + +(b), (c) +a|X + +(b) +a|X + +(b) +| +| +| +| + +|Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung +| +| +a|*X* + +*(c)* +a|*X* + +*(c)* +a|*X* + +*(c)* +| +| +a|X + +(b) +| + +|Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung +| +| +a|*X* + +(c) +a|*X* + +(c) +| +| +| +a|X + +(b) +a|X + +(d) + +|Em002-3 Leitfaden OSS-Lizenzierung +| +|*(X)* +|*(X)* +| +| +|*X* +a|(X) + +8 +|(X) +| + +|Em002-4 Leitfaden OSS-Community +a|(X) + +3 +a|X + +3,5 +a|X + +4,5 +|*X* +| +| +| +|(X) +|X + +|Em002-4.1 Checkliste OSS-Community +| +a|*(X)* + +(c) +a|*(X)* + +(c) +a|(X) + +(d) +a|X + +(b) +a|(X) + +(d) +| +| +a|(X) + +(d) + +|Em002-5 Merkblatt OSS-Hilfsmittel (e) +|X +|X +|X +|X +|X +|X +|X +|X +|X + +|Em002-6 FAQ zu OSS (e) +|(X) +|(X) +|(X) +|X +| +|X +|(X) +|(X) +|(X) + +|Em002-7 Strategische Aspekte der Beschaffung und OSS +| +|*(X)* +|*(X)* +| +|(X) +|X +|X +| +| + +|Merkblatt KBB +|X +|*X* +|*X* +|X +|(X) +|X +|X +| +| + +|Wegleitung BBL +| +| +| +|*(X)* +|*(X)* +| +|X +| +| + +|Checkliste BBL für Pauschalausnahme +| +|*(X)* +| +|(X) +|(X) +| +|X +| +| +|=== + +Legende: + +* X -- Zielgruppe, (X) -- bei Interesse/Bedarf, mindestens Management Summary +* (a) für Art. 9 EMBAG verantwortliche Person in der OE. Kann die IT-Leitung sein oder delegiert werden +* (b) ausfüllen +* (c) genehmigen +* (d) konsultieren +* (e) primär zur Information und als Nachschlagewerk +* Fett = Vorschlag der verantwortlichen Stelle in einer OE (kann anders geregelt werden) +* Zahlen und Grossbuchstaben: massgebende Kapitel und Anhänge. Sind keine angegeben, ist das gesamte Dokument relevant. +* Verantwortung für die Dokumente: BK/DTI für die Em002-Dokumente, KBB und BBL für die letzten drei Zeilen +endif::[] + +ifeval::["{lang}" == "fr"] +[IMPORTANT] +==== +Le présent document est un projet en cours d'élaboration et fait partie des outils destinés à soutenir l'administration fédérale dans la publication de code open source. Pour de plus amples informations, voir le {url-repo}/tree/main[README] principal. +==== + +''' + +== Aide-mémoire : application de l'OSS article 9 LMETA + +La nouvelle https://www.fedlex.admin.ch/eli/cc/2023/682/fr#art_9[loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA)] est entrée en vigueur le 1^er^ janvier 2024. Elle oblige les autorités fédérales à publier le code source des logiciels qu'elles développent ou font développer. Des exceptions sont prévues lorsque des droits de tiers ou des motifs relevant de la sécurité excluent ou restreignent la publication. + +image::./assets/four-cs/four-cs-cases.fr.svg[Les 4 C répartis en cas a) et cas b),600] + +Le présent document s'adresse aux [.underline]#cheffes et chefs de projet# ainsi qu'aux autres [.underline]#personnes responsables de l'acquisition de logiciels#. + +== Questions préliminaires : + +L'autorité fédérale acquiert-elle ou utilise-t-elle un logiciel standard sans adaptation ? +Si oui, voir a) + +ou + +Une application ou un composant logiciel doit-il être développé spécifiquement pour la Confédération (logiciel sur mesure = make) ? +Si oui, voir b) + +=== a) Acquisition et utilisation de logiciels standard + +Lorsque la Confédération achète un logiciel sans adaptation, l'article 9 LMETA ne s'applique pas. Chaque autorité fédérale est libre de décider si elle acquiert et utilise un logiciel open source ou un autre logiciel. +Une aide à l'acquisition de logiciels est disponible sur le site de l'https://www.beschaffung.admin.ch/bpl/de/home/fachstellen/kompetenzzentrum-beschaffungswesen-bund-kbb.html[Office fédéral des constructions et de la logistique (OFCL)] ainsi que dans l'https://perimap.admin.ch/goto_perimap_file_46835_download.html[aide-mémoire sur l'acquisition de logiciels et l'art. 9 LMETA] du CCMP. Au besoin, le document link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et OSS] peut également être consulté. + +=== b) Création ou développement de logiciels + +Lorsqu'une autorité fédérale développe un logiciel elle-même ou par l'intermédiaire de tiers, l'OSS article 9 LMETA doit être appliqué. Cela vaut également pour les logiciels développés dans le cadre d'une contribution à des projets OSS existants. Il n'est possible de renoncer à la publication du code source qu'en raison de droits de tiers ou pour des motifs relevant de la sécurité. Veuillez remplir la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[liste de contrôle Em002-2.1 Évaluation préalable OSS]. + +NOTE: Cette liste de contrôle sert également à justifier pourquoi un logiciel [.underline]#ne doit pas# être publié. Il convient donc de la consulter le plus tôt possible dans le projet. Le guide link:em002-2.pdf[Em002-2] décrit l'ensemble du processus. + +Les autres questions à clarifier sont les suivantes : + +=== Sous quelle licence open source la publication a-t-elle lieu ? + +Il faut répondre à la question de principe de savoir si le logiciel est publié sous une licence [.underline]#copyleft# (l'AGPL V3 est alors un bon choix, par exemple) ou de manière [.underline]#permissive# (par exemple sous licence MIT). Le link:em002-3.pdf[Em002-3 Guide de licences OSS] fournit des informations détaillées sur le choix de la licence. Veuillez remplir la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[liste de contrôle Em002-2.2 Analyse et préparation OSS]. + +NOTE: Idéalement, cette liste est remplie par la direction (technique) du projet ou par l'architecte informatique. + +=== Où et comment le logiciel et les artefacts associés doivent-ils être publiés ? + +Veuillez remplir la link:em002-2-3-checklist-oss-release-and-publication.pdf[liste de contrôle Em002-2.3 Validation et publication OSS]. + +NOTE: Il s'agit d'un relevé global indiquant où et comment un logiciel est publié. Il peut être nécessaire d'associer d'autres organisations. + +=== Faut-il constituer une communauté OSS ? + +Le link:em002-4.pdf[Em002-4 Guide des communautés OSS] décrit les avantages et les tâches liés à la constitution d'une communauté OSS sur la base d'un concept. + +[.underline]#Si oui# : remplissez la link:em002-4-1-checklist-oss-community.pdf[liste de contrôle Em002-4.1 Communauté OSS], qui renseigne sur le type et la plateforme souhaités pour la communauté. + +NOTE: L'équipe de projet dispose ici d'une grande marge de manœuvre quant à la question de savoir si une communauté doit être constituée et de quel type. Il peut être nécessaire d'associer d'autres services. + +Répondez à ces questions et vérifiez régulièrement (environ une fois par an) si des changements importants sont intervenus. + +Chaque autorité fédérale (p. ex. office, unité administrative) qui développe ou fait développer un logiciel est responsable de manière autonome de l'ensemble du processus de publication. + +== Vue d'ensemble des outils et ressources + +include::partials/document-map.fr.adoc[] + +Pour les achats, l'OFCL met en outre à disposition les conditions générales, l'enregistrement des appels d'offres, les diapositives de lancement des appels d'offres et les modèles de projets d'acquisition. + +Les outils et ressources sont disponibles sur le site de la Chancellerie fédérale +sous https://www.bk.admin.ch/bk/fr/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[outils OSS]. Ils sont également {url-repo}/tree/main/docs[publiés en anglais sur GitHub], où vous pouvez donner directement votre avis. Le catalogue OSS (opensource.admin.ch) donne une vue d'ensemble des logiciels publiés par les autorités fédérales. Pour toute question, veuillez vous adresser à : mailto:opensource@bk.admin.ch[opensource@bk.admin.ch]. + +== Groupes cibles des différents outils OSS + +Les outils et ressources OSS s'adressent à différents groupes cibles. Le tableau suivant recommande quels documents sont pertinents pour quel groupe cible. + +// Voir le bloc anglais pour la justification de ce titre de bloc. +.Outils et ressources OSS par groupe cible +[.landscape] +[options="header",cols="3,1,1,1,1,1,1,1,1,1"] +|=== +|Document \ Groupe cible |Direction |Direction informatique (a) |ISBO / DSBO (a) |Application Manager |Direction de projet |Service juridique |Achats |Développement |Communication + +|Em002 Lignes directrices stratégiques +a|X + +3,4,5 +a|*X* + +2-5 + +Annexes B, C +a|X + +2-5 + +Annexes B, C +| +a|(X) + +5 + +Annexe B +| +| +| +|(X) + +|Em002-1 Guide pratique +|X +|*X* +|*X* +|*X* +|X +| +| +| +| + +|Em002-2 Instructions pour la publication d'OSS +| +a|(X) + +1,3,5 +a|X + +1,3 5 +a|(X) + +1,3,5 +a|*(X)* + +3,5 +| +| +a|X + +1-5 +| + +|Em002-2.1 Liste de contrôle Évaluation préalable OSS +| +a|*(X)* + +(c) +a|*X* + +(b), (c) +a|X + +(b) +a|X + +(b) +| +| +| +| + +|Em002-2.2 Liste de contrôle Analyse et préparation OSS +| +| +a|*X* + +*(c)* +a|*X* + +*(c)* +a|*X* + +*(c)* +| +| +a|X + +(b) +| + +|Em002-2.3 Liste de contrôle Validation et publication OSS +| +| +a|*X* + +(c) +a|*X* + +(c) +| +| +| +a|X + +(b) +a|X + +(d) + +|Em002-3 Guide de licences OSS +| +|*(X)* +|*(X)* +| +| +|*X* +a|(X) + +8 +|(X) +| + +|Em002-4 Guide des communautés OSS +a|(X) + +3 +a|X + +3,5 +a|X + +4,5 +|*X* +| +| +| +|(X) +|X + +|Em002-4.1 Liste de contrôle Communauté OSS +| +a|*(X)* + +(c) +a|*(X)* + +(c) +a|(X) + +(d) +a|X + +(b) +a|(X) + +(d) +| +| +a|(X) + +(d) + +|Em002-5 Aide-mémoire Outils OSS (e) +|X +|X +|X +|X +|X +|X +|X +|X +|X + +|Em002-6 FAQ sur l'OSS (e) +|(X) +|(X) +|(X) +|X +| +|X +|(X) +|(X) +|(X) + +|Em002-7 Aspects stratégiques des achats et OSS +| +|*(X)* +|*(X)* +| +|(X) +|X +|X +| +| + +|Aide-mémoire CCMP +|X +|*X* +|*X* +|X +|(X) +|X +|X +| +| + +|Directives OFCL +| +| +| +|*(X)* +|*(X)* +| +|X +| +| + +|Liste de contrôle OFCL pour exception forfaitaire +| +|*(X)* +| +|(X) +|(X) +| +|X +| +| +|=== + +Légende : + +* X -- groupe cible, (X) -- en cas d'intérêt ou de besoin, au moins le résumé à l'intention de la direction +* (a) personne responsable de l'art. 9 LMETA au sein de l'UO. Il peut s'agir de la direction informatique ou d'une personne déléguée +* (b) à remplir +* (c) à approuver +* (d) à consulter +* (e) principalement à titre d'information et de référence +* Gras = proposition de l'unité responsable au sein d'une UO (peut être réglé différemment) +* Chiffres et lettres majuscules : chapitres et annexes déterminants. Si rien n'est indiqué, l'ensemble du document est pertinent. +* Responsabilité des documents : ChF/TNI pour les documents Em002, CCMP et OFCL pour les trois dernières lignes +endif::[] + +ifeval::["{lang}" == "it"] +[IMPORTANT] +==== +Il presente documento è una bozza in continua evoluzione e fa parte degli strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Per maggiori informazioni si veda il {url-repo}/tree/main[README] principale. +==== + +''' + +== Promemoria: applicazione dell'OSS articolo 9 LMeCA + +La nuova https://www.fedlex.admin.ch/eli/cc/2023/682/it#art_9[legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA)] è entrata in vigore il 1° gennaio 2024. Essa obbliga le autorità federali a pubblicare il codice sorgente del software che sviluppano o fanno sviluppare. Sono previste eccezioni se diritti di terzi o motivi rilevanti per la sicurezza escludono o limitano la pubblicazione. + +image::./assets/four-cs/four-cs-cases.it.svg[Le 4 C suddivise in caso a) e caso b),600] + +Il presente documento si rivolge ai [.underline]#capiprogetto# e alle altre [.underline]#persone responsabili dell'acquisto di software#. + +== Domande introduttive: + +L'autorità federale acquista o utilizza software standard senza adattamenti? +In caso affermativo, vedi a) + +oppure + +Un'applicazione o un componente software deve essere sviluppato appositamente per la Confederazione (software su misura = make)? +In caso affermativo, vedi b) + +=== a) Acquisto e utilizzo di software standard + +Se la Confederazione acquista software senza adattamenti, l'articolo 9 LMeCA non si applica. Ogni autorità federale decide liberamente se acquistare e utilizzare software open source o altro software. +Un supporto per l'acquisto di software è disponibile sul sito dell'https://www.beschaffung.admin.ch/bpl/de/home/fachstellen/kompetenzzentrum-beschaffungswesen-bund-kbb.html[Ufficio federale delle costruzioni e della logistica (UFCL)] e nel https://perimap.admin.ch/goto_perimap_file_46835_download.html[promemoria sull'acquisto di software e l'art. 9 LMeCA] del CCAP. Se necessario, può essere consultato anche il documento link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e OSS]. + +=== b) Creazione o ulteriore sviluppo di software + +Se un'autorità federale sviluppa software autonomamente o tramite terzi, si applica l'OSS articolo 9 LMeCA. Ciò vale anche per il software ulteriormente sviluppato nell'ambito di un contributo a progetti OSS esistenti. Si può rinunciare alla pubblicazione del codice sorgente soltanto in relazione a diritti di terzi o per motivi rilevanti per la sicurezza. Vi preghiamo di compilare la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[lista di controllo Em002-2.1 Valutazione preliminare OSS]. + +NOTE: Questa lista di controllo serve anche a motivare perché un software [.underline]#non debba# essere pubblicato. È quindi opportuno consultarla il prima possibile nel progetto. La guida link:em002-2.pdf[Em002-2] descrive l'intero processo. + +Ulteriori questioni da chiarire sono: + +=== Sotto quale licenza open source avviene la pubblicazione? + +Occorre rispondere alla domanda di fondo se il software venga pubblicato sotto una licenza [.underline]#copyleft# (in tal caso l'AGPL V3 è per esempio una buona scelta) oppure in modo [.underline]#permissivo# (per esempio sotto licenza MIT). Per la scelta della licenza, la link:em002-3.pdf[Em002-3 Guida alle licenze OSS] fornisce informazioni dettagliate. Vi preghiamo di compilare la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[lista di controllo Em002-2.2 Analisi e preparazione OSS]. + +NOTE: Idealmente la compilazione spetta alla direzione (tecnica) del progetto o all'architetto informatico. + +=== Dove e come devono essere pubblicati il software e i relativi artefatti? + +Vi preghiamo di compilare la link:em002-2-3-checklist-oss-release-and-publication.pdf[lista di controllo Em002-2.3 Rilascio e pubblicazione OSS]. + +NOTE: Si tratta di una rilevazione complessiva di dove e come il software viene pubblicato. Può essere necessario coinvolgere altre organizzazioni. + +=== Occorre costituire una community OSS? + +La link:em002-4.pdf[Em002-4 Guida alle community OSS] descrive i vantaggi e i compiti legati alla costituzione di una community OSS sulla base di un concetto. + +[.underline]#In caso affermativo#: compilate la link:em002-4-1-checklist-oss-community.pdf[lista di controllo Em002-4.1 Community OSS], che fornisce indicazioni sul tipo e sulla piattaforma desiderati per la community. + +NOTE: Il team di progetto dispone qui di ampio margine di manovra riguardo alla costituzione e al tipo di community. Può essere necessario coinvolgere altri servizi. + +Rispondete a queste domande e verificate regolarmente (circa una volta all'anno) se sono intervenuti cambiamenti sostanziali. + +Ogni autorità federale (p. es. ufficio, unità amministrativa) che sviluppa o fa sviluppare software è responsabile in modo autonomo dell'intero processo di pubblicazione. + +== Panoramica degli strumenti e delle risorse + +include::partials/document-map.it.adoc[] + +Per gli acquisti l'UFCL mette inoltre a disposizione le condizioni generali, la registrazione dei bandi di concorso, le diapositive di avvio dei bandi di concorso e i modelli per i progetti d'acquisto. + +Gli strumenti e le risorse sono disponibili sul sito della Cancelleria federale +alla pagina https://www.bk.admin.ch/bk/it/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[strumenti OSS]. Sono inoltre {url-repo}/tree/main/docs[pubblicati in inglese su GitHub], dove potete fornire direttamente un riscontro. Il catalogo OSS (opensource.admin.ch) offre una panoramica del software pubblicato dalle autorità federali. Per domande rivolgetevi a: mailto:opensource@bk.admin.ch[opensource@bk.admin.ch]. + +== Gruppi target dei diversi strumenti OSS + +Gli strumenti e le risorse OSS si rivolgono a gruppi target diversi. La tabella seguente raccomanda quali documenti sono rilevanti per quale gruppo target. + +// Cfr. il blocco inglese per la motivazione di questo titolo di blocco. +.Strumenti e risorse OSS per gruppo target +[.landscape] +[options="header",cols="3,1,1,1,1,1,1,1,1,1"] +|=== +|Documento \ Gruppo target |Direzione |Direzione informatica (a) |ISBO / DSBO (a) |Application Manager |Direzione di progetto |Servizio giuridico |Acquisti |Sviluppo |Comunicazione + +|Em002 Linee guida strategiche +a|X + +3,4,5 +a|*X* + +2-5 + +Allegati B, C +a|X + +2-5 + +Allegati B, C +| +a|(X) + +5 + +Allegato B +| +| +| +|(X) + +|Em002-1 Guida pratica +|X +|*X* +|*X* +|*X* +|X +| +| +| +| + +|Em002-2 Istruzioni per la pubblicazione di OSS +| +a|(X) + +1,3,5 +a|X + +1,3 5 +a|(X) + +1,3,5 +a|*(X)* + +3,5 +| +| +a|X + +1-5 +| + +|Em002-2.1 Lista di controllo Valutazione preliminare OSS +| +a|*(X)* + +(c) +a|*X* + +(b), (c) +a|X + +(b) +a|X + +(b) +| +| +| +| + +|Em002-2.2 Lista di controllo Analisi e preparazione OSS +| +| +a|*X* + +*(c)* +a|*X* + +*(c)* +a|*X* + +*(c)* +| +| +a|X + +(b) +| + +|Em002-2.3 Lista di controllo Rilascio e pubblicazione OSS +| +| +a|*X* + +(c) +a|*X* + +(c) +| +| +| +a|X + +(b) +a|X + +(d) + +|Em002-3 Guida alle licenze OSS +| +|*(X)* +|*(X)* +| +| +|*X* +a|(X) + +8 +|(X) +| + +|Em002-4 Guida alle community OSS +a|(X) + +3 +a|X + +3,5 +a|X + +4,5 +|*X* +| +| +| +|(X) +|X + +|Em002-4.1 Lista di controllo Community OSS +| +a|*(X)* + +(c) +a|*(X)* + +(c) +a|(X) + +(d) +a|X + +(b) +a|(X) + +(d) +| +| +a|(X) + +(d) + +|Em002-5 Promemoria Strumenti OSS (e) +|X +|X +|X +|X +|X +|X +|X +|X +|X + +|Em002-6 FAQ sull'OSS (e) +|(X) +|(X) +|(X) +|X +| +|X +|(X) +|(X) +|(X) + +|Em002-7 Aspetti strategici degli acquisti e OSS +| +|*(X)* +|*(X)* +| +|(X) +|X +|X +| +| + +|Promemoria CCAP +|X +|*X* +|*X* +|X +|(X) +|X +|X +| +| + +|Direttive UFCL +| +| +| +|*(X)* +|*(X)* +| +|X +| +| + +|Lista di controllo UFCL per eccezione forfettaria +| +|*(X)* +| +|(X) +|(X) +| +|X +| +| +|=== + +Legenda: + +* X -- gruppo target, (X) -- in caso di interesse/necessità, almeno il riassunto per la direzione +* (a) persona responsabile dell'art. 9 LMeCA nell'UO. Può essere la direzione informatica o una persona delegata +* (b) compilare +* (c) approvare +* (d) consultare +* (e) principalmente a scopo informativo e di consultazione +* Grassetto = proposta del servizio responsabile in un'UO (può essere disciplinato diversamente) +* Cifre e lettere maiuscole: capitoli e allegati determinanti. Se non ne sono indicati, è rilevante l'intero documento. +* Responsabilità dei documenti: CaF/TDT per i documenti Em002, CCAP e UFCL per le ultime tre righe +endif::[] + +ifeval::["{lang}" == "rm"] +[IMPORTANT] +==== +Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source. Ulteriuras infurmaziuns chattais Vus en il {url-repo}/tree/main[README] principal. +==== + +''' + +== Fegl d'infurmaziun: applicaziun da l'OSS artitgel 9 EMBAG + +La nova https://www.fedlex.admin.ch/eli/cc/2023/682/rm#art_9[lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG)] è entrada en vigur ils 1. da schaner 2024. Ella oblighescha las autoritads federalas da publitgar il code da funtauna dal software ch'ellas sviluppan u fan sviluppar. Excepziuns datti, sche dretgs da terzas persunas u motivs relevants per la segirezza excludan u restrenschan la publicaziun. + +image::./assets/four-cs/four-cs-cases.rm.svg[Ils 4 C repartids en cas a) e cas b),600] + +Quest document s'adressa a las [.underline]#manadras e als manaders da project# sco er a las autras [.underline]#persunas responsablas per l'acquist da software#. + +== Dumondas introductivas: + +Acquista u utilisescha l'autoritad federala in software standard senza adattaziuns? +Sche gea, vesair a) + +u + +Sto ina applicaziun u ina cumponenta da software vegnir sviluppada spezialmain per la Confederaziun (software individual = make)? +Sche gea, vesair b) + +=== a) Acquist ed utilisaziun da software standard + +Sche la Confederaziun cumpra software senza adattaziuns, n'è l'artitgel 9 EMBAG betg applitgabel. Mintga autoritad federala decida libramain, sch'ella acquista ed utilisescha software open source u auter software. +Sustegn per l'acquist da software chattais Vus sin la pagina d'internet da l'https://www.beschaffung.admin.ch/bpl/de/home/fachstellen/kompetenzzentrum-beschaffungswesen-bund-kbb.html[Uffizi federal per edifizis e logistica (UFCL)] sco er en il https://perimap.admin.ch/goto_perimap_file_46835_download.html[fegl d'infurmaziun davart l'acquist da software e l'art. 9 EMBAG] dal CCA. Sche necessari po vegnir consultà ultra da quai link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist ed OSS]. + +=== b) Creaziun u svilup vinavant da software + +Sche in'autoritad federala sviluppa software sezza u tras terzas persunas, sto vegnir applitgà l'OSS artitgel 9 EMBAG. Quai vala er per software che vegn sviluppà vinavant en il rom d'ina contribuziun a projects OSS existents. Sin la publicaziun dal code da funtauna po vegnir renunzià mo pervia da dretgs da terzas persunas u per motivs relevants per la segirezza. Empleni p.pl. la link:em002-2-1-checklist-oss-preliminary-assessment.pdf[glista da controlla Em002-2.1 Evaluaziun preliminara OSS]. + +NOTE: Questa glista da controlla serva er sco motivaziun, pertge ch'in software [.underline]#na sto betg# vegnir publitgà. Ella duess perquai vegnir consultada uschè baud sco pussaivel en il project. L'instrucziun link:em002-2.pdf[Em002-2] descriva l'entir process. + +Ulteriuras dumondas da sclerir èn: + +=== Sut tge licenza open source vegn publitgà? + +I sto vegnir respundida la dumonda fundamentala, sche il software vegn publitgà sut ina licenza [.underline]#copyleft# (lura è per exempel l'AGPL V3 ina buna tscherna) u [.underline]#permissivamain# (lura per exempel sut ina licenza MIT). Concernent la tscherna da la licenza dat la link:em002-3.pdf[Em002-3 Guida da licenzas OSS] infurmaziuns detagliadas. Empleni p.pl. la link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[glista da controlla Em002-2.2 Analisa e preparaziun OSS]. + +NOTE: Idealmain vegn quai emplenì da la direcziun (tecnica) dal project u da l'architecta u l'architect d'informatica. + +=== Nua e co duain il software ed ils artefacts appartenents vegnir publitgads? + +Empleni p.pl. la link:em002-2-3-checklist-oss-release-and-publication.pdf[glista da controlla Em002-2.3 Relaschada e publicaziun OSS]. + +NOTE: I sa tracta d'ina registraziun cumplessiva, nua e co che software vegn publitgà. Eventualmain ston vegnir integradas ulteriuras organisaziuns. + +=== Duai vegnir construida ina communitad OSS? + +La link:em002-4.pdf[Em002-4 Guida da communitads OSS] descriva ils avantatgs e las incumbensas cun construir ina communitad OSS sin basa d'in concept. + +[.underline]#Sche gea#: Empleni la link:em002-4-1-checklist-oss-community.pdf[glista da controlla Em002-4.1 Communitad OSS], che dat infurmaziuns davart il gener e la plattafurma giavischada da la communitad. + +NOTE: Il team dal project ha qua ina gronda libertad, sche e tge gener da communitad che duai vegnir construida. Eventualmain ston vegnir integrads ulteriurs posts. + +Respundai questas dumondas e controllai regularmain (var ina giada l'onn), sche i dat midadas essenzialas. + +Mintga autoritad federala (p.ex. uffizi, unitad administrativa) che sviluppa u fa sviluppar software è responsabla independentamain per l'entir process da publicaziun. + +== Survista dals meds e da las resursas + +include::partials/document-map.rm.adoc[] + +Per l'acquist metta l'UFCL ultra da quai a disposiziun las cundiziuns generalas, la registraziun da las publicaziuns da concurrenza, ils fegls da partenza per publicaziuns da concurrenza ed ils models per projects d'acquist. + +Ils meds e las resursas stattan a disposiziun sin la pagina d'internet da la Chanzlia federala +sut https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[meds OSS]. Els èn ultra da quai {url-repo}/tree/main/docs[publitgads en englais sin GitHub], nua che Vus pudais dar directamain in resun. Il catalog OSS (opensource.admin.ch) dat ina survista dal software publitgà da las autoritads federalas. Per dumondas As drizzai a: mailto:opensource@bk.admin.ch[opensource@bk.admin.ch]. + +== Gruppas da destinaziun dals differents meds OSS + +Ils meds e las resursas OSS s'adressan a differentas gruppas da destinaziun. La tabella suandanta cuntegna ina recumandaziun, tge documents che èn relevants per tge gruppa da destinaziun. + +// Vesair il bloc englais per la motivaziun da quest titel da bloc. +.Meds e resursas OSS tenor gruppa da destinaziun +[.landscape] +[options="header",cols="3,1,1,1,1,1,1,1,1,1"] +|=== +|Document \ Gruppa da destinaziun |Direcziun |Direcziun d'informatica (a) |ISBO / DSBO (a) |Application Manager |Direcziun da project |Servetsch giuridic |Acquist |Svilup |Communicaziun + +|Em002 Directivas strategicas +a|X + +3,4,5 +a|*X* + +2-5 + +Agiunta B, C +a|X + +2-5 + +Agiunta B, C +| +a|(X) + +5 + +Agiunta B +| +| +| +|(X) + +|Em002-1 Guida pratica +|X +|*X* +|*X* +|*X* +|X +| +| +| +| + +|Em002-2 Instrucziuns per publitgar OSS +| +a|(X) + +1,3,5 +a|X + +1,3 5 +a|(X) + +1,3,5 +a|*(X)* + +3,5 +| +| +a|X + +1-5 +| + +|Em002-2.1 Glista da controlla Evaluaziun preliminara OSS +| +a|*(X)* + +(c) +a|*X* + +(b), (c) +a|X + +(b) +a|X + +(b) +| +| +| +| + +|Em002-2.2 Glista da controlla Analisa e preparaziun OSS +| +| +a|*X* + +*(c)* +a|*X* + +*(c)* +a|*X* + +*(c)* +| +| +a|X + +(b) +| + +|Em002-2.3 Glista da controlla Relaschada e publicaziun OSS +| +| +a|*X* + +(c) +a|*X* + +(c) +| +| +| +a|X + +(b) +a|X + +(d) + +|Em002-3 Guida da licenzas OSS +| +|*(X)* +|*(X)* +| +| +|*X* +a|(X) + +8 +|(X) +| + +|Em002-4 Guida da communitads OSS +a|(X) + +3 +a|X + +3,5 +a|X + +4,5 +|*X* +| +| +| +|(X) +|X + +|Em002-4.1 Glista da controlla Communitad OSS +| +a|*(X)* + +(c) +a|*(X)* + +(c) +a|(X) + +(d) +a|X + +(b) +a|(X) + +(d) +| +| +a|(X) + +(d) + +|Em002-5 Fegl d'infurmaziun Meds OSS (e) +|X +|X +|X +|X +|X +|X +|X +|X +|X + +|Em002-6 FAQ davart OSS (e) +|(X) +|(X) +|(X) +|X +| +|X +|(X) +|(X) +|(X) + +|Em002-7 Aspects strategics da l'acquist ed OSS +| +|*(X)* +|*(X)* +| +|(X) +|X +|X +| +| + +|Fegl d'infurmaziun CCA +|X +|*X* +|*X* +|X +|(X) +|X +|X +| +| + +|Directivas UFCL +| +| +| +|*(X)* +|*(X)* +| +|X +| +| + +|Glista da controlla UFCL per excepziun forfaitara +| +|*(X)* +| +|(X) +|(X) +| +|X +| +| +|=== + +Legenda: + +* X -- gruppa da destinaziun, (X) -- en cas d'interess/basegn, almain il resumaziun per la direcziun +* (a) persuna responsabla per l'art. 9 EMBAG en l'UO. Po esser la direcziun d'informatica u vegnir delegada +* (b) emplenir +* (c) approvar +* (d) consultar +* (e) principalmain per l'infurmaziun e sco ovra da consultaziun +* Grass = proposta dal post responsabel en in'UO (po vegnir reglà autramain) +* Cifras e maiusclas: chapitels ed agiuntas relevants. Sche naginas n'èn inditgadas, è l'entir document relevant. +* Responsabladad per ils documents: ChF/TDT per ils documents Em002, CCA ed UFCL per las ultimas trais lingias +endif::[] diff --git a/docs/em002-6.adoc b/docs/em002-6.adoc new file mode 100644 index 0000000..0a83510 --- /dev/null +++ b/docs/em002-6.adoc @@ -0,0 +1,2650 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-6 FAQ on OSS and Art. 9 EMOTA +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-6 FAQ zu OSS und Art. 9 EMBAG +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-6 FAQ sur les OSS et l'art. 9 LMETA +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-6 FAQ su OSS e art. 9 LMeCA +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-6 FAQ davart OSS e l'art. 9 EMBAG +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +NOTE: This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main {url-repo}/tree/main[README]. + +== Background and purpose + +=== Background and purpose of the FAQs + +A number of questions frequently arise in connection with the tools available for publishing OSS. The following compilation answers the most common questions and aims to provide a better understanding of individual topics and aspects. + +=== Structure and organisation + +The FAQs are organised by subject, as follows: + +[start=2] +. Terms and definitions +. Roles and responsibilities +. Process +. Tools +. Legal matters +. General + +== Terms and definitions + +=== Open source software + +[qanda.unnumbered] +What is meant by open source software?:: +This is defined in link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration] + +=== Software and licences + +[qanda.unnumbered] +What is meant by software?:: +This is defined in link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration]. For licences, see link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]. + +What is meant by licences?:: +Here we are referring to software licences. Further information can be found in link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]. + +Should custom-built AI models be considered as software and thus subject to the legal requirements of Art. 9 EMOTA? What about the training data?:: +Open source refers to software whose source code is freely accessible and modifiable under minimum conditions. This also includes custom-trained AI models (including the algorithm, training procedure, and code). ++ +AI models are trained on the basis of data, possibly Open (Government) Data. Open Data refers to datasets that are free to use, share and process. AI models with underlying training data based on Open (Government) Data are considered software subject to EMOTA and therefore must also be published. ++ +However, if the training data contains (sensitive) personal data or classified information, publication can be waived on security-relevant grounds. When open-sourcing an AI model, the training data does not necessarily have to be published; however, this is in keeping with the open source ethos and is strongly encouraged by the open source community. For further information regarding AI, we refer to the Competence Network for Artificial Intelligence (CNAI).footnote:[https://cnai.swiss/[CNAI] and also Art. 10 EMOTA] + +Must tools with generative AI capabilities (e.g. GitHub Copilot) be checked before use to ensure that no intellectual property belonging to third parties or the federal government is violated?:: +Content generated by an AI model itself cannot be protected by copyright because there is no creative activity behind it. However, AI-generated content that draws on copyrighted works of third parties may infringe the rights of these third parties. Also, given that AI outputs are notoriously unreliable, they should only be used after careful examination in each case. ++ +Furthermore, the operators of AI systems may reserve the right in their terms and conditions to use inputs to train the system. This, in turn, can lead to inputs or parts thereof being displayed to third parties. Where this cannot be ruled out, it must be ensured that inputs do not violate the rights of the Confederation or third parties. ++ +It is recommended to examine and approve the use of AI tools individually. Unapproved tools may not be used, but employees can apply for approval of a tool. Often it makes sense to resolve such issues by contract with the supplier, or some suppliers may offer special subscriptions by which they respect third-party rights, e.g. DeepL. + +=== Legal basis in EMOTA + +[qanda.unnumbered] +What is the legal basis for the publication of OSS?:: +According to Art. 9 EMOTAfootnote:[SR 172.019], federal authorities of the central Federal Administration must disclose the source code of software they develop or commission. Any person is allowed to use, further develop or modify the software without being charged fees of any kind. ++ +Publication of source code can only be avoided in relation to third-party rights or for security-relevant reasons. ++ +More information can be found in link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. + +What is meant by security-relevant reasons?:: +The security-relevant reasons permitted under Art. 9 EMOTA and how to deal with them are defined in Section 3.2 of link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. + +What are third-party rights?:: +Third-party rights under Art. 9 EMOTA and how to deal with them are defined in Section 3.3 of link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. + +Is it possible for exceptions to be time-limited?:: +The grounds for an exception under Art. 9 EMOTA (third-party rights and security-relevant reasons) may cease to apply over time. ++ +If that happens, the source code of the software must be released. + +What legal consequences should be considered in case of a violation of Art. 9 EMOTA?:: +There are two types of violations: ++ +-- +. Third-party rights are violated +. A federal authority refuses to publish OSS (e.g. citing security-relevant reasons that are not valid) + +Answer to 1: + +This will regularly be a breach of contract and claims for damages may be asserted in accordance with the Swiss Code of Obligations. + +Answer to 2: + +This has no direct consequence. If a third party wants to be able to use the source code of a federal authority, they have to submit a request under the Freedom of Information Act (FoIA; SR 152.3) to the responsible authority. + +If there is a high level of interest, it may make sense to consider publication in the interest of both parties. There is no obligation to publish retroactively, although this can be done voluntarily. +-- + +Can liability claims be asserted in the case of damage caused by OSS?:: +In principle, liability claims should be excluded in the contracts. However, it is not possible to exclude liability for gross negligence or culpable negligence. In such cases, a federal authority could be held liable under the Government Liability Act (GLA; SR 170.32). + +From which date must software be published?:: +According to Art. 9 para. 1 EMOTA, software that is or has been developed after 1 January 2024 must be published. ++ +For software developed before 1 January 2024, release should be considered when major changes are pending. ++ +If there is considerable interest from third parties, existing software may also be released voluntarily (possibly with cost sharing). In this case, a community (see link:em002-4.pdf[Em002-4]) should also be considered. ++ +For smaller scripts, publication is usually not the best option. There may be repositories for tools that then go through the release process at the same time. ++ +For administrative units of the decentralised Federal Administration that are subject to EMOTA, the publication requirement has applied since 1 May 2025. Exceptions to the publication requirement exist for software developed without federal funding and research software (Art. 3 para. 1 DigiO). + +Is it possible to demand retroactive publication for software developed before 1 January 2024?:: +The law does not provide for retroactive publication. ++ +Furthermore, contracts concluded before 1 January 2024 may contain third-party rights that preclude publication. ++ +If a new major version is pending (major according to Semantic Versioningfootnote:[https://en.wikipedia.org/wiki/Version_control[Version control -- Wikipedia]]), a release of the entire software should be considered. Otherwise, the source code of the new functionalities would at least have to be released. + +On what basis would a third party have to request the release of source code?:: +A third party would have to submit a request under the FoIA to the competent authority. + +== Roles and responsibilities + +=== Role of the Federal Chancellery + +[qanda.unnumbered] +Who makes the basic implementation tools available?:: +The DTI Sector of the Federal Chancellery provides tools for the federal authorities as a document set accompanying Em002. This includes the strategic guidelines and other practical guidelines including FAQs, as well as checklists to ensure legally compliant implementation. ++ +The OSS tools are updated by DTI. + +Is the Federal Chancellery responsible for granting exemptions (e.g. for security-relevant reasons)?:: +There is no central body that rules on exemptions to the publication obligation under Art. 9 EMOTA. Each federal authority is responsible for its own legally compliant implementation. ++ +The federal departments may establish regulations. ++ +The Checklist for Art. 9 EMOTA Blanket Exception [BBL-CL] from the FOBL should be completed. + +=== Role of administrative units + +[qanda.unnumbered] +Who is responsible for operational implementation of OSS releases?:: +Each federal authority (e.g. office, administrative unit) that develops or commissions software is independently responsible for the entire publication process. ++ +The federal departments may establish binding regulations and control mechanisms within their area of responsibility, e.g. to prevent reputational damage. ++ +It is recommended to appoint a person responsible for OSS per federal office, e.g. IT Manager (IM), Enterprise Architect, ISBO or DSBO, to ensure uniform and efficient processes. If this is not specified, the federal office management is generally responsible for compliant implementation. ++ +This officer could then also be consulted for granting exemptions to the publication obligation. + +=== Collaborations with third-party providers + +[qanda.unnumbered] +How should a federal authority's in-house developments be published?:: +Copyright arises with the respective natural persons who developed the source code, although this is usually transferred to the employer by way of the employment contract. In contracts with external service providers, it is important to clearly delineate new developments and to agree on the contractual assignment/transfer of copyright. Ultimately, for joint in-house developments, the parties involved must agree on the open source licence for the source code under which the software is published as an independent open source project. Publication under an open source licence does not mean waiving copyright: this remains with the respective rights holders. Only on the basis of their copyright can they legally defend against licence violations or grant more extensive licences in parallel to OSS licences. + +=== Disclosure of personal data + +[qanda.unnumbered] +Under what conditions may personal data, such as that of developers, be published as part of OSS?:: +There is no general rule for this. The decision lies with the project. ++ +In any case, the applicable data protection regulations must be complied with. According to Article 36 para. 1 FADP, federal bodies may only disclose personal data if they have a legal basis for doing so. ++ +Article 36 para. 2 FADP specifies the following exceptions, among others: ++ +(b) The data subject has consented to the disclosure. ++ +(e) The data subject has made their data generally accessible and has not explicitly prohibited processing. ++ +In most cases, it is advisable to obtain the consent of the persons concerned in advance, as they usually also have an interest in their work being publicly visible. If consent is not given, or if there are other reasons against publication, the source code should be published without personal data, referring only to the federal authority concerned. ++ +This consent should be obtained from suppliers and employees as part of the procurement and hiring processes. + +=== Procurement + +[qanda.unnumbered] +Where can I find the documentation for OSS procurement?:: +With Version 2.0, a tool link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and Open Source Software] was made available. ++ +The Competence Centre for Federal Public Procurement (CCPP) has published a new information sheet entitled Software Procurement and Art. 9 EMOTA [KBB-MB] as well as two documents 'Sample criteria – EMOTA procurement and open source.docx' and 'Sample contract texts – software development.docx'. ++ +Further resources can be found on the public procurement learning and template platform (www.perimap.admin.ch). ++ +Further assistance is available on the FOBL intranet (accessible only on the federal network) with the Open Source in Procurement Guidelines [BBL-WL] and the Checklist for Art. 9 EMOTA Blanket Exception [BBL-CL]. ++ +The relevant information can be found on the FOBL intranet pages (only available within the Confederation). ++ +Links: FOBL IT procurement toolbox + +== Process + +=== Guidance + +[qanda.unnumbered] +Is there central guidance on how OSS is handled in the Federal Administration?:: +Yes, the DTI Sector of the Federal Chancellery provides comprehensive materials for this purpose. ++ +Note that these tools are an ICT recommendation and not a binding requirement. ++ +Link to OSS tools + +How should a federal authority's in-house developments that were created in collaborations be published? How should existing rights be handled?:: +When developing software, [.underline]#copyright arises with the respective natural persons# who developed the source code. ++ +If the developer is in an employment relationship, the developments belong to the employer (Art. 332 CO). ++ +For contracts with external service providers, it is therefore important to clearly delineate new developments and to agree on the contractual assignment/transfer of copyright. Ultimately, for joint in-house developments, the parties involved must agree on the open source licence for the source code under which the software is published as an independent open source project. ++ +Publication under an open source licence does not mean waiving copyright: this remains with the respective rights holders. ++ +Only on the basis of their copyright can they legally defend against licence violations or grant more extensive licences in parallel to OSS licences. ++ +The [.underline]#original rights# should therefore always lie with the federal government for new or further developments, if possible. [.underline]#Contributor Licence Agreements# (CLA) or Developer Certificate of Origin (DCO) should be used for other participants. Instructions for this can be found in link:em002-3.pdf[Em002-3 OSS Licensing Guidelines], link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software] and link:em002-4.pdf[Em002-4 OSS Community Guidelines]. + +Do changes have to be published?:: +According to Art. 9 EMOTA: yes, if they were developed after 1 January 2024. ++ +However, this should be done in a way that also provides benefit. The document link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software] provides information on the process. + +When is the publication 'sufficient' according to EMOTA?:: +Art. 9 EMOTA is not specific in this regard and there is a great deal of room for manoeuvre. The source code must be publicly accessible. ++ +For example, the requirements of the law are satisfied by simply publishing the source code in a zip file on a website. ++ +In order to achieve a benefit, including through the publication of documentation etc., this should be done on a code repository according to best practices. Information on this can be found in link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. + +In the future, will service procurers be telling service providers how the software should be published and how to ensure quality?:: +The rules of the individual federal authority apply to both service providers and service procurers. ++ +However, it makes sense to include the corresponding tools at suitable points in the existing processes and quality gates. ++ +Based on its development experience, the service provider can make suggestions for its service procurer here and treat this uniformly (just as the development process is treated uniformly). + +=== Licence selection + +[qanda.unnumbered] +Under which open source licence should software be developed?:: +There are no strict requirements regarding the choice of licence as long as the licence terms of the software components used in the software to be developed are adhered to. ++ +For completely new developments, a licence type should be chosen that enables a broad and sustainable basis for further developments. ++ +For this, it is important that the licence in question should be widely accepted in the relevant developer community. ++ +*The use of AGPL (with copyleft) and MIT is therefore recommended.* ++ +These two licences represent the two extremes of the licence spectrum, so to speak. ++ +AGPL with a very strong copyleft permanently enforces the principle of 'public money – public code'. In the case of further developments, namely proprietary solutions, this will weaken towards LGPL. ++ +MIT, on the other hand, is a very liberal licence where almost anything is possible. ++ +The two licences cover the entire spectrum. If particular importance is attached to not naming the federal government in the case of permissive licences, BSD-3 is to be preferred over MIT. ++ +For a more detailed selection of licences, please refer to link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]. + +=== Quality criteria for OSS + +[qanda.unnumbered] +Does open source software have to meet certain quality criteria?:: +As a rule, all quality criteria for any other software also applies. Open source primarily makes everything more transparent. To comply with the licence, the criteria for a 'good' release, and any community rules in place, some additional points are necessary. These are outlined in link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist] and link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist]. + +What are the requirements planned for quality gates?:: +No central requirements are planned. The rules of the federal authority (administrative units) developing the software are applicable. ++ +Apart from the general requirements, there are no special requirements for OSS quality. However, Hermes will be updated to incorporate Art. 9 EMOTA. ++ +Publication is the Federal Administration's way of going public. If this is not done carefully and professionally, the public image of a federal authority can quickly suffer. + +How are development guidelines regulated?:: +Apart from the general requirements set out in the tools, there are no special requirements regarding the development of open source software. Guidance is provided in link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist] and link:em002-4.pdf[Em002-4 OSS Community Guidelines]. + +Does OSS have to be published in a specific location?:: +The Confederation does not currently operate its own central repository. The federal authorities are therefore basically free in their publication. As many federal authorities already use GitHub, this platform is currently the preferred choice. There is also a central GitHub account (swiss) that can be used. ++ +GitHub - swiss/index: An overview of current repository organisations. ++ +This is especially the case if a federal authority does not yet have a GitHub account ('organisation') or does not use another platform such as GitLab or BitBucket. ++ +Please contact the responsible unit in the DTI (opensource@bk.admin.ch) to check whether publication via the central GitHub account (swiss) is appropriate and possible. ++ +Federal authorities should in all cases maintain a local copy of the code. It is also advisable for each federal authority to have a corresponding strategy and corresponding internal rules in place. ++ +Further recommendations are given in link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. + +=== Documentation + +[qanda.unnumbered] +What are the documentation requirements for OSS publication?:: +The tools made available by the Federal Chancellery's DTI Sector provide information on the legal requirements; see OSS tools. ++ +It is recommended that the OSS checklists be completed and stored centrally in each federal authority (administrative unit). + +=== Contributions to projects by the Federal Administration + +[qanda.unnumbered] +Can and should an administrative unit contribute code to an 'upstream' project and does it thereby meet the requirements of Art. 9 EMOTA?:: +* If the projects are open source, then Art. 9 EMOTA is fulfilled. However, the projects must also remain open source. If they fail to do so, the code must be published again. +* Upstream contributions have the advantage that maintenance takes place within the upstream project and the benefit for the community is maximised. ++ +The following disadvantages exist: less control and influence, a CLA may have to be signed or a DCO (see link:em002-4.pdf[Em002-4] Section 3.3). The contributions also do not appear in the publiccode.yml and the federal directories. A completely different advantage is that with such contributions, the developers continue to develop within the ecosystem. +* As long as the risks and effort remain manageable (CLA content, collection of the code), upstream contributions are to be welcomed. +* The licence of the upstream project then applies to the contribution. This corresponds to the procedure in link:em002-3.pdf[Em002-3]. +* *Forking of upstream projects should be avoided:* The entire maintenance and update burden then falls to the federal authority. Inadequate maintenance of the fork also represents a security risk. There is hardly any benefit for the community. +* Contributions to upstream projects should generally be viewed positively and actively discussed by the federal authorities' project managers. +* If the upstream project belongs to the Federal Administration and involves third-party contributions, link:em002-7.pdf[Em002-7] Section 9 will help. + +=== Support + +[qanda.unnumbered] +Is the federal authority required to provide support for published software?:: +No, but it can if it so wishes. ++ +According to Art. 9 paras 5 and 6 EMOTA, it may also charge fees for support. + +How should an authority proceed if it wishes to charge for support?:: +For resource reasons, this is not part of the current project to provide tools. If required, this could be included in the tools in a subsequent stage. For the time being, each federal authority regulates this itself. (See also link:em002-4.pdf[Em002-4 OSS Community Guidelines]) + +== Tools + +=== Guidance + +[qanda.unnumbered] +Is there any central guidance on working with open source software in the Federal Administration?:: +Yes, the DTI Sector of the Federal Chancellery provides comprehensive materials for this as part of link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration]. ++ +OSS is discussed in general terms in link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration]. Release under Art. 9 EMOTA is addressed in link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. + +=== Checklists + +[qanda.unnumbered] +Do the tools also include checklists for releasing open source software?:: +Yes, the DTI Sector of the Federal Chancellery provides the following checklists for free use: ++ +-- +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 OSS Analysis and Preparation Checklist] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist] + +See the *Checklist for Art. 9 EMOTA Blanket Exception* [BBL-CL] from the FOBL. +-- + +=== Security matters + +[qanda.unnumbered] +Are there special OSS security risks?:: +In this context, supply chain attacks, zero-day vulnerabilities and typosquatting attacks are mentioned, for example. ++ +Such security issues must be taken into account in OSS and in its procurement, but also generally in the development of software and in the procurement of commercial software. At best, they can be somewhat amplified if the OSS project used was careless when integrating libraries and containers. ++ +In the medium term, a general strategy is needed to mitigate these risks (through the NCSC/SEPOS). If necessary, secure sources for containers and libraries must be made available. ++ +In general, all those responsible in the IT environment must be aware of these possible attack vectors. Possible attempts include: ++ +* Supply chain attacks: `XZ_Utils_backdoor` (https://en.wikipedia.org/wiki/XZ_Utils_backdoor), Codecov (https://blog.gitguardian.com/codecov-supply-chain-breach/) +* Zero-day vulnerabilities: Log4Shell (https://www.ibm.com/de-de/think/topics/log4j) +* Typosquatting: https://en.wikipedia.org/wiki/Typosquatting + +Does publishing source code increase the risk of a malicious copy of an app? (e.g. a phishing or fake app):: +No. Withholding source code offers no effective protection against fake apps and is moreover incompatible with Article 9 EMOTA, which establishes the open source principle for the Federal Administration. ++ +The risk of a third party building a visually identical app to harvest data exists regardless of whether the source code is published. Since the Confederation's design systems are publicly available, the look and feel of an app can be replicated by an attacker without access to the source code. Apps can also be decompiled to extract assets such as logos from the published version. ++ +Security and trust are therefore ensured not through obscurity, but through verification and cryptographic security: ++ +-- +* *Digital signatures:* Official apps must be cryptographically signed, providing technical assurance that an app is an unmodified original from the Confederation. The smartphone operating system verifies this signature. +* *App store verification:* The Apple and Google app stores offer processes to verify publishers as official government bodies. Google, for example, explicitly labels Federal Chancellery (FCh) apps as government apps, giving users confidence in their authenticity. +* *Reproducible builds:* Through independent, reproducible builds, it can be technically demonstrated that the published source code corresponds exactly to the app available in the store. + +A blanket exemption for security-related reasons under Article 9 of EMOTA is therefore not applicable to apps. + +[.underline]#Recommendation:# + +Rather than withholding source code, the focus should be on app store processes and monitoring. Official channels must be kept up to date and fake apps reported promptly for removal by the platform operators (Apple and Google). +-- + +Does it make sense for requisitioners within the Federal Administration to join forces to procure OSS?:: +Yes, definitely. This can be done directly and informally between administrative units. ++ +The problem is rather that the administrative units do not know much about each other's needs. ++ +One solution could be for administrative units to keep a 'most wanted' list of OSS tools (or libraries) to be developed or made available and to share this list. ++ +Such a centrally managed list could also help to better analyse the need for OSS components and better assess the maturity level of the administrative unit. Ultimately, an artifact repository would make sense. ++ +Maintaining such a list would then be the task of an OSPO, should one be introduced. At best, this could also be done via Digital Public Services Switzerland for the entire federal structure. + +== Legal matters + +=== Use of English + +[qanda.unnumbered] +Is the Confederation allowed to use licences in the original language English?:: +According to Art. 9 para. 4 EMOTA, internationally established licence texts should be used wherever possible and practical. ++ +Insisting on German-language OSS licences would largely negate the purpose of Art. 9 para. 4 EMOTA as there are very few internationally established licence texts where a version in one of Switzerland's official languages (German, French and Italian as specified in Art. 70 para. 1 Cst.) is recognised as authoritative for interpretation. ++ +This situation parallels English-language courses at higher education institutions such as ETH, where English as the teaching language is permitted – subject to the three conditions under Article 36 of the Federal Constitution (St Gallen Commentary on the Federal Constitution, 4th ed. 2023, Art. 70 N 29; namely a legal basis, public interest, and proportionality must exist for English to be permitted). ++ +Based on the above, Art. 9 para. 4 EMOTA should be interpreted as providing the legal basis for using English-language licences, since international licences are predominantly in English. The provision must therefore refer to these. ++ +The public interest in Art. 9 EMOTA lies, among other things, in the exchange with the respective developer communities.footnote:[BBl 2022 804, p. 66] In the computing industry, these communities are typically international and use English as their working language. Restricting licences to German-language ones would at the very least make cooperation with international communities difficult, if not impossible, because software licensed in this way would hardly be used internationally. This would also conflict with the intended purpose of Article 9 EMOTA. ++ +Moreover, internationally established OSS licences are, by definition, valid worldwide. The legislator evidently intended to enable international use of the released software. Restricting OSS releases to German-language licences would severely limit the international usability of the released software. ++ +Additionally, English is firmly established as the standard language in the computing industry's commercial sphere, which includes OSS releases. Using English-language licences therefore represents a reasonable and proportionate limitation on the contractual partners' rights. Moreover, English-language licences are both appropriate and necessary to achieve the intended objectives. + +=== Liability disclaimer + +[qanda.unnumbered] +Most OSS licences include liability disclaimers. Is this adequate, or are additional measures needed? What is the position regarding defective software? (including consideration of the Government Liability Act):: +The applicable licences exclude liability for slight negligence. *Liability cannot be excluded for gross negligence or intentional acts*. However, the practical liability risks are minimal. ++ +Distributing modified software under a licence incompatible with the original software's licence (for instance, using an MIT licence without copyleft where the code originally used was under a GPL licence with copyleft) breaches the original licence. Due to the absence of good faith protection in intellectual property law, this neither allows other users to suddenly use the original software under the new licence, nor creates an enforceable obligation to offer the new licence under the original software's licence terms. The sole consequence is breach of the original licence, potentially resulting in damages claims (licence analogy) against a federal authority. ++ +However, this risk can be managed through systematic checking according to the guidelines, as is now standard practice in the software industry. Specifically, licensing requires creating a bill of materials listing all pre-existing software incorporated into the new software, which must be strictly adhered to during licensing. ++ +Where third-party rights exist, Art. 9 para. 1 EMOTA anyway does not require publication of the software in any case (or potentially only its newly written portions; this should be clarified in the guidelines). ++ +Under Article 11 of the Government Liability Act, the Confederation's liability is governed by civil law when it acts as a civil law entity. This is the case under Art. 9 para. 2 EMOTA; consequently, additional liability under the Government Liability Act is excluded. + +=== Permissive software + +[qanda.unnumbered] +If software is based on a library/program component published under a permissive licence, can the main software (excluding the library) be published under a non-permissive licence?:: +Yes, this is unproblematic. See the information provided in the guidelines link:em002-3.pdf[Em002-3]. + +=== Licence provisions + +[qanda.unnumbered] +Can software be used by several different offices? What licence provisions apply within the Federal Administration? Is the Federal Administration considered a corporate group? (This applies to unmodified open source software from third parties.):: +Distributing software under permissive licences is generally straightforward. ++ +However, with copyleft licences, the question arises whether distribution within the central or decentralised Federal Administration triggers copyleft obligations and thus risks compromising the confidentiality of the Confederation's own developments. When distributing to institutions of the decentralised Federal Administration that have their own legal personality, this is indeed the case, whereas it does not apply within the central Federal Administration, as all departments operate under the same legal entity. ++ +Corporate group companies are legally independent but remain under the economic control of the parent company. Legal literature considers the distribution of copyleft-licensed code to a group company as triggering copyleft obligations. Since group companies often receive open-source software during software development, they require their own right of use, meaning that distribution to a group company triggers copyleft obligations. ++ +In contrast, distribution within the central Federal Administration does not trigger copyleft obligations. However, for the decentralised Federal Administration, where separate legal entities exist, the above applies: distribution triggers copyleft obligations, and the software must be offered in source code form under the same licence terms as the original software. An instruction not to distribute the software to third parties would violate the licence and could also breach Art. 9 EMOTA. + +=== Relationship between the FoIA and EMOTA + +[qanda.unnumbered] +How do the Freedom of Information Act (FoIA) and EMOTA relate to each other?:: +According to Art. 6 FoIA, official documents must be issued. An official document under Art. 5 para. 1 FoIA is defined as any information recorded on any medium that is in the possession of an authority and relates to the performance of a public task. OSS fundamentally falls under the FoIA. The FoIA applies when an individual requests source code from a department or office for their own use. The office must disclose the source code to the person concerned unless exceptions under Article 7 FoIA apply. If the office refuses to disclose the source code, the FoIA procedure applies. A different case arises when someone demands that the office publish the source code on its website. Then the procedure would not follow the FoIA but EMOTA. Since EMOTA itself does not specify a procedure, general administrative law must suffice. This provides either the option of an administrative decision, a real act, or a general declaratory decision from the office concerned. This decision can then be appealed to the Federal Administrative Court. ++ +While disclosure obligations for software developed by a federal authority under the FoIA are conceivable (if the relevant conditions are met), it should be noted that disclosure of software under the FoIA does not automatically grant an OSS licence. The use of software disclosed under the FoIA is thus limited to the purposes set by the FoIA, such as viewing the code or executing it for observation purposes. However, FoIA disclosure does not include a licence for regular use of the software or as a basis for further software development (details in T. Poledna/S. Schlauri/S. Schweizer, Rechtliche Voraussetzungen der Nutzung von Open-Source-Software in der öffentlichen Verwaltung, insbesondere des Kantons Bern [tr: Legal Requirements for the Use of Open Source Software in Public Administration, particularly in the Canton of Bern], Zurich 2017, https://carlgrossmann.com/?ddownload=11748, N 393 ff.). ++ +The decision to license software as OSS, even if it falls under the FoIA, continues to follow EMOTA; there remains no entitlement to the granting of a licence. ++ +Importantly, software developed before 1 January 2024, while not subject to EMOTA, must still be released according to the FoIA. + +=== OSS and data protection + +[qanda.unnumbered] +Can developers' personal data be published without further consideration? What data protection aspects need to be considered?:: +From a data protection perspective, publishing personal data (e.g. names or email addresses) is problematic unless employees have given prior consent. This is because the disclosure of personal data can, in principle, be avoided through pseudonymisation or anonymisation of repository entries, which would be required according to the principle of data minimisation and proportionality (Art. 6 para. 2 FADP). ++ +However, such consent should generally be easy to obtain, as employees often have an interest in publicly demonstrating their capabilities (as noted in Poledna/Schlauri/Schweizer, N 68, with references). Consent may also be implied through the use of names in the repository, at least where no employer directive exists to the contrary. ++ +Nevertheless, it is advisable to address the provider's responsibility for their employees' personal data in the contracts. + +== General + +[qanda.unnumbered] +Does it matter whether OSS is used commercially or non-commercially?:: +Open source licences generally do not distinguish between commercial and non-commercial use. Therefore, OSS can be used for any purpose, including commercial applications. Commercial suppliers often try to integrate OSS components into proprietary products. This is only permissible if the OSS components are not under a licence with copyleft effects (see also link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]). + +Are there restrictions on which organisations are permitted for communities?:: +Ultimately, each case must always be considered individually: who is behind it, and what commitments are being made? ++ +As long as no money changes hands and no formal commitments are made, the situation is relatively straightforward and unproblematic. ++ +Association memberships are possible, as is informal collaboration. ++ +It is possible to delegate memberships to eOperations or similar organisations. ++ +See also link:em002-4.pdf[Em002-4 OSS Community Guidelines], Section 3.1 + +How does ISO Standard 5230 relate to the guidelines?:: +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: ++ +-- +*3.1 Programme foundation* + +* The 'link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration]' and the referenced strategies provide the framework. The respective federal departments and offices are responsible for implementation. + +*3.2 Relevant tasks defined and supported* + +* The guide 'link:em002-2.pdf[Em002-2 Instructions for Publishing OSS]' and the checklists define specific tasks for publication. There is currently no central body within the Federal Administration. + +*3.3 Open source content review and approval* + +* The publication process is described in the resource 'link:em002-2.pdf[Em002-2 Instructions for Publishing OSS]'. This also refers to the existence of a Software Bill of Materials (SBOM). +* The resource 'link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]' provides comprehensive information on licensing. + +*3.4 Compliance artifact creation and delivery* + +* The publication process is described in the resource 'link:em002-2.pdf[Em002-2 Instructions for Publishing OSS]'. This also refers to the existence of a Software Bill of Materials (SBOM). +* Implementation is not described in further detail and takes place within the federal departments or offices. + +*3.5 Understanding open source community engagements* + +* The resource 'link:em002-4.pdf[Em002-4 OSS Community Guidelines]' describes how to set up and maintain a community. A concept must be defined and implemented for each project. + +*3.6 Adherence to the specification requirements* + +* The final chapter sets out requirements for organisations or projects wishing to explicitly confirm compliance with the OpenChain requirements. +-- ++ +The ISO standard outlines further areas of responsibility for an Open Source Programme Office (OSPO) which are not covered by the guidance documents. + +== Annex + +=== Abbreviations + +[horizontal] +include::partials/abbreviations.en.adoc[tags=abbr-em002-6] + +=== Glossary + +Further terms can be found in TERMDAT, the Federal Administration's https://www.bk.admin.ch/bk/en/home/dokumentation/languages/termdat.html[terminology database]. + +include::partials/glossary.en.adoc[tags=gloss-em002-6] +endif::[] + +ifeval::["{lang}" == "de"] +NOTE: Dieses Dokument ist ein Entwurf, der laufend weiterentwickelt wird, und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Weitere Informationen finden Sie im {url-repo}/tree/main[README]. + +== Ausgangslage und Zweck + +=== Ausgangslage und Zweck der FAQ + +Im Zusammenhang mit den Hilfsmitteln zur Veröffentlichung von OSS tauchen regelmässig Fragen auf. Die nachfolgende Zusammenstellung beantwortet die häufigsten Fragen und soll das Verständnis für einzelne Themen und Aspekte verbessern. + +=== Aufbau und Gliederung + +Die FAQ sind nach Themen gegliedert: + +[start=2] +. Begriffe und Definitionen +. Rollen und Verantwortlichkeiten +. Prozess +. Hilfsmittel +. Rechtliche Fragen +. Allgemeines + +== Begriffe und Definitionen + +=== Open-Source-Software + +[qanda.unnumbered] +Was wird unter Open-Source-Software verstanden?:: +Dies wird in link:em002-1.pdf[Em002-1 Praxisleitfaden Open-Source-Software in der Bundesverwaltung] definiert. + +=== Software und Lizenzen + +[qanda.unnumbered] +Was wird unter Software verstanden?:: +Dies wird in link:em002-1.pdf[Em002-1 Praxisleitfaden Open-Source-Software in der Bundesverwaltung] definiert. Zu den Lizenzen siehe link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzen]. + +Was wird unter Lizenzen verstanden?:: +Gemeint sind hier Softwarelizenzen. Weitere Informationen finden sich in link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzen]. + +Sind selbst entwickelte KI-Modelle als Software zu betrachten und damit den rechtlichen Anforderungen von Art. 9 EMBAG unterstellt? Wie verhält es sich mit den Trainingsdaten?:: +Open Source bezeichnet Software, deren Quellcode unter minimalen Bedingungen frei zugänglich und veränderbar ist. Dazu zählen auch selbst trainierte KI-Modelle (einschliesslich Algorithmus, Trainingsverfahren und Code). ++ +KI-Modelle werden auf der Grundlage von Daten trainiert, allenfalls von Open (Government) Data. Als Open Data werden Datensätze bezeichnet, die frei genutzt, geteilt und weiterverarbeitet werden dürfen. KI-Modelle, deren Trainingsdaten auf Open (Government) Data beruhen, gelten als Software im Sinne des EMBAG und müssen daher ebenfalls veröffentlicht werden. ++ +Enthalten die Trainingsdaten jedoch (besonders schützenswerte) Personendaten oder klassifizierte Informationen, kann aus sicherheitsrelevanten Gründen auf eine Veröffentlichung verzichtet werden. Bei der Freigabe eines KI-Modells als Open Source müssen die Trainingsdaten nicht zwingend mitveröffentlicht werden; dies entspricht jedoch dem Open-Source-Gedanken und wird von der Open-Source-Community ausdrücklich empfohlen. Für weitere Informationen zur KI verweisen wir auf das Kompetenznetzwerk Künstliche Intelligenz (CNAI).footnote:[https://cnai.swiss/[CNAI] sowie Art. 10 EMBAG] + +Müssen Werkzeuge mit generativen KI-Fähigkeiten (z. B. GitHub Copilot) vor dem Einsatz geprüft werden, damit keine Immaterialgüterrechte Dritter oder des Bundes verletzt werden?:: +Inhalte, die ein KI-Modell selbst erzeugt, sind nicht urheberrechtlich geschützt, weil ihnen keine schöpferische Tätigkeit zugrunde liegt. KI-generierte Inhalte, die auf urheberrechtlich geschützte Werke Dritter zurückgreifen, können jedoch die Rechte dieser Dritten verletzen. Da KI-Ausgaben zudem notorisch unzuverlässig sind, sollten sie nur nach sorgfältiger Einzelfallprüfung verwendet werden. ++ +Ausserdem können sich die Betreiber von KI-Systemen in ihren Nutzungsbedingungen vorbehalten, Eingaben zum Training des Systems zu verwenden. Das kann wiederum dazu führen, dass Eingaben oder Teile davon Dritten angezeigt werden. Wo dies nicht ausgeschlossen werden kann, ist sicherzustellen, dass Eingaben keine Rechte des Bundes oder Dritter verletzen. ++ +Es wird empfohlen, den Einsatz von KI-Werkzeugen einzeln zu prüfen und freizugeben. Nicht freigegebene Werkzeuge dürfen nicht eingesetzt werden; Mitarbeitende können jedoch die Freigabe eines Werkzeugs beantragen. Oft ist es sinnvoll, solche Fragen vertraglich mit dem Anbieter zu regeln; manche Anbieter bieten auch besondere Abonnemente an, mit denen sie Rechte Dritter wahren, z. B. DeepL. + +=== Rechtsgrundlage im EMBAG + +[qanda.unnumbered] +Was ist die Rechtsgrundlage für die Veröffentlichung von OSS?:: +Nach Art. 9 EMBAGfootnote:[SR 172.019] müssen Bundesbehörden der zentralen Bundesverwaltung den Quellcode von Software offenlegen, die sie entwickeln oder entwickeln lassen. Jede Person darf die Software gebührenfrei nutzen, weiterentwickeln oder verändern. ++ +Von der Veröffentlichung des Quellcodes kann nur wegen Rechten Dritter oder aus sicherheitsrelevanten Gründen abgesehen werden. ++ +Weitere Informationen finden sich in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software]. + +Was sind sicherheitsrelevante Gründe?:: +Die nach Art. 9 EMBAG zulässigen sicherheitsrelevanten Gründe und der Umgang damit werden in Kapitel 3.2 von link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] definiert. + +Was sind Rechte Dritter?:: +Rechte Dritter nach Art. 9 EMBAG und der Umgang damit werden in Kapitel 3.3 von link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] definiert. + +Können Ausnahmen zeitlich befristet sein?:: +Die Gründe für eine Ausnahme nach Art. 9 EMBAG (Rechte Dritter und sicherheitsrelevante Gründe) können mit der Zeit wegfallen. ++ +Ist dies der Fall, muss der Quellcode der Software freigegeben werden. + +Welche rechtlichen Folgen sind bei einer Verletzung von Art. 9 EMBAG zu beachten?:: +Es gibt zwei Arten von Verletzungen: ++ +-- +. Rechte Dritter werden verletzt. +. Eine Bundesbehörde verweigert die Veröffentlichung von OSS (z. B. unter Berufung auf nicht stichhaltige sicherheitsrelevante Gründe). + +Antwort zu 1: + +Regelmässig liegt eine Vertragsverletzung vor, und es können Schadenersatzansprüche nach Obligationenrecht geltend gemacht werden. + +Antwort zu 2: + +Dies hat keine unmittelbare Folge. Will eine Drittperson den Quellcode einer Bundesbehörde nutzen können, muss sie bei der zuständigen Behörde ein Gesuch nach dem Öffentlichkeitsgesetz (BGÖ; SR 152.3) stellen. + +Besteht ein grosses Interesse, kann es sinnvoll sein, eine Veröffentlichung im beidseitigen Interesse zu prüfen. Eine Pflicht zur rückwirkenden Veröffentlichung besteht nicht, freiwillig ist dies aber möglich. +-- + +Können bei einem durch OSS verursachten Schaden Haftungsansprüche geltend gemacht werden?:: +Grundsätzlich sollte die Haftung in den Verträgen ausgeschlossen werden. Für grobe Fahrlässigkeit oder schuldhaftes Verhalten kann die Haftung jedoch nicht ausgeschlossen werden. In solchen Fällen könnte eine Bundesbehörde nach dem Verantwortlichkeitsgesetz (VG; SR 170.32) haftbar werden. + +Ab welchem Datum muss Software veröffentlicht werden?:: +Nach Art. 9 Abs. 1 EMBAG muss Software veröffentlicht werden, die nach dem 1. Januar 2024 entwickelt wird oder wurde. ++ +Bei Software, die vor dem 1. Januar 2024 entwickelt wurde, sollte eine Freigabe geprüft werden, wenn grössere Änderungen anstehen. ++ +Besteht ein erhebliches Interesse von Dritten, kann bestehende Software auch freiwillig freigegeben werden (allenfalls mit Kostenbeteiligung). In diesem Fall sollte auch eine Community (siehe link:em002-4.pdf[Em002-4]) geprüft werden. ++ +Bei kleineren Skripten ist eine Veröffentlichung meist nicht die beste Option. Es kann Repositorien für Werkzeuge geben, die dann gemeinsam den Freigabeprozess durchlaufen. ++ +Für Verwaltungseinheiten der dezentralen Bundesverwaltung, die dem EMBAG unterstehen, gilt die Veröffentlichungspflicht seit dem 1. Mai 2025. Ausnahmen von der Veröffentlichungspflicht bestehen für ohne Bundesmittel entwickelte Software und für Forschungssoftware (Art. 3 Abs. 1 VEMBAG). + +Kann für Software, die vor dem 1. Januar 2024 entwickelt wurde, eine rückwirkende Veröffentlichung verlangt werden?:: +Das Gesetz sieht keine rückwirkende Veröffentlichung vor. ++ +Zudem können Verträge, die vor dem 1. Januar 2024 abgeschlossen wurden, Rechte Dritter enthalten, die einer Veröffentlichung entgegenstehen. ++ +Steht eine neue Hauptversion an (Major nach Semantic Versioningfootnote:[https://de.wikipedia.org/wiki/Versionsverwaltung[Versionsverwaltung -- Wikipedia]]), sollte eine Freigabe der gesamten Software geprüft werden. Andernfalls müsste zumindest der Quellcode der neuen Funktionalitäten freigegeben werden. + +Auf welcher Grundlage müsste eine Drittperson die Freigabe von Quellcode verlangen?:: +Eine Drittperson müsste bei der zuständigen Behörde ein Gesuch nach dem BGÖ stellen. + +== Rollen und Verantwortlichkeiten + +=== Rolle der Bundeskanzlei + +[qanda.unnumbered] +Wer stellt die grundlegenden Hilfsmittel zur Umsetzung bereit?:: +Der Bereich DTI der Bundeskanzlei stellt den Bundesbehörden Hilfsmittel als Dokumentensammlung zu Em002 zur Verfügung. Dazu gehören die strategischen Vorgaben und weitere Praxisleitfäden einschliesslich FAQ sowie Checklisten zur Sicherstellung einer rechtskonformen Umsetzung. ++ +Die OSS-Hilfsmittel werden durch DTI aktualisiert. + +Ist die Bundeskanzlei für die Bewilligung von Ausnahmen (z. B. aus sicherheitsrelevanten Gründen) zuständig?:: +Es gibt keine zentrale Stelle, die über Ausnahmen von der Veröffentlichungspflicht nach Art. 9 EMBAG entscheidet. Jede Bundesbehörde ist für ihre rechtskonforme Umsetzung selbst verantwortlich. ++ +Die Departemente können Regelungen erlassen. ++ +Die Checkliste zur generellen Ausnahme nach Art. 9 EMBAG [BBL-CL] des BBL sollte ausgefüllt werden. + +=== Rolle der Verwaltungseinheiten + +[qanda.unnumbered] +Wer ist für die operative Umsetzung von OSS-Freigaben zuständig?:: +Jede Bundesbehörde (z. B. Amt, Verwaltungseinheit), die Software entwickelt oder entwickeln lässt, ist eigenverantwortlich für den gesamten Veröffentlichungsprozess zuständig. ++ +Die Departemente können in ihrem Zuständigkeitsbereich verbindliche Regelungen und Kontrollmechanismen festlegen, z. B. um Reputationsschäden zu vermeiden. ++ +Es wird empfohlen, pro Bundesamt eine für OSS verantwortliche Person zu bezeichnen, z. B. IT-Verantwortliche (IM), Enterprise Architect, ISBO oder DSBO, um einheitliche und effiziente Prozesse sicherzustellen. Ist dies nicht festgelegt, ist grundsätzlich die Amtsleitung für die rechtskonforme Umsetzung verantwortlich. ++ +Diese Person könnte auch für die Bewilligung von Ausnahmen von der Veröffentlichungspflicht beigezogen werden. + +=== Zusammenarbeit mit Drittanbietern + +[qanda.unnumbered] +Wie sind Eigenentwicklungen einer Bundesbehörde zu veröffentlichen?:: +Das Urheberrecht entsteht bei den jeweiligen natürlichen Personen, die den Quellcode entwickelt haben, wird aber in der Regel über den Arbeitsvertrag auf die Arbeitgeberin übertragen. In Verträgen mit externen Dienstleistern ist es wichtig, Neuentwicklungen klar abzugrenzen und die vertragliche Abtretung bzw. Übertragung des Urheberrechts zu vereinbaren. Bei gemeinsamen Eigenentwicklungen müssen sich die Beteiligten schliesslich auf die Open-Source-Lizenz für den Quellcode einigen, unter der die Software als eigenständiges Open-Source-Projekt veröffentlicht wird. Die Veröffentlichung unter einer Open-Source-Lizenz bedeutet keinen Verzicht auf das Urheberrecht: Dieses verbleibt bei den jeweiligen Rechteinhabern. Nur gestützt auf ihr Urheberrecht können sie sich rechtlich gegen Lizenzverletzungen wehren oder parallel zu den OSS-Lizenzen weitergehende Lizenzen erteilen. + +=== Bekanntgabe von Personendaten + +[qanda.unnumbered] +Unter welchen Voraussetzungen dürfen Personendaten, etwa von Entwicklerinnen und Entwicklern, im Rahmen von OSS veröffentlicht werden?:: +Dafür gibt es keine allgemeine Regel. Der Entscheid liegt beim Projekt. ++ +In jedem Fall sind die anwendbaren Datenschutzbestimmungen einzuhalten. Nach Artikel 36 Abs. 1 DSG dürfen Bundesorgane Personendaten nur bekannt geben, wenn dafür eine gesetzliche Grundlage besteht. ++ +Artikel 36 Abs. 2 DSG nennt unter anderem folgende Ausnahmen: ++ +(b) Die betroffene Person hat in die Bekanntgabe eingewilligt. ++ +(e) Die betroffene Person hat ihre Daten allgemein zugänglich gemacht und eine Bearbeitung nicht ausdrücklich untersagt. ++ +In den meisten Fällen empfiehlt es sich, die Einwilligung der betroffenen Personen vorgängig einzuholen, da diese in der Regel selbst ein Interesse daran haben, dass ihre Arbeit öffentlich sichtbar ist. Wird die Einwilligung nicht erteilt oder sprechen andere Gründe gegen eine Veröffentlichung, sollte der Quellcode ohne Personendaten veröffentlicht werden, unter alleinigem Verweis auf die betreffende Bundesbehörde. ++ +Diese Einwilligung sollte bei Lieferanten und Mitarbeitenden im Rahmen der Beschaffungs- und Anstellungsprozesse eingeholt werden. + +=== Beschaffung + +[qanda.unnumbered] +Wo finde ich die Unterlagen zur OSS-Beschaffung?:: +Mit der Version 2.0 wurde das Hilfsmittel link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und Open-Source-Software] bereitgestellt. ++ +Das Kompetenzzentrum Beschaffungswesen Bund (KBB) hat ein neues Merkblatt Softwarebeschaffung und Art. 9 EMBAG [KBB-MB] sowie zwei Dokumente «Musterkriterien – EMBAG-Beschaffung und Open Source.docx» und «Mustervertragstexte – Softwareentwicklung.docx» veröffentlicht. ++ +Weitere Hilfsmittel finden sich auf der Lern- und Vorlagenplattform des öffentlichen Beschaffungswesens (www.perimap.admin.ch). ++ +Weitere Unterstützung bietet das BBL-Intranet (nur im Bundesnetz zugänglich) mit der Weisung Open Source in der Beschaffung [BBL-WL] und der Checkliste zur generellen Ausnahme nach Art. 9 EMBAG [BBL-CL]. ++ +Die entsprechenden Informationen finden sich auf den Intranetseiten des BBL (nur innerhalb der Bundesverwaltung verfügbar). ++ +Links: BBL-Werkzeugkasten IT-Beschaffung + +== Prozess + +=== Anleitung + +[qanda.unnumbered] +Gibt es eine zentrale Anleitung, wie in der Bundesverwaltung mit OSS umzugehen ist?:: +Ja, der Bereich DTI der Bundeskanzlei stellt dafür umfassende Unterlagen bereit. ++ +Zu beachten ist, dass diese Hilfsmittel eine IKT-Empfehlung und keine verbindliche Vorgabe darstellen. ++ +Link zu den OSS-Hilfsmitteln + +Wie sind Eigenentwicklungen einer Bundesbehörde zu veröffentlichen, die in Zusammenarbeiten entstanden sind? Wie ist mit bestehenden Rechten umzugehen?:: +Bei der Softwareentwicklung [.underline]#entsteht das Urheberrecht bei den jeweiligen natürlichen Personen#, die den Quellcode entwickelt haben. ++ +Steht die entwickelnde Person in einem Arbeitsverhältnis, gehören die Entwicklungen der Arbeitgeberin (Art. 332 OR). ++ +Bei Verträgen mit externen Dienstleistern ist es deshalb wichtig, Neuentwicklungen klar abzugrenzen und die vertragliche Abtretung bzw. Übertragung des Urheberrechts zu vereinbaren. Bei gemeinsamen Eigenentwicklungen müssen sich die Beteiligten schliesslich auf die Open-Source-Lizenz für den Quellcode einigen, unter der die Software als eigenständiges Open-Source-Projekt veröffentlicht wird. ++ +Die Veröffentlichung unter einer Open-Source-Lizenz bedeutet keinen Verzicht auf das Urheberrecht: Dieses verbleibt bei den jeweiligen Rechteinhabern. ++ +Nur gestützt auf ihr Urheberrecht können sie sich rechtlich gegen Lizenzverletzungen wehren oder parallel zu den OSS-Lizenzen weitergehende Lizenzen erteilen. ++ +Die [.underline]#Originalrechte# sollten deshalb bei Neu- oder Weiterentwicklungen nach Möglichkeit immer beim Bund liegen. Für weitere Beteiligte sind [.underline]#Contributor Licence Agreements# (CLA) oder ein Developer Certificate of Origin (DCO) einzusetzen. Anleitungen dazu finden sich in link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzen], link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community]. + +Müssen Änderungen veröffentlicht werden?:: +Nach Art. 9 EMBAG: ja, wenn sie nach dem 1. Januar 2024 entwickelt wurden. ++ +Dies sollte jedoch so geschehen, dass daraus auch ein Nutzen entsteht. Das Dokument link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] informiert über den Prozess. + +Wann ist die Veröffentlichung nach EMBAG «ausreichend»?:: +Art. 9 EMBAG ist hier nicht spezifisch, und es besteht ein grosser Spielraum. Der Quellcode muss öffentlich zugänglich sein. ++ +Die Anforderungen des Gesetzes sind beispielsweise bereits erfüllt, wenn der Quellcode als Zip-Datei auf einer Website veröffentlicht wird. ++ +Um einen Nutzen zu erzielen, auch durch die Veröffentlichung von Dokumentation usw., sollte dies in einem Code-Repositorium nach Best Practices geschehen. Informationen dazu finden sich in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software]. + +Werden die Leistungsbezüger künftig den Leistungserbringern vorgeben, wie die Software zu veröffentlichen und die Qualität sicherzustellen ist?:: +Für Leistungserbringer wie für Leistungsbezüger gelten die Regeln der jeweiligen Bundesbehörde. ++ +Es ist jedoch sinnvoll, die entsprechenden Hilfsmittel an geeigneten Stellen in die bestehenden Prozesse und Quality Gates einzubauen. ++ +Der Leistungserbringer kann hier aufgrund seiner Entwicklungserfahrung Vorschläge für seine Leistungsbezüger machen und dies einheitlich handhaben (so wie auch der Entwicklungsprozess einheitlich gehandhabt wird). + +=== Lizenzwahl + +[qanda.unnumbered] +Unter welcher Open-Source-Lizenz soll Software entwickelt werden?:: +Es bestehen keine strikten Vorgaben zur Lizenzwahl, solange die Lizenzbedingungen der in der zu entwickelnden Software verwendeten Softwarekomponenten eingehalten werden. ++ +Bei vollständigen Neuentwicklungen sollte ein Lizenztyp gewählt werden, der eine breite und nachhaltige Basis für Weiterentwicklungen ermöglicht. ++ +Dafür ist wichtig, dass die betreffende Lizenz in der relevanten Entwickler-Community breit akzeptiert ist. ++ +*Empfohlen wird deshalb die Verwendung von AGPL (mit Copyleft) und MIT.* ++ +Diese beiden Lizenzen stellen gewissermassen die beiden Extreme des Lizenzspektrums dar. ++ +Die AGPL mit sehr starkem Copyleft setzt den Grundsatz «Public Money – Public Code» dauerhaft durch. Bei Weiterentwicklungen, namentlich proprietären Lösungen, schwächt sich dies in Richtung LGPL ab. ++ +MIT ist demgegenüber eine sehr liberale Lizenz, bei der fast alles möglich ist. ++ +Die beiden Lizenzen decken das gesamte Spektrum ab. Wird bei permissiven Lizenzen besonderer Wert darauf gelegt, den Bund nicht zu nennen, ist BSD-3 gegenüber MIT vorzuziehen. ++ +Für eine detailliertere Lizenzwahl verweisen wir auf link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzen]. + +=== Qualitätskriterien für OSS + +[qanda.unnumbered] +Muss Open-Source-Software bestimmte Qualitätskriterien erfüllen?:: +Grundsätzlich gelten alle Qualitätskriterien, die auch für jede andere Software gelten. Open Source macht vor allem alles transparenter. Zur Einhaltung der Lizenz, der Kriterien für eine «gute» Freigabe und allfälliger Community-Regeln sind einige zusätzliche Punkte nötig. Diese sind in link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] und link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] aufgeführt. + +Welche Anforderungen sind für Quality Gates vorgesehen?:: +Es sind keine zentralen Vorgaben vorgesehen. Massgebend sind die Regeln der Bundesbehörde (Verwaltungseinheit), welche die Software entwickelt. ++ +Abgesehen von den allgemeinen Anforderungen bestehen keine besonderen Anforderungen an die OSS-Qualität. HERMES wird jedoch im Hinblick auf Art. 9 EMBAG aktualisiert. ++ +Die Veröffentlichung ist der Auftritt der Bundesverwaltung in der Öffentlichkeit. Geschieht dies nicht sorgfältig und professionell, kann das öffentliche Ansehen einer Bundesbehörde rasch leiden. + +Wie werden Entwicklungsrichtlinien geregelt?:: +Abgesehen von den allgemeinen Anforderungen in den Hilfsmitteln bestehen keine besonderen Vorgaben zur Entwicklung von Open-Source-Software. Hinweise finden sich in link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] und link:em002-4.pdf[Em002-4 Leitfaden OSS-Community]. + +Muss OSS an einem bestimmten Ort veröffentlicht werden?:: +Der Bund betreibt derzeit kein eigenes zentrales Repositorium. Die Bundesbehörden sind daher in ihrer Veröffentlichung grundsätzlich frei. Da viele Bundesbehörden bereits GitHub nutzen, ist diese Plattform derzeit die bevorzugte Wahl. Es besteht zudem ein zentrales GitHub-Konto (swiss), das genutzt werden kann. ++ +GitHub – swiss/index: eine Übersicht über die aktuellen Repository-Organisationen. ++ +Dies gilt insbesondere, wenn eine Bundesbehörde noch kein GitHub-Konto («Organisation») hat oder keine andere Plattform wie GitLab oder BitBucket nutzt. ++ +Bitte wenden Sie sich an die zuständige Stelle im DTI (opensource@bk.admin.ch), um zu prüfen, ob eine Veröffentlichung über das zentrale GitHub-Konto (swiss) sinnvoll und möglich ist. ++ +Bundesbehörden sollten in jedem Fall eine lokale Kopie des Codes vorhalten. Ebenso empfiehlt es sich, dass jede Bundesbehörde über eine entsprechende Strategie und entsprechende interne Regelungen verfügt. ++ +Weitere Empfehlungen finden sich in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software]. + +=== Dokumentation + +[qanda.unnumbered] +Welche Dokumentationsanforderungen bestehen für die Veröffentlichung von OSS?:: +Die vom Bereich DTI der Bundeskanzlei bereitgestellten Hilfsmittel informieren über die rechtlichen Anforderungen; siehe OSS-Hilfsmittel. ++ +Es wird empfohlen, die OSS-Checklisten auszufüllen und in jeder Bundesbehörde (Verwaltungseinheit) zentral abzulegen. + +=== Beiträge der Bundesverwaltung an Projekte + +[qanda.unnumbered] +Kann und soll eine Verwaltungseinheit Code an ein «Upstream»-Projekt beitragen, und erfüllt sie damit die Anforderungen von Art. 9 EMBAG?:: +* Sind die Projekte Open Source, ist Art. 9 EMBAG erfüllt. Die Projekte müssen jedoch auch Open Source bleiben. Ist dies nicht der Fall, muss der Code erneut veröffentlicht werden. +* Upstream-Beiträge haben den Vorteil, dass der Unterhalt im Upstream-Projekt stattfindet und der Nutzen für die Community maximiert wird. ++ +Es bestehen folgende Nachteile: weniger Kontrolle und Einfluss; unter Umständen muss ein CLA oder ein DCO unterzeichnet werden (siehe link:em002-4.pdf[Em002-4] Kapitel 3.3). Die Beiträge erscheinen zudem nicht im publiccode.yml und in den Verzeichnissen des Bundes. Ein ganz anderer Vorteil ist, dass sich die Entwicklerinnen und Entwickler mit solchen Beiträgen weiter im Ökosystem entwickeln. +* Solange Risiken und Aufwand überschaubar bleiben (Inhalt des CLA, Sammlung des Codes), sind Upstream-Beiträge zu begrüssen. +* Für den Beitrag gilt dann die Lizenz des Upstream-Projekts. Dies entspricht dem Vorgehen in link:em002-3.pdf[Em002-3]. +* *Forks von Upstream-Projekten sind zu vermeiden:* Der gesamte Unterhalts- und Aktualisierungsaufwand fällt dann bei der Bundesbehörde an. Ein ungenügend gepflegter Fork stellt zudem ein Sicherheitsrisiko dar. Für die Community entsteht kaum ein Nutzen. +* Beiträge an Upstream-Projekte sollten grundsätzlich positiv beurteilt und von den Projektleitenden der Bundesbehörden aktiv thematisiert werden. +* Gehört das Upstream-Projekt der Bundesverwaltung und geht es um Beiträge Dritter, hilft link:em002-7.pdf[Em002-7] Kapitel 9 weiter. + +=== Support + +[qanda.unnumbered] +Muss die Bundesbehörde Support für veröffentlichte Software leisten?:: +Nein, sie kann dies aber, wenn sie will. ++ +Nach Art. 9 Abs. 5 und 6 EMBAG darf sie für den Support auch Gebühren erheben. + +Wie geht eine Behörde vor, wenn sie Support verrechnen will?:: +Aus Ressourcengründen ist dies nicht Teil des aktuellen Projekts zur Bereitstellung von Hilfsmitteln. Bei Bedarf könnte dies in einer späteren Etappe in die Hilfsmittel aufgenommen werden. Vorerst regelt jede Bundesbehörde dies selbst. (Siehe auch link:em002-4.pdf[Em002-4 Leitfaden OSS-Community]) + +== Hilfsmittel + +=== Anleitung + +[qanda.unnumbered] +Gibt es eine zentrale Anleitung zum Umgang mit Open-Source-Software in der Bundesverwaltung?:: +Ja, der Bereich DTI der Bundeskanzlei stellt dafür im Rahmen von link:em002.pdf[Em002 Strategische Vorgaben für Open-Source-Software in der Bundesverwaltung] umfassende Unterlagen bereit. ++ +OSS wird allgemein in link:em002-1.pdf[Em002-1 Praxisleitfaden Open-Source-Software in der Bundesverwaltung] behandelt. Die Freigabe nach Art. 9 EMBAG wird in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] behandelt. + +=== Checklisten + +[qanda.unnumbered] +Umfassen die Hilfsmittel auch Checklisten für die Freigabe von Open-Source-Software?:: +Ja, der Bereich DTI der Bundeskanzlei stellt folgende Checklisten zur freien Verwendung bereit: ++ +-- +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] + +Siehe zudem die *Checkliste zur generellen Ausnahme nach Art. 9 EMBAG* [BBL-CL] des BBL. +-- + +=== Sicherheitsfragen + +[qanda.unnumbered] +Gibt es besondere OSS-Sicherheitsrisiken?:: +In diesem Zusammenhang werden beispielsweise Supply-Chain-Angriffe, Zero-Day-Schwachstellen und Typosquatting-Angriffe genannt. ++ +Solche Sicherheitsfragen sind bei OSS und deren Beschaffung, aber auch generell bei der Entwicklung von Software und bei der Beschaffung kommerzieller Software zu berücksichtigen. Sie können sich allenfalls etwas verstärken, wenn das eingesetzte OSS-Projekt bei der Einbindung von Bibliotheken und Containern unsorgfältig war. ++ +Mittelfristig braucht es eine allgemeine Strategie zur Minderung dieser Risiken (über das NCSC/BACS). Bei Bedarf sind sichere Quellen für Container und Bibliotheken bereitzustellen. ++ +Generell müssen alle Verantwortlichen im IT-Umfeld diese möglichen Angriffsvektoren kennen. Mögliche Versuche sind: ++ +* Supply-Chain-Angriffe: `XZ_Utils_backdoor` (https://en.wikipedia.org/wiki/XZ_Utils_backdoor), Codecov (https://blog.gitguardian.com/codecov-supply-chain-breach/) +* Zero-Day-Schwachstellen: Log4Shell (https://www.ibm.com/de-de/think/topics/log4j) +* Typosquatting: https://en.wikipedia.org/wiki/Typosquatting + +Erhöht die Veröffentlichung des Quellcodes das Risiko einer bösartigen Kopie einer App? (z. B. einer Phishing- oder Fake-App):: +Nein. Das Zurückhalten von Quellcode bietet keinen wirksamen Schutz vor Fake-Apps und ist zudem nicht mit Artikel 9 EMBAG vereinbar, der das Open-Source-Prinzip für die Bundesverwaltung festlegt. ++ +Das Risiko, dass eine Drittperson eine optisch identische App baut, um Daten abzugreifen, besteht unabhängig davon, ob der Quellcode veröffentlicht ist. Da die Designsysteme des Bundes öffentlich verfügbar sind, kann das Erscheinungsbild einer App auch ohne Zugriff auf den Quellcode nachgebaut werden. Apps lassen sich zudem dekompilieren, um Elemente wie Logos aus der veröffentlichten Version zu extrahieren. ++ +Sicherheit und Vertrauen werden deshalb nicht durch Geheimhaltung, sondern durch Verifikation und kryptografische Sicherheit gewährleistet: ++ +-- +* *Digitale Signaturen:* Offizielle Apps müssen kryptografisch signiert sein; damit ist technisch sichergestellt, dass eine App ein unverändertes Original des Bundes ist. Das Betriebssystem des Smartphones überprüft diese Signatur. +* *App-Store-Verifikation:* Die App Stores von Apple und Google bieten Verfahren an, um Herausgeber als offizielle staatliche Stellen zu verifizieren. Google kennzeichnet beispielsweise Apps der Bundeskanzlei (BK) ausdrücklich als Behörden-Apps, was den Nutzerinnen und Nutzern Vertrauen in deren Echtheit gibt. +* *Reproducible Builds:* Durch unabhängige, reproduzierbare Builds lässt sich technisch nachweisen, dass der veröffentlichte Quellcode genau der im Store verfügbaren App entspricht. + +Eine generelle Ausnahme aus sicherheitsrelevanten Gründen nach Artikel 9 EMBAG ist bei Apps deshalb nicht anwendbar. + +[.underline]#Empfehlung:# + +Statt Quellcode zurückzuhalten, sollte der Fokus auf den App-Store-Prozessen und der Überwachung liegen. Offizielle Kanäle sind aktuell zu halten, und Fake-Apps sind umgehend zur Entfernung durch die Plattformbetreiber (Apple und Google) zu melden. +-- + +Ist es sinnvoll, dass sich Bedarfsstellen innerhalb der Bundesverwaltung für die Beschaffung von OSS zusammenschliessen?:: +Ja, unbedingt. Dies kann direkt und formlos zwischen Verwaltungseinheiten geschehen. ++ +Das Problem ist eher, dass die Verwaltungseinheiten wenig über den Bedarf der anderen wissen. ++ +Eine Lösung könnte sein, dass Verwaltungseinheiten eine «Most Wanted»-Liste von OSS-Werkzeugen (oder Bibliotheken) führen, die entwickelt oder bereitgestellt werden sollen, und diese Liste teilen. ++ +Eine solche zentral geführte Liste könnte auch helfen, den Bedarf an OSS-Komponenten besser zu analysieren und den Reifegrad der Verwaltungseinheit besser einzuschätzen. Letztlich wäre ein Artifact-Repository sinnvoll. ++ +Die Führung einer solchen Liste wäre dann Aufgabe eines OSPO, sofern ein solches eingeführt wird. Bestenfalls könnte dies auch über Digitale Öffentliche Dienste Schweiz für die gesamte Föderalstruktur erfolgen. + +== Rechtliche Fragen + +=== Verwendung des Englischen + +[qanda.unnumbered] +Darf der Bund Lizenzen in der Originalsprache Englisch verwenden?:: +Nach Art. 9 Abs. 4 EMBAG sollen wo möglich und sinnvoll international etablierte Lizenztexte verwendet werden. ++ +Auf deutschsprachigen OSS-Lizenzen zu beharren, würde den Zweck von Art. 9 Abs. 4 EMBAG weitgehend zunichtemachen, da es nur sehr wenige international etablierte Lizenztexte gibt, bei denen eine Fassung in einer der Amtssprachen der Schweiz (Deutsch, Französisch und Italienisch nach Art. 70 Abs. 1 BV) als für die Auslegung massgebend anerkannt ist. ++ +Diese Situation entspricht derjenigen englischsprachiger Studiengänge an Hochschulen wie der ETH, wo Englisch als Unterrichtssprache zulässig ist – unter den drei Voraussetzungen von Artikel 36 der Bundesverfassung (St. Galler Kommentar zur Bundesverfassung, 4. Aufl. 2023, Art. 70 N 29; es müssen also eine gesetzliche Grundlage, ein öffentliches Interesse und Verhältnismässigkeit gegeben sein, damit Englisch zulässig ist). ++ +Vor diesem Hintergrund ist Art. 9 Abs. 4 EMBAG so auszulegen, dass er die gesetzliche Grundlage für die Verwendung englischsprachiger Lizenzen bildet, da internationale Lizenzen überwiegend auf Englisch verfasst sind. Die Bestimmung muss sich daher auf diese beziehen. ++ +Das öffentliche Interesse an Art. 9 EMBAG liegt unter anderem im Austausch mit den jeweiligen Entwickler-Communitys.footnote:[BBl 2022 804, S. 66] In der Informatikbranche sind diese Communitys typischerweise international und verwenden Englisch als Arbeitssprache. Eine Beschränkung auf deutschsprachige Lizenzen würde die Zusammenarbeit mit internationalen Communitys zumindest erschweren, wenn nicht verunmöglichen, weil so lizenzierte Software international kaum genutzt würde. Dies stünde auch im Widerspruch zum Zweck von Artikel 9 EMBAG. ++ +Zudem gelten international etablierte OSS-Lizenzen definitionsgemäss weltweit. Der Gesetzgeber wollte offensichtlich die internationale Nutzung der freigegebenen Software ermöglichen. Eine Beschränkung von OSS-Freigaben auf deutschsprachige Lizenzen würde die internationale Nutzbarkeit der freigegebenen Software stark einschränken. ++ +Hinzu kommt, dass Englisch als Standardsprache im kommerziellen Umfeld der Informatikbranche fest etabliert ist, wozu auch OSS-Freigaben gehören. Die Verwendung englischsprachiger Lizenzen stellt daher eine zumutbare und verhältnismässige Einschränkung der Rechte der Vertragspartner dar. Englischsprachige Lizenzen sind zur Erreichung der angestrebten Ziele überdies geeignet und erforderlich. + +=== Haftungsausschluss + +[qanda.unnumbered] +Die meisten OSS-Lizenzen enthalten Haftungsausschlüsse. Genügt das, oder sind zusätzliche Massnahmen nötig? Wie verhält es sich bei fehlerhafter Software? (unter Einbezug des Verantwortlichkeitsgesetzes):: +Die anwendbaren Lizenzen schliessen die Haftung für leichte Fahrlässigkeit aus. *Für grobe Fahrlässigkeit oder Vorsatz kann die Haftung nicht ausgeschlossen werden.* Die praktischen Haftungsrisiken sind jedoch minimal. ++ +Wird veränderte Software unter einer Lizenz verbreitet, die mit der Lizenz der ursprünglichen Software unvereinbar ist (etwa unter einer MIT-Lizenz ohne Copyleft, obwohl der ursprünglich verwendete Code unter einer GPL-Lizenz mit Copyleft stand), verletzt dies die ursprüngliche Lizenz. Mangels Gutglaubensschutz im Immaterialgüterrecht können andere Nutzerinnen und Nutzer die ursprüngliche Software dadurch weder plötzlich unter der neuen Lizenz nutzen, noch entsteht eine durchsetzbare Pflicht, die neue Lizenz zu den Bedingungen der ursprünglichen Lizenz anzubieten. Einzige Folge ist die Verletzung der ursprünglichen Lizenz, was zu Schadenersatzansprüchen (Lizenzanalogie) gegen eine Bundesbehörde führen kann. ++ +Dieses Risiko lässt sich jedoch durch systematische Prüfung nach den Leitfäden beherrschen, wie dies in der Softwarebranche heute Standard ist. Konkret verlangt die Lizenzierung die Erstellung einer Stückliste aller vorbestehenden Softwarebestandteile, die in die neue Software einfliessen; diese ist bei der Lizenzierung strikt einzuhalten. ++ +Bestehen Rechte Dritter, verlangt Art. 9 Abs. 1 EMBAG ohnehin keine Veröffentlichung der Software (oder allenfalls nur der neu geschriebenen Teile; dies ist in den Leitfäden zu klären). ++ +Nach Artikel 11 des Verantwortlichkeitsgesetzes richtet sich die Haftung des Bundes nach Zivilrecht, wenn er als Zivilrechtssubjekt auftritt. Dies ist nach Art. 9 Abs. 2 EMBAG der Fall; eine zusätzliche Haftung nach dem Verantwortlichkeitsgesetz ist folglich ausgeschlossen. + +=== Permissive Software + +[qanda.unnumbered] +Wenn Software auf einer Bibliothek bzw. Programmkomponente unter einer permissiven Lizenz beruht: Kann die Hauptsoftware (ohne die Bibliothek) unter einer nicht permissiven Lizenz veröffentlicht werden?:: +Ja, das ist unproblematisch. Siehe die Angaben im Leitfaden link:em002-3.pdf[Em002-3]. + +=== Lizenzbestimmungen + +[qanda.unnumbered] +Kann Software von mehreren Ämtern genutzt werden? Welche Lizenzbestimmungen gelten innerhalb der Bundesverwaltung? Gilt die Bundesverwaltung als Konzern? (Dies betrifft unveränderte Open-Source-Software von Dritten.):: +Die Verbreitung von Software unter permissiven Lizenzen ist in der Regel unproblematisch. ++ +Bei Copyleft-Lizenzen stellt sich jedoch die Frage, ob die Verbreitung innerhalb der zentralen oder dezentralen Bundesverwaltung Copyleft-Pflichten auslöst und damit die Vertraulichkeit der Eigenentwicklungen des Bundes gefährdet. Bei der Weitergabe an Institutionen der dezentralen Bundesverwaltung mit eigener Rechtspersönlichkeit ist dies tatsächlich der Fall, innerhalb der zentralen Bundesverwaltung dagegen nicht, da alle Departemente unter derselben Rechtspersönlichkeit handeln. ++ +Konzerngesellschaften sind rechtlich selbstständig, stehen aber unter der wirtschaftlichen Kontrolle der Muttergesellschaft. Die Rechtsliteratur betrachtet die Weitergabe von Copyleft-lizenziertem Code an eine Konzerngesellschaft als Auslöser von Copyleft-Pflichten. Da Konzerngesellschaften bei der Softwareentwicklung häufig Open-Source-Software erhalten, benötigen sie ein eigenes Nutzungsrecht; die Weitergabe an eine Konzerngesellschaft löst somit Copyleft-Pflichten aus. ++ +Demgegenüber löst die Weitergabe innerhalb der zentralen Bundesverwaltung keine Copyleft-Pflichten aus. Für die dezentrale Bundesverwaltung mit eigenen Rechtspersönlichkeiten gilt das Obenstehende: Die Weitergabe löst Copyleft-Pflichten aus, und die Software muss im Quellcode zu denselben Lizenzbedingungen wie die ursprüngliche Software angeboten werden. Eine Weisung, die Software nicht an Dritte weiterzugeben, würde die Lizenz verletzen und könnte auch gegen Art. 9 EMBAG verstossen. + +=== Verhältnis zwischen BGÖ und EMBAG + +[qanda.unnumbered] +In welchem Verhältnis stehen das Öffentlichkeitsgesetz (BGÖ) und das EMBAG zueinander?:: +Nach Art. 6 BGÖ sind amtliche Dokumente herauszugeben. Als amtliches Dokument gilt nach Art. 5 Abs. 1 BGÖ jede Information, die auf einem beliebigen Informationsträger aufgezeichnet ist, sich im Besitz einer Behörde befindet und die Erfüllung einer öffentlichen Aufgabe betrifft. OSS fällt grundsätzlich unter das BGÖ. Das BGÖ kommt zur Anwendung, wenn eine Person von einem Departement oder Amt Quellcode zur eigenen Nutzung verlangt. Das Amt muss der betreffenden Person den Quellcode offenlegen, sofern keine Ausnahmen nach Artikel 7 BGÖ greifen. Verweigert das Amt die Offenlegung des Quellcodes, gilt das BGÖ-Verfahren. Anders liegt der Fall, wenn jemand verlangt, dass das Amt den Quellcode auf seiner Website veröffentlicht. Dann richtet sich das Verfahren nicht nach dem BGÖ, sondern nach dem EMBAG. Da das EMBAG selbst kein Verfahren vorsieht, muss das allgemeine Verwaltungsrecht genügen. Dieses bietet entweder die Möglichkeit einer Verfügung, eines Realakts oder einer allgemeinen Feststellungsverfügung des betreffenden Amtes. Dieser Entscheid kann anschliessend beim Bundesverwaltungsgericht angefochten werden. ++ +Während Offenlegungspflichten für von einer Bundesbehörde entwickelte Software nach dem BGÖ denkbar sind (wenn die entsprechenden Voraussetzungen erfüllt sind), ist zu beachten, dass die Offenlegung von Software nach dem BGÖ nicht automatisch eine OSS-Lizenz gewährt. Die Nutzung von nach dem BGÖ offengelegter Software beschränkt sich somit auf die vom BGÖ gesetzten Zwecke, etwa die Einsichtnahme in den Code oder dessen Ausführung zu Beobachtungszwecken. Die Offenlegung nach BGÖ umfasst jedoch keine Lizenz zur regulären Nutzung der Software oder als Grundlage für die Weiterentwicklung von Software (Einzelheiten in T. Poledna/S. Schlauri/S. Schweizer, Rechtliche Voraussetzungen der Nutzung von Open-Source-Software in der öffentlichen Verwaltung, insbesondere des Kantons Bern, Zürich 2017, https://carlgrossmann.com/?ddownload=11748, N 393 ff.). ++ +Der Entscheid, Software als OSS zu lizenzieren, richtet sich auch dann weiterhin nach dem EMBAG, wenn sie unter das BGÖ fällt; ein Anspruch auf Erteilung einer Lizenz besteht nach wie vor nicht. ++ +Wichtig ist: Software, die vor dem 1. Januar 2024 entwickelt wurde, untersteht zwar nicht dem EMBAG, muss aber dennoch nach dem BGÖ herausgegeben werden. + +=== OSS und Datenschutz + +[qanda.unnumbered] +Können Personendaten von Entwicklerinnen und Entwicklern ohne Weiteres veröffentlicht werden? Welche Datenschutzaspekte sind zu beachten?:: +Aus datenschutzrechtlicher Sicht ist die Veröffentlichung von Personendaten (z. B. Namen oder E-Mail-Adressen) problematisch, sofern die Mitarbeitenden nicht vorgängig eingewilligt haben. Denn die Bekanntgabe von Personendaten kann grundsätzlich durch Pseudonymisierung oder Anonymisierung der Repository-Einträge vermieden werden, was nach dem Grundsatz der Datenminimierung und der Verhältnismässigkeit (Art. 6 Abs. 2 DSG) erforderlich wäre. ++ +Eine solche Einwilligung dürfte jedoch in der Regel leicht zu erhalten sein, da Mitarbeitende oft ein Interesse daran haben, ihre Fähigkeiten öffentlich zu zeigen (so Poledna/Schlauri/Schweizer, N 68, mit Hinweisen). Eine Einwilligung kann auch konkludent durch die Verwendung von Namen im Repositorium erfolgen, zumindest wenn keine gegenteilige Weisung der Arbeitgeberin besteht. ++ +Dennoch empfiehlt es sich, die Verantwortung des Anbieters für die Personendaten seiner Mitarbeitenden in den Verträgen zu regeln. + +== Allgemeines + +[qanda.unnumbered] +Spielt es eine Rolle, ob OSS kommerziell oder nicht kommerziell genutzt wird?:: +Open-Source-Lizenzen unterscheiden in der Regel nicht zwischen kommerzieller und nicht kommerzieller Nutzung. OSS kann daher für jeden Zweck genutzt werden, auch für kommerzielle Anwendungen. Kommerzielle Anbieter versuchen oft, OSS-Komponenten in proprietäre Produkte einzubinden. Dies ist nur zulässig, wenn die OSS-Komponenten nicht unter einer Lizenz mit Copyleft-Wirkung stehen (siehe auch link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzen]). + +Bestehen Einschränkungen, welche Organisationen für Communitys zulässig sind?:: +Letztlich ist immer der Einzelfall zu betrachten: Wer steht dahinter, und welche Verpflichtungen werden eingegangen? ++ +Solange kein Geld fliesst und keine formellen Verpflichtungen eingegangen werden, ist die Lage vergleichsweise einfach und unproblematisch. ++ +Vereinsmitgliedschaften sind möglich, ebenso eine informelle Zusammenarbeit. ++ +Mitgliedschaften können an eOperations oder ähnliche Organisationen delegiert werden. ++ +Siehe auch link:em002-4.pdf[Em002-4 Leitfaden OSS-Community], Kapitel 3.1 + +Wie verhält sich die ISO-Norm 5230 zu den Leitfäden?:: +Die ISO-Norm 5230:2020 wurde bei der Erarbeitung der Leitfäden geprüft und berücksichtigt. Die folgende Liste führt die Anforderungen der Norm auf und zeigt, wie diese in den Leitfäden adressiert wurden: ++ +-- +*3.1 Programme foundation* + +* Die «link:em002.pdf[Em002 Strategische Vorgaben für Open-Source-Software in der Bundesverwaltung]» und die referenzierten Strategien bilden den Rahmen. Für die Umsetzung sind die jeweiligen Departemente und Ämter zuständig. + +*3.2 Relevant tasks defined and supported* + +* Der Leitfaden «link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS]» und die Checklisten definieren konkrete Aufgaben für die Veröffentlichung. Eine zentrale Stelle besteht in der Bundesverwaltung derzeit nicht. + +*3.3 Open source content review and approval* + +* Der Veröffentlichungsprozess wird im Hilfsmittel «link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS]» beschrieben. Dieses verweist auch auf das Bestehen einer Software Bill of Materials (SBOM). +* Das Hilfsmittel «link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzen]» informiert umfassend über die Lizenzierung. + +*3.4 Compliance artifact creation and delivery* + +* Der Veröffentlichungsprozess wird im Hilfsmittel «link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS]» beschrieben. Dieses verweist auch auf das Bestehen einer Software Bill of Materials (SBOM). +* Die Umsetzung wird nicht näher beschrieben und erfolgt in den Departementen oder Ämtern. + +*3.5 Understanding open source community engagements* + +* Das Hilfsmittel «link:em002-4.pdf[Em002-4 Leitfaden OSS-Community]» beschreibt, wie eine Community aufgebaut und gepflegt wird. Für jedes Projekt ist ein Konzept zu definieren und umzusetzen. + +*3.6 Adherence to the specification requirements* + +* Das Schlusskapitel enthält Anforderungen an Organisationen oder Projekte, die die Einhaltung der OpenChain-Anforderungen ausdrücklich bestätigen wollen. +-- ++ +Die ISO-Norm umreisst weitere Verantwortungsbereiche eines Open Source Programme Office (OSPO), die von den Leitfäden nicht abgedeckt werden. + +== Anhang + +=== Abkürzungen + +[horizontal] +include::partials/abbreviations.de.adoc[tags=abbr-em002-6] + +=== Glossar + +Weitere Begriffe finden sich in TERMDAT, der https://www.bk.admin.ch/bk/de/home/dokumentation/sprachen/termdat.html[Terminologiedatenbank] der Bundesverwaltung. + +include::partials/glossary.de.adoc[tags=gloss-em002-6] +endif::[] + +ifeval::["{lang}" == "fr"] +NOTE: Ce document est un projet en cours d'élaboration et fait partie des aides destinées à soutenir l'administration fédérale dans la publication de code open source. Pour plus d'informations, voir le {url-repo}/tree/main[README]. + +== Contexte et objectif + +=== Contexte et objectif de la FAQ + +Les aides à la publication de logiciels open source suscitent régulièrement des questions. La compilation ci-après répond aux questions les plus fréquentes et vise à améliorer la compréhension de certains thèmes et aspects. + +=== Structure et organisation + +La FAQ est organisée par thème: + +[start=2] +. Notions et définitions +. Rôles et responsabilités +. Processus +. Aides +. Questions juridiques +. Généralités + +== Notions et définitions + +=== Logiciel open source + +[qanda.unnumbered] +Qu'entend-on par logiciel open source?:: +Cette notion est définie dans link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale]. + +=== Logiciels et licences + +[qanda.unnumbered] +Qu'entend-on par logiciel?:: +Cette notion est définie dans link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale]. Pour les licences, voir link:em002-3.pdf[Em002-3 Guide des licences OSS]. + +Qu'entend-on par licences?:: +Il s'agit ici de licences de logiciels. De plus amples informations figurent dans link:em002-3.pdf[Em002-3 Guide des licences OSS]. + +Les modèles d'IA développés en interne doivent-ils être considérés comme des logiciels et donc soumis aux exigences légales de l'art. 9 LMETA? Qu'en est-il des données d'entraînement?:: +L'open source désigne les logiciels dont le code source est librement accessible et modifiable à des conditions minimales. Cela comprend également les modèles d'IA entraînés en interne (y compris l'algorithme, la procédure d'entraînement et le code). ++ +Les modèles d'IA sont entraînés à partir de données, le cas échéant des Open (Government) Data. Les Open Data désignent des jeux de données pouvant être librement utilisés, partagés et retraités. Les modèles d'IA dont les données d'entraînement reposent sur des Open (Government) Data sont considérés comme des logiciels au sens de la LMETA et doivent donc également être publiés. ++ +Toutefois, si les données d'entraînement contiennent des données personnelles (sensibles) ou des informations classifiées, il est possible de renoncer à la publication pour des motifs de sécurité. Lors de la publication d'un modèle d'IA en open source, les données d'entraînement ne doivent pas nécessairement être publiées; cela correspond cependant à l'esprit de l'open source et est vivement recommandé par la communauté open source. Pour de plus amples informations sur l'IA, nous renvoyons au Réseau de compétences en intelligence artificielle (CNAI).footnote:[https://cnai.swiss/[CNAI] ainsi que l'art. 10 LMETA] + +Les outils dotés de capacités d'IA générative (p. ex. GitHub Copilot) doivent-ils être contrôlés avant leur utilisation afin qu'aucun droit de propriété intellectuelle de tiers ou de la Confédération ne soit violé?:: +Les contenus générés par un modèle d'IA lui-même ne peuvent pas être protégés par le droit d'auteur, faute d'activité créatrice. Les contenus générés par l'IA qui s'appuient sur des œuvres protégées de tiers peuvent toutefois porter atteinte aux droits de ces tiers. De plus, les sorties des IA étant notoirement peu fiables, elles ne devraient être utilisées qu'après un examen attentif au cas par cas. ++ +Par ailleurs, les exploitants de systèmes d'IA peuvent se réserver, dans leurs conditions d'utilisation, le droit d'employer les entrées pour entraîner le système. Cela peut à son tour conduire à ce que des entrées ou des parties d'entrées soient affichées à des tiers. Lorsque cela ne peut être exclu, il faut s'assurer que les entrées ne violent pas les droits de la Confédération ou de tiers. ++ +Il est recommandé d'examiner et d'autoriser individuellement l'utilisation des outils d'IA. Les outils non autorisés ne peuvent pas être utilisés, mais les collaborateurs peuvent demander l'autorisation d'un outil. Il est souvent judicieux de régler ces questions contractuellement avec le fournisseur; certains fournisseurs proposent aussi des abonnements particuliers par lesquels ils respectent les droits de tiers, p. ex. DeepL. + +=== Base légale dans la LMETA + +[qanda.unnumbered] +Quelle est la base légale de la publication des logiciels open source?:: +Selon l'art. 9 LMETAfootnote:[RS 172.019], les autorités fédérales de l'administration fédérale centrale doivent divulguer le code source des logiciels qu'elles développent ou font développer. Toute personne peut utiliser, développer ou modifier le logiciel sans devoir acquitter d'émoluments. ++ +Il ne peut être renoncé à la publication du code source qu'en raison de droits de tiers ou pour des motifs de sécurité. ++ +De plus amples informations figurent dans link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +Qu'entend-on par motifs de sécurité?:: +Les motifs de sécurité admis par l'art. 9 LMETA et la manière de les traiter sont définis au chapitre 3.2 de link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +Que sont les droits de tiers?:: +Les droits de tiers au sens de l'art. 9 LMETA et la manière de les traiter sont définis au chapitre 3.3 de link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +Les exceptions peuvent-elles être limitées dans le temps?:: +Les motifs justifiant une exception au sens de l'art. 9 LMETA (droits de tiers et motifs de sécurité) peuvent disparaître avec le temps. ++ +Si tel est le cas, le code source du logiciel doit être publié. + +Quelles conséquences juridiques faut-il envisager en cas de violation de l'art. 9 LMETA?:: +Il existe deux types de violations: ++ +-- +. Des droits de tiers sont violés. +. Une autorité fédérale refuse de publier un logiciel open source (p. ex. en invoquant des motifs de sécurité non fondés). + +Réponse au point 1: + +Il s'agira régulièrement d'une violation contractuelle et des prétentions en dommages-intérêts peuvent être invoquées conformément au code des obligations. + +Réponse au point 2: + +Cela n'a pas de conséquence directe. Si un tiers souhaite pouvoir utiliser le code source d'une autorité fédérale, il doit déposer une demande fondée sur la loi sur la transparence (LTrans; RS 152.3) auprès de l'autorité compétente. + +En cas d'intérêt marqué, il peut être judicieux d'envisager une publication dans l'intérêt des deux parties. Il n'existe aucune obligation de publier rétroactivement, mais cela reste possible à titre volontaire. +-- + +Des prétentions en responsabilité peuvent-elles être invoquées en cas de dommage causé par un logiciel open source?:: +En principe, la responsabilité devrait être exclue dans les contrats. Il n'est toutefois pas possible d'exclure la responsabilité pour négligence grave ou faute. Dans de tels cas, une autorité fédérale pourrait être tenue pour responsable en vertu de la loi sur la responsabilité (LRCF; RS 170.32). + +À partir de quelle date les logiciels doivent-ils être publiés?:: +Selon l'art. 9, al. 1, LMETA, les logiciels développés après le 1^er^ janvier 2024 doivent être publiés. ++ +Pour les logiciels développés avant le 1^er^ janvier 2024, une publication devrait être examinée lorsque des modifications importantes sont prévues. ++ +En cas d'intérêt considérable de tiers, les logiciels existants peuvent également être publiés à titre volontaire (le cas échéant avec une participation aux coûts). Dans ce cas, une communauté (voir link:em002-4.pdf[Em002-4]) devrait aussi être envisagée. ++ +Pour les petits scripts, la publication n'est généralement pas la meilleure option. Il peut exister des dépôts d'outils qui passent alors ensemble par le processus de publication. ++ +Pour les unités administratives de l'administration fédérale décentralisée soumises à la LMETA, l'obligation de publier s'applique depuis le 1^er^ mai 2025. Des exceptions à l'obligation de publier existent pour les logiciels développés sans fonds fédéraux et pour les logiciels de recherche (art. 3, al. 1, OMETA). + +Peut-on exiger la publication rétroactive de logiciels développés avant le 1^er^ janvier 2024?:: +La loi ne prévoit pas de publication rétroactive. ++ +En outre, les contrats conclus avant le 1^er^ janvier 2024 peuvent contenir des droits de tiers qui s'opposent à une publication. ++ +Si une nouvelle version majeure est prévue (major selon le Semantic Versioningfootnote:[https://fr.wikipedia.org/wiki/Gestion_de_versions[Gestion de versions -- Wikipédia]]), une publication de l'ensemble du logiciel devrait être envisagée. Sinon, il faudrait au moins publier le code source des nouvelles fonctionnalités. + +Sur quelle base un tiers devrait-il demander la publication du code source?:: +Un tiers devrait déposer une demande fondée sur la LTrans auprès de l'autorité compétente. + +== Rôles et responsabilités + +=== Rôle de la Chancellerie fédérale + +[qanda.unnumbered] +Qui met à disposition les aides de base pour la mise en œuvre?:: +Le secteur TNI de la Chancellerie fédérale met à la disposition des autorités fédérales des aides sous la forme d'un ensemble de documents accompagnant Em002. Cela comprend les directives stratégiques et d'autres guides pratiques, y compris la FAQ, ainsi que des listes de contrôle destinées à garantir une mise en œuvre conforme au droit. ++ +Les aides OSS sont mises à jour par le secteur TNI. + +La Chancellerie fédérale est-elle compétente pour accorder des exceptions (p. ex. pour des motifs de sécurité)?:: +Il n'existe aucun organe central qui statue sur les exceptions à l'obligation de publier prévue à l'art. 9 LMETA. Chaque autorité fédérale est responsable de sa propre mise en œuvre conforme au droit. ++ +Les départements peuvent édicter des réglementations. ++ +La liste de contrôle relative à l'exception générale selon l'art. 9 LMETA [BBL-CL] de l'OFCL devrait être remplie. + +=== Rôle des unités administratives + +[qanda.unnumbered] +Qui est responsable de la mise en œuvre opérationnelle des publications OSS?:: +Chaque autorité fédérale (p. ex. office, unité administrative) qui développe ou fait développer des logiciels est responsable de l'ensemble du processus de publication. ++ +Les départements peuvent fixer des réglementations contraignantes et des mécanismes de contrôle dans leur domaine de compétence, p. ex. pour éviter des atteintes à la réputation. ++ +Il est recommandé de désigner, par office fédéral, une personne responsable de l'OSS, p. ex. le responsable informatique (IM), l'architecte d'entreprise, le CSI ou le CPD, afin de garantir des processus uniformes et efficaces. Si rien n'est prévu, la direction de l'office est en principe responsable d'une mise en œuvre conforme. ++ +Cette personne pourrait ensuite également être consultée pour l'octroi d'exceptions à l'obligation de publier. + +=== Collaboration avec des fournisseurs tiers + +[qanda.unnumbered] +Comment les développements internes d'une autorité fédérale doivent-ils être publiés?:: +Le droit d'auteur naît auprès des personnes physiques qui ont développé le code source, mais il est généralement transféré à l'employeur par le contrat de travail. Dans les contrats avec des prestataires externes, il est important de délimiter clairement les nouveaux développements et de convenir de la cession ou du transfert contractuel du droit d'auteur. Enfin, pour les développements internes communs, les parties concernées doivent s'accorder sur la licence open source du code source sous laquelle le logiciel est publié en tant que projet open source autonome. Publier sous une licence open source ne signifie pas renoncer au droit d'auteur: celui-ci reste auprès des titulaires respectifs. Ce n'est que sur la base de leur droit d'auteur qu'ils peuvent se défendre juridiquement contre des violations de licence ou accorder, parallèlement aux licences OSS, des licences plus étendues. + +=== Communication de données personnelles + +[qanda.unnumbered] +À quelles conditions des données personnelles, par exemple celles des développeurs, peuvent-elles être publiées dans le cadre d'un logiciel open source?:: +Il n'existe pas de règle générale à ce sujet. La décision appartient au projet. ++ +Dans tous les cas, les dispositions applicables en matière de protection des données doivent être respectées. Selon l'art. 36, al. 1, LPD, les organes fédéraux ne peuvent communiquer des données personnelles que s'ils disposent d'une base légale pour ce faire. ++ +L'art. 36, al. 2, LPD prévoit notamment les exceptions suivantes: ++ +(b) La personne concernée a consenti à la communication. ++ +(e) La personne concernée a rendu ses données accessibles à tout un chacun et ne s'est pas opposée expressément au traitement. ++ +Dans la plupart des cas, il est conseillé d'obtenir préalablement le consentement des personnes concernées, celles-ci ayant généralement elles-mêmes intérêt à ce que leur travail soit visible publiquement. Si le consentement n'est pas donné ou si d'autres motifs s'opposent à la publication, le code source devrait être publié sans données personnelles, en ne mentionnant que l'autorité fédérale concernée. ++ +Ce consentement devrait être obtenu auprès des fournisseurs et des collaborateurs dans le cadre des processus d'acquisition et d'engagement. + +=== Acquisition + +[qanda.unnumbered] +Où trouver la documentation relative à l'acquisition de logiciels open source?:: +Avec la version 2.0, l'aide link:em002-7.pdf[Em002-7 Aspects stratégiques de l'acquisition et logiciels open source] a été mise à disposition. ++ +Le Centre de compétence des marchés publics de la Confédération (CCMP) a publié un nouvel aide-mémoire intitulé Acquisition de logiciels et art. 9 LMETA [KBB-MB] ainsi que deux documents «Critères types – acquisition LMETA et open source.docx» et «Textes contractuels types – développement de logiciels.docx». ++ +D'autres ressources sont disponibles sur la plateforme d'apprentissage et de modèles des marchés publics (www.perimap.admin.ch). ++ +Une aide supplémentaire est disponible sur l'intranet de l'OFCL (accessible uniquement sur le réseau de la Confédération) avec la directive Open source dans les acquisitions [BBL-WL] et la liste de contrôle relative à l'exception générale selon l'art. 9 LMETA [BBL-CL]. ++ +Les informations correspondantes se trouvent sur les pages intranet de l'OFCL (disponibles uniquement au sein de la Confédération). ++ +Liens: boîte à outils de l'OFCL pour l'acquisition informatique + +== Processus + +=== Instructions + +[qanda.unnumbered] +Existe-t-il des instructions centrales sur la manière de traiter les logiciels open source dans l'administration fédérale?:: +Oui, le secteur TNI de la Chancellerie fédérale met à disposition une documentation complète à cet effet. ++ +Il convient de noter que ces aides constituent une recommandation TIC et non une prescription contraignante. ++ +Lien vers les aides OSS + +Comment publier les développements internes d'une autorité fédérale réalisés dans le cadre de collaborations? Comment traiter les droits existants?:: +Lors du développement de logiciels, [.underline]#le droit d'auteur naît auprès des personnes physiques# qui ont développé le code source. ++ +Si la personne qui développe est liée par un contrat de travail, les développements appartiennent à l'employeur (art. 332 CO). ++ +Dans les contrats avec des prestataires externes, il est donc important de délimiter clairement les nouveaux développements et de convenir de la cession ou du transfert contractuel du droit d'auteur. Enfin, pour les développements internes communs, les parties concernées doivent s'accorder sur la licence open source du code source sous laquelle le logiciel est publié en tant que projet open source autonome. ++ +Publier sous une licence open source ne signifie pas renoncer au droit d'auteur: celui-ci reste auprès des titulaires respectifs. ++ +Ce n'est que sur la base de leur droit d'auteur qu'ils peuvent se défendre juridiquement contre des violations de licence ou accorder, parallèlement aux licences OSS, des licences plus étendues. ++ +Les [.underline]#droits originaux# devraient donc, si possible, toujours revenir à la Confédération pour les nouveaux développements ou les développements ultérieurs. Pour les autres participants, il convient d'utiliser des [.underline]#Contributor Licence Agreements# (CLA) ou un Developer Certificate of Origin (DCO). Des instructions à ce sujet figurent dans link:em002-3.pdf[Em002-3 Guide des licences OSS], link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source] et link:em002-4.pdf[Em002-4 Guide des communautés OSS]. + +Les modifications doivent-elles être publiées?:: +Selon l'art. 9 LMETA: oui, si elles ont été développées après le 1^er^ janvier 2024. ++ +Cela devrait toutefois se faire de manière à en tirer également un bénéfice. Le document link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source] informe sur le processus. + +Quand la publication est-elle «suffisante» au sens de la LMETA?:: +L'art. 9 LMETA n'est pas précis à cet égard et laisse une grande marge de manœuvre. Le code source doit être accessible au public. ++ +Les exigences de la loi sont par exemple déjà satisfaites par la simple publication du code source sous forme de fichier zip sur un site web. ++ +Pour en tirer un bénéfice, notamment par la publication de la documentation, etc., cela devrait se faire dans un dépôt de code selon les bonnes pratiques. Des informations à ce sujet figurent dans link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +À l'avenir, les bénéficiaires de prestations prescriront-ils aux fournisseurs de prestations la manière de publier le logiciel et d'en assurer la qualité?:: +Les règles de chaque autorité fédérale s'appliquent aussi bien aux fournisseurs qu'aux bénéficiaires de prestations. ++ +Il est toutefois judicieux d'intégrer les aides correspondantes aux endroits appropriés dans les processus et les quality gates existants. ++ +Sur la base de son expérience de développement, le fournisseur de prestations peut faire des propositions à ses bénéficiaires de prestations et traiter cela de manière uniforme (comme le processus de développement est traité de manière uniforme). + +=== Choix de la licence + +[qanda.unnumbered] +Sous quelle licence open source un logiciel doit-il être développé?:: +Il n'existe pas de prescriptions strictes quant au choix de la licence, pour autant que les conditions de licence des composants logiciels utilisés dans le logiciel à développer soient respectées. ++ +Pour les développements entièrement nouveaux, il convient de choisir un type de licence permettant une base large et durable pour les développements ultérieurs. ++ +Il est important à cet égard que la licence concernée soit largement acceptée dans la communauté de développeurs pertinente. ++ +*L'utilisation de l'AGPL (avec copyleft) et de la MIT est donc recommandée.* ++ +Ces deux licences représentent en quelque sorte les deux extrêmes du spectre des licences. ++ +L'AGPL, avec un copyleft très fort, impose durablement le principe «public money – public code». En cas de développements ultérieurs, notamment de solutions propriétaires, cela s'atténue en direction de la LGPL. ++ +La MIT est en revanche une licence très libérale, où presque tout est possible. ++ +Ces deux licences couvrent l'ensemble du spectre. Si, pour les licences permissives, on attache une importance particulière à ne pas mentionner la Confédération, la BSD-3 est à préférer à la MIT. ++ +Pour un choix plus détaillé des licences, nous renvoyons à link:em002-3.pdf[Em002-3 Guide des licences OSS]. + +=== Critères de qualité pour les logiciels open source + +[qanda.unnumbered] +Les logiciels open source doivent-ils satisfaire à certains critères de qualité?:: +En règle générale, tous les critères de qualité applicables à n'importe quel autre logiciel s'appliquent également. L'open source rend avant tout tout plus transparent. Pour respecter la licence, les critères d'une «bonne» publication et les éventuelles règles de la communauté, quelques points supplémentaires sont nécessaires. Ils sont présentés dans link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Liste de contrôle analyse et préparation OSS] et link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Liste de contrôle communauté OSS]. + +Quelles exigences sont prévues pour les quality gates?:: +Aucune prescription centrale n'est prévue. Les règles de l'autorité fédérale (unité administrative) qui développe le logiciel sont déterminantes. ++ +Hormis les exigences générales, il n'existe pas d'exigences particulières concernant la qualité des logiciels open source. HERMES sera toutefois mis à jour pour tenir compte de l'art. 9 LMETA. ++ +La publication est la manière dont l'administration fédérale se présente au public. Si cela n'est pas fait avec soin et professionnalisme, l'image publique d'une autorité fédérale peut rapidement en pâtir. + +Comment les directives de développement sont-elles réglées?:: +Hormis les exigences générales figurant dans les aides, il n'existe pas de prescriptions particulières concernant le développement de logiciels open source. Des indications figurent dans link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Liste de contrôle analyse et préparation OSS] et link:em002-4.pdf[Em002-4 Guide des communautés OSS]. + +Les logiciels open source doivent-ils être publiés à un endroit précis?:: +La Confédération n'exploite actuellement pas de dépôt central propre. Les autorités fédérales sont donc en principe libres quant au lieu de publication. Comme de nombreuses autorités fédérales utilisent déjà GitHub, cette plateforme est actuellement le choix privilégié. Il existe en outre un compte GitHub central (swiss) qui peut être utilisé. ++ +GitHub – swiss/index: un aperçu des organisations de dépôts actuelles. ++ +C'est le cas en particulier lorsqu'une autorité fédérale ne dispose pas encore d'un compte GitHub («organisation») ou n'utilise pas d'autre plateforme telle que GitLab ou BitBucket. ++ +Veuillez vous adresser à l'unité compétente du secteur TNI (opensource@bk.admin.ch) pour vérifier si une publication via le compte GitHub central (swiss) est judicieuse et possible. ++ +Les autorités fédérales devraient dans tous les cas conserver une copie locale du code. Il est également conseillé que chaque autorité fédérale dispose d'une stratégie correspondante et de règles internes correspondantes. ++ +D'autres recommandations figurent dans link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +=== Documentation + +[qanda.unnumbered] +Quelles exigences de documentation s'appliquent à la publication de logiciels open source?:: +Les aides mises à disposition par le secteur TNI de la Chancellerie fédérale informent sur les exigences légales; voir les aides OSS. ++ +Il est recommandé de remplir les listes de contrôle OSS et de les conserver de manière centralisée dans chaque autorité fédérale (unité administrative). + +=== Contributions de l'administration fédérale à des projets + +[qanda.unnumbered] +Une unité administrative peut-elle et doit-elle contribuer du code à un projet «upstream», et satisfait-elle ainsi aux exigences de l'art. 9 LMETA?:: +* Si les projets sont open source, l'art. 9 LMETA est satisfait. Les projets doivent toutefois aussi rester open source. À défaut, le code doit être publié à nouveau. +* Les contributions upstream ont l'avantage que la maintenance a lieu dans le projet upstream et que le bénéfice pour la communauté est maximisé. ++ +Les inconvénients suivants existent: moins de contrôle et d'influence; il faut éventuellement signer un CLA ou un DCO (voir link:em002-4.pdf[Em002-4] chapitre 3.3). Les contributions n'apparaissent en outre pas dans le publiccode.yml ni dans les répertoires de la Confédération. Un tout autre avantage est qu'avec de telles contributions, les développeurs continuent d'évoluer au sein de l'écosystème. +* Tant que les risques et la charge restent maîtrisables (contenu du CLA, collecte du code), les contributions upstream sont à saluer. +* La licence du projet upstream s'applique alors à la contribution. Cela correspond à la procédure décrite dans link:em002-3.pdf[Em002-3]. +* *Les forks de projets upstream sont à éviter:* toute la charge de maintenance et de mise à jour incombe alors à l'autorité fédérale. Un fork insuffisamment entretenu représente en outre un risque de sécurité. Le bénéfice pour la communauté est quasi nul. +* Les contributions à des projets upstream devraient en principe être appréciées positivement et activement discutées par les responsables de projet des autorités fédérales. +* Si le projet upstream appartient à l'administration fédérale et qu'il s'agit de contributions de tiers, link:em002-7.pdf[Em002-7] chapitre 9 apporte une aide. + +=== Support + +[qanda.unnumbered] +L'autorité fédérale est-elle tenue d'assurer le support des logiciels publiés?:: +Non, mais elle peut le faire si elle le souhaite. ++ +Selon l'art. 9, al. 5 et 6, LMETA, elle peut également percevoir des émoluments pour le support. + +Comment une autorité doit-elle procéder si elle souhaite facturer le support?:: +Pour des raisons de ressources, cela ne fait pas partie du projet actuel de mise à disposition d'aides. Si nécessaire, cela pourrait être intégré aux aides dans une étape ultérieure. Pour l'instant, chaque autorité fédérale règle cela elle-même. (Voir aussi link:em002-4.pdf[Em002-4 Guide des communautés OSS]) + +== Aides + +=== Instructions + +[qanda.unnumbered] +Existe-t-il des instructions centrales sur le travail avec des logiciels open source dans l'administration fédérale?:: +Oui, le secteur TNI de la Chancellerie fédérale met à disposition une documentation complète à cet effet dans le cadre de link:em002.pdf[Em002 Directives stratégiques pour les logiciels open source dans l'administration fédérale]. ++ +Les logiciels open source sont traités de manière générale dans link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale]. La publication au sens de l'art. 9 LMETA est traitée dans link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. + +=== Listes de contrôle + +[qanda.unnumbered] +Les aides comprennent-elles également des listes de contrôle pour la publication de logiciels open source?:: +Oui, le secteur TNI de la Chancellerie fédérale met les listes de contrôle suivantes à libre disposition: ++ +-- +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Liste de contrôle évaluation préalable OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Liste de contrôle analyse et préparation OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Liste de contrôle validation et publication OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Liste de contrôle communauté OSS] + +Voir également la *liste de contrôle relative à l'exception générale selon l'art. 9 LMETA* [BBL-CL] de l'OFCL. +-- + +=== Questions de sécurité + +[qanda.unnumbered] +Existe-t-il des risques de sécurité propres aux logiciels open source?:: +Dans ce contexte, on mentionne par exemple les attaques sur la chaîne d'approvisionnement, les vulnérabilités zero-day et les attaques par typosquatting. ++ +Ces questions de sécurité doivent être prises en compte pour les logiciels open source et leur acquisition, mais aussi de manière générale pour le développement de logiciels et l'acquisition de logiciels commerciaux. Elles peuvent tout au plus être quelque peu amplifiées si le projet OSS utilisé a manqué de rigueur lors de l'intégration de bibliothèques et de conteneurs. ++ +À moyen terme, une stratégie générale est nécessaire pour atténuer ces risques (via le NCSC/OFCS). Si nécessaire, des sources sûres pour les conteneurs et les bibliothèques doivent être mises à disposition. ++ +De manière générale, toutes les personnes responsables dans l'environnement informatique doivent connaître ces vecteurs d'attaque possibles. Les tentatives possibles comprennent: ++ +* Attaques sur la chaîne d'approvisionnement: `XZ_Utils_backdoor` (https://en.wikipedia.org/wiki/XZ_Utils_backdoor), Codecov (https://blog.gitguardian.com/codecov-supply-chain-breach/) +* Vulnérabilités zero-day: Log4Shell (https://www.ibm.com/de-de/think/topics/log4j) +* Typosquatting: https://en.wikipedia.org/wiki/Typosquatting + +La publication du code source augmente-t-elle le risque d'une copie malveillante d'une application? (p. ex. une application d'hameçonnage ou une fausse application):: +Non. Retenir le code source n'offre aucune protection efficace contre les fausses applications et est de surcroît incompatible avec l'art. 9 LMETA, qui établit le principe de l'open source pour l'administration fédérale. ++ +Le risque qu'un tiers crée une application visuellement identique pour collecter des données existe indépendamment de la publication du code source. Comme les systèmes de design de la Confédération sont publiquement accessibles, l'apparence d'une application peut être reproduite par un attaquant sans accès au code source. Les applications peuvent en outre être décompilées afin d'extraire des éléments tels que des logos de la version publiée. ++ +La sécurité et la confiance sont donc assurées non par l'obscurité, mais par la vérification et la sécurité cryptographique: ++ +-- +* *Signatures numériques:* les applications officielles doivent être signées cryptographiquement, ce qui garantit techniquement qu'une application est un original non modifié de la Confédération. Le système d'exploitation du smartphone vérifie cette signature. +* *Vérification par les magasins d'applications:* les magasins d'applications d'Apple et de Google proposent des procédures permettant de vérifier que les éditeurs sont des organes étatiques officiels. Google, par exemple, désigne explicitement les applications de la Chancellerie fédérale (ChF) comme des applications gouvernementales, ce qui donne aux utilisateurs confiance dans leur authenticité. +* *Builds reproductibles:* grâce à des builds indépendants et reproductibles, il est possible de démontrer techniquement que le code source publié correspond exactement à l'application disponible dans le magasin. + +Une exception générale pour des motifs de sécurité au sens de l'art. 9 LMETA n'est donc pas applicable aux applications. + +[.underline]#Recommandation:# + +Plutôt que de retenir le code source, l'accent devrait être mis sur les processus des magasins d'applications et sur la surveillance. Les canaux officiels doivent être tenus à jour et les fausses applications signalées sans délai afin d'être supprimées par les exploitants des plateformes (Apple et Google). +-- + +Est-il judicieux que les services demandeurs au sein de l'administration fédérale se regroupent pour acquérir des logiciels open source?:: +Oui, absolument. Cela peut se faire directement et de manière informelle entre unités administratives. ++ +Le problème est plutôt que les unités administratives connaissent mal les besoins des autres. ++ +Une solution pourrait consister à ce que les unités administratives tiennent une liste «most wanted» d'outils (ou de bibliothèques) open source à développer ou à mettre à disposition et qu'elles partagent cette liste. ++ +Une telle liste gérée de manière centralisée pourrait aussi aider à mieux analyser le besoin en composants open source et à mieux évaluer le degré de maturité de l'unité administrative. En fin de compte, un dépôt d'artefacts serait judicieux. ++ +La tenue d'une telle liste serait alors la tâche d'un OSPO, si un tel bureau était introduit. Au mieux, cela pourrait aussi se faire via Administration numérique suisse pour l'ensemble de la structure fédérale. + +== Questions juridiques + +=== Utilisation de l'anglais + +[qanda.unnumbered] +La Confédération peut-elle utiliser des licences dans leur langue originale, l'anglais?:: +Selon l'art. 9, al. 4, LMETA, il convient d'utiliser dans la mesure du possible et lorsque cela est judicieux des textes de licence établis au niveau international. ++ +Insister sur des licences OSS en langue allemande réduirait largement à néant le but de l'art. 9, al. 4, LMETA, car il existe très peu de textes de licence établis au niveau international pour lesquels une version dans l'une des langues officielles de la Suisse (allemand, français et italien selon l'art. 70, al. 1, Cst.) est reconnue comme déterminante pour l'interprétation. ++ +Cette situation est comparable à celle des filières en anglais dans les hautes écoles telles que l'EPFZ, où l'anglais est admis comme langue d'enseignement – sous réserve des trois conditions de l'art. 36 de la Constitution fédérale (commentaire saint-gallois de la Constitution fédérale, 4^e^ éd. 2023, art. 70 N 29; il faut donc une base légale, un intérêt public et la proportionnalité pour que l'anglais soit admis). ++ +Sur cette base, l'art. 9, al. 4, LMETA doit être interprété comme constituant la base légale de l'utilisation de licences en anglais, les licences internationales étant majoritairement rédigées en anglais. La disposition doit donc se référer à celles-ci. ++ +L'intérêt public de l'art. 9 LMETA réside notamment dans l'échange avec les communautés de développeurs concernées.footnote:[FF 2022 804, p. 66] Dans le secteur informatique, ces communautés sont typiquement internationales et utilisent l'anglais comme langue de travail. Limiter les licences à celles en langue allemande rendrait à tout le moins difficile, voire impossible, la coopération avec les communautés internationales, car un logiciel ainsi licencié ne serait guère utilisé au niveau international. Cela irait également à l'encontre du but visé par l'art. 9 LMETA. ++ +De plus, les licences OSS établies au niveau international sont par définition valables dans le monde entier. Le législateur entendait manifestement permettre l'utilisation internationale des logiciels publiés. Limiter les publications OSS aux licences en langue allemande restreindrait fortement l'utilisabilité internationale des logiciels publiés. ++ +Par ailleurs, l'anglais est solidement établi comme langue standard dans la sphère commerciale du secteur informatique, dont font également partie les publications OSS. L'utilisation de licences en anglais constitue donc une restriction raisonnable et proportionnée des droits des partenaires contractuels. De plus, les licences en anglais sont à la fois appropriées et nécessaires pour atteindre les objectifs visés. + +=== Exclusion de responsabilité + +[qanda.unnumbered] +La plupart des licences OSS contiennent des clauses d'exclusion de responsabilité. Est-ce suffisant ou des mesures supplémentaires sont-elles nécessaires? Qu'en est-il des logiciels défectueux? (en tenant compte de la loi sur la responsabilité):: +Les licences applicables excluent la responsabilité pour négligence légère. *La responsabilité ne peut être exclue pour négligence grave ou acte intentionnel.* Les risques de responsabilité pratiques sont toutefois minimes. ++ +Diffuser un logiciel modifié sous une licence incompatible avec celle du logiciel d'origine (par exemple sous une licence MIT sans copyleft alors que le code initialement utilisé était sous licence GPL avec copyleft) viole la licence d'origine. En l'absence de protection de la bonne foi en droit de la propriété intellectuelle, cela ne permet ni aux autres utilisateurs d'utiliser soudainement le logiciel d'origine sous la nouvelle licence, ni ne crée d'obligation exécutoire de proposer la nouvelle licence aux conditions de la licence d'origine. La seule conséquence est la violation de la licence d'origine, pouvant entraîner des prétentions en dommages-intérêts (analogie de licence) contre une autorité fédérale. ++ +Ce risque peut toutefois être maîtrisé par un contrôle systématique conformément aux guides, comme cela est aujourd'hui la norme dans l'industrie du logiciel. Concrètement, la mise sous licence exige l'établissement d'une nomenclature de tous les composants logiciels préexistants intégrés dans le nouveau logiciel, qui doit être strictement respectée lors de la mise sous licence. ++ +Lorsque des droits de tiers existent, l'art. 9, al. 1, LMETA n'exige de toute façon pas la publication du logiciel (ou éventuellement uniquement de ses parties nouvellement écrites; cela devrait être clarifié dans les guides). ++ +Selon l'art. 11 de la loi sur la responsabilité, la responsabilité de la Confédération relève du droit civil lorsqu'elle agit comme sujet de droit civil. C'est le cas selon l'art. 9, al. 2, LMETA; une responsabilité supplémentaire fondée sur la loi sur la responsabilité est par conséquent exclue. + +=== Logiciels permissifs + +[qanda.unnumbered] +Si un logiciel repose sur une bibliothèque ou un composant de programme publié sous une licence permissive, le logiciel principal (sans la bibliothèque) peut-il être publié sous une licence non permissive?:: +Oui, cela ne pose pas de problème. Voir les indications données dans le guide link:em002-3.pdf[Em002-3]. + +=== Dispositions de licence + +[qanda.unnumbered] +Un logiciel peut-il être utilisé par plusieurs offices? Quelles dispositions de licence s'appliquent au sein de l'administration fédérale? L'administration fédérale est-elle considérée comme un groupe de sociétés? (Cela concerne les logiciels open source de tiers non modifiés.):: +La diffusion de logiciels sous licences permissives ne pose généralement pas de problème. ++ +Avec les licences copyleft, la question se pose toutefois de savoir si la diffusion au sein de l'administration fédérale centrale ou décentralisée déclenche des obligations de copyleft et risque ainsi de compromettre la confidentialité des développements propres à la Confédération. Lors de la remise à des institutions de l'administration fédérale décentralisée dotées de leur propre personnalité juridique, c'est effectivement le cas, alors que cela ne s'applique pas au sein de l'administration fédérale centrale, tous les départements agissant sous la même personnalité juridique. ++ +Les sociétés d'un groupe sont juridiquement indépendantes mais restent sous le contrôle économique de la société mère. La doctrine juridique considère que la remise de code sous licence copyleft à une société du groupe déclenche des obligations de copyleft. Comme les sociétés d'un groupe reçoivent souvent des logiciels open source lors du développement de logiciels, elles ont besoin de leur propre droit d'utilisation; la remise à une société du groupe déclenche donc des obligations de copyleft. ++ +En revanche, la remise au sein de l'administration fédérale centrale ne déclenche pas d'obligations de copyleft. Pour l'administration fédérale décentralisée, où existent des personnalités juridiques distinctes, ce qui précède s'applique: la remise déclenche des obligations de copyleft, et le logiciel doit être proposé sous forme de code source aux mêmes conditions de licence que le logiciel d'origine. Une instruction interdisant de remettre le logiciel à des tiers violerait la licence et pourrait également contrevenir à l'art. 9 LMETA. + +=== Rapport entre la LTrans et la LMETA + +[qanda.unnumbered] +Quel est le rapport entre la loi sur la transparence (LTrans) et la LMETA?:: +Selon l'art. 6 LTrans, les documents officiels doivent être remis. Est un document officiel au sens de l'art. 5, al. 1, LTrans toute information enregistrée sur un quelconque support, qui se trouve en possession d'une autorité et qui concerne l'accomplissement d'une tâche publique. Les logiciels open source relèvent en principe de la LTrans. La LTrans s'applique lorsqu'une personne demande à un département ou à un office le code source pour son propre usage. L'office doit divulguer le code source à la personne concernée, à moins que des exceptions au sens de l'art. 7 LTrans ne s'appliquent. Si l'office refuse de divulguer le code source, la procédure LTrans s'applique. Le cas est différent lorsque quelqu'un exige que l'office publie le code source sur son site web. La procédure ne suit alors pas la LTrans mais la LMETA. Comme la LMETA ne prévoit elle-même aucune procédure, le droit administratif général doit suffire. Celui-ci offre soit la possibilité d'une décision, soit celle d'un acte matériel, soit celle d'une décision en constatation de l'office concerné. Cette décision peut ensuite être contestée devant le Tribunal administratif fédéral. ++ +Si des obligations de divulgation pour des logiciels développés par une autorité fédérale sont concevables au sens de la LTrans (lorsque les conditions correspondantes sont remplies), il convient de noter que la divulgation d'un logiciel selon la LTrans n'accorde pas automatiquement une licence OSS. L'utilisation d'un logiciel divulgué selon la LTrans se limite donc aux buts fixés par la LTrans, tels que la consultation du code ou son exécution à des fins d'observation. La divulgation selon la LTrans ne comprend toutefois pas de licence pour une utilisation régulière du logiciel ni comme base pour le développement d'autres logiciels (détails dans T. Poledna/S. Schlauri/S. Schweizer, Rechtliche Voraussetzungen der Nutzung von Open-Source-Software in der öffentlichen Verwaltung, insbesondere des Kantons Bern [trad.: Conditions juridiques de l'utilisation de logiciels open source dans l'administration publique, en particulier dans le canton de Berne], Zurich 2017, https://carlgrossmann.com/?ddownload=11748, N 393 ss). ++ +La décision de mettre un logiciel sous licence OSS, même s'il relève de la LTrans, continue de suivre la LMETA; il n'existe toujours pas de droit à l'octroi d'une licence. ++ +Il est important de noter que les logiciels développés avant le 1^er^ janvier 2024, bien que non soumis à la LMETA, doivent néanmoins être remis conformément à la LTrans. + +=== OSS et protection des données + +[qanda.unnumbered] +Les données personnelles des développeurs peuvent-elles être publiées sans autre? Quels aspects de la protection des données faut-il prendre en compte?:: +Du point de vue de la protection des données, la publication de données personnelles (p. ex. noms ou adresses électroniques) est problématique si les collaborateurs n'y ont pas consenti au préalable. En effet, la communication de données personnelles peut en principe être évitée par la pseudonymisation ou l'anonymisation des entrées du dépôt, ce qui serait requis selon le principe de la minimisation des données et de la proportionnalité (art. 6, al. 2, LPD). ++ +Un tel consentement devrait toutefois être généralement facile à obtenir, les collaborateurs ayant souvent intérêt à montrer publiquement leurs compétences (ainsi Poledna/Schlauri/Schweizer, N 68, avec renvois). Le consentement peut aussi être implicite par l'utilisation des noms dans le dépôt, du moins en l'absence d'instruction contraire de l'employeur. ++ +Il est néanmoins conseillé de régler dans les contrats la responsabilité du fournisseur pour les données personnelles de ses collaborateurs. + +== Généralités + +[qanda.unnumbered] +Le fait qu'un logiciel open source soit utilisé à des fins commerciales ou non commerciales joue-t-il un rôle?:: +Les licences open source ne distinguent généralement pas entre utilisation commerciale et non commerciale. Un logiciel open source peut donc être utilisé à toutes fins, y compris pour des applications commerciales. Les fournisseurs commerciaux tentent souvent d'intégrer des composants open source dans des produits propriétaires. Cela n'est admissible que si les composants open source ne sont pas placés sous une licence à effet copyleft (voir aussi link:em002-3.pdf[Em002-3 Guide des licences OSS]). + +Existe-t-il des restrictions quant aux organisations admises pour les communautés?:: +En fin de compte, chaque cas doit toujours être examiné individuellement: qui se trouve derrière, et quels engagements sont pris? ++ +Tant qu'aucun argent ne circule et qu'aucun engagement formel n'est pris, la situation est relativement simple et sans problème. ++ +Des affiliations à des associations sont possibles, tout comme une collaboration informelle. ++ +Il est possible de déléguer des affiliations à eOperations ou à des organisations similaires. ++ +Voir aussi link:em002-4.pdf[Em002-4 Guide des communautés OSS], chapitre 3.1 + +Quel est le rapport entre la norme ISO 5230 et les guides?:: +La norme ISO 5230:2020 a été examinée et prise en compte lors de l'élaboration des guides. La liste ci-après présente les exigences de la norme et la manière dont elles ont été traitées dans les guides: ++ +-- +*3.1 Programme foundation* + +* Les «link:em002.pdf[Em002 Directives stratégiques pour les logiciels open source dans l'administration fédérale]» et les stratégies référencées constituent le cadre. La mise en œuvre incombe aux départements et offices concernés. + +*3.2 Relevant tasks defined and supported* + +* Le guide «link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]» et les listes de contrôle définissent des tâches concrètes pour la publication. Il n'existe actuellement pas d'organe central au sein de l'administration fédérale. + +*3.3 Open source content review and approval* + +* Le processus de publication est décrit dans l'aide «link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]». Celle-ci renvoie également à l'existence d'une Software Bill of Materials (SBOM). +* L'aide «link:em002-3.pdf[Em002-3 Guide des licences OSS]» informe de manière complète sur la mise sous licence. + +*3.4 Compliance artifact creation and delivery* + +* Le processus de publication est décrit dans l'aide «link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]». Celle-ci renvoie également à l'existence d'une Software Bill of Materials (SBOM). +* La mise en œuvre n'est pas décrite plus en détail et a lieu au sein des départements ou des offices. + +*3.5 Understanding open source community engagements* + +* L'aide «link:em002-4.pdf[Em002-4 Guide des communautés OSS]» décrit comment mettre en place et entretenir une communauté. Un concept doit être défini et mis en œuvre pour chaque projet. + +*3.6 Adherence to the specification requirements* + +* Le chapitre final énonce des exigences pour les organisations ou projets souhaitant confirmer explicitement le respect des exigences OpenChain. +-- ++ +La norme ISO esquisse d'autres domaines de responsabilité d'un Open Source Programme Office (OSPO) qui ne sont pas couverts par les guides. + +== Annexe + +=== Abréviations + +[horizontal] +include::partials/abbreviations.fr.adoc[tags=abbr-em002-6] + +=== Glossaire + +D'autres termes figurent dans TERMDAT, la https://www.bk.admin.ch/bk/fr/home/dokumentation/sprachen/termdat.html[banque de données terminologique] de l'administration fédérale. + +include::partials/glossary.fr.adoc[tags=gloss-em002-6] +endif::[] + +ifeval::["{lang}" == "it"] +NOTE: Il presente documento è una bozza in continua evoluzione e fa parte degli ausili destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Per ulteriori informazioni si veda il {url-repo}/tree/main[README]. + +== Situazione iniziale e scopo + +=== Situazione iniziale e scopo delle FAQ + +In relazione agli ausili per la pubblicazione di software open source emergono regolarmente alcune domande. La raccolta seguente risponde alle domande più frequenti e intende migliorare la comprensione di singoli temi e aspetti. + +=== Struttura e articolazione + +Le FAQ sono articolate per tema: + +[start=2] +. Concetti e definizioni +. Ruoli e responsabilità +. Processo +. Ausili +. Questioni giuridiche +. Aspetti generali + +== Concetti e definizioni + +=== Software open source + +[qanda.unnumbered] +Che cosa si intende per software open source?:: +Questo concetto è definito in link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale]. + +=== Software e licenze + +[qanda.unnumbered] +Che cosa si intende per software?:: +Questo concetto è definito in link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale]. Per le licenze si veda link:em002-3.pdf[Em002-3 Guida alle licenze OSS]. + +Che cosa si intende per licenze?:: +Si tratta qui di licenze software. Ulteriori informazioni sono riportate in link:em002-3.pdf[Em002-3 Guida alle licenze OSS]. + +I modelli di IA sviluppati internamente vanno considerati software e quindi sottoposti ai requisiti giuridici dell'art. 9 LMeCA? E che dire dei dati di addestramento?:: +Open source indica software il cui codice sorgente è liberamente accessibile e modificabile a condizioni minime. Vi rientrano anche i modelli di IA addestrati internamente (compresi algoritmo, procedura di addestramento e codice). ++ +I modelli di IA sono addestrati sulla base di dati, eventualmente Open (Government) Data. Per Open Data si intendono insiemi di dati che possono essere liberamente utilizzati, condivisi ed elaborati. I modelli di IA i cui dati di addestramento si basano su Open (Government) Data sono considerati software ai sensi della LMeCA e devono pertanto essere pubblicati anch'essi. ++ +Se tuttavia i dati di addestramento contengono dati personali (degni di particolare protezione) o informazioni classificate, si può rinunciare alla pubblicazione per motivi di sicurezza. Nel pubblicare un modello di IA come open source, i dati di addestramento non devono necessariamente essere pubblicati; ciò corrisponde tuttavia allo spirito dell'open source ed è vivamente raccomandato dalla comunità open source. Per ulteriori informazioni sull'IA rinviamo alla Rete di competenze per l'intelligenza artificiale (CNAI).footnote:[https://cnai.swiss/[CNAI] nonché art. 10 LMeCA] + +Gli strumenti con funzionalità di IA generativa (p. es. GitHub Copilot) devono essere verificati prima dell'impiego affinché non siano violati diritti di proprietà intellettuale di terzi o della Confederazione?:: +I contenuti generati da un modello di IA non possono essere protetti dal diritto d'autore, poiché manca un'attività creativa. I contenuti generati dall'IA che attingono a opere protette di terzi possono tuttavia violare i diritti di tali terzi. Inoltre, poiché gli output dell'IA sono notoriamente inaffidabili, dovrebbero essere utilizzati solo dopo un attento esame caso per caso. ++ +Gli operatori di sistemi di IA possono inoltre riservarsi nelle loro condizioni d'uso il diritto di utilizzare gli input per addestrare il sistema. Ciò può a sua volta comportare che gli input o parti di essi vengano mostrati a terzi. Laddove ciò non possa essere escluso, occorre garantire che gli input non violino i diritti della Confederazione o di terzi. ++ +Si raccomanda di esaminare e autorizzare singolarmente l'impiego di strumenti di IA. Gli strumenti non autorizzati non possono essere utilizzati, ma i collaboratori possono chiedere l'autorizzazione di uno strumento. Spesso è opportuno disciplinare tali questioni contrattualmente con il fornitore; alcuni fornitori offrono anche abbonamenti speciali con cui rispettano i diritti di terzi, p. es. DeepL. + +=== Base legale nella LMeCA + +[qanda.unnumbered] +Qual è la base legale per la pubblicazione di software open source?:: +Secondo l'art. 9 LMeCAfootnote:[RS 172.019] le autorità federali dell'Amministrazione federale centrale devono divulgare il codice sorgente del software che sviluppano o fanno sviluppare. Ogni persona può utilizzare, sviluppare ulteriormente o modificare il software senza dover pagare emolumenti. ++ +Si può rinunciare alla pubblicazione del codice sorgente soltanto per diritti di terzi o per motivi di sicurezza. ++ +Ulteriori informazioni sono riportate in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +Che cosa si intende per motivi di sicurezza?:: +I motivi di sicurezza ammessi dall'art. 9 LMeCA e il modo di trattarli sono definiti nel capitolo 3.2 di link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +Che cosa sono i diritti di terzi?:: +I diritti di terzi ai sensi dell'art. 9 LMeCA e il modo di trattarli sono definiti nel capitolo 3.3 di link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +Le eccezioni possono essere limitate nel tempo?:: +I motivi che giustificano un'eccezione ai sensi dell'art. 9 LMeCA (diritti di terzi e motivi di sicurezza) possono venir meno con il tempo. ++ +In tal caso il codice sorgente del software deve essere pubblicato. + +Quali conseguenze giuridiche occorre considerare in caso di violazione dell'art. 9 LMeCA?:: +Vi sono due tipi di violazioni: ++ +-- +. sono violati diritti di terzi; +. un'autorità federale rifiuta di pubblicare software open source (p. es. invocando motivi di sicurezza non fondati). + +Risposta al punto 1: + +Si tratterà regolarmente di una violazione contrattuale e potranno essere fatte valere pretese di risarcimento danni secondo il Codice delle obbligazioni. + +Risposta al punto 2: + +Ciò non ha conseguenze dirette. Se un terzo vuole poter utilizzare il codice sorgente di un'autorità federale, deve presentare all'autorità competente una domanda fondata sulla legge sulla trasparenza (LTras; RS 152.3). + +In presenza di un forte interesse può essere opportuno valutare una pubblicazione nell'interesse di entrambe le parti. Non sussiste alcun obbligo di pubblicazione retroattiva, che resta però possibile su base volontaria. +-- + +In caso di danno causato da software open source possono essere fatte valere pretese di responsabilità?:: +In linea di principio la responsabilità dovrebbe essere esclusa nei contratti. Non è tuttavia possibile escludere la responsabilità per negligenza grave o colpa. In tali casi un'autorità federale potrebbe essere chiamata a rispondere secondo la legge sulla responsabilità (LResp; RS 170.32). + +A partire da quale data il software deve essere pubblicato?:: +Secondo l'art. 9 cpv. 1 LMeCA deve essere pubblicato il software sviluppato dopo il 1° gennaio 2024. ++ +Per il software sviluppato prima del 1° gennaio 2024 la pubblicazione dovrebbe essere valutata quando sono previste modifiche rilevanti. ++ +In presenza di un interesse considerevole da parte di terzi, anche il software esistente può essere pubblicato su base volontaria (eventualmente con partecipazione ai costi). In tal caso occorre valutare anche una community (cfr. link:em002-4.pdf[Em002-4]). ++ +Per gli script di piccole dimensioni la pubblicazione non è di regola l'opzione migliore. Possono esistere repository di strumenti che passano poi insieme attraverso il processo di pubblicazione. ++ +Per le unità amministrative dell'Amministrazione federale decentralizzata sottoposte alla LMeCA l'obbligo di pubblicazione vige dal 1° maggio 2025. Sono previste eccezioni all'obbligo di pubblicazione per il software sviluppato senza fondi federali e per il software di ricerca (art. 3 cpv. 1 OMeCA). + +È possibile esigere la pubblicazione retroattiva di software sviluppato prima del 1° gennaio 2024?:: +La legge non prevede una pubblicazione retroattiva. ++ +Inoltre, i contratti conclusi prima del 1° gennaio 2024 possono contenere diritti di terzi che ostano a una pubblicazione. ++ +Se è prevista una nuova versione principale (major secondo il Semantic Versioningfootnote:[https://it.wikipedia.org/wiki/Controllo_versione[Controllo versione -- Wikipedia]]), occorre valutare la pubblicazione dell'intero software. In caso contrario dovrebbe essere pubblicato almeno il codice sorgente delle nuove funzionalità. + +Su quale base un terzo dovrebbe chiedere la pubblicazione del codice sorgente?:: +Un terzo dovrebbe presentare all'autorità competente una domanda fondata sulla LTras. + +== Ruoli e responsabilità + +=== Ruolo della Cancelleria federale + +[qanda.unnumbered] +Chi mette a disposizione gli ausili di base per l'attuazione?:: +Il settore TDT della Cancelleria federale mette a disposizione delle autorità federali ausili sotto forma di raccolta di documenti relativa a Em002. Ne fanno parte le direttive strategiche e altre guide pratiche, comprese le FAQ, nonché liste di controllo volte a garantire un'attuazione conforme al diritto. ++ +Gli ausili OSS sono aggiornati dal settore TDT. + +La Cancelleria federale è competente per la concessione di eccezioni (p. es. per motivi di sicurezza)?:: +Non esiste un organo centrale che decide sulle eccezioni all'obbligo di pubblicazione di cui all'art. 9 LMeCA. Ogni autorità federale è responsabile della propria attuazione conforme al diritto. ++ +I dipartimenti possono emanare disposizioni. ++ +La lista di controllo per l'eccezione generale secondo l'art. 9 LMeCA [BBL-CL] dell'UFCL dovrebbe essere compilata. + +=== Ruolo delle unità amministrative + +[qanda.unnumbered] +Chi è responsabile dell'attuazione operativa delle pubblicazioni OSS?:: +Ogni autorità federale (p. es. ufficio, unità amministrativa) che sviluppa o fa sviluppare software è responsabile in proprio dell'intero processo di pubblicazione. ++ +I dipartimenti possono stabilire disposizioni vincolanti e meccanismi di controllo nel loro ambito di competenza, p. es. per evitare danni reputazionali. ++ +Si raccomanda di designare per ogni ufficio federale una persona responsabile dell'OSS, p. es. il responsabile informatico (IM), l'enterprise architect, l'ISBO o il DSBO, al fine di garantire processi uniformi ed efficienti. In assenza di una designazione, la responsabilità di un'attuazione conforme spetta di regola alla direzione dell'ufficio. ++ +Tale persona potrebbe poi essere consultata anche per la concessione di eccezioni all'obbligo di pubblicazione. + +=== Collaborazione con fornitori terzi + +[qanda.unnumbered] +Come vanno pubblicati gli sviluppi interni di un'autorità federale?:: +Il diritto d'autore sorge in capo alle persone fisiche che hanno sviluppato il codice sorgente, ma di regola viene trasferito al datore di lavoro tramite il contratto di lavoro. Nei contratti con fornitori di servizi esterni è importante delimitare chiaramente i nuovi sviluppi e convenire la cessione o il trasferimento contrattuale del diritto d'autore. Infine, per gli sviluppi interni comuni le parti coinvolte devono accordarsi sulla licenza open source del codice sorgente con cui il software è pubblicato come progetto open source autonomo. La pubblicazione sotto una licenza open source non significa rinunciare al diritto d'autore: questo resta in capo ai rispettivi titolari. Solo sulla base del loro diritto d'autore essi possono difendersi giuridicamente contro violazioni di licenza o concedere, parallelamente alle licenze OSS, licenze più estese. + +=== Comunicazione di dati personali + +[qanda.unnumbered] +A quali condizioni possono essere pubblicati dati personali, ad esempio degli sviluppatori, nell'ambito di software open source?:: +Non esiste una regola generale al riguardo. La decisione spetta al progetto. ++ +In ogni caso vanno rispettate le disposizioni applicabili in materia di protezione dei dati. Secondo l'articolo 36 capoverso 1 LPD gli organi federali possono comunicare dati personali solo se dispongono di una base legale. ++ +L'articolo 36 capoverso 2 LPD prevede tra l'altro le seguenti eccezioni: ++ +(b) la persona interessata ha acconsentito alla comunicazione; ++ +(e) la persona interessata ha reso i suoi dati accessibili a chiunque e non si è opposta espressamente al trattamento. ++ +Nella maggior parte dei casi è opportuno ottenere preventivamente il consenso delle persone interessate, che di regola hanno esse stesse interesse a che il loro lavoro sia visibile pubblicamente. Se il consenso non viene dato o se altri motivi si oppongono alla pubblicazione, il codice sorgente dovrebbe essere pubblicato senza dati personali, con il solo riferimento all'autorità federale interessata. ++ +Tale consenso dovrebbe essere ottenuto da fornitori e collaboratori nell'ambito dei processi di acquisto e di assunzione. + +=== Acquisti + +[qanda.unnumbered] +Dove trovo la documentazione relativa agli acquisti di software open source?:: +Con la versione 2.0 è stato messo a disposizione l'ausilio link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e software open source]. ++ +Il Centro di competenza per gli acquisti pubblici della Confederazione (CCAP) ha pubblicato un nuovo promemoria intitolato Acquisto di software e art. 9 LMeCA [KBB-MB] nonché due documenti «Criteri tipo – acquisto LMeCA e open source.docx» e «Testi contrattuali tipo – sviluppo di software.docx». ++ +Ulteriori risorse sono disponibili sulla piattaforma di apprendimento e di modelli degli acquisti pubblici (www.perimap.admin.ch). ++ +Ulteriore sostegno è disponibile sull'intranet dell'UFCL (accessibile solo sulla rete della Confederazione) con la direttiva Open source negli acquisti [BBL-WL] e la lista di controllo per l'eccezione generale secondo l'art. 9 LMeCA [BBL-CL]. ++ +Le relative informazioni si trovano sulle pagine intranet dell'UFCL (disponibili solo all'interno della Confederazione). ++ +Link: cassetta degli attrezzi dell'UFCL per gli acquisti informatici + +== Processo + +=== Istruzioni + +[qanda.unnumbered] +Esistono istruzioni centrali su come trattare il software open source nell'Amministrazione federale?:: +Sì, il settore TDT della Cancelleria federale mette a disposizione una documentazione completa a tale scopo. ++ +Va osservato che questi ausili costituiscono una raccomandazione TIC e non una prescrizione vincolante. ++ +Link agli ausili OSS + +Come vanno pubblicati gli sviluppi interni di un'autorità federale realizzati nell'ambito di collaborazioni? Come vanno trattati i diritti esistenti?:: +Nello sviluppo di software [.underline]#il diritto d'autore sorge in capo alle persone fisiche# che hanno sviluppato il codice sorgente. ++ +Se la persona che sviluppa è legata da un rapporto di lavoro, gli sviluppi appartengono al datore di lavoro (art. 332 CO). ++ +Nei contratti con fornitori di servizi esterni è quindi importante delimitare chiaramente i nuovi sviluppi e convenire la cessione o il trasferimento contrattuale del diritto d'autore. Infine, per gli sviluppi interni comuni le parti coinvolte devono accordarsi sulla licenza open source del codice sorgente con cui il software è pubblicato come progetto open source autonomo. ++ +La pubblicazione sotto una licenza open source non significa rinunciare al diritto d'autore: questo resta in capo ai rispettivi titolari. ++ +Solo sulla base del loro diritto d'autore essi possono difendersi giuridicamente contro violazioni di licenza o concedere, parallelamente alle licenze OSS, licenze più estese. ++ +I [.underline]#diritti originari# dovrebbero pertanto, se possibile, spettare sempre alla Confederazione per i nuovi sviluppi o gli sviluppi successivi. Per gli altri partecipanti occorre utilizzare [.underline]#Contributor Licence Agreement# (CLA) o un Developer Certificate of Origin (DCO). Le relative istruzioni sono riportate in link:em002-3.pdf[Em002-3 Guida alle licenze OSS], link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source] e link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +Le modifiche devono essere pubblicate?:: +Secondo l'art. 9 LMeCA: sì, se sono state sviluppate dopo il 1° gennaio 2024. ++ +Ciò dovrebbe però avvenire in modo da generare anche un beneficio. Il documento link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source] informa sul processo. + +Quando la pubblicazione è «sufficiente» ai sensi della LMeCA?:: +L'art. 9 LMeCA non è specifico al riguardo e lascia un ampio margine di manovra. Il codice sorgente deve essere accessibile al pubblico. ++ +I requisiti della legge sono per esempio già soddisfatti con la semplice pubblicazione del codice sorgente in un file zip su un sito web. ++ +Per ottenere un beneficio, anche mediante la pubblicazione della documentazione ecc., ciò dovrebbe avvenire in un repository di codice secondo le buone pratiche. Informazioni al riguardo sono riportate in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +In futuro i beneficiari di prestazioni prescriveranno ai fornitori di prestazioni come pubblicare il software e come garantirne la qualità?:: +Sia per i fornitori sia per i beneficiari di prestazioni valgono le regole della rispettiva autorità federale. ++ +È tuttavia opportuno integrare i relativi ausili nei punti adeguati dei processi e dei quality gate esistenti. ++ +Sulla base della propria esperienza di sviluppo, il fornitore di prestazioni può formulare proposte per i suoi beneficiari di prestazioni e trattare la questione in modo uniforme (così come il processo di sviluppo è trattato in modo uniforme). + +=== Scelta della licenza + +[qanda.unnumbered] +Sotto quale licenza open source deve essere sviluppato il software?:: +Non esistono prescrizioni rigide sulla scelta della licenza, purché siano rispettate le condizioni di licenza dei componenti software utilizzati nel software da sviluppare. ++ +Per gli sviluppi completamente nuovi occorre scegliere un tipo di licenza che consenta una base ampia e sostenibile per gli sviluppi successivi. ++ +A tal fine è importante che la licenza in questione sia ampiamente accettata nella community di sviluppatori pertinente. ++ +*Si raccomanda pertanto l'impiego di AGPL (con copyleft) e MIT.* ++ +Queste due licenze rappresentano, per così dire, i due estremi dello spettro delle licenze. ++ +L'AGPL, con un copyleft molto forte, impone durevolmente il principio «public money – public code». In caso di sviluppi successivi, segnatamente di soluzioni proprietarie, ciò si attenua in direzione della LGPL. ++ +La MIT è invece una licenza molto liberale, con la quale è possibile quasi tutto. ++ +Le due licenze coprono l'intero spettro. Se, nel caso di licenze permissive, si attribuisce particolare importanza al fatto di non menzionare la Confederazione, la BSD-3 è da preferire alla MIT. ++ +Per una scelta più dettagliata delle licenze rinviamo a link:em002-3.pdf[Em002-3 Guida alle licenze OSS]. + +=== Criteri di qualità per il software open source + +[qanda.unnumbered] +Il software open source deve soddisfare determinati criteri di qualità?:: +Di regola valgono tutti i criteri di qualità applicabili a qualsiasi altro software. L'open source rende soprattutto tutto più trasparente. Per rispettare la licenza, i criteri di una «buona» pubblicazione e le eventuali regole della community sono necessari alcuni punti supplementari. Questi sono illustrati in link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Lista di controllo analisi e preparazione OSS] e link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Lista di controllo community OSS]. + +Quali requisiti sono previsti per i quality gate?:: +Non sono previste prescrizioni centrali. Sono determinanti le regole dell'autorità federale (unità amministrativa) che sviluppa il software. ++ +A parte i requisiti generali non esistono requisiti particolari per la qualità del software open source. HERMES sarà tuttavia aggiornato in vista dell'art. 9 LMeCA. ++ +La pubblicazione è il modo in cui l'Amministrazione federale si presenta al pubblico. Se ciò non avviene con cura e professionalità, l'immagine pubblica di un'autorità federale può rapidamente risentirne. + +Come sono disciplinate le direttive di sviluppo?:: +A parte i requisiti generali contenuti negli ausili non esistono prescrizioni particolari sullo sviluppo di software open source. Indicazioni sono riportate in link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Lista di controllo analisi e preparazione OSS] e link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +Il software open source deve essere pubblicato in un luogo determinato?:: +Attualmente la Confederazione non gestisce un proprio repository centrale. Le autorità federali sono quindi in linea di principio libere nella scelta del luogo di pubblicazione. Poiché molte autorità federali utilizzano già GitHub, questa piattaforma è attualmente la scelta preferita. Esiste inoltre un account GitHub centrale (swiss) che può essere utilizzato. ++ +GitHub – swiss/index: una panoramica delle attuali organizzazioni di repository. ++ +Ciò vale in particolare quando un'autorità federale non dispone ancora di un account GitHub («organizzazione») o non utilizza un'altra piattaforma come GitLab o BitBucket. ++ +Si prega di rivolgersi all'unità competente del settore TDT (opensource@bk.admin.ch) per verificare se una pubblicazione tramite l'account GitHub centrale (swiss) sia opportuna e possibile. ++ +Le autorità federali dovrebbero in ogni caso conservare una copia locale del codice. È inoltre opportuno che ogni autorità federale disponga di una strategia corrispondente e di corrispondenti regole interne. ++ +Ulteriori raccomandazioni sono riportate in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +=== Documentazione + +[qanda.unnumbered] +Quali requisiti di documentazione valgono per la pubblicazione di software open source?:: +Gli ausili messi a disposizione dal settore TDT della Cancelleria federale informano sui requisiti giuridici; cfr. gli ausili OSS. ++ +Si raccomanda di compilare le liste di controllo OSS e di archiviarle centralmente in ogni autorità federale (unità amministrativa). + +=== Contributi dell'Amministrazione federale a progetti + +[qanda.unnumbered] +Un'unità amministrativa può e deve contribuire con codice a un progetto «upstream» e soddisfa in tal modo i requisiti dell'art. 9 LMeCA?:: +* Se i progetti sono open source, l'art. 9 LMeCA è soddisfatto. I progetti devono però anche rimanere open source. In caso contrario il codice deve essere pubblicato nuovamente. +* I contributi upstream hanno il vantaggio che la manutenzione avviene nel progetto upstream e che il beneficio per la community è massimizzato. ++ +Esistono i seguenti svantaggi: minore controllo e influenza; può essere necessario firmare un CLA o un DCO (cfr. link:em002-4.pdf[Em002-4] capitolo 3.3). I contributi non compaiono inoltre nel publiccode.yml né negli elenchi della Confederazione. Un vantaggio del tutto diverso è che con tali contributi gli sviluppatori continuano a crescere all'interno dell'ecosistema. +* Finché i rischi e l'onere restano gestibili (contenuto del CLA, raccolta del codice), i contributi upstream sono da accogliere favorevolmente. +* Al contributo si applica allora la licenza del progetto upstream. Ciò corrisponde alla procedura descritta in link:em002-3.pdf[Em002-3]. +* *I fork di progetti upstream sono da evitare:* l'intero onere di manutenzione e aggiornamento ricade allora sull'autorità federale. Un fork curato in modo insufficiente rappresenta inoltre un rischio per la sicurezza. Per la community il beneficio è pressoché nullo. +* I contributi a progetti upstream dovrebbero essere in linea di principio valutati positivamente e discussi attivamente dai responsabili di progetto delle autorità federali. +* Se il progetto upstream appartiene all'Amministrazione federale e si tratta di contributi di terzi, link:em002-7.pdf[Em002-7] capitolo 9 fornisce ulteriori indicazioni. + +=== Supporto + +[qanda.unnumbered] +L'autorità federale è tenuta a fornire supporto per il software pubblicato?:: +No, ma può farlo se lo desidera. ++ +Secondo l'art. 9 cpv. 5 e 6 LMeCA può anche riscuotere emolumenti per il supporto. + +Come deve procedere un'autorità che intende fatturare il supporto?:: +Per motivi di risorse ciò non fa parte dell'attuale progetto di messa a disposizione di ausili. Se necessario, questo aspetto potrebbe essere integrato negli ausili in una tappa successiva. Per ora ogni autorità federale lo disciplina autonomamente. (Cfr. anche link:em002-4.pdf[Em002-4 Guida alle community OSS]) + +== Ausili + +=== Istruzioni + +[qanda.unnumbered] +Esistono istruzioni centrali sull'impiego di software open source nell'Amministrazione federale?:: +Sì, il settore TDT della Cancelleria federale mette a disposizione una documentazione completa nell'ambito di link:em002.pdf[Em002 Direttive strategiche per il software open source nell'Amministrazione federale]. ++ +Il software open source è trattato in generale in link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale]. La pubblicazione ai sensi dell'art. 9 LMeCA è trattata in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. + +=== Liste di controllo + +[qanda.unnumbered] +Gli ausili comprendono anche liste di controllo per la pubblicazione di software open source?:: +Sì, il settore TDT della Cancelleria federale mette a libera disposizione le seguenti liste di controllo: ++ +-- +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Lista di controllo valutazione preliminare OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Lista di controllo analisi e preparazione OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Lista di controllo rilascio e pubblicazione OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Lista di controllo community OSS] + +Si veda inoltre la *lista di controllo per l'eccezione generale secondo l'art. 9 LMeCA* [BBL-CL] dell'UFCL. +-- + +=== Questioni di sicurezza + +[qanda.unnumbered] +Esistono rischi di sicurezza specifici del software open source?:: +In questo contesto si citano ad esempio gli attacchi alla catena di fornitura, le vulnerabilità zero-day e gli attacchi di typosquatting. ++ +Tali questioni di sicurezza devono essere considerate per il software open source e i relativi acquisti, ma anche in generale per lo sviluppo di software e per l'acquisto di software commerciale. Al più possono risultare leggermente amplificate se il progetto OSS impiegato è stato poco accurato nell'integrazione di librerie e container. ++ +A medio termine è necessaria una strategia generale per attenuare questi rischi (tramite l'NCSC/UFCS). Se necessario devono essere messe a disposizione fonti sicure per container e librerie. ++ +In generale tutti i responsabili in ambito informatico devono conoscere questi possibili vettori d'attacco. Possibili tentativi sono: ++ +* Attacchi alla catena di fornitura: `XZ_Utils_backdoor` (https://en.wikipedia.org/wiki/XZ_Utils_backdoor), Codecov (https://blog.gitguardian.com/codecov-supply-chain-breach/) +* Vulnerabilità zero-day: Log4Shell (https://www.ibm.com/de-de/think/topics/log4j) +* Typosquatting: https://en.wikipedia.org/wiki/Typosquatting + +La pubblicazione del codice sorgente aumenta il rischio di una copia malevola di un'app? (p. es. un'app di phishing o un'app falsa):: +No. Trattenere il codice sorgente non offre alcuna protezione efficace contro le app false ed è inoltre incompatibile con l'articolo 9 LMeCA, che sancisce il principio dell'open source per l'Amministrazione federale. ++ +Il rischio che un terzo realizzi un'app visivamente identica per raccogliere dati sussiste indipendentemente dalla pubblicazione del codice sorgente. Poiché i sistemi di design della Confederazione sono pubblicamente disponibili, l'aspetto di un'app può essere riprodotto da un aggressore senza accesso al codice sorgente. Le app possono inoltre essere decompilate per estrarre elementi come i loghi dalla versione pubblicata. ++ +Sicurezza e fiducia sono pertanto garantite non dalla segretezza, bensì dalla verifica e dalla sicurezza crittografica: ++ +-- +* *Firme digitali:* le app ufficiali devono essere firmate crittograficamente; ciò garantisce tecnicamente che un'app sia un originale non modificato della Confederazione. Il sistema operativo dello smartphone verifica questa firma. +* *Verifica negli app store:* gli app store di Apple e Google offrono procedure per verificare che gli editori siano organi statali ufficiali. Google, ad esempio, contrassegna esplicitamente le app della Cancelleria federale (CaF) come app governative, dando agli utenti fiducia nella loro autenticità. +* *Build riproducibili:* mediante build indipendenti e riproducibili è possibile dimostrare tecnicamente che il codice sorgente pubblicato corrisponde esattamente all'app disponibile nello store. + +Un'eccezione generale per motivi di sicurezza ai sensi dell'articolo 9 LMeCA non è pertanto applicabile alle app. + +[.underline]#Raccomandazione:# + +Anziché trattenere il codice sorgente, l'attenzione dovrebbe concentrarsi sui processi degli app store e sul monitoraggio. I canali ufficiali devono essere mantenuti aggiornati e le app false segnalate tempestivamente affinché siano rimosse dai gestori delle piattaforme (Apple e Google). +-- + +È opportuno che i servizi richiedenti all'interno dell'Amministrazione federale si uniscano per acquistare software open source?:: +Sì, senz'altro. Ciò può avvenire direttamente e in modo informale tra unità amministrative. ++ +Il problema è piuttosto che le unità amministrative conoscono poco le esigenze reciproche. ++ +Una soluzione potrebbe consistere nel fatto che le unità amministrative tengano un elenco «most wanted» di strumenti (o librerie) open source da sviluppare o mettere a disposizione e condividano tale elenco. ++ +Un elenco gestito centralmente potrebbe anche aiutare ad analizzare meglio il fabbisogno di componenti open source e a valutare meglio il grado di maturità dell'unità amministrativa. In definitiva sarebbe opportuno un artifact repository. ++ +La tenuta di un simile elenco sarebbe poi compito di un OSPO, qualora ne venisse introdotto uno. Nel migliore dei casi ciò potrebbe avvenire anche tramite Amministrazione digitale svizzera per l'intera struttura federale. + +== Questioni giuridiche + +=== Impiego dell'inglese + +[qanda.unnumbered] +La Confederazione può utilizzare licenze nella lingua originale inglese?:: +Secondo l'art. 9 cpv. 4 LMeCA occorre utilizzare, ove possibile e opportuno, testi di licenza affermati a livello internazionale. ++ +Insistere su licenze OSS in lingua tedesca vanificherebbe in larga misura lo scopo dell'art. 9 cpv. 4 LMeCA, poiché esistono pochissimi testi di licenza affermati a livello internazionale per i quali una versione in una delle lingue ufficiali della Svizzera (tedesco, francese e italiano secondo l'art. 70 cpv. 1 Cost.) sia riconosciuta come determinante per l'interpretazione. ++ +Questa situazione è analoga a quella dei corsi di studio in lingua inglese presso scuole universitarie come il PF di Zurigo, dove l'inglese è ammesso come lingua d'insegnamento – fatte salve le tre condizioni dell'articolo 36 della Costituzione federale (Commentario di San Gallo alla Costituzione federale, 4a ed. 2023, art. 70 N 29; devono cioè sussistere una base legale, un interesse pubblico e la proporzionalità affinché l'inglese sia ammesso). ++ +Su questa base l'art. 9 cpv. 4 LMeCA va interpretato nel senso che costituisce la base legale per l'impiego di licenze in lingua inglese, poiché le licenze internazionali sono redatte prevalentemente in inglese. La disposizione deve pertanto riferirsi a queste. ++ +L'interesse pubblico di cui all'art. 9 LMeCA risiede tra l'altro nello scambio con le rispettive community di sviluppatori.footnote:[FF 2022 804, pag. 66] Nel settore informatico tali community sono tipicamente internazionali e utilizzano l'inglese come lingua di lavoro. Limitare le licenze a quelle in lingua tedesca renderebbe quantomeno difficile, se non impossibile, la cooperazione con le community internazionali, poiché un software così licenziato non sarebbe praticamente utilizzato a livello internazionale. Ciò contrasterebbe anche con lo scopo dell'articolo 9 LMeCA. ++ +Inoltre, le licenze OSS affermate a livello internazionale sono per definizione valide in tutto il mondo. Il legislatore intendeva evidentemente rendere possibile l'utilizzo internazionale del software pubblicato. Limitare le pubblicazioni OSS a licenze in lingua tedesca restringerebbe fortemente l'utilizzabilità internazionale del software pubblicato. ++ +A ciò si aggiunge che l'inglese è saldamente affermato come lingua standard nella sfera commerciale del settore informatico, di cui fanno parte anche le pubblicazioni OSS. L'impiego di licenze in lingua inglese rappresenta pertanto una limitazione ragionevole e proporzionata dei diritti dei partner contrattuali. Le licenze in lingua inglese sono inoltre idonee e necessarie per raggiungere gli obiettivi perseguiti. + +=== Esclusione della responsabilità + +[qanda.unnumbered] +La maggior parte delle licenze OSS contiene clausole di esclusione della responsabilità. È sufficiente o sono necessarie misure supplementari? Come ci si comporta in caso di software difettoso? (tenendo conto della legge sulla responsabilità):: +Le licenze applicabili escludono la responsabilità per negligenza lieve. *La responsabilità non può essere esclusa per negligenza grave o dolo.* I rischi pratici di responsabilità sono tuttavia minimi. ++ +Distribuire software modificato sotto una licenza incompatibile con quella del software originario (ad esempio sotto licenza MIT senza copyleft laddove il codice originariamente utilizzato era sotto licenza GPL con copyleft) viola la licenza originaria. In assenza di tutela della buona fede nel diritto della proprietà intellettuale, ciò non consente né agli altri utenti di utilizzare improvvisamente il software originario sotto la nuova licenza, né fa sorgere un obbligo azionabile di offrire la nuova licenza alle condizioni della licenza originaria. L'unica conseguenza è la violazione della licenza originaria, che può comportare pretese di risarcimento danni (analogia di licenza) nei confronti di un'autorità federale. ++ +Questo rischio può tuttavia essere gestito mediante una verifica sistematica secondo le guide, come è oggi prassi standard nell'industria del software. Concretamente la concessione di licenze richiede la creazione di una distinta di tutti i componenti software preesistenti confluiti nel nuovo software, che deve essere rigorosamente rispettata al momento della concessione delle licenze. ++ +Laddove esistano diritti di terzi, l'art. 9 cpv. 1 LMeCA non richiede comunque la pubblicazione del software (o eventualmente solo delle sue parti di nuova scrittura; ciò andrebbe chiarito nelle guide). ++ +Secondo l'articolo 11 della legge sulla responsabilità, la responsabilità della Confederazione è retta dal diritto civile quando essa agisce come soggetto di diritto civile. Questo è il caso secondo l'art. 9 cpv. 2 LMeCA; una responsabilità supplementare secondo la legge sulla responsabilità è di conseguenza esclusa. + +=== Software permissivo + +[qanda.unnumbered] +Se un software si basa su una libreria o su un componente di programma pubblicato sotto una licenza permissiva, il software principale (senza la libreria) può essere pubblicato sotto una licenza non permissiva?:: +Sì, ciò non pone problemi. Si vedano le indicazioni contenute nella guida link:em002-3.pdf[Em002-3]. + +=== Disposizioni di licenza + +[qanda.unnumbered] +Un software può essere utilizzato da più uffici? Quali disposizioni di licenza valgono all'interno dell'Amministrazione federale? L'Amministrazione federale è considerata un gruppo di società? (Ciò riguarda il software open source di terzi non modificato.):: +La distribuzione di software sotto licenze permissive è di regola priva di problemi. ++ +Con le licenze copyleft si pone tuttavia la questione se la distribuzione all'interno dell'Amministrazione federale centrale o decentralizzata faccia scattare obblighi di copyleft e rischi così di compromettere la riservatezza degli sviluppi propri della Confederazione. Nella consegna a istituzioni dell'Amministrazione federale decentralizzata dotate di propria personalità giuridica ciò è effettivamente il caso, mentre non vale all'interno dell'Amministrazione federale centrale, poiché tutti i dipartimenti agiscono sotto la stessa personalità giuridica. ++ +Le società di un gruppo sono giuridicamente indipendenti ma restano sotto il controllo economico della società madre. La dottrina giuridica considera la consegna di codice licenziato con copyleft a una società del gruppo come fatto che fa scattare obblighi di copyleft. Poiché le società di un gruppo ricevono spesso software open source nello sviluppo di software, esse necessitano di un proprio diritto d'uso; la consegna a una società del gruppo fa quindi scattare obblighi di copyleft. ++ +Per contro, la consegna all'interno dell'Amministrazione federale centrale non fa scattare obblighi di copyleft. Per l'Amministrazione federale decentralizzata, dove esistono personalità giuridiche distinte, vale quanto sopra: la consegna fa scattare obblighi di copyleft e il software deve essere offerto in forma di codice sorgente alle stesse condizioni di licenza del software originario. Un'istruzione di non consegnare il software a terzi violerebbe la licenza e potrebbe contravvenire anche all'art. 9 LMeCA. + +=== Rapporto tra LTras e LMeCA + +[qanda.unnumbered] +In quale rapporto stanno la legge sulla trasparenza (LTras) e la LMeCA?:: +Secondo l'art. 6 LTras i documenti ufficiali devono essere consegnati. È documento ufficiale ai sensi dell'art. 5 cpv. 1 LTras ogni informazione registrata su un supporto qualsiasi, che si trova in possesso di un'autorità e concerne l'adempimento di un compito pubblico. Il software open source rientra in linea di principio nella LTras. La LTras si applica quando una persona chiede a un dipartimento o a un ufficio il codice sorgente per uso proprio. L'ufficio deve divulgare il codice sorgente alla persona interessata, salvo che si applichino le eccezioni di cui all'articolo 7 LTras. Se l'ufficio rifiuta di divulgare il codice sorgente, si applica la procedura LTras. Diverso è il caso in cui qualcuno esiga che l'ufficio pubblichi il codice sorgente sul proprio sito web. In tal caso la procedura non segue la LTras bensì la LMeCA. Poiché la LMeCA non prevede essa stessa una procedura, deve bastare il diritto amministrativo generale. Questo offre la possibilità di una decisione, di un atto materiale o di una decisione di accertamento generale dell'ufficio interessato. Tale decisione può poi essere impugnata dinanzi al Tribunale amministrativo federale. ++ +Se da un lato sono ipotizzabili obblighi di divulgazione per software sviluppato da un'autorità federale ai sensi della LTras (qualora siano soddisfatte le relative condizioni), va osservato che la divulgazione di software secondo la LTras non concede automaticamente una licenza OSS. L'utilizzo di software divulgato secondo la LTras si limita pertanto agli scopi fissati dalla LTras, come la consultazione del codice o la sua esecuzione a fini di osservazione. La divulgazione secondo la LTras non comprende tuttavia una licenza per l'utilizzo regolare del software o come base per lo sviluppo di ulteriore software (dettagli in T. Poledna/S. Schlauri/S. Schweizer, Rechtliche Voraussetzungen der Nutzung von Open-Source-Software in der öffentlichen Verwaltung, insbesondere des Kantons Bern [trad.: Presupposti giuridici dell'utilizzo di software open source nell'amministrazione pubblica, in particolare nel Cantone di Berna], Zurigo 2017, https://carlgrossmann.com/?ddownload=11748, N 393 segg.). ++ +La decisione di licenziare un software come OSS, anche se esso rientra nella LTras, continua a seguire la LMeCA; non sussiste tuttora alcun diritto al rilascio di una licenza. ++ +È importante notare che il software sviluppato prima del 1° gennaio 2024, pur non essendo sottoposto alla LMeCA, deve comunque essere consegnato secondo la LTras. + +=== OSS e protezione dei dati + +[qanda.unnumbered] +I dati personali degli sviluppatori possono essere pubblicati senz'altro? Quali aspetti della protezione dei dati vanno considerati?:: +Dal punto di vista della protezione dei dati la pubblicazione di dati personali (p. es. nomi o indirizzi e-mail) è problematica se i collaboratori non vi hanno preventivamente acconsentito. La comunicazione di dati personali può infatti essere evitata in linea di principio mediante la pseudonimizzazione o l'anonimizzazione delle voci del repository, il che sarebbe richiesto dal principio della minimizzazione dei dati e della proporzionalità (art. 6 cpv. 2 LPD). ++ +Tale consenso dovrebbe tuttavia essere di regola facile da ottenere, poiché i collaboratori hanno spesso interesse a mostrare pubblicamente le proprie capacità (così Poledna/Schlauri/Schweizer, N 68, con rinvii). Il consenso può anche essere implicito attraverso l'uso dei nomi nel repository, quantomeno in assenza di un'istruzione contraria del datore di lavoro. ++ +Ciononostante è opportuno disciplinare nei contratti la responsabilità del fornitore per i dati personali dei suoi collaboratori. + +== Aspetti generali + +[qanda.unnumbered] +È rilevante che il software open source sia utilizzato a scopo commerciale o non commerciale?:: +Le licenze open source di regola non distinguono tra utilizzo commerciale e non commerciale. Il software open source può quindi essere utilizzato per qualsiasi scopo, comprese le applicazioni commerciali. I fornitori commerciali cercano spesso di integrare componenti open source in prodotti proprietari. Ciò è ammesso solo se i componenti open source non sono soggetti a una licenza con effetto copyleft (cfr. anche link:em002-3.pdf[Em002-3 Guida alle licenze OSS]). + +Esistono restrizioni sulle organizzazioni ammesse per le community?:: +In definitiva occorre sempre esaminare il singolo caso: chi c'è dietro e quali impegni vengono assunti? ++ +Finché non circola denaro e non vengono assunti impegni formali, la situazione è relativamente semplice e priva di problemi. ++ +Sono possibili affiliazioni ad associazioni, così come una collaborazione informale. ++ +È possibile delegare le affiliazioni a eOperations o a organizzazioni analoghe. ++ +Cfr. anche link:em002-4.pdf[Em002-4 Guida alle community OSS], capitolo 3.1 + +In che rapporto sta la norma ISO 5230 con le guide?:: +La norma ISO 5230:2020 è stata esaminata e considerata nell'elaborazione delle guide. L'elenco seguente riporta i requisiti della norma e il modo in cui sono stati affrontati nelle guide: ++ +-- +*3.1 Programme foundation* + +* Le «link:em002.pdf[Em002 Direttive strategiche per il software open source nell'Amministrazione federale]» e le strategie richiamate costituiscono il quadro di riferimento. L'attuazione compete ai rispettivi dipartimenti e uffici. + +*3.2 Relevant tasks defined and supported* + +* La guida «link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]» e le liste di controllo definiscono compiti concreti per la pubblicazione. Attualmente non esiste un organo centrale nell'Amministrazione federale. + +*3.3 Open source content review and approval* + +* Il processo di pubblicazione è descritto nell'ausilio «link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]». Esso rinvia anche all'esistenza di una Software Bill of Materials (SBOM). +* L'ausilio «link:em002-3.pdf[Em002-3 Guida alle licenze OSS]» informa in modo completo sulla concessione di licenze. + +*3.4 Compliance artifact creation and delivery* + +* Il processo di pubblicazione è descritto nell'ausilio «link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]». Esso rinvia anche all'esistenza di una Software Bill of Materials (SBOM). +* L'attuazione non è descritta più in dettaglio e avviene nei dipartimenti o negli uffici. + +*3.5 Understanding open source community engagements* + +* L'ausilio «link:em002-4.pdf[Em002-4 Guida alle community OSS]» descrive come costituire e curare una community. Per ogni progetto occorre definire e attuare un concetto. + +*3.6 Adherence to the specification requirements* + +* Il capitolo finale enuncia requisiti per le organizzazioni o i progetti che intendono confermare esplicitamente il rispetto dei requisiti OpenChain. +-- ++ +La norma ISO delinea ulteriori ambiti di responsabilità di un Open Source Programme Office (OSPO) che non sono coperti dalle guide. + +== Allegato + +=== Abbreviazioni + +[horizontal] +include::partials/abbreviations.it.adoc[tags=abbr-em002-6] + +=== Glossario + +Ulteriori termini sono reperibili in TERMDAT, la https://www.bk.admin.ch/bk/it/home/dokumentation/sprachen/termdat.html[banca dati terminologica] dell'Amministrazione federale. + +include::partials/glossary.it.adoc[tags=gloss-em002-6] +endif::[] + +ifeval::["{lang}" == "rm"] +NOTE: Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source. Ulteriuras infurmaziuns chattais Vus en il {url-repo}/tree/main[README]. + +== Situaziun da partenza e intent + +=== Situaziun da partenza ed intent da las FAQ + +En connex cun ils meds per la publicaziun da software open source cumparan regularmain dumondas. La collecziun suandanta responda las dumondas las pli frequentas e duai meglierar la chapientscha per singuls temas ed aspects. + +=== Structura e classificaziun + +Las FAQ èn structuradas tenor temas: + +[start=2] +. Noziuns e definiziuns +. Rols e responsabladads +. Process +. Meds +. Dumondas giuridicas +. Generalitads + +== Noziuns e definiziuns + +=== Software open source + +[qanda.unnumbered] +Tge vegn chapì sut software open source?:: +Quai vegn definì en link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala]. + +=== Software e licenzas + +[qanda.unnumbered] +Tge vegn chapì sut software?:: +Quai vegn definì en link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala]. Concernent las licenzas vesair link:em002-3.pdf[Em002-3 Guida da licenzas OSS]. + +Tge vegn chapì sut licenzas?:: +Qua èn manegiadas licenzas da software. Ulteriuras infurmaziuns sa chattan en link:em002-3.pdf[Em002-3 Guida da licenzas OSS]. + +Ston models d'IA sviluppads sezs vegnir considerads sco software ed uschia suttamess a las pretensiuns giuridicas da l'art. 9 EMBAG? E tge vala per las datas d'instrucziun?:: +Open source designescha software, dal qual il code da funtauna è liberamain accessibel e midabel sut cundiziuns minimalas. Da quai fan era part models d'IA instruids sezs (inclus algoritmus, procedura d'instrucziun e code). ++ +Models d'IA vegnan instruids sin la basa da datas, eventualmain da Open (Government) Data. Sco Open Data vegnan designadas collecziuns da datas che dastgan vegnir duvradas, cundivididas ed elavuradas libramain. Models d'IA, da las quals las datas d'instrucziun sa basan sin Open (Government) Data, valan sco software en il senn da la EMBAG e ston perquai era vegnir publitgads. ++ +Sche las datas d'instrucziun cuntegnan dentant datas persunalas (spezialmain degnas da protecziun) u infurmaziuns classifitgadas, po vegnir renunzià a la publicaziun per motivs relevants per la segirezza. Tar la relaschada d'in model d'IA sco open source na ston las datas d'instrucziun betg vegnir publitgadas obligatoriamain; quai correspunda dentant a l'idea open source e vegn recumandà expressivamain da la communitad open source. Per ulteriuras infurmaziuns davart l'IA renviain nus a la rait da cumpetenza per l'intelligenza artifiziala (CNAI).footnote:[https://cnai.swiss/[CNAI] sco era art. 10 EMBAG] + +Ston utensilis cun abilitads d'IA generativa (p.ex. GitHub Copilot) vegnir examinads avant l'utilisaziun, per che nagins dretgs immaterials da terzas persunas u da la Confederaziun na vegnian violads?:: +Cuntegns ch'in model d'IA producescha sez na pon betg vegnir protegids dal dretg d'autur, perquai che manca in'activitad creativa. Cuntegns generads da l'IA che sa basan sin ovras protegidas da terzas persunas pon dentant violar ils dretgs da questas terzas persunas. Perquai ch'ils resultats da l'IA èn ultra da quai notoriamain malsegirs, duessan els vegnir duvrads mo suenter in'examinaziun quità en mintga cas singul. ++ +Ultra da quai pon ils gestiunaris da sistems d'IA sa resalvar en lur cundiziuns d'utilisaziun da duvrar las endataziuns per instruir il sistem. Quai po puspè manar a quai ch'endataziuns u parts da quellas vegnian mussadas a terzas persunas. Nua che quai na po betg vegnir exclus, sto vegnir garantì che las endataziuns na violeschian nagins dretgs da la Confederaziun u da terzas persunas. ++ +I vegn recumandà d'examinar e d'approvar l'utilisaziun d'utensilis d'IA singularmain. Utensilis betg approvads na dastgan betg vegnir duvrads; ils collaboraturs pon dentant dumandar l'approvaziun d'in utensil. Savens è sensa da reglar talas dumondas contractualmain cun il furnitur; tscherts furniturs porschan era abunaments spezials, cun ils quals els respectan ils dretgs da terzas persunas, p.ex. DeepL. + +=== Basa legala en la EMBAG + +[qanda.unnumbered] +Tge è la basa legala per la publicaziun da software open source?:: +Tenor l'art. 9 EMBAGfootnote:[CS 172.019] ston las autoritads federalas da l'administraziun federala centrala publitgar il code da funtauna dal software ch'ellas sviluppan u fan sviluppar. Mintga persuna dastga duvrar, sviluppar vinavant u midar il software senza pajar taxas. ++ +Da la publicaziun dal code da funtauna po mo vegnir desistì pervia da dretgs da terzas persunas u per motivs relevants per la segirezza. ++ +Ulteriuras infurmaziuns sa chattan en link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source]. + +Tge èn motivs relevants per la segirezza?:: +Ils motivs relevants per la segirezza permess tenor l'art. 9 EMBAG ed il tractament cun quels vegnan definids en il chapitel 3.2 da link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source]. + +Tge èn dretgs da terzas persunas?:: +Dretgs da terzas persunas tenor l'art. 9 EMBAG ed il tractament cun quels vegnan definids en il chapitel 3.3 da link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source]. + +Pon excepziuns vegnir limitadas en il temp?:: +Ils motivs per in'excepziun tenor l'art. 9 EMBAG (dretgs da terzas persunas e motivs relevants per la segirezza) pon crudar davent cun il temp. ++ +Sch'i è uschia, sto il code da funtauna dal software vegnir relaschà. + +Tge consequenzas giuridicas ston vegnir resguardadas en cas d'ina violaziun da l'art. 9 EMBAG?:: +I dat dus geners da violaziuns: ++ +-- +. Dretgs da terzas persunas vegnan violads. +. Ina autoritad federala refusa da publitgar software open source (p.ex. cun motivs relevants per la segirezza betg fundads). + +Resposta a 1: + +Regularmain sa tracta quai d'ina violaziun dal contract, e pretensiuns da indemnisaziun pon vegnir fatgas valair tenor il Dretg d'obligaziuns. + +Resposta a 2: + +Quai n'ha nagina consequenza directa. Sch'ina terza persuna vul pudair duvrar il code da funtauna d'ina autoritad federala, sto ella inoltrar in giavisch tenor la Lescha davart la transparenza (LTrans; CS 152.3) tar l'autoritad cumpetenta. + +Sch'i exista in grond interess, po esser sensa dad examinar ina publicaziun en l'interess da omaduas partidas. Ina obligaziun da publitgar retroactivamain n'exista betg, voluntarmain è quai dentant pussaivel. +-- + +Pon vegnir fatgas valair pretensiuns da responsabladad en cas d'in donn chaschunà da software open source?:: +Fundamentalmain duess la responsabladad vegnir excludida en ils contracts. Per negligientscha grava u cumportament culpaivel na po la responsabladad dentant betg vegnir excludida. En tals cas pudess ina autoritad federala vegnir fatga responsabla tenor la Lescha davart la responsabladad (LResp; CS 170.32). + +A partir da tge data sto software vegnir publitgà?:: +Tenor l'art. 9 al. 1 EMBAG sto vegnir publitgà il software ch'è vegnì sviluppà suenter il 1. da schaner 2024. ++ +Tar software sviluppà avant il 1. da schaner 2024 duess ina relaschada vegnir examinada, sche pli grondas midadas stattan avant maun. ++ +Sch'i exista in interess considerabel da terzas persunas, po era software existent vegnir relaschà voluntarmain (eventualmain cun ina participaziun als custs). En quest cas duess era vegnir examinada ina communitad (vesair link:em002-4.pdf[Em002-4]). ++ +Tar scripts pli pitschens n'è la publicaziun per ordinari betg la megldra opziun. I pon exister repositoris per utensilis che passan lura ensemen tras il process da relaschada. ++ +Per unitads administrativas da l'administraziun federala decentralisada che suttastattan a la EMBAG vala l'obligaziun da publitgar dapi il 1. da matg 2025. Excepziuns da l'obligaziun da publitgar existan per software sviluppà senza meds da la Confederaziun e per software da retschertga (art. 3 al. 1 OEMBAG). + +Po vegnir pretendida ina publicaziun retroactiva per software sviluppà avant il 1. da schaner 2024?:: +La lescha na prevesa nagina publicaziun retroactiva. ++ +Ultra da quai pon contracts serrads avant il 1. da schaner 2024 cuntegnair dretgs da terzas persunas che s'opponan ad ina publicaziun. ++ +Sch'ina nova versiun principala stat avant maun (major tenor Semantic Versioningfootnote:[https://en.wikipedia.org/wiki/Version_control[Version control -- Wikipedia]]), duess vegnir examinada ina relaschada da l'entir software. Uschiglio stuess almain il code da funtauna da las novas funcziunalitads vegnir relaschà. + +Sin tge basa stuess ina terza persuna pretender la relaschada dal code da funtauna?:: +Ina terza persuna stuess inoltrar in giavisch tenor la LTrans tar l'autoritad cumpetenta. + +== Rols e responsabladads + +=== Rol da la Chanzlia federala + +[qanda.unnumbered] +Tgi metta a disposiziun ils meds fundamentals per la realisaziun?:: +Il sectur TDT da la Chanzlia federala metta a disposiziun da las autoritads federalas meds sco collecziun da documents tar Em002. Da quai fan part las directivas strategicas ed ulteriuras guidas praticas, inclus las FAQ, sco era glistas da controlla per garantir ina realisaziun conforma al dretg. ++ +Ils meds OSS vegnan actualisads dal sectur TDT. + +È la Chanzlia federala cumpetenta per conceder excepziuns (p.ex. per motivs relevants per la segirezza)?:: +I n'exista nagin post central che decida davart excepziuns da l'obligaziun da publitgar tenor l'art. 9 EMBAG. Mintga autoritad federala è sezza responsabla per sia realisaziun conforma al dretg. ++ +Ils departaments pon relaschar reglamentaziuns. ++ +La glista da controlla per l'excepziun generala tenor l'art. 9 EMBAG [BBL-CL] da l'UFCL duess vegnir emplenida. + +=== Rol da las unitads administrativas + +[qanda.unnumbered] +Tgi è cumpetent per la realisaziun operativa da relaschadas OSS?:: +Mintga autoritad federala (p.ex. uffizi, unitad administrativa) che sviluppa u fa sviluppar software è responsabla sezza per l'entir process da publicaziun. ++ +Ils departaments pon fixar reglamentaziuns liantas e mecanissems da controlla en lur sectur da cumpetenza, p.ex. per evitar donns da reputaziun. ++ +I vegn recumandà da designar per mintga uffizi federal ina persuna responsabla per OSS, p.ex. il respunsabel d'informatica (IM), l'enterprise architect, l'ISBO u il DSBO, per garantir process unitars ed efficients. Sche quai n'è betg fixà, è fundamentalmain la direcziun da l'uffizi responsabla per ina realisaziun conforma al dretg. ++ +Questa persuna pudess lura era vegnir consultada per conceder excepziuns da l'obligaziun da publitgar. + +=== Collavuraziun cun furniturs terzs + +[qanda.unnumbered] +Co ston svilups agens d'ina autoritad federala vegnir publitgads?:: +Il dretg d'autur nascha tar las persunas natiralas respectivas ch'han sviluppà il code da funtauna, vegn dentant per ordinari transferì a la patruna via il contract da lavur. En contracts cun purschiders da prestaziuns externs è impurtant da delimitar cleramain novs svilups e da convegnir la cessiun resp. la transferiziun contractuala dal dretg d'autur. Tar svilups agens cuminaivels ston ils participads a la fin s'accordar davart la licenza open source per il code da funtauna, sut la quala il software vegn publitgà sco project open source independent. La publicaziun sut ina licenza open source na munta betg ina renunzia al dretg d'autur: quel resta tar ils possessurs dals dretgs respectivs. Mo sin la basa da lur dretg d'autur pon els sa defender giuridicamain cunter violaziuns da la licenza u conceder parallelamain a las licenzas OSS licenzas pli vastas. + +=== Communicaziun da datas persunalas + +[qanda.unnumbered] +Sut tge premissas dastgan datas persunalas, per exempel da sviluppaders, vegnir publitgadas en il rom da software open source?:: +I n'exista nagina regla generala per quai. La decisiun sa chatta tar il project. ++ +En mintga cas ston las disposiziuns applitgablas davart la protecziun da datas vegnir observadas. Tenor l'artitgel 36 al. 1 LPD dastgan ils organs federals mo communitgar datas persunalas, sch'els disponan d'ina basa legala per quai. ++ +L'artitgel 36 al. 2 LPD numna tranter auter las suandantas excepziuns: ++ +(b) La persuna pertutgada ha consentì a la communicaziun. ++ +(e) La persuna pertutgada ha rendì accessiblas sias datas a tuts e n'ha betg scumandà expressivamain l'elavuraziun. ++ +En ils pli blers cas è recumandabel da retrair anticipadamain il consentiment da las persunas pertutgadas, perquai che quellas han per ordinari sezzas in interess che lur lavur saja visibla publicamain. Sche il consentiment na vegn betg dà u sch'auters motivs discurran cunter ina publicaziun, duess il code da funtauna vegnir publitgà senza datas persunalas, cun renviar mo a l'autoritad federala pertutgada. ++ +Quest consentiment duess vegnir retratg tar ils furniturs ed ils collaboraturs en il rom dals process d'acquist e d'engaschament. + +=== Acquist + +[qanda.unnumbered] +Nua chatt jau la documentaziun per l'acquist da software open source?:: +Cun la versiun 2.0 è vegnì mess a disposiziun il med link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist e dal software open source]. ++ +Il Center da cumpetenza per l'acquist public da la Confederaziun (CCA) ha publitgà in nov fegl d'infurmaziun cun il titel Acquist da software ed art. 9 EMBAG [KBB-MB] sco era dus documents «Criteris model – acquist EMBAG ed open source.docx» e «Texts contractuals model – svilup da software.docx». ++ +Ulteriurs meds sa chattan sin la plattafurma d'emprender e da models da l'acquist public (www.perimap.admin.ch). ++ +Ulteriur sustegn porscha l'intranet da l'UFCL (accessibel mo en la rait da la Confederaziun) cun la directiva Open source en l'acquist [BBL-WL] e la glista da controlla per l'excepziun generala tenor l'art. 9 EMBAG [BBL-CL]. ++ +Las infurmaziuns correspundentas sa chattan sin las paginas d'intranet da l'UFCL (disponiblas mo entaifer la Confederaziun). ++ +Colliaziuns: chascha d'utensils da l'UFCL per l'acquist d'informatica + +== Process + +=== Instrucziun + +[qanda.unnumbered] +Exista ina instrucziun centrala, co ch'i sto vegnir tractà cun OSS en l'administraziun federala?:: +Gea, il sectur TDT da la Chanzlia federala metta a disposiziun documents cumplessivs per quai. ++ +Da resguardar è che quests meds èn ina recumandaziun TIC e betg ina prescripziun lianta. ++ +Colliaziun als meds OSS + +Co ston svilups agens d'ina autoritad federala vegnir publitgads ch'èn naschids en collavuraziuns? Co sto vegnir tractà cun dretgs existents?:: +Tar il svilup da software [.underline]#nascha il dretg d'autur tar las persunas natiralas respectivas# ch'han sviluppà il code da funtauna. ++ +Sche la persuna che sviluppa è en in rapport da lavur, appartegnan ils svilups a la patruna (art. 332 DO). ++ +Tar contracts cun purschiders da prestaziuns externs è perquai impurtant da delimitar cleramain novs svilups e da convegnir la cessiun resp. la transferiziun contractuala dal dretg d'autur. Tar svilups agens cuminaivels ston ils participads a la fin s'accordar davart la licenza open source per il code da funtauna, sut la quala il software vegn publitgà sco project open source independent. ++ +La publicaziun sut ina licenza open source na munta betg ina renunzia al dretg d'autur: quel resta tar ils possessurs dals dretgs respectivs. ++ +Mo sin la basa da lur dretg d'autur pon els sa defender giuridicamain cunter violaziuns da la licenza u conceder parallelamain a las licenzas OSS licenzas pli vastas. ++ +Ils [.underline]#dretgs originals# duessan perquai tar novs svilups u svilups vinavant adina sa chattar sche pussaivel tar la Confederaziun. Per ulteriurs participants duessan vegnir duvrads [.underline]#Contributor Licence Agreements# (CLA) u in Developer Certificate of Origin (DCO). Instrucziuns per quai sa chattan en link:em002-3.pdf[Em002-3 Guida da licenzas OSS], link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source] e link:em002-4.pdf[Em002-4 Guida da communitads OSS]. + +Ston midadas vegnir publitgadas?:: +Tenor l'art. 9 EMBAG: gea, sch'ellas èn vegnidas sviluppadas suenter il 1. da schaner 2024. ++ +Quai duess dentant capitar uschia ch'i naschia era in profit. Il document link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source] infurmescha davart il process. + +Cura è la publicaziun «suffizienta» tenor la EMBAG?:: +L'art. 9 EMBAG n'è betg specific en quest reguard, ed i exista in grond spazi da moviment. Il code da funtauna sto esser accessibel publicamain. ++ +Las pretensiuns da la lescha èn per exempel gia ademplidas, sche il code da funtauna vegn publitgà sco datoteca zip sin ina pagina d'internet. ++ +Per cuntanscher in profit, era tras la publicaziun da la documentaziun etc., duess quai capitar en in repositori da code tenor las megliras praticas. Infurmaziuns davart quai sa chattan en link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source]. + +Vegnan ils retratgs da prestaziuns en l'avegnir a prescriver als purschiders da prestaziuns, co che il software sto vegnir publitgà e co che la qualitad sto vegnir garantida?:: +Tant per ils purschiders da prestaziuns sco era per ils retratgs da prestaziuns valan las reglas da la respectiva autoritad federala. ++ +I è dentant sensa d'integrar ils meds correspundents en ils lieus adattads dals process existents e dals quality gates. ++ +Sin la basa da sia experientscha da svilup po il purschider da prestaziuns far propostas per ses retratgs da prestaziuns e tractar quai unitarmain (uschia sco era il process da svilup vegn tractà unitarmain). + +=== Tscherna da la licenza + +[qanda.unnumbered] +Sut tge licenza open source duai software vegnir sviluppà?:: +I n'existan naginas prescripziuns strictas concernent la tscherna da la licenza, uschè ditg che las cundiziuns da licenza da las cumponentas da software duvradas en il software da sviluppar vegnan observadas. ++ +Tar svilups cumplettamain novs duess vegnir tschernì in tip da licenza che pussibilitescha ina basa vasta e persistenta per svilups vinavant. ++ +Per quai è impurtant che la licenza correspundenta saja acceptada vastamain en la communitad da sviluppaders relevanta. ++ +*Recumandada vegn perquai l'utilisaziun da l'AGPL (cun copyleft) e da la MIT.* ++ +Questas duas licenzas represchentan en tscherta moda ils dus extrems dal spectrum da las licenzas. ++ +L'AGPL cun in copyleft fitg ferm realisescha permanentamain il princip «public money – public code». Tar svilups vinavant, numnadamain soluziuns proprietaras, sa flaivlescha quai en direcziun da la LGPL. ++ +La MIT è percunter ina licenza fitg liberala, cun la quala è bunamain tut pussaivel. ++ +Las duas licenzas cuvran l'entir spectrum. Sch'i vegn dà spezialmain paisa tar licenzas permissivas a betg numnar la Confederaziun, è la BSD-3 da preferir a la MIT. ++ +Per ina tscherna pli detagliada da las licenzas renviain nus a link:em002-3.pdf[Em002-3 Guida da licenzas OSS]. + +=== Criteris da qualitad per OSS + +[qanda.unnumbered] +Sto software open source ademplir tscherts criteris da qualitad?:: +Per ordinari valan tut ils criteris da qualitad che valan era per mintg'auter software. Open source renda avant tut tut pli transparent. Per observar la licenza, ils criteris per ina «buna» relaschada ed eventualas reglas da la communitad èn necessaris insaquants puncts supplementars. Quels èn inditgads en link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Glista da controlla analisa e preparaziun OSS] ed en link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Glista da controlla communitad OSS]. + +Tge pretensiuns èn previsas per ils quality gates?:: +I n'èn previsas naginas prescripziuns centralas. Decisivas èn las reglas da l'autoritad federala (unitad administrativa) che sviluppa il software. ++ +Ultra da las pretensiuns generalas n'existan naginas pretensiuns spezialas concernent la qualitad da l'OSS. HERMES vegn dentant actualisà en vista a l'art. 9 EMBAG. ++ +La publicaziun è la cumparsa da l'administraziun federala en il public. Sche quai na capita betg quità e professiunalmain, po la reputaziun publica d'ina autoritad federala spert patir. + +Co vegnan reglads ils princips da svilup?:: +Ultra da las pretensiuns generalas en ils meds n'existan naginas prescripziuns spezialas concernent il svilup da software open source. Indicaziuns sa chattan en link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Glista da controlla analisa e preparaziun OSS] ed en link:em002-4.pdf[Em002-4 Guida da communitads OSS]. + +Sto OSS vegnir publitgà en in lieu determinà?:: +La Confederaziun na maina actualmain nagin agen repositori central. Las autoritads federalas èn perquai fundamentalmain libras en lur publicaziun. Perquai che bleras autoritads federalas utiliseschan gia GitHub, è questa plattafurma actualmain la tscherna preferida. I exista ultra da quai in conto GitHub central (swiss) che po vegnir duvrà. ++ +GitHub – swiss/index: ina survista da las organisaziuns da repositoris actualas. ++ +Quai vala en spezial, sch'ina autoritad federala n'ha anc nagin conto GitHub («organisaziun») u sch'ella n'utilisescha betg ina autra plattafurma sco GitLab u BitBucket. ++ +S'adressai p.pl. al post cumpetent en il TDT (opensource@bk.admin.ch) per examinar, sch'ina publicaziun via il conto GitHub central (swiss) è sensada e pussaivla. ++ +Autoritads federalas duessan en mintga cas tegnair ina copia locala dal code. I è era recumandabel che mintga autoritad federala dispona d'ina strategia correspundenta e da reglas internas correspundentas. ++ +Ulteriuras recumandaziuns sa chattan en link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source]. + +=== Documentaziun + +[qanda.unnumbered] +Tge pretensiuns da documentaziun existan per la publicaziun da OSS?:: +Ils meds messs a disposiziun dal sectur TDT da la Chanzlia federala infurmeschan davart las pretensiuns giuridicas; vesair ils meds OSS. ++ +I vegn recumandà d'emplenir las glistas da controlla OSS e da las archivar centralmain en mintga autoritad federala (unitad administrativa). + +=== Contribuziuns da l'administraziun federala a projects + +[qanda.unnumbered] +Po e duai ina unitad administrativa contribuir code ad in project «upstream» ed adempla ella uschia las pretensiuns da l'art. 9 EMBAG?:: +* Sch'ils projects èn open source, è l'art. 9 EMBAG ademplì. Ils projects ston dentant era restar open source. Sche quai n'è betg il cas, sto il code vegnir publitgà danovamain. +* Contribuziuns upstream han l'avantatg che la mantenziun ha lieu en il project upstream e che il profit per la communitad vegn maximà. ++ +I existan ils suandants dischavantatgs: pli pauca controlla ed influenza; eventualmain sto vegnir suttascrit in CLA u in DCO (vesair link:em002-4.pdf[Em002-4] chapitel 3.3). Las contribuziuns na cumparan ultra da quai betg en il publiccode.yml ed en ils registers da la Confederaziun. In avantatg cumplettamain auter è ch'ils sviluppaders sa sviluppan vinavant cun talas contribuziuns entaifer l'ecosistem. +* Uschè ditg ch'ils ristgs e la lavur restan survisaivels (cuntegn dal CLA, collecziun dal code), èn contribuziuns upstream da bainvegnir. +* Per la contribuziun vala lura la licenza dal project upstream. Quai correspunda al proceder en link:em002-3.pdf[Em002-3]. +* *Forks da projects upstream èn d'evitar:* L'entira lavur da mantenziun e d'actualisaziun croda lura tar l'autoritad federala. In fork tgirà nunsuffizientamain represchenta ultra da quai in ristg per la segirezza. Per la communitad na nascha bunamain nagin profit. +* Contribuziuns a projects upstream duessan fundamentalmain vegnir giuditgadas positivamain e vegnir tematisadas activamain dals manaders da project da las autoritads federalas. +* Sche il project upstream appartegna a l'administraziun federala e sch'i sa tracta da contribuziuns da terzas persunas, agida link:em002-7.pdf[Em002-7] chapitel 9 vinavant. + +=== Support + +[qanda.unnumbered] +Sto l'autoritad federala prestar support per software publitgà?:: +Na, ella po far quai dentant, sch'ella vul. ++ +Tenor l'art. 9 al. 5 e 6 EMBAG dastga ella era incassar taxas per il support. + +Co proceda ina autoritad, sch'ella vul facturar il support?:: +Per motivs da resursas n'è quai betg part dal project actual da metter a disposiziun meds. Sche necessari pudess quai vegnir integrà en ils meds en ina etappa posteriura. Per il mument regla mintga autoritad federala quai sezza. (Vesair era link:em002-4.pdf[Em002-4 Guida da communitads OSS]) + +== Meds + +=== Instrucziun + +[qanda.unnumbered] +Exista ina instrucziun centrala per il tractament cun software open source en l'administraziun federala?:: +Gea, il sectur TDT da la Chanzlia federala metta a disposiziun documents cumplessivs en il rom da link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala]. ++ +OSS vegn tractà en general en link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala]. La relaschada tenor l'art. 9 EMBAG vegn tractada en link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da software open source]. + +=== Glistas da controlla + +[qanda.unnumbered] +Cumpiglian ils meds era glistas da controlla per la relaschada da software open source?:: +Gea, il sectur TDT da la Chanzlia federala metta a disposiziun libra las suandantas glistas da controlla: ++ +-- +* link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Glista da controlla examinaziun preliminara OSS] +* link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Glista da controlla analisa e preparaziun OSS] +* link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Glista da controlla relaschada e publicaziun OSS] +* link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Glista da controlla communitad OSS] + +Vesair ultra da quai la *glista da controlla per l'excepziun generala tenor l'art. 9 EMBAG* [BBL-CL] da l'UFCL. +-- + +=== Dumondas da segirezza + +[qanda.unnumbered] +Existan ristgs da segirezza spezials tar OSS?:: +En quest connex vegnan numnads per exempel attatgas sin la chadaina da furniziun, debilitads zero-day ed attatgas da typosquatting. ++ +Talas dumondas da segirezza ston vegnir resguardadas tar OSS e tar ses acquist, ma era generalmain tar il svilup da software e tar l'acquist da software commerzial. Al pli pon ellas sa rinforzar in pau, sche il project OSS duvrà è stà pauc quità tar l'integraziun da bibliotecas e da containers. ++ +A media vista dovri ina strategia generala per reducir quests ristgs (via il NCSC/UFCS). Sche necessari ston vegnir messas a disposiziun funtaunas segiras per containers e bibliotecas. ++ +En general ston tut ils responsabels en il sectur TI enconuscher quests vectors d'attatga pussaivels. Emprovas pussaivlas èn: ++ +* Attatgas sin la chadaina da furniziun: `XZ_Utils_backdoor` (https://en.wikipedia.org/wiki/XZ_Utils_backdoor), Codecov (https://blog.gitguardian.com/codecov-supply-chain-breach/) +* Debilitads zero-day: Log4Shell (https://www.ibm.com/de-de/think/topics/log4j) +* Typosquatting: https://en.wikipedia.org/wiki/Typosquatting + +Augmenta la publicaziun dal code da funtauna il ristg d'ina copia malmalitgusa d'ina app? (p.ex. ina app da phishing u ina app faussa):: +Na. Il retegnair dal code da funtauna na porscha nagina protecziun efficazia cunter apps faussas ed è ultra da quai betg cumpatibel cun l'artitgel 9 EMBAG che fixescha il princip open source per l'administraziun federala. ++ +Il ristg ch'ina terza persuna construeschia ina app opticamain identica per rimnar datas exista independentamain dal fatg, sche il code da funtauna è publitgà. Perquai ch'ils sistems da design da la Confederaziun èn disponibels publicamain, po l'apparientscha d'ina app vegnir reproducida d'in attatgader senza access al code da funtauna. Apps sa laschan ultra da quai decumpilar per extrair elements sco logos da la versiun publitgada. ++ +Segirezza e fidanza vegnan perquai garantidas betg tras la secretezza, mabain tras la verificaziun e la segirezza criptografica: ++ +-- +* *Signaturas digitalas:* Apps uffizialas ston esser signadas criptograficamain; uschia è garantì tecnicamain ch'ina app saja in original nunmidà da la Confederaziun. Il sistem operativ dal telefonin verifitgescha questa signatura. +* *Verificaziun en ils app stores:* Ils app stores dad Apple e Google porschan proceduras per verifitgar ch'ils editurs sajan posts statals uffizials. Google designescha per exempel expressivamain las apps da la Chanzlia federala (ChF) sco apps d'autoritads, quai che dat als utilisaders fidanza en lur autenticitad. +* *Reproducible builds:* Tras builds independents e reproducibels sa lascha mussar tecnicamain che il code da funtauna publitgà correspundia exactamain a la app disponibla en il store. + +Ina excepziun generala per motivs relevants per la segirezza tenor l'artitgel 9 EMBAG n'è perquai betg applitgabla tar apps. + +[.underline]#Recumandaziun:# + +Empè da retegnair il code da funtauna duess il focus sa chattar sin ils process dals app stores e sin la surveglianza. Chanals uffizials ston vegnir tegnids actuals, ed apps faussas ston vegnir annunziadas immediatamain per vegnir allontanadas dals gestiunaris da la plattafurma (Apple e Google). +-- + +È quai sensa ch'ils posts cun basegn entaifer l'administraziun federala sa reuneschian per acquistar OSS?:: +Gea, absolutamain. Quai po capitar directamain e senza furmalitads tranter unitads administrativas. ++ +Il problem è pli tgunsch ch'las unitads administrativas na san betg bler davart il basegn da las autras. ++ +Ina soluziun pudess esser ch'unitads administrativas mainian ina glista «most wanted» dad utensilis (u bibliotecas) OSS che duessan vegnir sviluppads u messs a disposiziun e che cundividian questa glista. ++ +Ina tala glista manada centralmain pudess era gidar dad analisar meglier il basegn da cumponentas OSS e da giuditgar meglier il grad da madirezza da l'unitad administrativa. A la fin fiss in artifact repository sensà. ++ +Manar ina tala glista fiss lura l'incumbensa d'in OSPO, sch'in tal vegn introducì. Al meglier pudess quai era capitar via l'Administraziun digitala Svizra per l'entira structura federala. + +== Dumondas giuridicas + +=== Utilisaziun da l'englais + +[qanda.unnumbered] +Dastga la Confederaziun utilisar licenzas en la lingua originala englais?:: +Tenor l'art. 9 al. 4 EMBAG duessan, nua che quai è pussaivel e sensà, vegnir duvrads texts da licenza stabilids internaziunalmain. ++ +D'insister sin licenzas OSS en lingua tudestga schmaledischess amplamain l'intent da l'art. 9 al. 4 EMBAG, perquai ch'i dat mo fitg paucs texts da licenza stabilids internaziunalmain, tar ils quals ina versiun en ina da las linguas uffizialas da la Svizra (tudestg, franzos ed talian tenor l'art. 70 al. 1 CF) è renconuschida sco decisiva per l'interpretaziun. ++ +Questa situaziun correspunda a quella dals curs en lingua englaisa a scolas autas sco il PF, nua che l'englais è admess sco lingua d'instrucziun – cun resalva da las trais cundiziuns da l'artitgel 36 da la Constituziun federala (commentari da Son Gagl da la Constituziun federala, 4. ed. 2023, art. 70 N 29; i ston pia exister ina basa legala, in interess public e la proporziunalitad, per che l'englais saja admess). ++ +Sin questa basa sto l'art. 9 al. 4 EMBAG vegnir interpretà uschia ch'el furma la basa legala per l'utilisaziun da licenzas en lingua englaisa, perquai che licenzas internaziunalas èn scrittas surtut en englais. La disposiziun sto perquai sa referir a quellas. ++ +L'interess public en l'art. 9 EMBAG sa chatta tranter auter en il barat cun las communitads da sviluppaders respectivas.footnote:[FF 2022 804, p. 66] En la branscha d'informatica èn questas communitads tipicamain internaziunalas ed utiliseschan l'englais sco lingua da lavur. Ina limitaziun a licenzas en lingua tudestga rendess la collavuraziun cun communitads internaziunalas almain pli difficila, sche betg nunpussaivla, perquai che software licenzià uschia na vegniss bunamain betg duvrà internaziunalmain. Quai stess era en cuntradicziun cun l'intent da l'artitgel 9 EMBAG. ++ +Ultra da quai valan licenzas OSS stabilidas internaziunalmain per definiziun en tut il mund. Il legislatur ha evidentamain vulì pussibilitar l'utilisaziun internaziunala dal software relaschà. Ina limitaziun da relaschadas OSS a licenzas en lingua tudestga restrenschess fermamain l'utilisabladad internaziunala dal software relaschà. ++ +Ultra da quai è l'englais stabilì fermamain sco lingua standard en il sectur commerzial da la branscha d'informatica, da la quala fan era part las relaschadas OSS. L'utilisaziun da licenzas en lingua englaisa represchenta perquai ina limitaziun raschunaivla e proporziunada dals dretgs dals partenaris contractuals. Licenzas en lingua englaisa èn ultra da quai adattadas e necessarias per cuntanscher las finamiras aspiradas. + +=== Exclusiun da la responsabladad + +[qanda.unnumbered] +Las pli bleras licenzas OSS cuntegnan exclusiuns da la responsabladad. Basta quai, u dovri mesiras supplementaras? Co è la situaziun tar software defectus? (inclus il resguard da la Lescha davart la responsabladad):: +Las licenzas applitgablas excludan la responsabladad per negligientscha lifra. *Per negligientscha grava u intenziun na po la responsabladad betg vegnir excludida.* Ils ristgs practics da responsabladad èn dentant minimals. ++ +Sche software midà vegn derasà sut ina licenza ch'è incumpatibla cun la licenza dal software original (per exempel sut ina licenza MIT senza copyleft, malgrà che il code duvrà originalmain era sut ina licenza GPL cun copyleft), viola quai la licenza originala. Mancond la protecziun da la buna fai en il dretg immaterial, na pon auters utilisaders ni duvrar da subit il software original sut la nova licenza, ni nascha ina obligaziun exequibla dad offrir la nova licenza a las cundiziuns da la licenza originala. L'unica consequenza è la violaziun da la licenza originala, quai che po manar a pretensiuns da indemnisaziun (analogia da licenza) cunter ina autoritad federala. ++ +Quest ristg sa lascha dentant dominar tras in'examinaziun sistematica tenor las guidas, sco quai ch'è oz standard en la branscha da software. Concretamain pretenda la licenziaziun la creaziun d'ina glista da tut las cumponentas da software preexistentas ch'entran en il nov software; quella sto vegnir observada strictamain tar la licenziaziun. ++ +Sch'i existan dretgs da terzas persunas, na pretenda l'art. 9 al. 1 EMBAG tuttina nagina publicaziun dal software (u eventualmain mo da sias parts nov scrittas; quai duess vegnir sclerì en las guidas). ++ +Tenor l'artitgel 11 da la Lescha davart la responsabladad sa drizza la responsabladad da la Confederaziun tenor il dretg civil, sch'ella agescha sco subject dal dretg civil. Quai è il cas tenor l'art. 9 al. 2 EMBAG; ina responsabladad supplementara tenor la Lescha davart la responsabladad è consequentamain excludida. + +=== Software permissiv + +[qanda.unnumbered] +Sche software sa basa sin ina biblioteca resp. cumponenta da program publitgada sut ina licenza permissiva: po il software principal (senza la biblioteca) vegnir publitgà sut ina licenza betg permissiva?:: +Gea, quai è senza problems. Vesair las indicaziuns en la guida link:em002-3.pdf[Em002-3]. + +=== Disposiziuns da licenza + +[qanda.unnumbered] +Po software vegnir duvrà da plirs uffizis? Tge disposiziuns da licenza valan entaifer l'administraziun federala? Vala l'administraziun federala sco concern? (Quai pertutga software open source da terzas persunas betg midà.):: +La derasaziun da software sut licenzas permissivas è per ordinari senza problems. ++ +Tar licenzas copyleft sa pona dentant la dumonda, sche la derasaziun entaifer l'administraziun federala centrala u decentralisada chaschuna obligaziuns da copyleft e periclitescha uschia la confidenzialitad dals svilups agens da la Confederaziun. Tar la surdada ad instituziuns da l'administraziun federala decentralisada cun atgna persunalitad giuridica è quai effectivamain il cas, entaifer l'administraziun federala centrala percunter betg, perquai che tut ils departaments ageschan sut la medema persunalitad giuridica. ++ +Societads d'in concern èn giuridicamain independentas, ma restan sut la controlla economica da la societad mamma. La litteratura giuridica considerescha la surdada da code licenzià cun copyleft ad ina societad dal concern sco chaschunond obligaziuns da copyleft. Perquai che societads d'in concern retschaivan savens software open source tar il svilup da software, dovran ellas in agen dretg d'utilisaziun; la surdada ad ina societad dal concern chaschuna pia obligaziuns da copyleft. ++ +Percunter na chaschuna la surdada entaifer l'administraziun federala centrala naginas obligaziuns da copyleft. Per l'administraziun federala decentralisada, nua ch'existan persunalitads giuridicas separadas, vala quai survart: La surdada chaschuna obligaziuns da copyleft, ed il software sto vegnir purschì en furma da code da funtauna a las medemas cundiziuns da licenza sco il software original. Ina directiva da betg surdar il software a terzas persunas violass la licenza e pudess era cuntrafar a l'art. 9 EMBAG. + +=== Relaziun tranter la LTrans e la EMBAG + +[qanda.unnumbered] +En tge relaziun stattan la Lescha davart la transparenza (LTrans) e la EMBAG?:: +Tenor l'art. 6 LTrans ston documents uffizials vegnir surdads. Sco document uffizial vala tenor l'art. 5 al. 1 LTrans mintga infurmaziun ch'è registrada sin in purtader d'infurmaziun da tge gener ch'i saja, che sa chatta en il possess d'ina autoritad e che pertutga l'adempliment d'ina incumbensa publica. OSS croda fundamentalmain sut la LTrans. La LTrans vegn applitgada, sch'ina persuna pretenda dad in departament u dad in uffizi il code da funtauna per l'agen diever. L'uffizi sto publitgar il code da funtauna a la persuna pertutgada, nun ch'excepziuns tenor l'artitgel 7 LTrans vegnian applitgadas. Sche l'uffizi refusa da publitgar il code da funtauna, vala la procedura da la LTrans. In auter cas è, sche insatgi pretenda che l'uffizi publitgeschia il code da funtauna sin sia pagina d'internet. Lura na sa drizza la procedura betg tenor la LTrans, mabain tenor la EMBAG. Perquai che la EMBAG sezza na prevesa nagina procedura, sto il dretg administrativ general bastar. Quel porscha u la pussaivladad d'ina disposiziun, d'in act real u d'ina disposiziun da constataziun generala da l'uffizi pertutgà. Questa decisiun po lura vegnir appellada tar il Tribunal administrativ federal. ++ +Schebain ch'obligaziuns da publicaziun per software sviluppà d'ina autoritad federala èn pussaivlas tenor la LTrans (sche las cundiziuns correspundentas èn ademplidas), sto vegnir resguardà che la publicaziun da software tenor la LTrans na concedia betg automaticamain ina licenza OSS. L'utilisaziun da software publitgà tenor la LTrans sa limitescha uschia als intents fixads da la LTrans, sco la consultaziun dal code u sia execuziun per motivs d'observaziun. La publicaziun tenor la LTrans na cumpiglia dentant nagina licenza per l'utilisaziun reglada dal software u sco basa per il svilup vinavant da software (detagls en T. Poledna/S. Schlauri/S. Schweizer, Rechtliche Voraussetzungen der Nutzung von Open-Source-Software in der öffentlichen Verwaltung, insbesondere des Kantons Bern [trad.: Premissas giuridicas da l'utilisaziun da software open source en l'administraziun publica, en spezial en il chantun Berna], Turitg 2017, https://carlgrossmann.com/?ddownload=11748, N 393 sq.). ++ +La decisiun da licenziar software sco OSS sa drizza era lura vinavant tenor la EMBAG, sch'el croda sut la LTrans; in dretg a la concessiun d'ina licenza n'exista vinavant betg. ++ +Impurtant è: Software sviluppà avant il 1. da schaner 2024 na suttastat betg a la EMBAG, sto dentant tuttina vegnir surdà tenor la LTrans. + +=== OSS e protecziun da datas + +[qanda.unnumbered] +Pon datas persunalas da sviluppaders vegnir publitgadas senza vinavant? Tge aspects da la protecziun da datas ston vegnir resguardads?:: +Dal puntg da vista da la protecziun da datas è la publicaziun da datas persunalas (p.ex. nums u adressas d'e-mail) problematica, uschenavant ch'ils collaboraturs n'han betg consentì anticipadamain. Perquai che la communicaziun da datas persunalas po fundamentalmain vegnir evitada tras la pseudonimisaziun u l'anonimisaziun da las endataziuns en il repositori, quai che fiss necessari tenor il princip da la minimisaziun da las datas e da la proporziunalitad (art. 6 al. 2 LPD). ++ +In tal consentiment duess dentant per ordinari esser simpel da retrair, perquai ch'ils collaboraturs han savens in interess da mussar publicamain lur abilitads (uschia Poledna/Schlauri/Schweizer, N 68, cun renviaments). In consentiment po era vegnir dà taciturnamain tras l'utilisaziun da nums en il repositori, almain sche naginas directivas cuntraras da la patruna n'existan. ++ +Tuttina è recumandabel da reglar en ils contracts la responsabladad dal furnitur per las datas persunalas da ses collaboraturs. + +== Generalitads + +[qanda.unnumbered] +Giogia quai in rol, sche OSS vegn duvrà commerzialmain u betg commerzialmain?:: +Licenzas open source na differenzieschan per ordinari betg tranter utilisaziun commerziala e betg commerziala. OSS po perquai vegnir duvrà per mintga intent, era per applicaziuns commerzialas. Furniturs commerzials empruvan savens dad integrar cumponentas OSS en products proprietars. Quai è mo permess, sche las cumponentas OSS na stattan betg sut ina licenza cun effect copyleft (vesair era link:em002-3.pdf[Em002-3 Guida da licenzas OSS]). + +Existan restricziuns, tge organisaziuns che èn permessas per communitads?:: +A la fin sto adina vegnir considerà il cas singul: Tgi stat davos, e tge obligaziuns vegnan surpigliadas? ++ +Uschè ditg che nagin daner na flueschia e che naginas obligaziuns formalas na vegnan surpigliadas, è la situaziun relativamain simpla e senza problems. ++ +Commembranzas en associaziuns èn pussaivlas, sco era ina collavuraziun informala. ++ +I è pussaivel da delegar commembranzas ad eOperations u ad organisaziuns sumegliantas. ++ +Vesair era link:em002-4.pdf[Em002-4 Guida da communitads OSS], chapitel 3.1 + +En tge relaziun stat la norma ISO 5230 cun las guidas?:: +La norma ISO 5230:2020 è vegnida examinada e resguardada tar l'elavuraziun da las guidas. La glista sutvart mussa las pretensiuns da la norma e co ch'ellas èn vegnidas adressadas en las guidas: ++ +-- +*3.1 Programme foundation* + +* Las «link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala]» e las strategias referenziadas furman il rom. Per la realisaziun èn cumpetents ils departaments ed ils uffizis respectivs. + +*3.2 Relevant tasks defined and supported* + +* La guida «link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da OSS]» e las glistas da controlla defineschan incumbensas concretas per la publicaziun. In post central n'exista actualmain betg en l'administraziun federala. + +*3.3 Open source content review and approval* + +* Il process da publicaziun vegn descrit en il med «link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da OSS]». Quel renviescha era a l'existenza d'ina Software Bill of Materials (SBOM). +* Il med «link:em002-3.pdf[Em002-3 Guida da licenzas OSS]» infurmescha amplamain davart la licenziaziun. + +*3.4 Compliance artifact creation and delivery* + +* Il process da publicaziun vegn descrit en il med «link:em002-2.pdf[Em002-2 Instrucziun per la publicaziun da OSS]». Quel renviescha era a l'existenza d'ina Software Bill of Materials (SBOM). +* La realisaziun na vegn betg descritta pli detagliadamain ed ha lieu en ils departaments u en ils uffizis. + +*3.5 Understanding open source community engagements* + +* Il med «link:em002-4.pdf[Em002-4 Guida da communitads OSS]» descriva, co ch'ina communitad vegn construida e tgirada. Per mintga project sto vegnir definì e realisà in concept. + +*3.6 Adherence to the specification requirements* + +* Il chapitel final cuntegna pretensiuns ad organisaziuns u projects che vulan confermar expressivamain l'observaziun da las pretensiuns OpenChain. +-- ++ +La norma ISO delinescha ulteriurs secturs da responsabladad d'in Open Source Programme Office (OSPO) che n'èn betg cuverts da las guidas. + +== Agiunta + +=== Abreviaziuns + +[horizontal] +include::partials/abbreviations.rm.adoc[tags=abbr-em002-6] + +=== Glossari + +Ulteriuras noziuns sa chattan en TERMDAT, la https://www.bk.admin.ch/bk/rm/home/dokumentation/sprachen/termdat.html[banca da datas terminologica] da l'administraziun federala. + +include::partials/glossary.rm.adoc[tags=gloss-em002-6] +endif::[] diff --git a/docs/em002-7.adoc b/docs/em002-7.adoc new file mode 100644 index 0000000..9c5f794 --- /dev/null +++ b/docs/em002-7.adoc @@ -0,0 +1,3566 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002-7 OSS Guideline: Applying Article 9 EMOTA +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002-7 Leitfaden OSS: Anwendung von Artikel 9 EMBAG +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002-7 Guide OSS : application de l'article 9 LMETA +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002-7 Guida OSS: applicazione dell'articolo 9 LMeCA +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002-7 Guida OSS: applicaziun da l'artitgel 9 EMBAG +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +*Disclaimer:* This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main {url-repo}/tree/main[README]. + +''' + +== Main points at a glance + +This document supplements the Em002 set of OSS tools with aspects concerning procurement. It builds on the _Information Sheet on Software Procurement and Art. 9 EMOTA_ published by the Federal Procurement Competence Centre (CCPP)footnote:[The Competence Centre for Federal Public Procurement (CCPP) advises procurement and requesting offices on matters relating to procurement law in accordance with Art. 37 OPPO. Central email address for enquiries: rechtsdienst.kbb@bbl.admin.ch] _[KBB-MB]_, and summarises the content of FOBLfootnote:[The Federal Office for Buildings and Logistics (FOBL) is the central procurement office of the Swiss Confederation (Arts 5--7 OPPO). It carries out procurement within its area of responsibility, consolidates where appropriate and may conclude framework agreements.] documents such as the _Open Source in Procurement Guidelines_ [BBL-WL], which are available on the intranet only.footnote:[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] The document also addresses digital sovereignty as a procurement criterion. + +The use of open source software can be divided into four aspects: + +* Consumption: The use of pre-existing OSS +* Creation: The development of new OSS +* Contribution: Contributing in-house modifications to an existing OSS project +* Collaboration: The joint further development of OSS with third parties. + +In all these situations, a public contracting authority must comply with the relevant procurement legislation. + +*Consumption:* + +* Procurement law applies when services are purchased on the market for payment (Art. 8 PPA). + +In other words: + +* The use of OSS that is available free of charge (without licence fees, support or maintenance contracts, etc.) does not generally constitute procurement. +* Value-added services purchased for the use of OSS (support, warranty, maintenance, and further development) must be procured in accordance with procurement law. +* When procuring software, it is generally permissible to specify OSS as a requirement, e.g. where the administrative unit (AU) expects to derive specific benefits, such as greater data sovereignty or simplified compliance with Art. 9 EMOTA in the event of foreseeable bespoke adaptations. However, the market must not be unduly restricted. + +*Creation and contribution:* + +* When developing software or software components, including with a view to subsequent contribution to an OSS project, Art. 9 EMOTA must always be taken into account. Where third-party services are purchased for this purpose, procurement law applies. +* When contributing to OSS projects, the AU passes on its own work to third parties; this process is therefore not subject to procurement law. +* The acceptance of third-party contributions to a federal OSS project is likewise unproblematic from a procurement law perspective, provided no payment is made. + +*Collaboration:* + +* Collaboration between various public contracting authorities on an OSS project gives rise to a broad range of legal requirements. From a procurement law perspective, those arrangements involving the provision of services for payment require careful examination. +* In an informal collaboration, each participating party may procure or provide development services independently and then make them available free of charge. Coordination services may likewise be provided or procured. +* In a formalised collaboration, e.g. through an association of public-sector actors, the central body may also be able to provide or procure development services, provided it is itself subject to procurement law. +* Joint procurement by contracting authorities from different countries is not, however, straightforwardly permissible. + +For the sustainable use of open source software, it is important that OSS is not merely consumed, but that as many stakeholders as possible also contribute to the ecosystem. There are many ways to do this: from regular code contributions and creating documentation to funding developers, and much more. + +== Objective and purpose + +The Federal Act on the Use of Electronic Means to Carry Out Official Tasks (EMOTA)footnote:[https://www.fedlex.admin.ch/eli/cc/2023/682/de] requires that additional considerations be taken into account when procuring newly developed software and software development services. + +To support compliance with Art. 9 EMOTA, DTI has developed tools and resources as part of link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration] and link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration] + +include::partials/document-map.en.adoc[] + +Figure 1: Overview of OSS tools + +The tools and resources are available on the Federal Chancellery website under https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[OSS tools]. + +This document goes beyond the core of Article 9 EMOTA and also sets out how open source should generally be handled in the context of procurement. + +Section 3:: The importance of digital sovereignty in the context of open source and procurement +Section 4:: Relevant procurement use cases in connection with software and open source software +Section 5:: Creation: Tendering for software and services in connection with Art. 9 EMOTA +Section 6:: Consumption: Software procurement: equal treatment of open source software +Section 7:: Consumption: Procurement of additional services (support/maintenance/further development) for OSS +Section 8:: Collaboration: Procurement law aspects of collaborations for the creation, maintenance and support of OSS +Section 9:: Contribution: Contributing to OSS projects + +== Digital sovereignty and procurement + +=== Introduction to digital sovereignty and OSS + +Through Art. 9 EMOTA, the Federal Administration is making an important contribution to digital sustainability and sovereignty by publishing its software as OSS. + +Digital sovereignty is not an end in itself, but a prerequisite for an effective, democratic and future-oriented administration. It is a multi-faceted concept encompassing technological, organisational and political dimensions. + +**** +*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.* +**** + +When procuring software in particular, consideration should be given to the implications for the digital sovereignty of the Federal Administration. + +In its *roles as user, operator and contracting authority* in the field of ICT and software, the Federal Administration can consciously fulfil its responsibilities in this area. + +There are three strategic objectives in the area of software: + +*Interchangeability*: [.underline]#As a user#, the public administration seeks to be able to choose freely and flexibly between providers, IT solutions and technologies. This requires the availability of capable and proven alternatives, and IT architectures, procurement channels and staffing that are designed to facilitate switching. + +*Design capability*: [.underline]#As an IT operator#, the public administration has the ability to shape and co-design its IT systems. To this end, it has the necessary expertise and appropriate cooperative structures to understand and evaluate IT solutions and, where necessary, ensure their development, further development and operation. + +*Influence*: [.underline]#As a contracting authority#, the public administration can articulate and enforce its requirements and needs vis-à-vis technology providers. This applies to product features (functions, operating options, availability, information security and data protection, etc.) as well as to contract design and licensing models. + +*Open standards* and *open source software* best support these goals through *open source principles*. + +OSS supports digital sovereignty in the following ways: + +* IT security for public administration, critical infrastructure and security-sensitive applications can be assured [.underline]#at all times# through [.underline]#full access# to the source code. +* OSS enables public bodies to build, operate, control and adapt their own IT infrastructure without restrictive licence conditions. +* OSS provides full control over updates, features and security patches, in terms of both content and timing. +* OSS can prevent dependence on individual vendors or licensing models and supports interchangeability. +* OSS allows the entire software supply chain to be displayed and traced transparently. +* OSS can be customised and expanded -- well suited to the specific requirements of public authorities and educational institutions, though this requires in-depth knowledge on the part of an organisation's own employees. +* Investment in OSS also benefits local businesses and communities (local value creation), increasing the resilience of the Swiss economy. +* OSS is based on collaboration and open interfaces, facilitating interoperability between systems and promoting open standards -- even across national borders. +* OSS improves IT security and data security through transparency and adaptability. +* OSS software licensed under OSI licences guarantees clear legal conditions and continuity, along with the fundamental freedoms of OSS, protecting developers and users alike. + +*Open standards:* To support software interchangeability, public procurement tenders should require compliance with open standards,footnote:[For example, open standards such as eCH, ODF; see also https://en.wikipedia.org/wiki/Open_standard[Open standard -- Wikipedia]] thereby minimising lock-in. +*Open interfaces:* Interfaces should likewise be disclosed to enable interoperability. + +Federal authorities are generally required to comply with the eCH standards.footnote:[https://www.ech.ch/[www.ech.ch]] + +The Bern University of Applied Sciences set out the relevant considerations in the study _Technological Perspectives of Digital Sovereignty_ [Stü2024], commissioned by the FDFA, using the 'sovereignty house' model, in which software is presented as a key pillar. In that model the layers beneath the roof -- collaboration, technology skills, the four pillars and regulation -- are the areas in which recommended measures promote digital sovereignty. + +[mermaid,align="center",alt="Schematic representation of the aspects of digital sovereignty enabling the provision of innovative products and services"] +.... +block-beta + columns 4 + Roof["Innovative digital products and services
from businesses and public authorities"]:4 + space:4 + Collab["Collaboration with research and civil society"]:4 + Skills["Technology skills (programming, data science, etc.)"]:4 + SW["Software"] Data["Data and
digital content"] AI["Artificial
intelligence"] Infra["ICT infrastructure
(hardware)"] + Reg["Regulation (laws, standards)"]:4 + Collab-- "enable" -->Roof +.... + +_Figure 2: Schematic representation of the aspects of digital sovereignty enabling the provision of innovative products and services [Stü2024]_ + +=== Measuring digital sovereignty + +Aspects of digital sovereignty may be required in a public tender, but any such requirements must be objectively justified. There is no general preference for OSS. + +*How, then, can the degree of digital sovereignty be measured for a given technology, product or service?* + +This operationalisation must be made as objective and transparent as possible. + +Various initiatives are attempting to do this. The OSBA, for example, has developed a **sovereignty index**footnote:[https://osb-alliance.de/featured/ein-index-fuer-digitale-souveraenitaet[An index for digital sovereignty | OSBA -- Open Source Business Alliance]] _[OSBA-VK]. Nextcloud_ has published a Digital Sovereignty Index (DSI),footnote:[https://dsi.nextcloud.com/[dsi.nextcloud.com]] which compares entire countries but can also provide useful criteria. +The European Union has published a Cloud Sovereignty Frameworkfootnote:[https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf[commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf]] for the cloud. +The _Centre for Digital Sovereignty ZenDiS_ is working on a sovereignty check designed to evaluate IT solutions and organisations against transparent sovereignty criteria. + +The Federal Administration is also involved in developing a *digital sovereignty framework* that will, among other things, enable the degree of fulfilment to be determined across a range of perspectives. + +Possible perspectives include: + +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? + +For each of these perspectives, the degree of digital sovereignty can be determined against a scale to be defined: + +0 -- Externally determined / non-sovereign:: +No control over systems, data or infrastructure; no transparency, high dependencies; no exit or alternative options + +1 -- Minimally controlled:: +Initial insight into usage and dependencies; selective control mechanisms; operational, legal or technological gaps remain + +2 -- Regulated and usable:: +Systems reliable and partially controllable; legal and technical framework established; strategic dependencies still present + +3 -- Self-directing and resilient:: +Market position is used; exit strategies and multi-vendor concepts implemented; know-how built up; resilience and crisis scenarios prepared + +4 -- Systemically sovereign:: +Sovereignty across all relevant dimensions (legal, technological, cultural, strategic); active shaping of markets and standards; geopolitical effect possible + +_Figure 3: Degree of digital sovereignty._ + +These two dimensions produce the following matrix: + +[.landscape] +[cols="2,^1,^1,^1,^1,^1",options="header"] +|=== +|Perspective +|0 + +Externally determined +|1 + +Minimally controlled +|2 + +Regulated and usable +|3 + +Self-directing and resilient +|4 + +Systemically sovereign + +|A -- Technological control +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|B -- Data sovereignty +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|C -- Legal capacity to act +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|D -- Resilience +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|E -- Economic control +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +|=== + +_Figure 4: Matrix of digital sovereignty: perspectives against degree of sovereignty._ + +Specific criteria can be described for the individual intersections of the grid to make the classification as objective as possible. + +Such a framework is currently being developed as part of Priority 4, 'Strengthening digital sovereignty', of the 'Digital Federal Administration Strategy'.footnote:[https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html[www.bk.admin.ch -- Digitale Bundesverwaltung]] + +The Federal Council brought the umbrella directive Digital Sovereignty in the Federal Administrationfootnote:[W012 - Directives for Digital Sovereignty in the Federal Administration] into force on 1 January 2026. Projects must incorporate the various aspects into the definition of the procurement object and, where necessary, into a tender, on the basis of the specific sovereignty requirement -- for example from a risk perspective in the context of business continuity management. + +== Use cases for software procurement + +Information and communication technology (ICT) and software are not an end in themselves in the Federal Administration, but always serve to fulfil a legal mandate. Given advancing digitalisation and the Federal Administration's central role in Switzerland, information technology must be a core competence of the administration. + +The following *factors* therefore have a direct bearing on procurement: + +* *Digitalisation*: The digital strategyfootnote:[https://digital.swiss/en/] calls for the digitalisation of processes. +* *Process optimisation*: Processes within the Federal Administration and in its external relations can and should be optimised. +* *Digital sovereignty*: The importance of digital sovereignty is growing steadily; see _[Stü2024]_. +* The principle of *public money, public goods* and compliance with Art. 9 EMOTA. +* *Economic freedom*: Measures should not unnecessarily restrict economic freedom. +* General *security* considerations: The security of information processing systems is of increasing importance. +* Crisis and disaster management (*resilience*): Given the current global situation, the administration must consider how it can continue to provide the necessary working tools under critical circumstances. +* Strategic independence and *supply chain* considerations: These follow from digital sovereignty and resilience. +* Avoiding/minimising *vendor lock-in*: Dependencies are almost impossible to avoid in IT, but reliance on a single vendor should be reduced wherever possible. +* *Empowering* the Federal Administrationfootnote:[Not only among managers, project managers and ICT architects, but across all staff.] (including management) in ICT matters: Controlling, developing and operating information technology requires appropriate skills across the workforce. + +This document distinguishes between *software types* as follows: + +* *Commodity -- Specialised applications/Industry -- Specialised applications/Federal authority*: +** Standard application (commodity software) without special business logic. +** Specialised application: Specific requirement of the industry/all federal levels or specific requirement of the federal authority +* *Targeted -- strategic -- essential*: +** Targeted application +** Strategic application with significant importance for a federal authority or the Federal Administration as a whole +** Essential and business-critical -- must remain functional in all circumstances (e.g. air traffic control) + +Applications may be used across one or more *fields of application*. + +What matters here is the *standardisation* of applications by product within each area: + +* No strategy +* Single-product strategy +* Multi-product strategy + +In addition to product standardisation, which must be examined carefully, there is also standardisation for interoperability (data formats, API, business elements).footnote:[E.g. via eCH] +Standardisation _is permissible_ provided it is proportionate and does not unduly restrict competition (e.g. Art. 30 para. 3 PPA). It may reduce operating and maintenance costs and generate synergy effects, particularly where all federal levels are involved. On the other hand, it increases lock-in, dependency and, in some cases, security risks (cluster risk). + +Total costs of ownership (TCO) -- covering operation, maintenance and further development -- should always be considered in procurement. Long-term cost implications must not be overlooked. Open source business models differ in certain respects from those of proprietary providers. + +The following sections focus increasingly on open source, discussing the relevant procurement approach and how it should be implemented. + +The choice between consumption, contribution, collaboration and creation is made _on a project-specific basis_ according to economic efficiency and the legal situation, with costs distributed as broadly as possible. From this perspective, the four Cs as defined in link:em002.pdf[Em002 OSS Strategic Guidelines], Section 3, are ranked in descending order of importance: + +image::./assets/four-cs/four-cs.en.svg[Ranking of the four Cs: Consumption, Contribution, Collaboration, Creation] + +. Consumption +. Contribution +. Collaboration +. Creation + +With simple *consumption*, costs are spread across a large number of other users, but the federal authority has no control over further development. Creation is the inverse: full control, but full cost. + +With *contribution*, financial outlay is limited to the element developed, which is then handed over to another organisation for maintenance. + +*Collaboration* is the most complex scenario, as arrangements can vary considerably. In the best-case scenario, costs are shared and the federal authority has sufficient influence to implement its requirements without compromise (see Section 8). + +Ideally, *creation* accounts for the smallest share. Software may be developed in-house, through services, or via a contract for work. + +Pure consumption will only be feasible for standard applications. + +=== Software requires additional services such as maintenance, support and further development. + +Although open source applications can be used free of charge, their strategic deployment across thousands of instances requires maintenance, support and, where necessary, further development. + +Federal authorities have an interest in long-term support for deployed versions (see Section 3.2.3 in _[BITKOM2024]_). + +Art. 9 EMOTA itself covers only the in-house development or further development of software and is not relevant to any other open source considerations -- digital sovereignty and other factors apply instead. However, restrictions under Art. 9 EMOTA on individual development components may have repercussions for the overall project where proprietary or additional developments are foreseeable. Collaboration can then be used to exploit synergy effects and, where possible, reduce costs across the Federal Administration as a whole. + +=== Publication requirement for software procurement + +Where requirements indicate a need to adapt software, or a potential need for later adaptation, Art. 9 EMOTA is relevant and publication is mandatory for those parts, unless one of the two exceptions applies. When procuring an open source solution, such publication would already be addressed through a contribution to the open source project. Even where procurement involves only the licensing of standard software or ICT procurement falling under an exemption, any additional developments must in principle be published, and this must be reflected in the procurement documents and draft contract. + +*The publication requirement under Art. 9 EMOTA is therefore relevant to any procurement where in-house development or further development is likely* (see also _[KBB-MB]_). + +== Creation: Tenders for software and services involving Article 9 EMOTA + +This section addresses the implications of Art. 9 EMOTA for tenders for software and services that may involve the creation or modification of software. + +It applies to both centralised and decentralised Federal Administration. Exceptions to this requirement are set out in the Digitalisation Ordinance _[DigiV]_. + +=== Relevance of Article 9 EMOTA for software creation + +A transaction falls within the scope of Art. 9 EMOTA if it falls within the relevant category of Table 1. The make-or-buy decision remains central to procurement. Analysis of the various use cases shows that, in principle Art. 9 EMOTA is relevant in all cases, except where pre-existing software is being procured (e.g. pure licences). Section II.4 of the _Open Source in Procurement Guidelines [BBL-WL]_ sets out the strategic approach, and Annex VII.A describes in detail what constitutes software. A detailed breakdown of the strategic decision is provided in Table 1. + +[cols="3,2,4",options="header"] +|=== +|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 +a|Generally no, but check whether publication requirements apply to any parts being developed. Handling of third-party rights is particularly relevant (see link:em002-3.pdf[Em002-3 OSS Licensing Guidelines]). + +|Acquiring software from other public bodies +|Make or buy +a|-- 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 +|=== + +_Table 1: Classification of publication requirement and make-or-buy decision (based on a table by Rika Koch, BFH)_ + +NB: Art. 9 EMOTA must also be taken into account for existing software and SaaS where the software is to be further developed or adapted for the federal government. Even where the likelihood of this is low, it should be addressed in the procurement process. + +Where clarification is needed, the recommended reference is link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software]. The checklists should be *completed provisionally as early as possible* for potentially relevant projects. The _Checklist for Art. 9 EMOTA Blanket Exception [BBL-CL]_ may also be used for this purpose. + +=== Preparing a procurement under Article 9 EMOTA + +In addition to the usual preparatory steps, the following two documents should be consulted whenever a procurement involves software components: + +* _Information sheet on software procurement and Art. 9 EMOTA [KBB-MB] and_ +* _Open Source in Procurement Guidelines [BBL-WL]_. + +Where Art. 9 EMOTA is clearly relevant, the administrative unit should have: + +* provisionally completed the checklists link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 OSS Preliminary Assessment Checklist] through to link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 OSS Release and Publication Checklist]; +* taken a basic decision on whether to use a copyleft or permissive licence;footnote:[A more detailed analysis can be carried out later using _Em002-3 OSS Licensing Guidelines_ if needed).] +* searched for possible open source alternatives (or potential base projects for contributions/collaboration) in accordance with link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software], using the tools specified therein for market research/market analysis;footnote:[See also link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration], Section 7.] +* clarified the structure of any relevant community (link:em002-4.pdf[Em002-4 OSS Community Guidelines] and link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist]). + +Where an existing OSS project is to be used, supported or built upon through collaboration, Sections 5, 0, 8 and 9 of this document must be read. + +=== Creation via existing service contracts + +Where creation is handled via existing partner agreements, OSS publication must be ensured at the mini-tender stage, unless one of the two exceptions applies. + +New service tenders should always include a requirement for publication in accordance with Art. 9 EMOTA (see _[BBL-WL] and_ _[KBB-MB])_. + +=== Building a community + +Building and maintaining a community maximises the benefits of open source software, but also involves considerable effort. + +Where a community and collaboration make sense, this has implications for procurement from the outset. link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community] should therefore be completed on the basis of the link:em002-4.pdf[Em002-4 OSS Community Guidelines]. + +Where the federal authority is to take on a significant role in the community (e.g. a governance role) or where collaboration is planned (see Section 8), it may be necessary to procure additional services: community building, consolidation of requirements, management of further development. + +=== Sample criteria and contract elements for IT procurement + +The CCPP maintains a template of possible procurement criteria and a framework agreement chapter template for software-related tenders _[KBB-KV]_. + +The CCPP has published two template documents on Perimap.admin.ch showing how the minimum requirements for a procurement-compliant acquisition under Art. 9 EMOTA can be met. [KBB-KV] + +. https://perimap.admin.ch/goto_perimap_file_47064_download.html[Sample criteria -- Procurement EMOTA and Open Source] +. https://perimap.admin.ch/goto_perimap_file_47059_download.html[Sample contract texts -- Software development] + +== Consumption: Software procurement: Equal treatment of open source software + +This section addresses the procurement and use (consumption) of open source software, highlighting key strategic aspects. +Reference is also made to _[BBL-WL] and_ _[KBB-MB]_. + +*There is currently no legally prescribed preference for open source software in procurement.* + +When tendering for IT applications, all licence types and business models are considered. To meet the stated requirements, providers may offer software solutions based on unmodified open source, closed source or proprietary software, or on combinations of licence models and value-added services or subscriptions. + +The following pointsfootnote:[The primary procurement reference documents are those published by the FOBL and CCPP on the relevant platforms.] should be taken into account by federal authorities: + +* Regardless of its solution and licensing model, the service provider must specify in its tender *which licence conditions the service procurer must comply with when using the service*. +* The service provider is *free to choose the solution* with which it intends to meet the advertised requirements and the form of remuneration it wishes to receive (licence, maintenance or subscription fees), provided this is technically feasible and economically reasonable. +* The full *lifecycle* should be taken into account in the specifications and pricing. + +This enables the Federal Administration to assert its interests regarding intellectual property, warranty and liability -- independently of the software or licence model -- at the level of the applicable general terms and conditions, and to enshrine these in the contract. + +Where *software adaptations* are made on behalf of or in fulfilment of a contract with the federal authority, Art. 9 EMOTA applies. +As a precaution, publication approval should be requested in the tender, since experience shows that adaptations are usually required sooner or later, even if not foreseeable at the time of tendering. + +Where the service procurer procures *value-added services* from a provider in addition to the software, OSS suppliers often offer a subscription model that provides a local contact with warranty and liability commitments, alongside the direct relationship with the intellectual property holders of the OSS components (who are often based abroad and sometimes unknown). + +=== OSS as a strategic procurement criterion + +Where a federal authority wishes to procure open source software for strategic reasons, several scenarios are possible: + +* Functional invitation to tender without OSS-specific criteria. +As this involves no restrictions, no special justification is required. +* Functional invitation to tender with eligibility criterion, technical criteria and award criteria requiring open source, full access to source code, or demonstrable experience in open source publication. + +*Any preference for open source is permissible under procurement law where it allows the specific needs of the awarding office to be (better) met*.footnote:[See [BBL-WL\], [BBL-CL\], [KBB-MB\], [KBB-KV\]] + +A further reason for favouring OSS -- beyond digital sovereignty -- is that where the administration requires significant software adaptations, these must be published under Art. 9 EMOTA. +Publication is most straightforward when the entire product has always been open source, and adaptations can in some cases be made directly within the product. Otherwise, an exception must be defined and, where necessary, parts of the code must be isolated and still released. + +=== The use of OSS without payment is not subject to procurement law. + +OSS can often be downloaded and used directly. Procurement law applies only where services are obtained from third parties in return for payment (including non-monetary consideration). + +Downloading and using OSS free of charge does not in itself constitute procurement. + +It is also possible to procure the necessary services for downloaded OSS at a later stage, provided this is not done abusively.footnote:[Analogy: A commune may use its own timber and commission construction of a maintenance depot using that timber -- it is not required to procure the timber itself.] + +Maintenance, support and further development services for the product are then tendered separately in accordance with procurement law. + +There are already examples of OSS being used free of charge on the Federal Administration's standard workstations and therefore not procured.footnote:[Examples of OSS with standardisation potential: Gimp, FileZilla, VLC Media Player and 7-zip as Shell 2 products (according to [A029\]), which can be used because installation is free of charge. In 2024, BIT designated Red Hat OpenShift as a strategic product for certain application areas on the basis of its unique technical features. OpenShift is currently the strategic platform for containers and operating systems.] + +=== Coordinating requirements with other stakeholders + +A specialised application always requires a requirement owner (usually a federal office). It generally makes sense for the body with the need to harmonise its requirements with those of other government agencies --- either internally or through collaboration (see Section 8) --- to the extent that an available market product or a collaborative development is conducive to development and rollout. + +Where many stakeholders have the same or similar requirements, it may be worth meeting those needs on a common basis. This applies to all forms of software. + +Two aspects should be noted: where adaptations are subsequently made by a federal authority at the request of third parties, Art. 9 EMOTA applies again -- though this is unproblematic where open source software is used. + +With OSS, requirements may need to be aligned more actively by the federal authority, since there may be no driving force such as a commercial vendor seeking to steer and develop its own product. + +=== Considering other potential public actors in procurement + +The ZenDiSfootnote:[https://www.zendis.de/en[https://www.zendis.de/] ZenDiS's stated mission is to enable the administration to break free from critical dependencies on individual technology providers.] example shows that it can be both feasible and worthwhile to issue a tender covering all federal levels simultaneously. + +*Fair competition must always be maintained.* When issuing tenders, consideration should always be given to whether the solution might usefully be procured for other bodies as well. + +Where this is the case, those potential additional clients should be contacted and their needs reflected in the tender documents, particularly the requirements. A degree of flexibility in the requirements is important in such cases. + +Example: eOperations Switzerland Ltd (http://www.eoperations.ch[www.eoperations.ch]) can be used for such collaborations. eOperations consolidates requirements from various agencies and conducts procurement itself, without necessarily using the product itself. This may also be a useful model for OSS procurement. + +== Consumption: Procurement of support and maintenance for OSS + +Public administration can use open source software in various ways, from simple download and installation through to formal procurement (see Section 6.2). + +Where OSS is deployed in critical areas, consistently high standards of security,footnote:[See also link:em002-6.pdf[Em002-6 FAQ-OSS], Section 5.3] maintenance and further development are required. In regular software procurement, this is usually covered by the tender. The requirements apply to both the software itself and to the relevant libraries and frameworks used. Support and maintenance warrant particular attention, since further development is often covered under the same contract and in any case constitutes creation and therefore falls within the scope of Art. 9 EMOTA. + +These labour-intensive services almost always exceed the threshold value under the Public Procurement Act (PPA) when calculated over the application lifecycle. Where they are purchased from third parties, procurement law must be complied with. Exceptions may apply, such as in-state procurement from another public contracting authority,footnote:[Art. 10 para. 3 let. b PPA.] or in exceptional cases direct procurement of specialist services.footnote:[Art. 21 para. 2 let. c PPA.] + +The following table sets out the case distinctions for the procurement of services such as support. + +[cols="1,1,1,2"] +|=== +2+h|Background 2+h|Results + +h|Lifecycle costs + +→ WTO threshold?footnote:[Internal costs may be excluded. Full life cycle must be considered.] +h|In-state?footnote:[In-state procurement is not subject to tendering: state sponsorship required, no market participation. Applies only within the Swiss public sector.] +h|WTO tender required?footnote:[Federal procurement guidelines always apply where any payment is made.] +h|Comments + +|No +|No +|No footnote:[Software with support generally exceeds the PPA threshold; 'no' will only apply in rare cases (e.g. financing a single feature for an existing OSS project).] +.2+|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. +|=== + +_Table 2: Case distinction -- procurement of support_ + +=== Support and maintenance are always part of software + +Support and maintenance are essential for the sustainable operation of software in a public authority environment. In a world of zero-day exploits,footnote:[A zero-day exploit refers to the exploitation of a security vulnerability for which no patch is yet available from the component developer.] rapid and professional patch deployment is critical. This 'infrastructure' must be funded -- particularly since the administration has higher requirements than a private consumer. + +*The question is therefore not IF support and maintenance will be required, but HOW they are to be provided.* + +The federal authority must determine what level of support, maintenance, warranty and liability it requires based on its quality of service requirements. + +It is important that any service provider for maintenance and support can demonstrate sufficient experience with the product or the relevant open source community -- only then will it be able to fulfil these tasks effectively (see also _[KBB-MB]_, II.5).footnote:[The service contract may also need to cover the potential transfer of knowledge to a successor organisation.] + +Support and maintenance must also be funded at the product level. Where no one contributes (the free-riderfootnote:[https://en.wikipedia.org/wiki/Free-rider_problem] problem), the project's future is jeopardised, and with it its use within the Federal Administration. Given its scale, the Federal Administration can reasonably be expected to contribute to the costs of software it deploys strategically. + +=== Organisations that can provide support + +The quality of support has a direct impact on end-user satisfaction and productivity. A structured support system with fast response times and genuine technical expertise ensures that users and administrators receive effective solutions to their issues, saving the contracting authority's working time and promoting acceptance of the software solution. + +To meet contractually agreed response times under service level agreements (SLAs), the provider must have qualified staff with the necessary expertise. + +Possible sources of support include: + +*In-house*: + +* Federal offices +* Service providers + +*In-state*: + +* Other public contracting authorities in Switzerland +* Services procured by other public contracting authorities in Switzerland + +*Third parties*: + +* Procured service + +=== Further development for specific features + +Where a federal authority requires only a limited number of specific enhancements to a piece of open source software, this can be done using internal resources or procured services. + +Such further developments should aim to be offered back to and integrated into the original project. This not only benefits the project ecosystem but ensures the enhancements are maintained within the project going forward. Without this, each new release of the original project may require the bespoke development to be updated manually (see also Section 8). + +=== Subscription + +Many companies and projects in the open source environment offer free support within certain limits, provided voluntarily by any user, mainly through open channels such as forums and public ticket systems. This free offering is not designed for professional users with specific SLA requirements. + +For professional users such as federal authorities, OSS subscriptions that include warranty, maintenance and support are often available. + +Some providers also offer special 'enterprise versions' that no longer meet the OSI's open source criteria. + +Examples of subscriptions: OpenShift from Red Hat, openDesk from ZenDiS + +=== Certifications in the open source sector and OpenChain + +As with proprietary software, various certifications exist in the open source sector. It may be worthwhile for the administration to check for potentially relevant certifications in the area covered by the tender before issuing it. + +*OpenChain* is an ISO standard addressing open source development and licence compatibility (see below). + +Where relevant certifications exist and are pertinent to the service, they should be taken into account in the assessment of providers. It is important that the certification itself is considered meaningful, and that providers can demonstrate they are able to deliver the service even without certification. + +Given the complexity involved, requiring certifications as an eligibility criterion is inadvisable. As an award criterion -- with the possibility of demonstrating compliance with certification content through references -- they may be appropriate depending on the OSS product, provided it is permissible to use references to demonstrate that certification criteria are being met.footnote:[NB: Requiring a certification that is excessive or ill-suited to the subject of the tender will inevitably produce less competitive bids.] + +Self-certification under OpenChain may at best serve as a substitute where no other certification exists. References addressing the relevant criteria can also stand in for missing certifications. + +*Certification of partner companies* + +Some open source developers and projectsfootnote:[such as Nextcloud or Univention] certify partner companies with which they collaborate. Such certifications can demonstrate an existing relationship between the provider and the software developer. Note that many OSS projects do not offer such certifications. Proven collaboration in reference projects is an equally valid -- and less restrictive -- indicator of the desired quality. + +*Certification of employees* + +Some open source manufacturers or communitiesfootnote:[such as LibreOffice or RedHat] certify individuals with specialist expertise in the relevant software. Where a service provider employs certified staff, this can demonstrate expertise in upstream publication of adaptations and patches, and in providing high-quality third-level support -- particularly where several staff members work with the product. This also depends on the structure of the OSS project's ecosystem. + +As an alternative to certifications, demonstrable project experience in references relating to the procurement subject can also serve as a differentiating criterion. + +*OpenChain standard* + +The OpenChain standard represents both best practice in licence compatibility and a certification of interest to procuring authorities. + +ISO/IEC 5230 'OpenChain' focuses on software supply chains, streamlined procurement and licence compliance. The OpenChain standard can be awarded by an accredited certification body or obtained through self-certification. This certification is suitable for demonstrating in general terms that a provider has already dealt extensively with open source licence requirements and the specifics of the open source ecosystem. +Since the creation of a Software Bill of Materials (SBOM) is part of the standard, this certification also evidences a supplier's commitment to supply chain security through support of foundational components. + +=== Further options for procuring maintenance, support or further development services + +It makes sense to handle further development services under the same contract as support and maintenance, since the distinction is not always straightforward and is often not practical in the context of open source software. Further developments funded by a federal authority fall within the scope of Art. 9 EMOTA. + +The following options are currently availablefootnote:[Other, more niche options may also exist.] for procuring support, maintenance and/or further development services for OSS: + +* In-house, with competence building: Deploy own development resources +* Procurement: According to volume and in compliance with the PPA. This may also be done via service contracts already put out to tender. To ensure that strategic partners can provide experienced core developers for OSS projects central to the Federal Administration, it may be worth permitting subcontracting or requiring the relevant expertise in certain tenders. +* Cooperation agreements with third parties for maintenance, support or further development: unproblematic as long as each party bears its own costs. +* Federal participation in organisations: unproblematic as long as each party bears its own costs. + +== Collaboration: Procurement law aspects of collaborative creation, maintenance and support of OSS + +The costs of open source software decrease when it is developed collaboratively, whether informally or through a structured arrangement. link:em002-4.pdf[Em002-4 OSS Community Guidelines] sets out the relevant approaches. + +Collaboration with other public contracting authorities or third parties is unproblematic under procurement law as long as each party bears its own costs. Difficulties arise where the collaboration does not result in OSS, since the Federal Administration is bound by Art. 9 EMOTA. + +Such cooperation is permitted under Art. 4 EMOTA. + +The question of how to handle overheads or a centralised structure must be addressed: the structure needs sufficient funding to sustain the project through difficult periods. An alternative is a single managing partner (e.g. if one participant is large enough to take on the coordination role). Where the federal authority assumes this role, the relevant services must be provided in-house or tendered in the normal way if third parties are to be engaged. + +At the contractual level, the following applies to collaborations: + +* Where no money changes hands and no formal obligations are required, a Memorandum of Understanding at the level of the federal office or Federal Chancellery is possible. +* The establishment of a joint structure -- such as an association or public-law corporation -- is possible in principle but must be assessed on a case-by-case basis. Where the joint structure is itself to procure services from third parties, the application of procurement law must be regulated. + +Membership may in some cases be exercised through other organisations such as eOperations or eCH. + +*Cooperation with foreign countries* + +Cooperation with foreign authorities is unproblematic as long as no money changes hands and no obligations of any kind are entered into. + +Cooperation agreements at the appropriate level are possible in principle but must be assessed case by case. +International treaties should be avoided given the high hurdles involved, though they would in principle also be possible. + +Two special casesfootnote:[https://www.eda.admin.ch/deza/en/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] exist where collaboration would already be covered: + +* Contracts awarded under an international agreement for the joint implementation of a project by signatory states. +* Contracts awarded in accordance with the special procedures or conditions of an international organisation. + +== Contribution: Contributing to OSS projects + +Most of the characteristics and legal considerations relating to contributions are covered in link:em002-4.pdf[Em002-4 OSS Community Guidelines]. + +From a procurement law perspective, contributions are generally unproblematic, since the services are provided to develop code for a project that is either of direct relevance to the authority or has already been addressed from a procurement law standpoint. + +*Contributions from third parties to OSS projects run by federal authorities are also unproblematic under procurement law, as long as no money changes hands.* + +Note: Since the federal authority is obliged to publish software it develops, it must also ensure that it remains published. If an OSS project is taken down by its operators, the federal authority may in the worst case need to republish it independently. In practice, the source code typically remains available (e.g. as an archive), the project continues as a fork, or the project -- and with it the source code -- has simply become irrelevant. + +== Annex A: References: + +A significant portion of the references are _already mentioned in Em002 Strategic Guidelines for Open Source Software in the Federal Administration_. + +include::partials/references.en.adoc[tags=ref-em002-7] + +== Annex B: Glossary + +This glossary covers specific terms related to procurement topics. + +The general glossary for the Em002 document set can be found in Em002-6 OSS-FAQ. + +Further terms can be found in the terminology database TERMDAT https://www.bk.admin.ch/bk/en/home/dokumentation/languages/termdat.html[terminology database of the Federal Administration]. + +include::partials/glossary.en.adoc[tags=gloss-em002-7] +endif::[] + +ifeval::["{lang}" == "de"] +*Haftungsausschluss:* Dieses Dokument ist ein laufend weiterentwickelter Entwurf und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Weitere Informationen finden Sie im {url-repo}/tree/main[README]. + +''' + +== Das Wichtigste auf einen Blick + +Dieses Dokument ergänzt den Hilfsmittelsatz OSS Em002 um Aspekte der Beschaffung. Es baut auf dem vom Kompetenzzentrum Beschaffungswesen Bund (KBB)footnote:[Das Kompetenzzentrum Beschaffungswesen Bund (KBB) berät die Beschaffungs- und Bedarfsstellen in beschaffungsrechtlichen Fragen nach Art. 37 VöB. Zentrale E-Mail-Adresse für Anfragen: rechtsdienst.kbb@bbl.admin.ch] veröffentlichten _Merkblatt zur Softwarebeschaffung und Art. 9 EMBAG_ _[KBB-MB]_ auf und fasst die Inhalte von BBL-Dokumentenfootnote:[Das Bundesamt für Bauten und Logistik (BBL) ist die zentrale Beschaffungsstelle des Bundes (Art. 5–7 VöB). Es beschafft in seinem Zuständigkeitsbereich, bündelt wo sinnvoll und kann Rahmenverträge abschliessen.] wie der _Wegleitung Open Source in der Beschaffung_ [BBL-WL] zusammen, die nur im Intranet verfügbar sind.footnote:[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] Das Dokument behandelt zudem die digitale Souveränität als Beschaffungskriterium. + +Der Einsatz von Open-Source-Software lässt sich in vier Aspekte gliedern: + +* Consumption: die Nutzung bereits bestehender OSS +* Creation: die Entwicklung neuer OSS +* Contribution: das Einbringen eigener Anpassungen in ein bestehendes OSS-Projekt +* Collaboration: die gemeinsame Weiterentwicklung von OSS mit Dritten. + +In all diesen Situationen muss eine öffentliche Auftraggeberin das einschlägige Beschaffungsrecht einhalten. + +*Consumption:* + +* Das Beschaffungsrecht gilt, wenn Leistungen gegen Entgelt auf dem Markt eingekauft werden (Art. 8 BöB). + +Mit anderen Worten: + +* Die Nutzung von OSS, die kostenlos verfügbar ist (ohne Lizenzgebühren, Support- oder Wartungsverträge usw.), stellt in der Regel keine Beschaffung dar. +* Mehrwertleistungen, die für die Nutzung von OSS eingekauft werden (Support, Gewährleistung, Wartung und Weiterentwicklung), sind nach Beschaffungsrecht zu beschaffen. +* Bei der Beschaffung von Software ist es grundsätzlich zulässig, OSS als Anforderung vorzugeben, z. B. wenn die Verwaltungseinheit (VE) daraus konkrete Vorteile erwartet, etwa grössere Datensouveränität oder eine einfachere Einhaltung von Art. 9 EMBAG bei absehbaren individuellen Anpassungen. Der Markt darf dabei jedoch nicht unzulässig eingeschränkt werden. + +*Creation und Contribution:* + +* Bei der Entwicklung von Software oder Softwarekomponenten, auch im Hinblick auf einen späteren Beitrag zu einem OSS-Projekt, ist Art. 9 EMBAG stets zu berücksichtigen. Werden dafür Leistungen Dritter eingekauft, so gilt das Beschaffungsrecht. +* Bei Beiträgen an OSS-Projekte gibt die VE eigene Arbeit an Dritte weiter; dieser Vorgang untersteht daher nicht dem Beschaffungsrecht. +* Die Annahme von Beiträgen Dritter an ein OSS-Projekt des Bundes ist beschaffungsrechtlich ebenfalls unproblematisch, sofern keine Zahlung erfolgt. + +*Collaboration:* + +* Die Zusammenarbeit verschiedener öffentlicher Auftraggeberinnen an einem OSS-Projekt wirft eine Vielzahl rechtlicher Anforderungen auf. Beschaffungsrechtlich bedürfen jene Konstellationen einer sorgfältigen Prüfung, bei denen Leistungen gegen Entgelt erbracht werden. +* Bei einer informellen Zusammenarbeit kann jede beteiligte Partei Entwicklungsleistungen eigenständig beschaffen oder erbringen und anschliessend unentgeltlich zur Verfügung stellen. Ebenso können Koordinationsleistungen erbracht oder beschafft werden. +* Bei einer formalisierten Zusammenarbeit, z. B. über einen Verein öffentlicher Akteure, kann auch die zentrale Stelle Entwicklungsleistungen erbringen oder beschaffen, sofern sie selbst dem Beschaffungsrecht untersteht. +* Eine gemeinsame Beschaffung durch Auftraggeberinnen aus verschiedenen Ländern ist hingegen nicht ohne Weiteres zulässig. + +Für den nachhaltigen Einsatz von Open-Source-Software ist es wichtig, dass OSS nicht nur konsumiert wird, sondern dass möglichst viele Beteiligte auch zum Ökosystem beitragen. Dafür gibt es viele Wege: von regelmässigen Codebeiträgen über das Erstellen von Dokumentation bis zur Finanzierung von Entwicklerinnen und Entwicklern und vieles mehr. + +== Ziel und Zweck + +Das Bundesgesetz über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG)footnote:[https://www.fedlex.admin.ch/eli/cc/2023/682/de] verlangt, dass bei der Beschaffung neu entwickelter Software und von Softwareentwicklungsleistungen zusätzliche Überlegungen berücksichtigt werden. + +Zur Unterstützung der Einhaltung von Art. 9 EMBAG hat DTI im Rahmen von link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung] und link:em002-1.pdf[Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung] Hilfsmittel erarbeitet. + +include::partials/document-map.de.adoc[] + +Abbildung 1: Übersicht über die OSS-Hilfsmittel + +Die Hilfsmittel stehen auf der Website der Bundeskanzlei unter https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[OSS-Hilfsmittel] zur Verfügung. + +Dieses Dokument geht über den Kern von Artikel 9 EMBAG hinaus und legt zudem dar, wie mit Open Source im Beschaffungskontext allgemein umzugehen ist. + +Kapitel 3:: Die Bedeutung der digitalen Souveränität im Kontext von Open Source und Beschaffung +Kapitel 4:: Relevante Beschaffungsanwendungsfälle im Zusammenhang mit Software und Open-Source-Software +Kapitel 5:: Creation: Ausschreibung von Software und Leistungen im Zusammenhang mit Art. 9 EMBAG +Kapitel 6:: Consumption: Softwarebeschaffung: Gleichbehandlung von Open-Source-Software +Kapitel 7:: Consumption: Beschaffung zusätzlicher Leistungen (Support/Wartung/Weiterentwicklung) für OSS +Kapitel 8:: Collaboration: Beschaffungsrechtliche Aspekte von Zusammenarbeiten für die Erstellung, Wartung und den Support von OSS +Kapitel 9:: Contribution: Beiträge an OSS-Projekte + +== Digitale Souveränität und Beschaffung + +=== Einführung in digitale Souveränität und OSS + +Mit Art. 9 EMBAG leistet die Bundesverwaltung durch die Veröffentlichung ihrer Software als OSS einen wichtigen Beitrag zur digitalen Nachhaltigkeit und Souveränität. + +Digitale Souveränität ist kein Selbstzweck, sondern eine Voraussetzung für eine wirksame, demokratische und zukunftsorientierte Verwaltung. Sie ist ein vielschichtiges Konzept mit technologischen, organisatorischen und politischen Dimensionen. + +**** +*Digitale Souveränität bedeutet, dass der Staat über die nötige Kontrolle und Handlungsfähigkeit im digitalen Raum verfügt, um die Erfüllung staatlicher Aufgaben sicherzustellen.* +**** + +Insbesondere bei der Beschaffung von Software sind die Auswirkungen auf die digitale Souveränität der Bundesverwaltung zu berücksichtigen. + +In ihren *Rollen als Nutzerin, Betreiberin und Auftraggeberin* im Bereich IKT und Software kann die Bundesverwaltung ihre diesbezügliche Verantwortung bewusst wahrnehmen. + +Im Bereich Software bestehen drei strategische Ziele: + +*Austauschbarkeit*: [.underline]#Als Nutzerin# strebt die öffentliche Verwaltung an, frei und flexibel zwischen Anbietern, IT-Lösungen und Technologien wählen zu können. Dies setzt die Verfügbarkeit leistungsfähiger und bewährter Alternativen sowie IT-Architekturen, Beschaffungswege und eine Personalausstattung voraus, die einen Wechsel erleichtern. + +*Gestaltungsfähigkeit*: [.underline]#Als IT-Betreiberin# verfügt die öffentliche Verwaltung über die Fähigkeit, ihre IT-Systeme zu gestalten und mitzugestalten. Dazu verfügt sie über das nötige Fachwissen und geeignete kooperative Strukturen, um IT-Lösungen zu verstehen und zu bewerten und nötigenfalls deren Entwicklung, Weiterentwicklung und Betrieb sicherzustellen. + +*Einfluss*: [.underline]#Als Auftraggeberin# kann die öffentliche Verwaltung ihre Anforderungen und Bedürfnisse gegenüber Technologieanbietern formulieren und durchsetzen. Dies gilt für Produktmerkmale (Funktionen, Betriebsoptionen, Verfügbarkeit, Informationssicherheit und Datenschutz usw.) ebenso wie für Vertragsgestaltung und Lizenzmodelle. + +*Offene Standards* und *Open-Source-Software* unterstützen diese Ziele durch *Open-Source-Prinzipien* am besten. + +OSS unterstützt die digitale Souveränität wie folgt: + +* Die IT-Sicherheit für die öffentliche Verwaltung, kritische Infrastrukturen und sicherheitsrelevante Anwendungen lässt sich [.underline]#jederzeit# durch [.underline]#vollen Zugriff# auf den Quellcode gewährleisten. +* OSS ermöglicht es öffentlichen Stellen, ihre eigene IT-Infrastruktur ohne einschränkende Lizenzbedingungen aufzubauen, zu betreiben, zu kontrollieren und anzupassen. +* OSS bietet volle Kontrolle über Updates, Funktionen und Sicherheitspatches, sowohl inhaltlich als auch zeitlich. +* OSS kann die Abhängigkeit von einzelnen Anbietern oder Lizenzmodellen verhindern und unterstützt die Austauschbarkeit. +* OSS erlaubt es, die gesamte Software-Lieferkette transparent darzustellen und nachzuvollziehen. +* OSS lässt sich anpassen und erweitern – gut geeignet für die spezifischen Anforderungen von Behörden und Bildungseinrichtungen, wobei dies vertiefte Kenntnisse der eigenen Mitarbeitenden voraussetzt. +* Investitionen in OSS kommen auch lokalen Unternehmen und Communities zugute (lokale Wertschöpfung) und erhöhen die Resilienz der Schweizer Wirtschaft. +* OSS beruht auf Zusammenarbeit und offenen Schnittstellen, erleichtert die Interoperabilität zwischen Systemen und fördert offene Standards – auch über Landesgrenzen hinweg. +* OSS verbessert die IT- und Datensicherheit durch Transparenz und Anpassbarkeit. +* Unter OSI-Lizenzen lizenzierte OSS garantiert klare rechtliche Bedingungen und Kontinuität sowie die grundlegenden Freiheiten von OSS und schützt Entwickelnde wie Nutzende gleichermassen. + +*Offene Standards:* Zur Unterstützung der Austauschbarkeit von Software sollten öffentliche Ausschreibungen die Einhaltung offener Standardsfootnote:[Beispielsweise offene Standards wie eCH, ODF; siehe auch https://de.wikipedia.org/wiki/Offener_Standard[Offener Standard – Wikipedia]] verlangen und damit Lock-in minimieren. +*Offene Schnittstellen:* Schnittstellen sollten ebenfalls offengelegt werden, um Interoperabilität zu ermöglichen. + +Bundesbehörden sind grundsätzlich verpflichtet, die eCH-Standards einzuhalten.footnote:[https://www.ech.ch/[www.ech.ch]] + +Die Berner Fachhochschule hat die massgebenden Überlegungen in der im Auftrag des EDA erstellten Studie _Technologische Perspektiven der digitalen Souveränität_ [Stü2024] anhand des Modells «Souveränitätshaus» dargelegt, in dem Software als tragende Säule dargestellt wird. In diesem Modell sind die Schichten unterhalb des Dachs – Zusammenarbeit, Technologie-Skills, die vier Säulen und Regulierungen – die Bereiche, in denen empfohlene Massnahmen die digitale Souveränität fördern. + +[mermaid,align="center",alt="Schematische Darstellung der Aspekte digitaler Souveränität, welche die Bereitstellung innovativer Produkte und Dienstleistungen ermöglichen"] +.... +block-beta + columns 4 + Roof["Innovative digitale Produkte und Dienstleistungen
von Unternehmen und Behörden"]:4 + space:4 + Collab["Zusammenarbeit mit Forschung und Zivilgesellschaft"]:4 + Skills["Technologie-Skills (Programmieren, Data Science usw.)"]:4 + SW["Software"] Data["Daten und
digitale Inhalte"] AI["Künstliche
Intelligenz"] Infra["ICT-Infrastruktur
(Hardware)"] + Reg["Regulierungen (Gesetze, Standards)"]:4 + Collab-- "ermöglichen" -->Roof +.... + +_Abbildung 2: Schematische Darstellung der Aspekte digitaler Souveränität, welche die Bereitstellung innovativer Produkte und Dienstleistungen ermöglichen [Stü2024]_ + +=== Digitale Souveränität messen + +Aspekte der digitalen Souveränität können in einer öffentlichen Ausschreibung verlangt werden, doch müssen solche Anforderungen sachlich begründet sein. Eine generelle Bevorzugung von OSS besteht nicht. + +*Wie lässt sich der Grad der digitalen Souveränität für eine bestimmte Technologie, ein Produkt oder eine Dienstleistung messen?* + +Diese Operationalisierung ist so objektiv und transparent wie möglich vorzunehmen. + +Verschiedene Initiativen versuchen dies. Die OSBA hat beispielsweise einen **Souveränitätsindex**footnote:[https://osb-alliance.de/featured/ein-index-fuer-digitale-souveraenitaet[Ein Index für digitale Souveränität | OSBA – Open Source Business Alliance]] _[OSBA-VK]_ entwickelt. _Nextcloud_ hat einen Digital Sovereignty Index (DSI)footnote:[https://dsi.nextcloud.com/[dsi.nextcloud.com]] veröffentlicht, der ganze Länder vergleicht, aber auch nützliche Kriterien liefern kann. +Die Europäische Union hat für die Cloud ein Cloud Sovereignty Frameworkfootnote:[https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf[commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf]] veröffentlicht. +Das _Zentrum für Digitale Souveränität ZenDiS_ arbeitet an einem Souveränitätscheck, mit dem IT-Lösungen und Organisationen anhand transparenter Souveränitätskriterien bewertet werden sollen. + +Die Bundesverwaltung ist ebenfalls an der Entwicklung eines *Frameworks für digitale Souveränität* beteiligt, mit dem unter anderem der Erfüllungsgrad über verschiedene Perspektiven hinweg bestimmt werden kann. + +Mögliche Perspektiven sind: + +A -- Technologische Kontrolle:: +Inwieweit hat die Bundesverwaltung Kontrolle über die eingesetzten Technologien und deren Weiterentwicklung? + +B -- Datensouveränität:: +Wer hat Zugriff auf die Daten, Kontrolle darüber und Entscheidungsbefugnis – insbesondere bei sensiblen Verwaltungsdaten? + +C -- Rechtliche Handlungsfähigkeit:: +Inwieweit können die Schweiz und die Bundesverwaltung die rechtlichen und politischen Rahmenbedingungen der Digitalisierung beeinflussen? + +D -- Resilienz:: +Wie robust und krisenfest sind die digitalen Systeme und Prozesse der Bundesverwaltung gegenüber Störungen, Krisen und Abhängigkeiten? + +E -- Wirtschaftliche Kontrolle:: +Wie kann die Bundesverwaltung wirtschaftliche Kontrolle und strategisches Sourcing ausüben, um ihre digitale Souveränität kosteneffizient zu sichern und dabei Abhängigkeiten und Risiken in der IT-Beschaffung zu minimieren? + +Für jede dieser Perspektiven lässt sich der Grad der digitalen Souveränität anhand einer noch zu definierenden Skala bestimmen: + +0 -- Fremdbestimmt / nicht souverän:: +Keine Kontrolle über Systeme, Daten oder Infrastruktur; keine Transparenz, hohe Abhängigkeiten; keine Exit- oder Alternativoptionen + +1 -- Minimal kontrolliert:: +Erste Einsichten in Nutzung und Abhängigkeiten; punktuelle Kontrollmechanismen; operative, rechtliche oder technologische Lücken bestehen + +2 -- Geregelt nutzungsfähig:: +Systeme verlässlich und teilweise steuerbar; rechtlicher und technischer Rahmen etabliert; strategische Abhängigkeiten bestehen weiterhin + +3 -- Selbststeuernd und resilient:: +Marktposition wird genutzt; Exit-Strategien und Multivendor-Konzepte implementiert; Know-how aufgebaut; Resilienz und Krisenszenarien vorbereitet + +4 -- Systemisch souverän:: +Souveränität in allen relevanten Dimensionen (rechtlich, technologisch, kulturell, strategisch); aktive Markt- und Standardgestaltung; geopolitische Wirkung möglich + +_Abbildung 3: Grad der digitalen Souveränität._ + +Diese beiden Dimensionen ergeben die folgende Matrix: + +[.landscape] +[cols="2,^1,^1,^1,^1,^1",options="header"] +|=== +|Perspektive +|0 + +Fremdbestimmt +|1 + +Minimal kontrolliert +|2 + +Geregelt nutzungsfähig +|3 + +Selbststeuernd und resilient +|4 + +Systemisch souverän + +|A -- Technologische Kontrolle +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|B -- Datensouveränität +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|C -- Rechtliche Handlungsfähigkeit +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|D -- Resilienz +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|E -- Wirtschaftliche Kontrolle +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +|=== + +_Abbildung 4: Matrix digitale Souveränität: Perspektiven gegenüber dem Grad der Souveränität._ + +Zu den einzelnen Schnittfeldern des Rasters können konkrete Kriterien beschrieben werden, um die Einstufung möglichst objektiv zu gestalten. + +Ein solches Framework wird derzeit im Rahmen des Schwerpunkts 4 «Digitale Souveränität stärken» der «Strategie Digitale Bundesverwaltung» entwickelt.footnote:[https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html[www.bk.admin.ch – Digitale Bundesverwaltung]] + +Der Bundesrat hat die Dachweisung Digitale Souveränität in der Bundesverwaltungfootnote:[W012 – Weisungen für die digitale Souveränität in der Bundesverwaltung] auf den 1. Januar 2026 in Kraft gesetzt. Projekte müssen die verschiedenen Aspekte auf der Grundlage des konkreten Souveränitätsbedarfs in die Definition des Beschaffungsgegenstands und nötigenfalls in eine Ausschreibung einbeziehen – beispielsweise aus Risikosicht im Rahmen des Business Continuity Managements. + +== Anwendungsfälle der Softwarebeschaffung + +Informations- und Kommunikationstechnologie (IKT) und Software sind in der Bundesverwaltung kein Selbstzweck, sondern dienen stets der Erfüllung eines gesetzlichen Auftrags. Angesichts der fortschreitenden Digitalisierung und der zentralen Rolle der Bundesverwaltung in der Schweiz muss die Informationstechnologie eine Kernkompetenz der Verwaltung sein. + +Die folgenden *Faktoren* wirken sich daher unmittelbar auf die Beschaffung aus: + +* *Digitalisierung*: Die Digitalstrategiefootnote:[https://digital.swiss/de/] verlangt die Digitalisierung von Prozessen. +* *Prozessoptimierung*: Prozesse innerhalb der Bundesverwaltung und in ihren Aussenbeziehungen können und sollen optimiert werden. +* *Digitale Souveränität*: Die Bedeutung der digitalen Souveränität nimmt stetig zu; siehe _[Stü2024]_. +* Der Grundsatz *public money, public goods* und die Einhaltung von Art. 9 EMBAG. +* *Wirtschaftsfreiheit*: Massnahmen sollen die Wirtschaftsfreiheit nicht unnötig einschränken. +* Allgemeine *Sicherheitsüberlegungen*: Die Sicherheit informationsverarbeitender Systeme gewinnt zunehmend an Bedeutung. +* Krisen- und Katastrophenbewältigung (*Resilienz*): Angesichts der aktuellen weltweiten Lage muss die Verwaltung prüfen, wie sie die nötigen Arbeitsmittel auch unter kritischen Umständen weiterhin bereitstellen kann. +* Strategische Unabhängigkeit und Überlegungen zur *Lieferkette*: Diese ergeben sich aus digitaler Souveränität und Resilienz. +* Vermeidung bzw. Minimierung von *Vendor-Lock-in*: Abhängigkeiten lassen sich in der IT kaum vermeiden, doch sollte die Abhängigkeit von einem einzigen Anbieter wo immer möglich reduziert werden. +* *Befähigung* der Bundesverwaltungfootnote:[Nicht nur bei Führungskräften, Projektleitenden und IKT-Architektinnen und -Architekten, sondern bei allen Mitarbeitenden.] (einschliesslich der Geschäftsleitung) in IKT-Fragen: Die Steuerung, Entwicklung und der Betrieb von Informationstechnologie erfordern entsprechende Kompetenzen in der gesamten Belegschaft. + +Dieses Dokument unterscheidet folgende *Softwaretypen*: + +* *Commodity – Fachanwendungen/Branche – Fachanwendungen/Bundesbehörde*: +** Standardanwendung (Commodity-Software) ohne besondere Geschäftslogik. +** Fachanwendung: spezifischer Bedarf der Branche/aller föderalen Ebenen oder spezifischer Bedarf der Bundesbehörde +* *Gezielt – strategisch – essenziell*: +** Gezielte Anwendung +** Strategische Anwendung mit erheblicher Bedeutung für eine Bundesbehörde oder die Bundesverwaltung insgesamt +** Essenziell und geschäftskritisch – muss unter allen Umständen funktionsfähig bleiben (z. B. Flugsicherung) + +Anwendungen können in einem oder mehreren *Anwendungsbereichen* eingesetzt werden. + +Massgebend ist hier die *Standardisierung* der Anwendungen nach Produkt innerhalb jedes Bereichs: + +* Keine Strategie +* Ein-Produkt-Strategie +* Mehr-Produkt-Strategie + +Neben der Produktstandardisierung, die sorgfältig zu prüfen ist, gibt es auch die Standardisierung zur Interoperabilität (Datenformate, API, Geschäftselemente).footnote:[z. B. über eCH] +Standardisierung _ist zulässig_, sofern sie verhältnismässig ist und den Wettbewerb nicht unzulässig einschränkt (z. B. Art. 30 Abs. 3 BöB). Sie kann Betriebs- und Wartungskosten senken und Synergieeffekte erzeugen, insbesondere wenn alle föderalen Ebenen beteiligt sind. Andererseits erhöht sie Lock-in, Abhängigkeit und teilweise Sicherheitsrisiken (Klumpenrisiko). + +Die Gesamtbetriebskosten (TCO) – einschliesslich Betrieb, Wartung und Weiterentwicklung – sollten bei der Beschaffung stets berücksichtigt werden. Langfristige Kostenfolgen dürfen nicht übersehen werden. Open-Source-Geschäftsmodelle unterscheiden sich in gewisser Hinsicht von jenen proprietärer Anbieter. + +Die folgenden Kapitel konzentrieren sich zunehmend auf Open Source und behandeln das massgebende Beschaffungsvorgehen sowie dessen Umsetzung. + +Die Wahl zwischen Consumption, Contribution, Collaboration und Creation erfolgt _projektspezifisch_ nach Wirtschaftlichkeit und Rechtslage, wobei die Kosten möglichst breit verteilt werden. Aus dieser Sicht sind die vier C gemäss link:em002.pdf[Em002 Strategische Leitlinien OSS], Kapitel 3, in absteigender Bedeutung geordnet: + +image::./assets/four-cs/four-cs.de.svg[Rangfolge der vier C: Consumption, Contribution, Collaboration, Creation] + +. Consumption +. Contribution +. Collaboration +. Creation + +Bei einfacher *Consumption* verteilen sich die Kosten auf eine grosse Zahl anderer Nutzender, doch hat die Bundesbehörde keine Kontrolle über die Weiterentwicklung. Creation ist das Gegenteil: volle Kontrolle, aber volle Kosten. + +Bei der *Contribution* beschränkt sich der finanzielle Aufwand auf das entwickelte Element, das anschliessend einer anderen Organisation zur Pflege übergeben wird. + +*Collaboration* ist das komplexeste Szenario, da die Ausgestaltung stark variieren kann. Im besten Fall werden die Kosten geteilt und die Bundesbehörde hat genügend Einfluss, um ihre Anforderungen ohne Kompromisse umzusetzen (siehe Kapitel 8). + +Idealerweise entfällt auf *Creation* der kleinste Anteil. Software kann intern, über Dienstleistungen oder über einen Werkvertrag entwickelt werden. + +Reine Consumption wird nur bei Standardanwendungen möglich sein. + +=== Software erfordert zusätzliche Leistungen wie Wartung, Support und Weiterentwicklung. + +Open-Source-Anwendungen können zwar kostenlos genutzt werden, doch ihr strategischer Einsatz über Tausende von Instanzen hinweg erfordert Wartung, Support und nötigenfalls Weiterentwicklung. + +Bundesbehörden haben ein Interesse an langfristigem Support für eingesetzte Versionen (siehe Kapitel 3.2.3 in _[BITKOM2024]_). + +Art. 9 EMBAG selbst erfasst nur die interne Entwicklung oder Weiterentwicklung von Software und ist für andere Open-Source-Überlegungen nicht massgebend – hier gelten stattdessen digitale Souveränität und weitere Faktoren. Einschränkungen nach Art. 9 EMBAG bei einzelnen Entwicklungskomponenten können jedoch Rückwirkungen auf das Gesamtprojekt haben, wenn proprietäre oder zusätzliche Entwicklungen absehbar sind. Mit Collaboration lassen sich dann Synergieeffekte nutzen und die Kosten für die Bundesverwaltung insgesamt nach Möglichkeit senken. + +=== Veröffentlichungspflicht bei der Softwarebeschaffung + +Wenn die Anforderungen auf einen Anpassungsbedarf an der Software oder einen möglichen späteren Anpassungsbedarf hindeuten, ist Art. 9 EMBAG einschlägig und die Veröffentlichung für diese Teile obligatorisch, sofern nicht eine der beiden Ausnahmen greift. Bei der Beschaffung einer Open-Source-Lösung wäre eine solche Veröffentlichung bereits über einen Beitrag an das Open-Source-Projekt abgedeckt. Auch wenn die Beschaffung nur die Lizenzierung von Standardsoftware oder eine unter eine Ausnahme fallende IKT-Beschaffung betrifft, sind zusätzliche Entwicklungen grundsätzlich zu veröffentlichen; dies ist in den Beschaffungsunterlagen und im Vertragsentwurf abzubilden. + +*Die Veröffentlichungspflicht nach Art. 9 EMBAG ist daher für jede Beschaffung relevant, bei der eine Eigen- oder Weiterentwicklung wahrscheinlich ist* (siehe auch _[KBB-MB]_). + +== Creation: Ausschreibungen für Software und Leistungen mit Bezug zu Artikel 9 EMBAG + +Dieses Kapitel behandelt die Auswirkungen von Art. 9 EMBAG auf Ausschreibungen für Software und Leistungen, die die Erstellung oder Änderung von Software umfassen können. + +Es gilt für die zentrale wie für die dezentrale Bundesverwaltung. Ausnahmen von dieser Pflicht sind in der Digitalisierungsverordnung _[DigiV]_ festgelegt. + +=== Relevanz von Artikel 9 EMBAG für die Softwareerstellung + +Ein Vorgang fällt in den Anwendungsbereich von Art. 9 EMBAG, wenn er unter die massgebende Kategorie von Tabelle 1 fällt. Der Make-or-Buy-Entscheid bleibt für die Beschaffung zentral. Die Analyse der verschiedenen Anwendungsfälle zeigt, dass grundsätzlich Art. 9 EMBAG in allen Fällen relevant ist, ausser wenn bereits bestehende Software beschafft wird (z. B. reine Lizenzen). Kapitel II.4 der _Wegleitung Open Source in der Beschaffung [BBL-WL]_ legt das strategische Vorgehen dar, und Anhang VII.A beschreibt im Detail, was als Software gilt. Eine detaillierte Aufschlüsselung des strategischen Entscheids findet sich in Tabelle 1. + +[cols="3,2,4",options="header"] +|=== +|Anwendungsfall |Make or Buy |Veröffentlichungspflicht nach Art. 9 Abs. 1 EMBAG + +|Entwicklung von Software innerhalb der Bundesverwaltung +|Make +|Ja, Veröffentlichungspflicht + +|Software durch Dritte entwickeln lassen +|Buy als IT-Dienstleistungsvertrag +|Ja, Veröffentlichungspflicht + +|Beschaffung bestehender Software +|Buy +a|Grundsätzlich nein, aber prüfen, ob für zu entwickelnde Teile Veröffentlichungspflichten bestehen. Besonders relevant ist der Umgang mit Rechten Dritter (siehe link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung]). + +|Übernahme von Software anderer öffentlicher Stellen +|Make oder Buy +a|– Innerhalb der Bundesverwaltung: Veröffentlichungspflicht der abgebenden Verwaltungseinheit. + +– Andere: im Einzelfall prüfen, ob Anpassungen durch die Bundesverwaltung eine Veröffentlichungspflicht begründen, zumindest für diese Teile. + +|Beschaffung von Entwicklungsressourcen +|Make +|Ja, Veröffentlichungspflicht (Verträge müssen die Veröffentlichung zulassen) + +|Zusammenarbeit mit anderen öffentlichen Stellen bei der Softwareentwicklung +|Make +|Ja, Veröffentlichungspflicht (Verträge müssen die Veröffentlichung zulassen), insbesondere bei wesentlichen Entwicklungsbeiträgen durch oder für den Bund +|=== + +_Tabelle 1: Einordnung von Veröffentlichungspflicht und Make-or-Buy-Entscheid (in Anlehnung an eine Tabelle von Rika Koch, BFH)_ + +Hinweis: Art. 9 EMBAG ist auch bei bestehender Software und SaaS zu berücksichtigen, wenn die Software für den Bund weiterentwickelt oder angepasst werden soll. Auch wenn die Wahrscheinlichkeit gering ist, sollte dies im Beschaffungsprozess behandelt werden. + +Wo Klärungsbedarf besteht, wird link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] als Referenz empfohlen. Die Checklisten sollten für potenziell relevante Projekte *möglichst früh provisorisch ausgefüllt* werden. Auch die _Checkliste Integral-Ausnahme Art. 9 EMBAG [BBL-CL]_ kann hierfür verwendet werden. + +=== Vorbereitung einer Beschaffung nach Artikel 9 EMBAG + +Zusätzlich zu den üblichen Vorbereitungsschritten sind die folgenden beiden Dokumente stets beizuziehen, wenn eine Beschaffung Softwarekomponenten umfasst: + +* _Merkblatt zur Softwarebeschaffung und Art. 9 EMBAG [KBB-MB] und_ +* _Wegleitung Open Source in der Beschaffung [BBL-WL]_. + +Wo Art. 9 EMBAG klar einschlägig ist, sollte die Verwaltungseinheit: + +* die Checklisten link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] bis link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] provisorisch ausgefüllt haben; +* einen Grundsatzentscheid getroffen haben, ob eine Copyleft- oder eine permissive Lizenz verwendet wird;footnote:[Eine vertiefte Analyse kann bei Bedarf später anhand von _Em002-3 Leitfaden OSS-Lizenzierung_ erfolgen.] +* nach möglichen Open-Source-Alternativen (oder potenziellen Basisprojekten für Contributions/Collaboration) gemäss link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] gesucht haben, unter Verwendung der dort genannten Werkzeuge für Marktrecherche/Marktanalyse;footnote:[Siehe auch link:em002-1.pdf[Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung], Kapitel 7.] +* die Struktur einer allfälligen Community geklärt haben (link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] und link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community]). + +Soll ein bestehendes OSS-Projekt genutzt, unterstützt oder im Rahmen einer Collaboration darauf aufgebaut werden, so sind die Kapitel 5, 6, 8 und 9 dieses Dokuments zu lesen. + +=== Creation über bestehende Dienstleistungsverträge + +Erfolgt die Creation über bestehende Partnerverträge, so ist die OSS-Veröffentlichung spätestens beim Mini-Tender sicherzustellen, sofern nicht eine der beiden Ausnahmen greift. + +Neue Dienstleistungsausschreibungen sollten stets eine Anforderung zur Veröffentlichung nach Art. 9 EMBAG enthalten (siehe _[BBL-WL] und_ _[KBB-MB])_. + +=== Aufbau einer Community + +Der Aufbau und die Pflege einer Community maximieren den Nutzen von Open-Source-Software, sind aber auch mit erheblichem Aufwand verbunden. + +Wo eine Community und eine Collaboration sinnvoll sind, hat dies von Anfang an Auswirkungen auf die Beschaffung. Die link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] sollte daher anhand des link:em002-4.pdf[Em002-4 Leitfadens OSS-Community] ausgefüllt werden. + +Soll die Bundesbehörde eine bedeutende Rolle in der Community übernehmen (z. B. eine Governance-Rolle) oder ist eine Zusammenarbeit geplant (siehe Kapitel 8), so kann die Beschaffung zusätzlicher Leistungen nötig sein: Community-Aufbau, Konsolidierung von Anforderungen, Steuerung der Weiterentwicklung. + +=== Musterkriterien und Vertragselemente für die IT-Beschaffung + +Das KBB führt eine Vorlage möglicher Beschaffungskriterien sowie eine Vorlage für ein Rahmenvertragskapitel für softwarebezogene Ausschreibungen _[KBB-KV]_. + +Das KBB hat auf Perimap.admin.ch zwei Mustervorlagen veröffentlicht, die zeigen, wie die Mindestanforderungen für eine beschaffungskonforme Vergabe nach Art. 9 EMBAG erfüllt werden können. [KBB-KV] + +. https://perimap.admin.ch/goto_perimap_file_47064_download.html[Musterkriterien – Beschaffung EMBAG und Open Source] +. https://perimap.admin.ch/goto_perimap_file_47059_download.html[Mustervertragstexte – Softwareentwicklung] + +== Consumption: Softwarebeschaffung: Gleichbehandlung von Open-Source-Software + +Dieses Kapitel behandelt die Beschaffung und Nutzung (Consumption) von Open-Source-Software und hebt zentrale strategische Aspekte hervor. +Verwiesen wird zudem auf _[BBL-WL] und_ _[KBB-MB]_. + +*Derzeit besteht keine gesetzlich vorgeschriebene Bevorzugung von Open-Source-Software in der Beschaffung.* + +Bei Ausschreibungen für IT-Anwendungen werden alle Lizenztypen und Geschäftsmodelle berücksichtigt. Zur Erfüllung der gestellten Anforderungen können Anbieter Softwarelösungen auf Basis unveränderter Open-Source-, Closed-Source- oder proprietärer Software oder auf Basis von Kombinationen aus Lizenzmodellen und Mehrwertleistungen bzw. Subskriptionen anbieten. + +Die folgenden Punktefootnote:[Massgebende Referenzdokumente für die Beschaffung sind jene, die vom BBL und vom KBB auf den entsprechenden Plattformen veröffentlicht werden.] sind von den Bundesbehörden zu berücksichtigen: + +* Unabhängig von Lösung und Lizenzmodell muss der Leistungserbringer in seinem Angebot angeben, *welche Lizenzbedingungen der Leistungsbezüger bei der Nutzung der Leistung einzuhalten hat*. +* Der Leistungserbringer ist *frei in der Wahl der Lösung*, mit der er die ausgeschriebenen Anforderungen erfüllen will, sowie in der Form der Vergütung, die er erhalten möchte (Lizenz-, Wartungs- oder Subskriptionsgebühren), sofern dies technisch machbar und wirtschaftlich vertretbar ist. +* Der gesamte *Lebenszyklus* ist in den Spezifikationen und der Preisgestaltung zu berücksichtigen. + +Dies ermöglicht es der Bundesverwaltung, ihre Interessen in Bezug auf geistiges Eigentum, Gewährleistung und Haftung – unabhängig von Software- oder Lizenzmodell – auf Ebene der anwendbaren allgemeinen Geschäftsbedingungen geltend zu machen und vertraglich zu verankern. + +Werden *Softwareanpassungen* im Auftrag oder in Erfüllung eines Vertrags mit der Bundesbehörde vorgenommen, so gilt Art. 9 EMBAG. +Vorsorglich sollte die Veröffentlichungserlaubnis bereits in der Ausschreibung verlangt werden, da erfahrungsgemäss früher oder später Anpassungen nötig werden, auch wenn sie zum Zeitpunkt der Ausschreibung nicht absehbar sind. + +Bezieht der Leistungsbezüger neben der Software *Mehrwertleistungen* von einem Anbieter, so bieten OSS-Lieferanten häufig ein Subskriptionsmodell an, das eine lokale Ansprechstelle mit Gewährleistungs- und Haftungszusagen bietet, zusätzlich zur direkten Beziehung zu den Inhabern der Immaterialgüterrechte an den OSS-Komponenten (die oft im Ausland ansässig und teilweise unbekannt sind). + +=== OSS als strategisches Beschaffungskriterium + +Will eine Bundesbehörde aus strategischen Gründen Open-Source-Software beschaffen, so sind mehrere Szenarien möglich: + +* Funktionale Ausschreibung ohne OSS-spezifische Kriterien. +Da dies keine Einschränkungen mit sich bringt, ist keine besondere Begründung erforderlich. +* Funktionale Ausschreibung mit Eignungskriterium, technischen Kriterien und Zuschlagskriterien, die Open Source, vollen Zugriff auf den Quellcode oder nachweisbare Erfahrung mit Open-Source-Veröffentlichungen verlangen. + +*Eine Bevorzugung von Open Source ist beschaffungsrechtlich zulässig, wenn sich damit die konkreten Bedürfnisse der vergebenden Stelle (besser) erfüllen lassen*.footnote:[Siehe [BBL-WL\], [BBL-CL\], [KBB-MB\], [KBB-KV\]] + +Ein weiterer Grund für die Bevorzugung von OSS – über die digitale Souveränität hinaus – ist, dass bei erheblichen Softwareanpassungen durch die Verwaltung diese nach Art. 9 EMBAG veröffentlicht werden müssen. +Eine Veröffentlichung ist am einfachsten, wenn das gesamte Produkt von jeher Open Source war und Anpassungen teilweise direkt im Produkt vorgenommen werden können. Andernfalls ist eine Ausnahme zu definieren und sind nötigenfalls Codeteile zu isolieren und dennoch freizugeben. + +=== Die unentgeltliche Nutzung von OSS untersteht nicht dem Beschaffungsrecht. + +OSS kann oft direkt heruntergeladen und genutzt werden. Das Beschaffungsrecht gilt nur, wenn Leistungen von Dritten gegen Entgelt (einschliesslich nicht geldwerter Gegenleistungen) bezogen werden. + +Das kostenlose Herunterladen und Nutzen von OSS stellt für sich genommen keine Beschaffung dar. + +Es ist auch möglich, die nötigen Leistungen für heruntergeladene OSS zu einem späteren Zeitpunkt zu beschaffen, sofern dies nicht missbräuchlich geschieht.footnote:[Analogie: Eine Gemeinde kann eigenes Holz verwenden und den Bau eines Werkhofs mit diesem Holz in Auftrag geben – sie muss das Holz nicht selbst beschaffen.] + +Wartungs-, Support- und Weiterentwicklungsleistungen für das Produkt werden anschliessend separat nach Beschaffungsrecht ausgeschrieben. + +Es gibt bereits Beispiele für OSS, die auf den Standardarbeitsplätzen der Bundesverwaltung kostenlos genutzt und daher nicht beschafft wird.footnote:[Beispiele für OSS mit Standardisierungspotenzial: Gimp, FileZilla, VLC Media Player und 7-zip als Shell-2-Produkte (gemäss [A029\]), die genutzt werden können, weil die Installation kostenlos ist. 2024 hat das BIT Red Hat OpenShift aufgrund seiner einzigartigen technischen Eigenschaften für bestimmte Anwendungsbereiche als strategisches Produkt bezeichnet. OpenShift ist derzeit die strategische Plattform für Container und Betriebssysteme.] + +=== Abstimmung der Anforderungen mit anderen Beteiligten + +Eine Fachanwendung erfordert stets eine Bedarfsträgerin (in der Regel ein Bundesamt). In der Regel ist es sinnvoll, dass die bedarfstragende Stelle ihre Anforderungen mit jenen anderer Verwaltungsstellen abstimmt – intern oder im Rahmen einer Collaboration (siehe Kapitel 8) –, soweit ein verfügbares Marktprodukt oder eine gemeinsame Entwicklung der Entwicklung und Einführung förderlich ist. + +Haben viele Beteiligte die gleichen oder ähnliche Anforderungen, so kann es sich lohnen, diese Bedürfnisse gemeinsam abzudecken. Dies gilt für alle Formen von Software. + +Zwei Aspekte sind zu beachten: Werden anschliessend durch eine Bundesbehörde auf Wunsch Dritter Anpassungen vorgenommen, so gilt wiederum Art. 9 EMBAG – dies ist jedoch unproblematisch, wenn Open-Source-Software eingesetzt wird. + +Bei OSS müssen die Anforderungen unter Umständen aktiver durch die Bundesbehörde abgestimmt werden, da eine treibende Kraft wie ein kommerzieller Anbieter, der sein eigenes Produkt steuern und weiterentwickeln will, fehlen kann. + +=== Berücksichtigung weiterer möglicher öffentlicher Akteure bei der Beschaffung + +Das Beispiel ZenDiSfootnote:[https://www.zendis.de/en[https://www.zendis.de/] ZenDiS hat sich zum Ziel gesetzt, die Verwaltung aus kritischen Abhängigkeiten von einzelnen Technologieanbietern zu lösen.] zeigt, dass es machbar und lohnenswert sein kann, eine Ausschreibung gleichzeitig über alle föderalen Ebenen hinweg durchzuführen. + +*Ein fairer Wettbewerb ist stets zu wahren.* Bei Ausschreibungen ist stets zu prüfen, ob die Lösung sinnvollerweise auch für andere Stellen beschafft werden könnte. + +Ist dies der Fall, so sind diese potenziellen zusätzlichen Auftraggeberinnen zu kontaktieren und ihre Bedürfnisse in den Ausschreibungsunterlagen, insbesondere den Anforderungen, abzubilden. Eine gewisse Flexibilität bei den Anforderungen ist in solchen Fällen wichtig. + +Beispiel: eOperations Schweiz AG (http://www.eoperations.ch[www.eoperations.ch]) kann für solche Zusammenarbeiten genutzt werden. eOperations konsolidiert Anforderungen verschiedener Stellen und führt die Beschaffung selbst durch, ohne das Produkt zwingend selbst zu nutzen. Dies kann auch für die OSS-Beschaffung ein nützliches Modell sein. + +== Consumption: Beschaffung von Support und Wartung für OSS + +Die öffentliche Verwaltung kann Open-Source-Software auf verschiedene Weise nutzen, vom einfachen Herunterladen und Installieren bis zur förmlichen Beschaffung (siehe Kapitel 6.2). + +Wird OSS in kritischen Bereichen eingesetzt, so sind durchgehend hohe Standards bei Sicherheit,footnote:[Siehe auch link:em002-6.pdf[Em002-6 FAQ-OSS], Kapitel 5.3] Wartung und Weiterentwicklung erforderlich. Bei der regulären Softwarebeschaffung wird dies üblicherweise durch die Ausschreibung abgedeckt. Die Anforderungen gelten sowohl für die Software selbst als auch für die verwendeten Bibliotheken und Frameworks. Support und Wartung verdienen besondere Aufmerksamkeit, da die Weiterentwicklung oft im selben Vertrag abgedeckt ist und ohnehin Creation darstellt und damit in den Anwendungsbereich von Art. 9 EMBAG fällt. + +Diese arbeitsintensiven Leistungen überschreiten über den Anwendungslebenszyklus gerechnet fast immer den Schwellenwert nach dem Bundesgesetz über das öffentliche Beschaffungswesen (BöB). Werden sie von Dritten bezogen, so ist das Beschaffungsrecht einzuhalten. Ausnahmen können gelten, etwa die staatsinterne Beschaffung bei einer anderen öffentlichen Auftraggeberin,footnote:[Art. 10 Abs. 3 Bst. b BöB.] oder in Ausnahmefällen die freihändige Beschaffung von Spezialleistungen.footnote:[Art. 21 Abs. 2 Bst. c BöB.] + +Die folgende Tabelle zeigt die Fallunterscheidungen für die Beschaffung von Leistungen wie Support. + +[cols="1,1,1,2"] +|=== +2+h|Ausgangslage 2+h|Ergebnisse + +h|Lebenszykluskosten + +→ WTO-Schwellenwert?footnote:[Interne Kosten können ausgeklammert werden. Der gesamte Lebenszyklus ist zu berücksichtigen.] +h|Staatsintern?footnote:[Staatsinterne Beschaffung ist nicht ausschreibungspflichtig: staatliche Trägerschaft erforderlich, keine Marktteilnahme. Gilt nur innerhalb des schweizerischen öffentlichen Sektors.] +h|WTO-Ausschreibung erforderlich?footnote:[Die Beschaffungsrichtlinien des Bundes gelten stets, sobald eine Zahlung erfolgt.] +h|Bemerkungen + +|Nein +|Nein +|Nein footnote:[Software mit Support überschreitet in der Regel den BöB-Schwellenwert; «nein» trifft nur in seltenen Fällen zu (z. B. Finanzierung einer einzelnen Funktion für ein bestehendes OSS-Projekt).] +.2+|Selten ein vollständiges Softwarepaket mit Support – meist geringer Support und einzelne Funktionen. + +|Nein +|Ja +|Nein + +|Ja +|Nein +|Ja +|Nur das Volumen gegenüber Dritten ist massgebend. + +|Ja +|Ja +|Nein +|Die Ausschreibung wurde von der anderen öffentlichen Stelle durchgeführt. +|=== + +_Tabelle 2: Fallunterscheidung – Beschaffung von Support_ + +=== Support und Wartung sind immer Teil von Software + +Support und Wartung sind für den nachhaltigen Betrieb von Software im Behördenumfeld unerlässlich. In einer Welt von Zero-Day-Exploitsfootnote:[Ein Zero-Day-Exploit bezeichnet die Ausnutzung einer Sicherheitslücke, für die noch kein Patch des Komponentenentwicklers verfügbar ist.] ist ein rasches und professionelles Einspielen von Patches entscheidend. Diese «Infrastruktur» muss finanziert werden – zumal die Verwaltung höhere Anforderungen hat als private Konsumentinnen und Konsumenten. + +*Die Frage ist daher nicht, OB Support und Wartung erforderlich sind, sondern WIE sie erbracht werden.* + +Die Bundesbehörde muss anhand ihrer Anforderungen an die Dienstleistungsqualität festlegen, welches Mass an Support, Wartung, Gewährleistung und Haftung sie benötigt. + +Wichtig ist, dass ein Leistungserbringer für Wartung und Support ausreichende Erfahrung mit dem Produkt oder der betreffenden Open-Source-Community nachweisen kann – nur dann wird er diese Aufgaben wirksam erfüllen können (siehe auch _[KBB-MB]_, II.5).footnote:[Der Dienstleistungsvertrag muss allenfalls auch den möglichen Wissenstransfer an eine Nachfolgeorganisation abdecken.] + +Support und Wartung müssen auch auf Produktebene finanziert werden. Trägt niemand bei (das Trittbrettfahrerproblemfootnote:[https://de.wikipedia.org/wiki/Trittbrettfahrerproblem]), so ist die Zukunft des Projekts gefährdet und damit auch dessen Einsatz in der Bundesverwaltung. Angesichts ihrer Grösse kann von der Bundesverwaltung vernünftigerweise erwartet werden, dass sie sich an den Kosten von Software beteiligt, die sie strategisch einsetzt. + +=== Organisationen, die Support leisten können + +Die Qualität des Supports wirkt sich unmittelbar auf die Zufriedenheit und Produktivität der Endnutzenden aus. Ein strukturiertes Supportsystem mit raschen Reaktionszeiten und echter technischer Fachkompetenz stellt sicher, dass Nutzende und Administratorinnen und Administratoren wirksame Lösungen für ihre Anliegen erhalten, was Arbeitszeit der Auftraggeberin spart und die Akzeptanz der Softwarelösung fördert. + +Um die vertraglich vereinbarten Reaktionszeiten aus Service Level Agreements (SLA) einzuhalten, muss der Anbieter über qualifiziertes Personal mit dem nötigen Fachwissen verfügen. + +Mögliche Supportquellen sind: + +*Intern*: + +* Bundesämter +* Leistungserbringer + +*Staatsintern*: + +* Andere öffentliche Auftraggeberinnen in der Schweiz +* Von anderen öffentlichen Auftraggeberinnen in der Schweiz beschaffte Leistungen + +*Dritte*: + +* Beschaffte Leistung + +=== Weiterentwicklung für bestimmte Funktionen + +Benötigt eine Bundesbehörde nur eine begrenzte Zahl spezifischer Erweiterungen an einer Open-Source-Software, so kann dies mit internen Ressourcen oder beschafften Leistungen erfolgen. + +Solche Weiterentwicklungen sollten darauf ausgerichtet sein, dem ursprünglichen Projekt angeboten und darin integriert zu werden. Dies kommt nicht nur dem Ökosystem des Projekts zugute, sondern stellt sicher, dass die Erweiterungen künftig im Projekt gepflegt werden. Andernfalls kann jede neue Version des ursprünglichen Projekts eine manuelle Nachführung der Individualentwicklung erfordern (siehe auch Kapitel 8). + +=== Subskription + +Viele Unternehmen und Projekte im Open-Source-Umfeld bieten innerhalb bestimmter Grenzen kostenlosen Support an, der freiwillig von beliebigen Nutzenden geleistet wird, hauptsächlich über offene Kanäle wie Foren und öffentliche Ticketsysteme. Dieses kostenlose Angebot ist nicht auf professionelle Nutzende mit spezifischen SLA-Anforderungen ausgerichtet. + +Für professionelle Nutzende wie Bundesbehörden sind häufig OSS-Subskriptionen erhältlich, die Gewährleistung, Wartung und Support umfassen. + +Manche Anbieter bieten zudem spezielle «Enterprise-Versionen» an, die die Open-Source-Kriterien der OSI nicht mehr erfüllen. + +Beispiele für Subskriptionen: OpenShift von Red Hat, openDesk von ZenDiS + +=== Zertifizierungen im Open-Source-Bereich und OpenChain + +Wie bei proprietärer Software bestehen auch im Open-Source-Bereich verschiedene Zertifizierungen. Für die Verwaltung kann es sich lohnen, vor einer Ausschreibung zu prüfen, ob im betreffenden Bereich relevante Zertifizierungen existieren. + +*OpenChain* ist eine ISO-Norm zu Open-Source-Entwicklung und Lizenzkompatibilität (siehe unten). + +Bestehen einschlägige Zertifizierungen und sind sie für die Leistung massgebend, so sind sie bei der Beurteilung der Anbieter zu berücksichtigen. Wichtig ist, dass die Zertifizierung selbst als aussagekräftig gilt und dass Anbieter nachweisen können, dass sie die Leistung auch ohne Zertifizierung erbringen können. + +Angesichts der damit verbundenen Komplexität ist es nicht ratsam, Zertifizierungen als Eignungskriterium zu verlangen. Als Zuschlagskriterium – mit der Möglichkeit, die Einhaltung der Zertifizierungsinhalte über Referenzen nachzuweisen – können sie je nach OSS-Produkt angemessen sein, sofern es zulässig ist, Referenzen zum Nachweis der Erfüllung von Zertifizierungskriterien zu verwenden.footnote:[Hinweis: Wird eine Zertifizierung verlangt, die überzogen oder für den Ausschreibungsgegenstand ungeeignet ist, so führt dies unweigerlich zu weniger wettbewerbsfähigen Angeboten.] + +Eine Selbstzertifizierung nach OpenChain kann allenfalls als Ersatz dienen, wenn keine andere Zertifizierung besteht. Referenzen, die die massgebenden Kriterien abdecken, können fehlende Zertifizierungen ebenfalls ersetzen. + +*Zertifizierung von Partnerunternehmen* + +Manche Open-Source-Entwickelnde und -Projektefootnote:[etwa Nextcloud oder Univention] zertifizieren Partnerunternehmen, mit denen sie zusammenarbeiten. Solche Zertifizierungen können eine bestehende Beziehung zwischen Anbieter und Softwareentwicklung belegen. Zu beachten ist, dass viele OSS-Projekte solche Zertifizierungen nicht anbieten. Eine nachgewiesene Zusammenarbeit in Referenzprojekten ist ein ebenso gültiger – und weniger einschränkender – Indikator für die gewünschte Qualität. + +*Zertifizierung von Mitarbeitenden* + +Manche Open-Source-Hersteller oder -Communitiesfootnote:[etwa LibreOffice oder RedHat] zertifizieren Einzelpersonen mit Fachwissen zur betreffenden Software. Beschäftigt ein Leistungserbringer zertifiziertes Personal, so kann dies Fachwissen bei der Upstream-Veröffentlichung von Anpassungen und Patches sowie bei der Erbringung hochwertigen Third-Level-Supports belegen – insbesondere wenn mehrere Mitarbeitende mit dem Produkt arbeiten. Dies hängt auch von der Struktur des Ökosystems des OSS-Projekts ab. + +Als Alternative zu Zertifizierungen kann auch nachweisbare Projekterfahrung in Referenzen zum Beschaffungsgegenstand als Unterscheidungskriterium dienen. + +*OpenChain-Standard* + +Der OpenChain-Standard stellt sowohl eine Best Practice für Lizenzkompatibilität als auch eine für beschaffende Stellen interessante Zertifizierung dar. + +ISO/IEC 5230 «OpenChain» konzentriert sich auf Software-Lieferketten, eine schlanke Beschaffung und Lizenz-Compliance. Der OpenChain-Standard kann von einer akkreditierten Zertifizierungsstelle verliehen oder über eine Selbstzertifizierung erlangt werden. Diese Zertifizierung eignet sich, um allgemein zu belegen, dass sich ein Anbieter bereits eingehend mit den Anforderungen von Open-Source-Lizenzen und den Besonderheiten des Open-Source-Ökosystems befasst hat. +Da die Erstellung einer Software Bill of Materials (SBOM) Teil des Standards ist, belegt diese Zertifizierung auch das Engagement eines Lieferanten für die Sicherheit der Lieferkette durch Unterstützung grundlegender Komponenten. + +=== Weitere Möglichkeiten zur Beschaffung von Wartungs-, Support- oder Weiterentwicklungsleistungen + +Es ist sinnvoll, Weiterentwicklungsleistungen im selben Vertrag wie Support und Wartung zu behandeln, da die Abgrenzung nicht immer eindeutig und im Kontext von Open-Source-Software oft nicht praktikabel ist. Von einer Bundesbehörde finanzierte Weiterentwicklungen fallen in den Anwendungsbereich von Art. 9 EMBAG. + +Derzeit bestehen die folgenden Möglichkeitenfootnote:[Weitere, eher nischenhafte Möglichkeiten können ebenfalls bestehen.] zur Beschaffung von Support-, Wartungs- und/oder Weiterentwicklungsleistungen für OSS: + +* Intern, mit Kompetenzaufbau: Einsatz eigener Entwicklungsressourcen +* Beschaffung: nach Volumen und unter Einhaltung des BöB. Dies kann auch über bereits ausgeschriebene Dienstleistungsverträge erfolgen. Damit strategische Partner erfahrene Kernentwickelnde für OSS-Projekte bereitstellen können, die für die Bundesverwaltung zentral sind, kann es sinnvoll sein, Unterbeauftragungen zuzulassen oder das entsprechende Fachwissen in bestimmten Ausschreibungen zu verlangen. +* Kooperationsvereinbarungen mit Dritten für Wartung, Support oder Weiterentwicklung: unproblematisch, solange jede Partei ihre eigenen Kosten trägt. +* Beteiligung des Bundes an Organisationen: unproblematisch, solange jede Partei ihre eigenen Kosten trägt. + +== Collaboration: Beschaffungsrechtliche Aspekte der gemeinsamen Erstellung, Wartung und Unterstützung von OSS + +Die Kosten von Open-Source-Software sinken, wenn sie gemeinsam entwickelt wird, sei es informell oder in einer strukturierten Form. Der link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] legt die massgebenden Vorgehensweisen dar. + +Die Zusammenarbeit mit anderen öffentlichen Auftraggeberinnen oder Dritten ist beschaffungsrechtlich unproblematisch, solange jede Partei ihre eigenen Kosten trägt. Schwierigkeiten entstehen, wenn aus der Zusammenarbeit keine OSS resultiert, da die Bundesverwaltung an Art. 9 EMBAG gebunden ist. + +Eine solche Zusammenarbeit ist nach Art. 4 EMBAG zulässig. + +Zu klären ist die Frage, wie mit Gemeinkosten oder einer zentralen Struktur umzugehen ist: Die Struktur benötigt eine ausreichende Finanzierung, um das Projekt auch durch schwierige Zeiten zu tragen. Eine Alternative ist eine einzige führende Partnerin (z. B. wenn eine beteiligte Stelle gross genug ist, um die Koordinationsrolle zu übernehmen). Übernimmt die Bundesbehörde diese Rolle, so sind die entsprechenden Leistungen intern zu erbringen oder auf dem üblichen Weg auszuschreiben, wenn Dritte beigezogen werden sollen. + +Auf Vertragsebene gilt für Zusammenarbeiten Folgendes: + +* Fliesst kein Geld und sind keine förmlichen Verpflichtungen erforderlich, so ist ein Memorandum of Understanding auf Ebene des Bundesamts oder der Bundeskanzlei möglich. +* Die Schaffung einer gemeinsamen Struktur – etwa eines Vereins oder einer öffentlich-rechtlichen Körperschaft – ist grundsätzlich möglich, muss aber im Einzelfall beurteilt werden. Soll die gemeinsame Struktur selbst Leistungen von Dritten beschaffen, so ist die Anwendung des Beschaffungsrechts zu regeln. + +Die Mitgliedschaft kann in bestimmten Fällen über andere Organisationen wie eOperations oder eCH wahrgenommen werden. + +*Zusammenarbeit mit dem Ausland* + +Die Zusammenarbeit mit ausländischen Behörden ist unproblematisch, solange kein Geld fliesst und keinerlei Verpflichtungen eingegangen werden. + +Kooperationsvereinbarungen auf geeigneter Ebene sind grundsätzlich möglich, müssen aber im Einzelfall beurteilt werden. +Von völkerrechtlichen Verträgen ist angesichts der hohen Hürden abzusehen, auch wenn sie grundsätzlich ebenfalls möglich wären. + +Es bestehen zwei Sonderfälle,footnote:[https://www.eda.admin.ch/deza/de/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] in denen eine Zusammenarbeit bereits abgedeckt wäre: + +* Aufträge, die im Rahmen einer internationalen Vereinbarung zur gemeinsamen Durchführung eines Projekts durch Signatarstaaten vergeben werden. +* Aufträge, die nach den besonderen Verfahren oder Bedingungen einer internationalen Organisation vergeben werden. + +== Contribution: Beiträge an OSS-Projekte + +Die meisten Merkmale und rechtlichen Überlegungen zu Beiträgen werden im link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] behandelt. + +Beschaffungsrechtlich sind Beiträge grundsätzlich unproblematisch, da die Leistungen zur Entwicklung von Code für ein Projekt erbracht werden, das entweder für die Behörde unmittelbar relevant ist oder beschaffungsrechtlich bereits behandelt wurde. + +*Beiträge Dritter an OSS-Projekte von Bundesbehörden sind beschaffungsrechtlich ebenfalls unproblematisch, solange kein Geld fliesst.* + +Hinweis: Da die Bundesbehörde verpflichtet ist, von ihr entwickelte Software zu veröffentlichen, muss sie auch sicherstellen, dass diese veröffentlicht bleibt. Wird ein OSS-Projekt von seinen Betreibenden abgeschaltet, so muss die Bundesbehörde es im schlimmsten Fall eigenständig erneut veröffentlichen. In der Praxis bleibt der Quellcode typischerweise verfügbar (z. B. als Archiv), das Projekt wird als Fork weitergeführt, oder das Projekt – und damit der Quellcode – ist schlicht nicht mehr relevant. + +== Anhang A: Referenzen: + +Ein erheblicher Teil der Referenzen ist _bereits in Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung aufgeführt_. + +include::partials/references.de.adoc[tags=ref-em002-7] + +== Anhang B: Glossar + +Dieses Glossar behandelt spezifische Begriffe zu Beschaffungsthemen. + +Das allgemeine Glossar zum Dokumentensatz Em002 findet sich in Em002-6 OSS-FAQ. + +Weitere Begriffe finden sich in der https://www.bk.admin.ch/bk/de/home/dokumentation/sprachen/termdat.html[Terminologiedatenbank TERMDAT der Bundesverwaltung]. + +include::partials/glossary.de.adoc[tags=gloss-em002-7] +endif::[] + +ifeval::["{lang}" == "fr"] +*Clause de non-responsabilité :* Le présent document est un projet en cours d'élaboration et fait partie des outils destinés à soutenir l'administration fédérale dans la publication de code open source. Pour de plus amples informations, voir le {url-repo}/tree/main[README] principal. + +''' + +== L'essentiel en bref + +Le présent document complète le jeu d'outils OSS Em002 par des aspects relatifs aux acquisitions. Il s'appuie sur l'_aide-mémoire sur l'acquisition de logiciels et l'art. 9 LMETA_ publié par le Centre de compétence des marchés publics de la Confédération (CCMP)footnote:[Le Centre de compétence des marchés publics de la Confédération (CCMP) conseille les services d'achat et les services demandeurs sur les questions de droit des marchés publics conformément à l'art. 37 OMP. Adresse électronique centrale pour les demandes : rechtsdienst.kbb@bbl.admin.ch] _[KBB-MB]_ et résume le contenu de documents de l'OFCLfootnote:[L'Office fédéral des constructions et de la logistique (OFCL) est le service central d'achat de la Confédération suisse (art. 5 à 7 OMP). Il procède aux acquisitions dans son domaine de compétence, les regroupe lorsque cela est judicieux et peut conclure des contrats-cadres.] tels que les _directives Open Source dans les acquisitions_ [BBL-WL], qui ne sont disponibles que sur l'intranet.footnote:[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] Le document traite en outre de la souveraineté numérique en tant que critère d'acquisition. + +L'utilisation de logiciels open source peut être divisée en quatre aspects : + +* Consumption : l'utilisation d'OSS préexistants +* Creation : le développement de nouveaux OSS +* Contribution : l'apport de modifications propres à un projet OSS existant +* Collaboration : le développement conjoint d'OSS avec des tiers. + +Dans toutes ces situations, un adjudicateur public doit respecter la législation applicable en matière de marchés publics. + +*Consumption :* + +* Le droit des marchés publics s'applique lorsque des prestations sont achetées sur le marché contre rémunération (art. 8 LMP). + +En d'autres termes : + +* L'utilisation d'OSS disponibles gratuitement (sans redevances de licence, contrats de support ou de maintenance, etc.) ne constitue généralement pas une acquisition. +* Les prestations à valeur ajoutée achetées pour l'utilisation d'OSS (support, garantie, maintenance et développement ultérieur) doivent être acquises conformément au droit des marchés publics. +* Lors de l'acquisition de logiciels, il est en principe admissible d'exiger des OSS, p. ex. lorsque l'unité administrative (UA) en attend des avantages concrets, tels qu'une plus grande souveraineté des données ou un respect simplifié de l'art. 9 LMETA en cas d'adaptations sur mesure prévisibles. Le marché ne doit toutefois pas être indûment restreint. + +*Creation et contribution :* + +* Lors du développement de logiciels ou de composants logiciels, y compris en vue d'une contribution ultérieure à un projet OSS, l'art. 9 LMETA doit toujours être pris en compte. Lorsque des prestations de tiers sont achetées à cette fin, le droit des marchés publics s'applique. +* Lors de contributions à des projets OSS, l'UA transmet son propre travail à des tiers ; ce processus n'est donc pas soumis au droit des marchés publics. +* L'acceptation de contributions de tiers à un projet OSS de la Confédération est également sans problème du point de vue du droit des marchés publics, pour autant qu'aucun paiement ne soit effectué. + +*Collaboration :* + +* La collaboration entre différents adjudicateurs publics sur un projet OSS soulève un large éventail d'exigences juridiques. Du point de vue du droit des marchés publics, les configurations impliquant la fourniture de prestations contre rémunération requièrent un examen attentif. +* Dans une collaboration informelle, chaque partie participante peut acquérir ou fournir des prestations de développement de manière autonome, puis les mettre à disposition gratuitement. Des prestations de coordination peuvent également être fournies ou acquises. +* Dans une collaboration formalisée, p. ex. par le biais d'une association d'acteurs publics, l'organe central peut aussi fournir ou acquérir des prestations de développement, pour autant qu'il soit lui-même soumis au droit des marchés publics. +* Une acquisition commune par des adjudicateurs de différents pays n'est en revanche pas admissible sans autre. + +Pour une utilisation durable des logiciels open source, il est important que les OSS ne soient pas seulement consommés, mais qu'un maximum de parties prenantes contribuent aussi à l'écosystème. Il existe de nombreuses manières de le faire : contributions régulières de code, création de documentation, financement de développeurs, et bien d'autres encore. + +== But et objet + +La loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA)footnote:[https://www.fedlex.admin.ch/eli/cc/2023/682/fr] exige que des considérations supplémentaires soient prises en compte lors de l'acquisition de logiciels nouvellement développés et de prestations de développement logiciel. + +Pour soutenir le respect de l'art. 9 LMETA, le secteur TNI a élaboré des outils et des ressources dans le cadre des link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale] et du link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale] + +include::partials/document-map.fr.adoc[] + +Figure 1 : Vue d'ensemble des outils OSS + +Les outils et ressources sont disponibles sur le site de la Chancellerie fédérale sous https://www.bk.admin.ch/bk/fr/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[outils OSS]. + +Le présent document va au-delà du cœur de l'article 9 LMETA et expose également comment l'open source doit être traité de manière générale dans le contexte des acquisitions. + +Chapitre 3:: L'importance de la souveraineté numérique dans le contexte de l'open source et des acquisitions +Chapitre 4:: Cas d'application pertinents en matière d'acquisition en lien avec les logiciels et les logiciels open source +Chapitre 5:: Creation : appels d'offres pour des logiciels et des prestations en lien avec l'art. 9 LMETA +Chapitre 6:: Consumption : acquisition de logiciels : égalité de traitement des logiciels open source +Chapitre 7:: Consumption : acquisition de prestations supplémentaires (support/maintenance/développement) pour les OSS +Chapitre 8:: Collaboration : aspects de droit des marchés publics des collaborations pour la création, la maintenance et le support d'OSS +Chapitre 9:: Contribution : contributions à des projets OSS + +== Souveraineté numérique et acquisitions + +=== Introduction à la souveraineté numérique et à l'OSS + +Par l'art. 9 LMETA, l'administration fédérale apporte une contribution importante à la durabilité et à la souveraineté numériques en publiant ses logiciels en OSS. + +La souveraineté numérique n'est pas une fin en soi, mais une condition préalable à une administration efficace, démocratique et tournée vers l'avenir. Il s'agit d'un concept à multiples facettes comportant des dimensions technologiques, organisationnelles et politiques. + +**** +*La souveraineté numérique signifie que l'État dispose du contrôle et de la capacité d'action nécessaires dans l'espace numérique afin de garantir l'accomplissement des tâches publiques.* +**** + +Lors de l'acquisition de logiciels en particulier, il convient de tenir compte des implications pour la souveraineté numérique de l'administration fédérale. + +Dans ses *rôles d'utilisatrice, d'exploitante et d'adjudicatrice* dans le domaine des TIC et des logiciels, l'administration fédérale peut assumer consciemment ses responsabilités en la matière. + +Trois objectifs stratégiques existent dans le domaine des logiciels : + +*Interchangeabilité* : [.underline]#en tant qu'utilisatrice#, l'administration publique cherche à pouvoir choisir librement et avec souplesse entre fournisseurs, solutions informatiques et technologies. Cela suppose la disponibilité d'alternatives performantes et éprouvées, ainsi que des architectures informatiques, des filières d'acquisition et des effectifs conçus pour faciliter le changement. + +*Capacité de conception* : [.underline]#en tant qu'exploitante informatique#, l'administration publique a la capacité de façonner et de co-concevoir ses systèmes informatiques. À cette fin, elle dispose des compétences nécessaires et de structures coopératives appropriées pour comprendre et évaluer les solutions informatiques et, si nécessaire, assurer leur développement, leur développement ultérieur et leur exploitation. + +*Influence* : [.underline]#en tant qu'adjudicatrice#, l'administration publique peut formuler et faire valoir ses exigences et ses besoins auprès des fournisseurs de technologies. Cela vaut pour les caractéristiques des produits (fonctions, options d'exploitation, disponibilité, sécurité de l'information et protection des données, etc.) comme pour la rédaction des contrats et les modèles de licence. + +Les *standards ouverts* et les *logiciels open source* soutiennent au mieux ces objectifs grâce aux *principes de l'open source*. + +Les OSS soutiennent la souveraineté numérique de la manière suivante : + +* La sécurité informatique pour l'administration publique, les infrastructures critiques et les applications sensibles peut être assurée [.underline]#à tout moment# grâce à un [.underline]#accès complet# au code source. +* Les OSS permettent aux organismes publics de construire, d'exploiter, de contrôler et d'adapter leur propre infrastructure informatique sans conditions de licence restrictives. +* Les OSS offrent un contrôle complet des mises à jour, des fonctionnalités et des correctifs de sécurité, tant sur le fond que sur le calendrier. +* Les OSS peuvent empêcher la dépendance envers des fournisseurs ou des modèles de licence particuliers et soutiennent l'interchangeabilité. +* Les OSS permettent de représenter et de retracer de manière transparente l'ensemble de la chaîne d'approvisionnement logicielle. +* Les OSS peuvent être adaptés et étendus — bien adaptés aux exigences spécifiques des autorités publiques et des institutions de formation, ce qui suppose toutefois des connaissances approfondies de la part des collaborateurs de l'organisation. +* Les investissements dans les OSS profitent aussi aux entreprises et aux communautés locales (création de valeur locale) et accroissent la résilience de l'économie suisse. +* Les OSS reposent sur la collaboration et des interfaces ouvertes, facilitent l'interopérabilité entre systèmes et favorisent les standards ouverts — également au-delà des frontières nationales. +* Les OSS améliorent la sécurité informatique et la sécurité des données grâce à la transparence et à l'adaptabilité. +* Les logiciels OSS sous licences OSI garantissent des conditions juridiques claires et une continuité, ainsi que les libertés fondamentales de l'OSS, protégeant développeurs et utilisateurs à parts égales. + +*Standards ouverts :* afin de soutenir l'interchangeabilité des logiciels, les appels d'offres publics devraient exiger le respect de standards ouverts,footnote:[Par exemple des standards ouverts tels qu'eCH, ODF ; voir aussi https://fr.wikipedia.org/wiki/Norme_ouverte[Norme ouverte — Wikipédia]] réduisant ainsi au minimum le lock-in. +*Interfaces ouvertes :* les interfaces devraient également être divulguées afin de permettre l'interopérabilité. + +Les autorités fédérales sont en principe tenues de respecter les normes eCH.footnote:[https://www.ech.ch/[www.ech.ch]] + +La Haute école spécialisée bernoise a exposé les considérations déterminantes dans l'étude _Perspectives technologiques de la souveraineté numérique_ [Stü2024], réalisée sur mandat du DFAE, au moyen du modèle de la « maison de la souveraineté », dans lequel le logiciel est présenté comme un pilier essentiel. Dans ce modèle, les couches situées sous le toit — collaboration, compétences technologiques, les quatre piliers et réglementation — sont les domaines dans lesquels les mesures recommandées favorisent la souveraineté numérique. + +[mermaid,align="center",alt="Représentation schématique des aspects de la souveraineté numérique permettant la fourniture de produits et services innovants"] +.... +block-beta + columns 4 + Roof["Produits et services numériques innovants
des entreprises et des autorités"]:4 + space:4 + Collab["Collaboration avec la recherche et la société civile"]:4 + Skills["Compétences technologiques (programmation, science des données, etc.)"]:4 + SW["Logiciels"] Data["Données et
contenus numériques"] AI["Intelligence
artificielle"] Infra["Infrastructure TIC
(matériel)"] + Reg["Réglementation (lois, normes)"]:4 + Collab-- "permettent" -->Roof +.... + +_Figure 2 : Représentation schématique des aspects de la souveraineté numérique permettant la fourniture de produits et services innovants [Stü2024]_ + +=== Mesurer la souveraineté numérique + +Des aspects de souveraineté numérique peuvent être exigés dans un appel d'offres public, mais de telles exigences doivent être objectivement justifiées. Il n'existe pas de préférence générale pour les OSS. + +*Comment mesurer alors le degré de souveraineté numérique pour une technologie, un produit ou un service donné ?* + +Cette opérationnalisation doit être aussi objective et transparente que possible. + +Diverses initiatives s'y emploient. L'OSBA a par exemple développé un **indice de souveraineté**footnote:[https://osb-alliance.de/featured/ein-index-fuer-digitale-souveraenitaet[Un indice de souveraineté numérique | OSBA — Open Source Business Alliance]] _[OSBA-VK]_. _Nextcloud_ a publié un Digital Sovereignty Index (DSI),footnote:[https://dsi.nextcloud.com/[dsi.nextcloud.com]] qui compare des pays entiers mais peut aussi fournir des critères utiles. +L'Union européenne a publié un Cloud Sovereignty Frameworkfootnote:[https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf[commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf]] pour le cloud. +Le _Centre pour la souveraineté numérique ZenDiS_ travaille à un contrôle de souveraineté destiné à évaluer les solutions informatiques et les organisations au regard de critères de souveraineté transparents. + +L'administration fédérale participe également à l'élaboration d'un *cadre de souveraineté numérique* qui permettra notamment de déterminer le degré de réalisation selon différentes perspectives. + +Les perspectives possibles sont : + +A -- Contrôle technologique:: +Dans quelle mesure l'administration fédérale contrôle-t-elle les technologies utilisées et leur développement ultérieur ? + +B -- Souveraineté des données:: +Qui a accès aux données, en a le contrôle et le pouvoir de décision — en particulier pour les données administratives sensibles ? + +C -- Capacité juridique d'action:: +Dans quelle mesure la Suisse et l'administration fédérale peuvent-elles influencer le cadre juridique et politique de la numérisation ? + +D -- Résilience:: +Quelle est la robustesse et la résistance aux crises des systèmes et processus numériques de l'administration fédérale face aux perturbations, aux crises et aux dépendances ? + +E -- Contrôle économique:: +Comment l'administration fédérale peut-elle exercer un contrôle économique et un sourcing stratégique afin d'assurer sa souveraineté numérique de manière économiquement efficace, tout en minimisant les dépendances et les risques dans les acquisitions informatiques ? + +Pour chacune de ces perspectives, le degré de souveraineté numérique peut être déterminé au moyen d'une échelle à définir : + +0 -- Hétéronome / non souverain:: +Aucun contrôle sur les systèmes, les données ou l'infrastructure ; aucune transparence, fortes dépendances ; aucune option de sortie ou de remplacement + +1 -- Contrôle minimal:: +Premières informations sur l'utilisation et les dépendances ; mécanismes de contrôle ponctuels ; des lacunes opérationnelles, juridiques ou technologiques subsistent + +2 -- Utilisable de manière réglementée:: +Systèmes fiables et partiellement pilotables ; cadre juridique et technique établi ; des dépendances stratégiques subsistent + +3 -- Autonome et résilient:: +La position sur le marché est exploitée ; stratégies de sortie et concepts multifournisseurs mis en œuvre ; savoir-faire développé ; résilience et scénarios de crise préparés + +4 -- Souverain sur le plan systémique:: +Souveraineté dans toutes les dimensions pertinentes (juridique, technologique, culturelle, stratégique) ; façonnage actif du marché et des normes ; effet géopolitique possible + +_Figure 3 : Degré de souveraineté numérique._ + +Ces deux dimensions produisent la matrice suivante : + +[.landscape] +[cols="2,^1,^1,^1,^1,^1",options="header"] +|=== +|Perspective +|0 + +Hétéronome +|1 + +Contrôle minimal +|2 + +Utilisable de manière réglementée +|3 + +Autonome et résilient +|4 + +Souverain sur le plan systémique + +|A -- Contrôle technologique +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|B -- Souveraineté des données +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|C -- Capacité juridique d'action +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|D -- Résilience +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|E -- Contrôle économique +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +|=== + +_Figure 4 : Matrice Souveraineté numérique : perspectives et degré de souveraineté._ + +Des critères concrets peuvent être décrits pour les différentes intersections de la grille afin de rendre le classement aussi objectif que possible. + +Un tel cadre est actuellement élaboré dans le cadre de la priorité 4, « Renforcer la souveraineté numérique », de la « Stratégie Administration fédérale numérique ».footnote:[https://www.bk.admin.ch/bk/fr/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html[www.bk.admin.ch — Administration fédérale numérique]] + +Le Conseil fédéral a mis en vigueur au 1er janvier 2026 la directive faîtière Souveraineté numérique au sein de l'administration fédérale.footnote:[W012 - Directives pour la souveraineté numérique au sein de l'administration fédérale] Les projets doivent intégrer les différents aspects dans la définition de l'objet de l'acquisition et, si nécessaire, dans un appel d'offres, sur la base du besoin concret de souveraineté — par exemple sous l'angle des risques dans le cadre de la gestion de la continuité des activités. + +== Cas d'application pour l'acquisition de logiciels + +Les technologies de l'information et de la communication (TIC) et les logiciels ne sont pas une fin en soi au sein de l'administration fédérale, mais servent toujours à accomplir un mandat légal. Compte tenu de la numérisation croissante et du rôle central de l'administration fédérale en Suisse, l'informatique doit être une compétence clé de l'administration. + +Les *facteurs* suivants ont donc une incidence directe sur les acquisitions : + +* *Numérisation* : la stratégie numériquefootnote:[https://digital.swiss/fr/] appelle à la numérisation des processus. +* *Optimisation des processus* : les processus au sein de l'administration fédérale et dans ses relations extérieures peuvent et doivent être optimisés. +* *Souveraineté numérique* : l'importance de la souveraineté numérique ne cesse de croître ; voir _[Stü2024]_. +* Le principe *public money, public goods* et le respect de l'art. 9 LMETA. +* *Liberté économique* : les mesures ne doivent pas restreindre inutilement la liberté économique. +* Considérations générales de *sécurité* : la sécurité des systèmes de traitement de l'information revêt une importance croissante. +* Gestion des crises et des catastrophes (*résilience*) : compte tenu de la situation mondiale actuelle, l'administration doit examiner comment elle peut continuer à fournir les outils de travail nécessaires dans des circonstances critiques. +* Indépendance stratégique et considérations relatives à la *chaîne d'approvisionnement* : elles découlent de la souveraineté numérique et de la résilience. +* Éviter ou réduire au minimum le *vendor lock-in* : les dépendances sont quasiment inévitables en informatique, mais la dépendance envers un fournisseur unique devrait être réduite partout où cela est possible. +* *Renforcement des compétences* de l'administration fédéralefootnote:[Non seulement chez les cadres, les cheffes et chefs de projet et les architectes TIC, mais dans l'ensemble du personnel.] (y compris la direction) en matière de TIC : piloter, développer et exploiter les technologies de l'information exige des compétences appropriées dans l'ensemble du personnel. + +Le présent document distingue les *types de logiciels* suivants : + +* *Commodity — applications spécialisées/branche — applications spécialisées/autorité fédérale* : +** Application standard (logiciel commodity) sans logique métier particulière. +** Application spécialisée : besoin spécifique de la branche/de tous les niveaux fédéraux ou besoin spécifique de l'autorité fédérale +* *Ciblé — stratégique — essentiel* : +** Application ciblée +** Application stratégique revêtant une importance considérable pour une autorité fédérale ou pour l'ensemble de l'administration fédérale +** Essentielle et critique pour l'activité — doit rester fonctionnelle en toutes circonstances (p. ex. contrôle aérien) + +Les applications peuvent être utilisées dans un ou plusieurs *domaines d'application*. + +Ce qui importe ici est la *standardisation* des applications par produit au sein de chaque domaine : + +* Aucune stratégie +* Stratégie mono-produit +* Stratégie multi-produits + +Outre la standardisation des produits, qui doit être examinée avec soin, il existe aussi une standardisation aux fins d'interopérabilité (formats de données, API, éléments métier).footnote:[P. ex. via eCH] +La standardisation _est admissible_ pour autant qu'elle soit proportionnée et ne restreigne pas indûment la concurrence (p. ex. art. 30, al. 3, LMP). Elle peut réduire les coûts d'exploitation et de maintenance et générer des effets de synergie, en particulier lorsque tous les niveaux fédéraux sont impliqués. En revanche, elle accroît le lock-in, la dépendance et, dans certains cas, les risques de sécurité (risque de concentration). + +Le coût total de possession (TCO) — couvrant l'exploitation, la maintenance et le développement ultérieur — devrait toujours être pris en compte lors des acquisitions. Les conséquences financières à long terme ne doivent pas être négligées. Les modèles d'affaires open source diffèrent à certains égards de ceux des fournisseurs propriétaires. + +Les chapitres suivants se concentrent de plus en plus sur l'open source et traitent de l'approche d'acquisition pertinente et de sa mise en œuvre. + +Le choix entre consumption, contribution, collaboration et creation est effectué _au cas par cas selon le projet_, en fonction de l'efficacité économique et de la situation juridique, les coûts étant répartis aussi largement que possible. Dans cette optique, les quatre C tels que définis dans les link:em002.pdf[Em002 Lignes directrices stratégiques OSS], chapitre 3, sont classés par ordre d'importance décroissante : + +image::./assets/four-cs/four-cs.fr.svg[Classement des quatre C : Consumption, Contribution, Collaboration, Creation] + +. Consumption +. Contribution +. Collaboration +. Creation + +Avec la simple *consumption*, les coûts se répartissent sur un grand nombre d'autres utilisateurs, mais l'autorité fédérale n'a aucun contrôle sur le développement ultérieur. La creation est l'inverse : contrôle total, mais coût total. + +Avec la *contribution*, l'engagement financier se limite à l'élément développé, qui est ensuite remis à une autre organisation pour la maintenance. + +La *collaboration* est le scénario le plus complexe, car les arrangements peuvent varier considérablement. Dans le meilleur des cas, les coûts sont partagés et l'autorité fédérale dispose d'une influence suffisante pour mettre en œuvre ses exigences sans compromis (voir chapitre 8). + +Idéalement, la *creation* représente la part la plus faible. Un logiciel peut être développé en interne, par des prestations de services ou par un contrat d'entreprise. + +La consumption pure ne sera réalisable que pour les applications standard. + +=== Un logiciel requiert des prestations supplémentaires telles que maintenance, support et développement ultérieur. + +Bien que les applications open source puissent être utilisées gratuitement, leur déploiement stratégique sur des milliers d'instances requiert maintenance, support et, si nécessaire, développement ultérieur. + +Les autorités fédérales ont un intérêt à un support à long terme des versions déployées (voir chapitre 3.2.3 dans _[BITKOM2024]_). + +L'art. 9 LMETA lui-même ne couvre que le développement ou le développement ultérieur de logiciels en interne et n'est pas déterminant pour d'autres considérations relatives à l'open source — la souveraineté numérique et d'autres facteurs s'appliquent alors. Des restrictions au titre de l'art. 9 LMETA sur des composants de développement isolés peuvent toutefois avoir des répercussions sur l'ensemble du projet lorsque des développements propriétaires ou supplémentaires sont prévisibles. La collaboration peut alors être utilisée pour exploiter des effets de synergie et, si possible, réduire les coûts pour l'ensemble de l'administration fédérale. + +=== Obligation de publication lors de l'acquisition de logiciels + +Lorsque les exigences indiquent un besoin d'adaptation du logiciel, ou un besoin d'adaptation ultérieur potentiel, l'art. 9 LMETA est pertinent et la publication est obligatoire pour ces parties, à moins que l'une des deux exceptions ne s'applique. Lors de l'acquisition d'une solution open source, une telle publication serait déjà couverte par une contribution au projet open source. Même lorsque l'acquisition ne porte que sur la licence d'un logiciel standard ou sur une acquisition TIC relevant d'une exception, les développements supplémentaires doivent en principe être publiés, ce qui doit se refléter dans les documents d'acquisition et le projet de contrat. + +*L'obligation de publication prévue à l'art. 9 LMETA est donc pertinente pour toute acquisition dans laquelle un développement propre ou un développement ultérieur est probable* (voir aussi _[KBB-MB]_). + +== Creation : appels d'offres pour des logiciels et des prestations relevant de l'article 9 LMETA + +Ce chapitre traite des implications de l'art. 9 LMETA pour les appels d'offres portant sur des logiciels et des prestations pouvant impliquer la création ou la modification de logiciels. + +Il s'applique tant à l'administration fédérale centrale que décentralisée. Les exceptions à cette obligation sont fixées dans l'ordonnance sur la numérisation _[DigiV]_. + +=== Pertinence de l'article 9 LMETA pour la création de logiciels + +Une opération entre dans le champ d'application de l'art. 9 LMETA si elle relève de la catégorie déterminante du tableau 1. La décision « make or buy » reste centrale pour les acquisitions. L'analyse des différents cas d'application montre qu'en principe l'art. 9 LMETA est pertinent dans tous les cas, sauf lorsqu'un logiciel préexistant est acquis (p. ex. licences pures). Le chapitre II.4 des _directives Open Source dans les acquisitions [BBL-WL]_ expose l'approche stratégique, et l'annexe VII.A décrit en détail ce qui constitue un logiciel. Une ventilation détaillée de la décision stratégique figure au tableau 1. + +[cols="3,2,4",options="header"] +|=== +|Cas d'application |Make or buy |Obligation de publication selon l'art. 9, al. 1, LMETA + +|Développer un logiciel au sein de l'administration fédérale +|Make +|Oui, obligation de publication + +|Faire développer un logiciel par des tiers +|Buy, sous forme de contrat de prestations informatiques +|Oui, obligation de publication + +|Acquérir un logiciel existant +|Buy +a|En principe non, mais vérifier si des obligations de publication s'appliquent aux parties développées. Le traitement des droits de tiers est particulièrement pertinent (voir link:em002-3.pdf[Em002-3 Guide de licences OSS]). + +|Reprendre un logiciel d'autres organismes publics +|Make ou buy +a|— Au sein de l'administration fédérale : obligation de publication pour l'unité administrative cédante. + +— Autres : examiner au cas par cas si les adaptations effectuées par l'administration fédérale créent une obligation de publication, au moins pour ces parties. + +|Acquérir des ressources de développement +|Make +|Oui, obligation de publication (les contrats doivent permettre la publication) + +|Collaborer avec d'autres organismes publics au développement de logiciels +|Make +|Oui, obligation de publication (les contrats doivent permettre la publication), en particulier en cas de contributions de développement substantielles par ou pour la Confédération +|=== + +_Tableau 1 : Classification de l'obligation de publication et de la décision « make or buy » (d'après un tableau de Rika Koch, BFH)_ + +Remarque : l'art. 9 LMETA doit aussi être pris en compte pour les logiciels existants et les SaaS lorsque le logiciel doit être développé ou adapté pour la Confédération. Même lorsque la probabilité en est faible, cela devrait être traité dans le processus d'acquisition. + +Lorsqu'une clarification est nécessaire, la référence recommandée est link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source]. Les listes de contrôle devraient être *remplies provisoirement le plus tôt possible* pour les projets potentiellement concernés. La _liste de contrôle pour l'exception forfaitaire selon l'art. 9 LMETA [BBL-CL]_ peut également être utilisée à cette fin. + +=== Préparer une acquisition au sens de l'article 9 LMETA + +Outre les étapes préparatoires habituelles, les deux documents suivants devraient être consultés chaque fois qu'une acquisition comporte des composants logiciels : + +* _aide-mémoire sur l'acquisition de logiciels et l'art. 9 LMETA [KBB-MB] et_ +* _directives Open Source dans les acquisitions [BBL-WL]_. + +Lorsque l'art. 9 LMETA est clairement pertinent, l'unité administrative devrait avoir : + +* rempli provisoirement les listes de contrôle link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Évaluation préalable OSS] à link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Validation et publication OSS] ; +* pris une décision de principe sur l'utilisation d'une licence copyleft ou permissive ;footnote:[Une analyse plus détaillée peut être effectuée ultérieurement au moyen du _Em002-3 Guide de licences OSS_ si nécessaire.] +* recherché d'éventuelles alternatives open source (ou des projets de base potentiels pour des contributions ou une collaboration) conformément à link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source], au moyen des outils qui y sont indiqués pour la recherche et l'analyse de marché ;footnote:[Voir aussi link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale], chapitre 7.] +* clarifié la structure d'une éventuelle communauté (link:em002-4.pdf[Em002-4 Guide des communautés OSS] et link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Liste de contrôle Communauté OSS]). + +Lorsqu'un projet OSS existant doit être utilisé, soutenu ou servir de base à une collaboration, les chapitres 5, 6, 8 et 9 du présent document doivent être lus. + +=== Creation via des contrats de prestations existants + +Lorsque la creation passe par des contrats de partenariat existants, la publication OSS doit être assurée au stade du mini-appel d'offres, à moins que l'une des deux exceptions ne s'applique. + +Les nouveaux appels d'offres de prestations devraient toujours comporter une exigence de publication conformément à l'art. 9 LMETA (voir _[BBL-WL] et_ _[KBB-MB])_. + +=== Constituer une communauté + +Constituer et entretenir une communauté maximise les bénéfices des logiciels open source, mais représente aussi une charge considérable. + +Lorsqu'une communauté et une collaboration sont judicieuses, cela a des implications pour l'acquisition dès le départ. La link:em002-4-1-checklist-oss-community.pdf[liste de contrôle Em002-4.1 Communauté OSS] devrait donc être remplie sur la base du link:em002-4.pdf[Em002-4 Guide des communautés OSS]. + +Lorsque l'autorité fédérale doit assumer un rôle important dans la communauté (p. ex. un rôle de gouvernance) ou lorsqu'une collaboration est prévue (voir chapitre 8), il peut être nécessaire d'acquérir des prestations supplémentaires : constitution de la communauté, consolidation des exigences, pilotage du développement ultérieur. + +=== Critères types et éléments contractuels pour les acquisitions informatiques + +Le CCMP tient à jour un modèle de critères d'acquisition possibles ainsi qu'un modèle de chapitre de contrat-cadre pour les appels d'offres portant sur des logiciels _[KBB-KV]_. + +Le CCMP a publié deux documents types sur Perimap.admin.ch montrant comment les exigences minimales d'une adjudication conforme au droit des marchés publics au sens de l'art. 9 LMETA peuvent être satisfaites. [KBB-KV] + +. https://perimap.admin.ch/goto_perimap_file_47064_download.html[Critères types — Acquisition LMETA et open source] +. https://perimap.admin.ch/goto_perimap_file_47059_download.html[Textes contractuels types — Développement logiciel] + +== Consumption : acquisition de logiciels : égalité de traitement des logiciels open source + +Ce chapitre traite de l'acquisition et de l'utilisation (consumption) de logiciels open source et met en évidence les principaux aspects stratégiques. +Il est également renvoyé à _[BBL-WL] et_ _[KBB-MB]_. + +*Il n'existe actuellement aucune préférence légalement prescrite pour les logiciels open source dans les acquisitions.* + +Lors d'appels d'offres portant sur des applications informatiques, tous les types de licence et modèles d'affaires sont pris en compte. Pour satisfaire aux exigences formulées, les fournisseurs peuvent proposer des solutions logicielles fondées sur des logiciels open source non modifiés, propriétaires ou closed source, ou sur des combinaisons de modèles de licence et de prestations à valeur ajoutée ou d'abonnements. + +Les points suivantsfootnote:[Les documents de référence déterminants en matière d'acquisition sont ceux publiés par l'OFCL et le CCMP sur les plateformes correspondantes.] devraient être pris en compte par les autorités fédérales : + +* Indépendamment de sa solution et de son modèle de licence, le prestataire doit indiquer dans son offre *quelles conditions de licence le service acquéreur doit respecter lors de l'utilisation de la prestation*. +* Le prestataire est *libre de choisir la solution* avec laquelle il entend satisfaire aux exigences mises au concours ainsi que la forme de rémunération qu'il souhaite percevoir (redevances de licence, de maintenance ou d'abonnement), pour autant que cela soit techniquement réalisable et économiquement raisonnable. +* L'ensemble du *cycle de vie* devrait être pris en compte dans les spécifications et la tarification. + +Cela permet à l'administration fédérale de faire valoir ses intérêts en matière de propriété intellectuelle, de garantie et de responsabilité — indépendamment du logiciel ou du modèle de licence — au niveau des conditions générales applicables et de les ancrer dans le contrat. + +Lorsque des *adaptations logicielles* sont effectuées sur mandat ou en exécution d'un contrat avec l'autorité fédérale, l'art. 9 LMETA s'applique. +Par précaution, l'autorisation de publication devrait être demandée dès l'appel d'offres, l'expérience montrant que des adaptations s'avèrent tôt ou tard nécessaires, même si elles ne sont pas prévisibles au moment de l'appel d'offres. + +Lorsque le service acquéreur acquiert auprès d'un fournisseur des *prestations à valeur ajoutée* en plus du logiciel, les fournisseurs OSS proposent souvent un modèle d'abonnement offrant un interlocuteur local assorti d'engagements de garantie et de responsabilité, en sus de la relation directe avec les titulaires des droits de propriété intellectuelle sur les composants OSS (souvent établis à l'étranger et parfois inconnus). + +=== L'OSS comme critère stratégique d'acquisition + +Lorsqu'une autorité fédérale souhaite acquérir un logiciel open source pour des raisons stratégiques, plusieurs scénarios sont possibles : + +* Appel d'offres fonctionnel sans critères spécifiques à l'OSS. +Comme cela n'implique aucune restriction, aucune justification particulière n'est nécessaire. +* Appel d'offres fonctionnel assorti d'un critère d'aptitude, de critères techniques et de critères d'adjudication exigeant l'open source, un accès complet au code source ou une expérience démontrable en matière de publication open source. + +*Toute préférence pour l'open source est admissible au regard du droit des marchés publics lorsqu'elle permet de (mieux) répondre aux besoins concrets du service adjudicateur*.footnote:[Voir [BBL-WL\], [BBL-CL\], [KBB-MB\], [KBB-KV\]] + +Une autre raison de privilégier l'OSS — au-delà de la souveraineté numérique — tient au fait que lorsque l'administration requiert des adaptations logicielles importantes, celles-ci doivent être publiées en vertu de l'art. 9 LMETA. +La publication est la plus simple lorsque l'ensemble du produit a toujours été open source et que les adaptations peuvent dans certains cas être effectuées directement dans le produit. À défaut, une exception doit être définie et, si nécessaire, des parties du code doivent être isolées puis publiées malgré tout. + +=== L'utilisation gratuite d'OSS n'est pas soumise au droit des marchés publics. + +Les OSS peuvent souvent être téléchargés et utilisés directement. Le droit des marchés publics ne s'applique que lorsque des prestations sont obtenues de tiers contre rémunération (y compris des contreparties non monétaires). + +Le téléchargement et l'utilisation gratuits d'OSS ne constituent pas en soi une acquisition. + +Il est aussi possible d'acquérir ultérieurement les prestations nécessaires pour des OSS téléchargés, pour autant que cela ne se fasse pas de manière abusive.footnote:[Analogie : une commune peut utiliser son propre bois et commander la construction d'un dépôt d'entretien avec ce bois — elle n'est pas tenue d'acquérir elle-même le bois.] + +Les prestations de maintenance, de support et de développement ultérieur du produit font ensuite l'objet d'un appel d'offres distinct conformément au droit des marchés publics. + +Il existe déjà des exemples d'OSS utilisés gratuitement sur les postes de travail standard de l'administration fédérale et donc non acquis.footnote:[Exemples d'OSS à potentiel de standardisation : Gimp, FileZilla, VLC Media Player et 7-zip en tant que produits Shell 2 (selon [A029\]), qui peuvent être utilisés parce que l'installation est gratuite. En 2024, l'OFIT a désigné Red Hat OpenShift comme produit stratégique pour certains domaines d'application en raison de ses caractéristiques techniques uniques. OpenShift est actuellement la plateforme stratégique pour les conteneurs et les systèmes d'exploitation.] + +=== Coordonner les exigences avec d'autres parties prenantes + +Une application spécialisée requiert toujours un porteur de besoin (généralement un office fédéral). Il est en règle générale judicieux que l'entité ayant le besoin harmonise ses exigences avec celles d'autres services publics — soit en interne, soit dans le cadre d'une collaboration (voir chapitre 8) — dans la mesure où un produit disponible sur le marché ou un développement conjoint favorise le développement et le déploiement. + +Lorsque de nombreuses parties prenantes ont des exigences identiques ou similaires, il peut valoir la peine de répondre à ces besoins sur une base commune. Cela vaut pour toutes les formes de logiciels. + +Deux aspects sont à relever : lorsque des adaptations sont ensuite effectuées par une autorité fédérale à la demande de tiers, l'art. 9 LMETA s'applique à nouveau — ce qui ne pose toutefois pas de problème lorsqu'un logiciel open source est utilisé. + +Avec les OSS, les exigences doivent parfois être harmonisées plus activement par l'autorité fédérale, car il peut n'y avoir aucune force motrice telle qu'un fournisseur commercial cherchant à piloter et à développer son propre produit. + +=== Prendre en compte d'autres acteurs publics potentiels lors de l'acquisition + +L'exemple de ZenDiSfootnote:[https://www.zendis.de/en[https://www.zendis.de/] ZenDiS s'est donné pour mission de permettre à l'administration de se libérer de dépendances critiques envers des fournisseurs de technologies isolés.] montre qu'il peut être à la fois réalisable et payant de lancer un appel d'offres couvrant simultanément tous les niveaux fédéraux. + +*Une concurrence équitable doit toujours être préservée.* Lors du lancement d'appels d'offres, il convient toujours d'examiner si la solution pourrait utilement être acquise également pour d'autres entités. + +Si tel est le cas, ces clients supplémentaires potentiels devraient être contactés et leurs besoins reflétés dans les documents d'appel d'offres, en particulier dans les exigences. Une certaine souplesse dans les exigences est importante dans de tels cas. + +Exemple : eOperations Suisse SA (http://www.eoperations.ch[www.eoperations.ch]) peut être utilisée pour de telles collaborations. eOperations consolide les exigences de différents services et procède elle-même à l'acquisition, sans nécessairement utiliser le produit elle-même. Cela peut aussi constituer un modèle utile pour l'acquisition d'OSS. + +== Consumption : acquisition de support et de maintenance pour les OSS + +L'administration publique peut utiliser des logiciels open source de diverses manières, du simple téléchargement et installation jusqu'à une acquisition formelle (voir chapitre 6.2). + +Lorsque des OSS sont déployés dans des domaines critiques, des standards élevés et constants de sécurité,footnote:[Voir aussi link:em002-6.pdf[Em002-6 FAQ-OSS], chapitre 5.3] de maintenance et de développement ultérieur sont requis. Dans une acquisition de logiciel ordinaire, cela est généralement couvert par l'appel d'offres. Les exigences s'appliquent tant au logiciel lui-même qu'aux bibliothèques et frameworks utilisés. Le support et la maintenance méritent une attention particulière, le développement ultérieur étant souvent couvert par le même contrat et constituant de toute façon de la creation, relevant ainsi du champ d'application de l'art. 9 LMETA. + +Ces prestations à forte intensité de main-d'œuvre dépassent presque toujours la valeur seuil de la loi fédérale sur les marchés publics (LMP) lorsqu'elles sont calculées sur l'ensemble du cycle de vie de l'application. Lorsqu'elles sont achetées auprès de tiers, le droit des marchés publics doit être respecté. Des exceptions peuvent s'appliquer, par exemple l'acquisition intra-étatique auprès d'un autre adjudicateur public,footnote:[Art. 10, al. 3, let. b, LMP.] ou, dans des cas exceptionnels, l'acquisition de gré à gré de prestations spécialisées.footnote:[Art. 21, al. 2, let. c, LMP.] + +Le tableau suivant présente les distinctions de cas pour l'acquisition de prestations telles que le support. + +[cols="1,1,1,2"] +|=== +2+h|Situation initiale 2+h|Résultats + +h|Coûts du cycle de vie + +→ valeur seuil OMC ?footnote:[Les coûts internes peuvent être exclus. L'ensemble du cycle de vie doit être pris en compte.] +h|Intra-étatique ?footnote:[L'acquisition intra-étatique n'est pas soumise à appel d'offres : portage étatique requis, pas de participation au marché. Ne s'applique qu'au sein du secteur public suisse.] +h|Appel d'offres OMC requis ?footnote:[Les directives fédérales en matière d'acquisition s'appliquent toujours dès qu'un paiement est effectué.] +h|Remarques + +|Non +|Non +|Non footnote:[Un logiciel avec support dépasse généralement la valeur seuil LMP ; « non » ne s'appliquera que dans de rares cas (p. ex. financement d'une seule fonctionnalité pour un projet OSS existant).] +.2+|Rarement un progiciel complet avec support — le plus souvent un support mineur et des fonctionnalités isolées. + +|Non +|Oui +|Non + +|Oui +|Non +|Oui +|Seul le volume destiné à des tiers est déterminant. + +|Oui +|Oui +|Non +|L'appel d'offres a été lancé par l'autre organisme public. +|=== + +_Tableau 2 : Distinction de cas — acquisition de support_ + +=== Le support et la maintenance font toujours partie du logiciel + +Le support et la maintenance sont essentiels à l'exploitation durable d'un logiciel dans un environnement administratif. Dans un monde d'exploits zero-day,footnote:[Un exploit zero-day désigne l'exploitation d'une faille de sécurité pour laquelle aucun correctif n'est encore disponible auprès du développeur du composant.] le déploiement rapide et professionnel des correctifs est déterminant. Cette « infrastructure » doit être financée — d'autant que l'administration a des exigences plus élevées qu'un consommateur privé. + +*La question n'est donc pas SI le support et la maintenance seront nécessaires, mais COMMENT ils seront assurés.* + +L'autorité fédérale doit déterminer le niveau de support, de maintenance, de garantie et de responsabilité dont elle a besoin en fonction de ses exigences de qualité de service. + +Il est important que tout prestataire chargé de la maintenance et du support puisse démontrer une expérience suffisante du produit ou de la communauté open source concernée — ce n'est qu'alors qu'il sera en mesure de remplir efficacement ces tâches (voir aussi _[KBB-MB]_, II.5).footnote:[Le contrat de prestations devra peut-être aussi couvrir le transfert éventuel de connaissances à une organisation successeure.] + +Le support et la maintenance doivent aussi être financés au niveau du produit. Lorsque personne ne contribue (le problème du passager clandestinfootnote:[https://fr.wikipedia.org/wiki/Passager_clandestin_(%C3%A9conomie)]), l'avenir du projet est compromis, et avec lui son utilisation au sein de l'administration fédérale. Compte tenu de sa taille, on peut raisonnablement attendre de l'administration fédérale qu'elle contribue aux coûts des logiciels qu'elle déploie de manière stratégique. + +=== Organisations pouvant fournir un support + +La qualité du support a une incidence directe sur la satisfaction et la productivité des utilisateurs finaux. Un système de support structuré, offrant des temps de réponse rapides et une véritable expertise technique, garantit que les utilisateurs et les administrateurs obtiennent des solutions efficaces à leurs problèmes, ce qui économise du temps de travail à l'adjudicateur et favorise l'acceptation de la solution logicielle. + +Pour respecter les temps de réponse convenus contractuellement dans les service level agreements (SLA), le fournisseur doit disposer de personnel qualifié possédant les compétences nécessaires. + +Les sources de support possibles sont : + +*En interne* : + +* Offices fédéraux +* Prestataires + +*Intra-étatique* : + +* Autres adjudicateurs publics en Suisse +* Prestations acquises par d'autres adjudicateurs publics en Suisse + +*Tiers* : + +* Prestation acquise + +=== Développement ultérieur pour des fonctionnalités spécifiques + +Lorsqu'une autorité fédérale n'a besoin que d'un nombre limité d'améliorations spécifiques d'un logiciel open source, cela peut être réalisé avec des ressources internes ou des prestations acquises. + +De tels développements ultérieurs devraient viser à être proposés au projet d'origine et à y être intégrés. Cela profite non seulement à l'écosystème du projet, mais garantit que les améliorations continueront d'être maintenues au sein du projet. À défaut, chaque nouvelle version du projet d'origine peut exiger une mise à jour manuelle du développement sur mesure (voir aussi chapitre 8). + +=== Abonnement + +De nombreuses entreprises et projets du milieu open source offrent un support gratuit dans certaines limites, fourni volontairement par n'importe quel utilisateur, principalement via des canaux ouverts tels que des forums et des systèmes de tickets publics. Cette offre gratuite n'est pas conçue pour des utilisateurs professionnels ayant des exigences SLA spécifiques. + +Pour les utilisateurs professionnels tels que les autorités fédérales, des abonnements OSS incluant garantie, maintenance et support sont souvent disponibles. + +Certains fournisseurs proposent aussi des « versions entreprise » spéciales qui ne répondent plus aux critères open source de l'OSI. + +Exemples d'abonnements : OpenShift de Red Hat, openDesk de ZenDiS + +=== Certifications dans le domaine de l'open source et OpenChain + +Comme pour les logiciels propriétaires, diverses certifications existent dans le domaine de l'open source. Il peut être utile pour l'administration de vérifier, avant de lancer un appel d'offres, l'existence de certifications potentiellement pertinentes dans le domaine concerné. + +*OpenChain* est une norme ISO portant sur le développement open source et la compatibilité des licences (voir ci-dessous). + +Lorsque des certifications pertinentes existent et sont déterminantes pour la prestation, elles devraient être prises en compte dans l'évaluation des fournisseurs. Il importe que la certification elle-même soit jugée significative et que les fournisseurs puissent démontrer qu'ils sont en mesure de fournir la prestation même sans certification. + +Compte tenu de la complexité en jeu, exiger des certifications comme critère d'aptitude n'est pas recommandé. Comme critère d'adjudication — avec la possibilité de démontrer par des références le respect du contenu de la certification — elles peuvent être appropriées selon le produit OSS, pour autant qu'il soit admissible d'utiliser des références pour prouver que les critères de certification sont satisfaits.footnote:[Remarque : exiger une certification excessive ou mal adaptée à l'objet de l'appel d'offres produira inévitablement des offres moins compétitives.] + +Une autocertification OpenChain peut tout au plus servir de substitut lorsqu'aucune autre certification n'existe. Des références couvrant les critères déterminants peuvent également remplacer des certifications manquantes. + +*Certification des entreprises partenaires* + +Certains développeurs et projets open sourcefootnote:[tels que Nextcloud ou Univention] certifient les entreprises partenaires avec lesquelles ils collaborent. De telles certifications peuvent attester d'une relation existante entre le fournisseur et le développeur du logiciel. Il convient de noter que de nombreux projets OSS ne proposent pas de telles certifications. Une collaboration avérée dans des projets de référence est un indicateur tout aussi valable — et moins restrictif — de la qualité recherchée. + +*Certification des collaborateurs* + +Certains fabricants ou communautés open sourcefootnote:[tels que LibreOffice ou RedHat] certifient des personnes disposant d'une expertise spécialisée dans le logiciel concerné. Lorsqu'un prestataire emploie du personnel certifié, cela peut démontrer une expertise dans la publication upstream d'adaptations et de correctifs ainsi que dans la fourniture d'un support de troisième niveau de qualité — en particulier lorsque plusieurs collaborateurs travaillent avec le produit. Cela dépend aussi de la structure de l'écosystème du projet OSS. + +En guise d'alternative aux certifications, une expérience de projet démontrable dans des références relatives à l'objet de l'acquisition peut également servir de critère de différenciation. + +*Standard OpenChain* + +Le standard OpenChain représente à la fois une bonne pratique en matière de compatibilité des licences et une certification intéressante pour les services adjudicateurs. + +La norme ISO/IEC 5230 « OpenChain » se concentre sur les chaînes d'approvisionnement logicielles, la simplification des acquisitions et la conformité des licences. Le standard OpenChain peut être attribué par un organisme de certification accrédité ou obtenu par autocertification. Cette certification convient pour démontrer de manière générale qu'un fournisseur s'est déjà penché en profondeur sur les exigences des licences open source et sur les spécificités de l'écosystème open source. +L'établissement d'une Software Bill of Materials (SBOM) faisant partie du standard, cette certification atteste également de l'engagement d'un fournisseur en faveur de la sécurité de la chaîne d'approvisionnement par le soutien de composants fondamentaux. + +=== Autres possibilités d'acquérir des prestations de maintenance, de support ou de développement + +Il est judicieux de traiter les prestations de développement ultérieur dans le même contrat que le support et la maintenance, la distinction n'étant pas toujours évidente et souvent peu praticable dans le contexte des logiciels open source. Les développements ultérieurs financés par une autorité fédérale relèvent du champ d'application de l'art. 9 LMETA. + +Les possibilités suivantes sont actuellement disponiblesfootnote:[D'autres possibilités, plus marginales, peuvent également exister.] pour acquérir des prestations de support, de maintenance et/ou de développement ultérieur pour les OSS : + +* En interne, avec renforcement des compétences : recourir à ses propres ressources de développement +* Acquisition : selon le volume et dans le respect de la LMP. Cela peut aussi se faire via des contrats de prestations déjà mis au concours. Afin que des partenaires stratégiques puissent fournir des développeurs principaux expérimentés pour des projets OSS centraux pour l'administration fédérale, il peut être utile d'autoriser la sous-traitance ou d'exiger l'expertise correspondante dans certains appels d'offres. +* Accords de coopération avec des tiers pour la maintenance, le support ou le développement ultérieur : sans problème tant que chaque partie supporte ses propres coûts. +* Participation de la Confédération à des organisations : sans problème tant que chaque partie supporte ses propres coûts. + +== Collaboration : aspects de droit des marchés publics de la création, de la maintenance et du support conjoints d'OSS + +Les coûts des logiciels open source diminuent lorsqu'ils sont développés en commun, que ce soit de manière informelle ou dans un cadre structuré. Le link:em002-4.pdf[Em002-4 Guide des communautés OSS] expose les approches pertinentes. + +La collaboration avec d'autres adjudicateurs publics ou avec des tiers ne pose pas de problème au regard du droit des marchés publics tant que chaque partie supporte ses propres coûts. Des difficultés apparaissent lorsque la collaboration n'aboutit pas à un OSS, l'administration fédérale étant liée par l'art. 9 LMETA. + +Une telle coopération est admise par l'art. 4 LMETA. + +La question du traitement des frais généraux ou d'une structure centralisée doit être réglée : la structure a besoin d'un financement suffisant pour porter le projet à travers les périodes difficiles. Une alternative consiste en un partenaire gestionnaire unique (p. ex. si un participant est suffisamment grand pour assumer le rôle de coordination). Lorsque l'autorité fédérale assume ce rôle, les prestations correspondantes doivent être fournies en interne ou mises au concours de la manière habituelle si des tiers doivent être mandatés. + +Au niveau contractuel, ce qui suit s'applique aux collaborations : + +* Lorsqu'aucun argent ne circule et qu'aucune obligation formelle n'est requise, un Memorandum of Understanding au niveau de l'office fédéral ou de la Chancellerie fédérale est possible. +* La création d'une structure commune — telle qu'une association ou une corporation de droit public — est possible en principe mais doit être évaluée au cas par cas. Lorsque la structure commune doit elle-même acquérir des prestations auprès de tiers, l'application du droit des marchés publics doit être réglée. + +L'adhésion peut dans certains cas être exercée par l'intermédiaire d'autres organisations telles qu'eOperations ou eCH. + +*Coopération avec l'étranger* + +La coopération avec des autorités étrangères ne pose pas de problème tant qu'aucun argent ne circule et qu'aucune obligation d'aucune sorte n'est contractée. + +Des accords de coopération au niveau approprié sont possibles en principe mais doivent être évalués au cas par cas. +Les traités internationaux devraient être évités compte tenu des obstacles élevés qu'ils impliquent, bien qu'ils soient en principe également possibles. + +Il existe deux cas particuliersfootnote:[https://www.eda.admin.ch/deza/fr/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] dans lesquels la collaboration serait déjà couverte : + +* Les marchés adjugés en vertu d'un accord international en vue de la réalisation conjointe d'un projet par des États signataires. +* Les marchés adjugés conformément aux procédures ou conditions particulières d'une organisation internationale. + +== Contribution : contributions à des projets OSS + +La plupart des caractéristiques et considérations juridiques relatives aux contributions sont traitées dans le link:em002-4.pdf[Em002-4 Guide des communautés OSS]. + +Du point de vue du droit des marchés publics, les contributions ne posent généralement pas de problème, les prestations étant fournies pour développer du code destiné à un projet qui est soit directement pertinent pour l'autorité, soit déjà traité sous l'angle du droit des marchés publics. + +*Les contributions de tiers à des projets OSS menés par des autorités fédérales ne posent pas non plus de problème au regard du droit des marchés publics, tant qu'aucun argent ne circule.* + +Remarque : l'autorité fédérale étant tenue de publier les logiciels qu'elle développe, elle doit aussi veiller à ce qu'ils restent publiés. Si un projet OSS est retiré par ses exploitants, l'autorité fédérale devra dans le pire des cas le republier de manière autonome. Dans la pratique, le code source reste typiquement disponible (p. ex. sous forme d'archive), le projet se poursuit sous forme de fork, ou le projet — et avec lui le code source — est simplement devenu sans objet. + +== Annexe A : Références : + +Une part importante des références est _déjà mentionnée dans les Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale_. + +include::partials/references.fr.adoc[tags=ref-em002-7] + +== Annexe B : Glossaire + +Ce glossaire couvre les termes spécifiques liés aux thèmes des acquisitions. + +Le glossaire général du jeu de documents Em002 figure dans Em002-6 FAQ-OSS. + +D'autres termes figurent dans la https://www.bk.admin.ch/bk/fr/home/dokumentation/sprachen/termdat.html[banque de données terminologiques TERMDAT de l'administration fédérale]. + +include::partials/glossary.fr.adoc[tags=gloss-em002-7] +endif::[] + +ifeval::["{lang}" == "it"] +*Avvertenza:* Il presente documento è una bozza in continua evoluzione e fa parte degli strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Per maggiori informazioni si veda il {url-repo}/tree/main[README] principale. + +''' + +== L'essenziale in breve + +Il presente documento completa la serie di strumenti OSS Em002 con aspetti relativi agli acquisti. Si fonda sul _promemoria sull'acquisto di software e l'art. 9 LMeCA_ pubblicato dal Centro di competenza per gli acquisti pubblici della Confederazione (CCAP)footnote:[Il Centro di competenza per gli acquisti pubblici della Confederazione (CCAP) consiglia i servizi d'acquisto e i servizi richiedenti sulle questioni di diritto degli acquisti pubblici conformemente all'art. 37 OAPub. Indirizzo e-mail centrale per le richieste: rechtsdienst.kbb@bbl.admin.ch] _[KBB-MB]_ e riassume il contenuto di documenti dell'UFCLfootnote:[L'Ufficio federale delle costruzioni e della logistica (UFCL) è il servizio centrale d'acquisto della Confederazione Svizzera (art. 5–7 OAPub). Effettua acquisti nel proprio ambito di competenza, li aggrega ove opportuno e può concludere contratti quadro.] quali le _direttive Open Source negli acquisti_ [BBL-WL], disponibili soltanto sull'intranet.footnote:[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] Il documento tratta inoltre la sovranità digitale quale criterio d'acquisto. + +L'impiego di software open source può essere suddiviso in quattro aspetti: + +* Consumption: l'utilizzo di OSS preesistenti +* Creation: lo sviluppo di nuovi OSS +* Contribution: l'apporto di adattamenti propri a un progetto OSS esistente +* Collaboration: l'ulteriore sviluppo congiunto di OSS con terzi. + +In tutte queste situazioni un committente pubblico deve rispettare la legislazione applicabile in materia di acquisti pubblici. + +*Consumption:* + +* Il diritto degli acquisti pubblici si applica quando prestazioni sono acquistate sul mercato dietro rimunerazione (art. 8 LAPub). + +In altre parole: + +* L'utilizzo di OSS disponibili gratuitamente (senza tasse di licenza, contratti di supporto o manutenzione ecc.) non costituisce di regola un acquisto. +* Le prestazioni a valore aggiunto acquistate per l'utilizzo di OSS (supporto, garanzia, manutenzione e sviluppo ulteriore) devono essere acquistate conformemente al diritto degli acquisti pubblici. +* Nell'acquisto di software è in linea di principio ammissibile richiedere OSS, p. es. quando l'unità amministrativa (UA) se ne attende vantaggi concreti, come una maggiore sovranità dei dati o un rispetto semplificato dell'art. 9 LMeCA in presenza di adattamenti su misura prevedibili. Il mercato non deve però essere indebitamente ristretto. + +*Creation e contribution:* + +* Nello sviluppo di software o componenti software, anche in vista di un successivo contributo a un progetto OSS, l'art. 9 LMeCA va sempre considerato. Se a tal fine sono acquistate prestazioni di terzi, si applica il diritto degli acquisti pubblici. +* Nei contributi a progetti OSS l'UA trasmette il proprio lavoro a terzi; tale processo non sottostà quindi al diritto degli acquisti pubblici. +* L'accettazione di contributi di terzi a un progetto OSS della Confederazione è parimenti priva di problemi sotto il profilo del diritto degli acquisti pubblici, purché non venga effettuato alcun pagamento. + +*Collaboration:* + +* La collaborazione tra diversi committenti pubblici a un progetto OSS solleva un'ampia gamma di requisiti giuridici. Sotto il profilo del diritto degli acquisti pubblici, le configurazioni che comportano la fornitura di prestazioni dietro rimunerazione richiedono un esame accurato. +* In una collaborazione informale ciascuna parte partecipante può acquistare o fornire autonomamente prestazioni di sviluppo e metterle poi a disposizione gratuitamente. Possono parimenti essere fornite o acquistate prestazioni di coordinamento. +* In una collaborazione formalizzata, p. es. mediante un'associazione di attori pubblici, anche l'organo centrale può fornire o acquistare prestazioni di sviluppo, purché sia esso stesso soggetto al diritto degli acquisti pubblici. +* Un acquisto congiunto da parte di committenti di Paesi diversi non è invece ammissibile senza altro. + +Per un impiego sostenibile del software open source è importante che gli OSS non siano soltanto consumati, ma che il maggior numero possibile di parti interessate contribuisca anche all'ecosistema. Vi sono molti modi per farlo: dai contributi regolari di codice alla creazione di documentazione, fino al finanziamento di sviluppatori e molto altro. + +== Scopo e obiettivo + +La legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA)footnote:[https://www.fedlex.admin.ch/eli/cc/2023/682/it] esige che nell'acquisto di software di nuovo sviluppo e di prestazioni di sviluppo software siano considerati aspetti supplementari. + +Per sostenere il rispetto dell'art. 9 LMeCA, il settore TDT ha elaborato strumenti e risorse nell'ambito delle link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale] e della link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale] + +include::partials/document-map.it.adoc[] + +Figura 1: Panoramica degli strumenti OSS + +Gli strumenti e le risorse sono disponibili sul sito della Cancelleria federale alla pagina https://www.bk.admin.ch/bk/it/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[strumenti OSS]. + +Il presente documento va oltre il nucleo dell'articolo 9 LMeCA ed espone inoltre come trattare in generale l'open source nel contesto degli acquisti. + +Capitolo 3:: L'importanza della sovranità digitale nel contesto dell'open source e degli acquisti +Capitolo 4:: Casi d'applicazione rilevanti in materia di acquisti in relazione al software e al software open source +Capitolo 5:: Creation: bandi per software e prestazioni in relazione all'art. 9 LMeCA +Capitolo 6:: Consumption: acquisto di software: parità di trattamento del software open source +Capitolo 7:: Consumption: acquisto di prestazioni supplementari (supporto/manutenzione/sviluppo) per l'OSS +Capitolo 8:: Collaboration: aspetti di diritto degli acquisti pubblici delle collaborazioni per la creazione, la manutenzione e il supporto di OSS +Capitolo 9:: Contribution: contributi a progetti OSS + +== Sovranità digitale e acquisti + +=== Introduzione alla sovranità digitale e all'OSS + +Con l'art. 9 LMeCA l'Amministrazione federale fornisce, pubblicando il proprio software come OSS, un contributo importante alla sostenibilità e alla sovranità digitali. + +La sovranità digitale non è fine a sé stessa, bensì un presupposto per un'amministrazione efficace, democratica e orientata al futuro. È un concetto sfaccettato con dimensioni tecnologiche, organizzative e politiche. + +**** +*Sovranità digitale significa che lo Stato dispone del controllo e della capacità d'azione necessari nello spazio digitale per garantire l'adempimento dei compiti pubblici.* +**** + +In particolare nell'acquisto di software occorre considerare le ripercussioni sulla sovranità digitale dell'Amministrazione federale. + +Nei suoi *ruoli di utente, gestore e committente* nel settore delle TIC e del software, l'Amministrazione federale può assumere consapevolmente le proprie responsabilità in materia. + +Nel settore del software vi sono tre obiettivi strategici: + +*Intercambiabilità*: [.underline]#in quanto utente#, l'amministrazione pubblica mira a poter scegliere liberamente e con flessibilità tra fornitori, soluzioni informatiche e tecnologie. Ciò presuppone la disponibilità di alternative valide e collaudate nonché architetture informatiche, canali d'acquisto e dotazioni di personale concepiti per agevolare il cambiamento. + +*Capacità di configurazione*: [.underline]#in quanto gestore informatico#, l'amministrazione pubblica ha la capacità di configurare e co-configurare i propri sistemi informatici. A tal fine dispone delle competenze necessarie e di strutture cooperative adeguate per comprendere e valutare le soluzioni informatiche e, se necessario, assicurarne lo sviluppo, l'ulteriore sviluppo e l'esercizio. + +*Influenza*: [.underline]#in quanto committente#, l'amministrazione pubblica può formulare e far valere le proprie esigenze e i propri bisogni nei confronti dei fornitori di tecnologia. Ciò vale per le caratteristiche dei prodotti (funzioni, opzioni d'esercizio, disponibilità, sicurezza delle informazioni e protezione dei dati ecc.) così come per la redazione dei contratti e i modelli di licenza. + +Gli *standard aperti* e il *software open source* sostengono al meglio questi obiettivi grazie ai *principi dell'open source*. + +L'OSS sostiene la sovranità digitale nei modi seguenti: + +* La sicurezza informatica per l'amministrazione pubblica, le infrastrutture critiche e le applicazioni sensibili può essere garantita [.underline]#in ogni momento# grazie all'[.underline]#accesso completo# al codice sorgente. +* L'OSS consente agli enti pubblici di costruire, esercire, controllare e adattare la propria infrastruttura informatica senza condizioni di licenza restrittive. +* L'OSS offre il controllo completo su aggiornamenti, funzionalità e patch di sicurezza, sia nei contenuti sia nei tempi. +* L'OSS può impedire la dipendenza da singoli fornitori o modelli di licenza e sostiene l'intercambiabilità. +* L'OSS consente di rappresentare e ricostruire in modo trasparente l'intera catena di fornitura del software. +* L'OSS può essere adattato ed esteso — ben adatto alle esigenze specifiche delle autorità pubbliche e degli istituti di formazione, il che presuppone tuttavia conoscenze approfondite dei propri collaboratori. +* Gli investimenti nell'OSS vanno anche a beneficio delle imprese e delle community locali (creazione di valore locale) e accrescono la resilienza dell'economia svizzera. +* L'OSS si basa sulla collaborazione e su interfacce aperte, agevola l'interoperabilità tra sistemi e promuove gli standard aperti — anche oltre i confini nazionali. +* L'OSS migliora la sicurezza informatica e la sicurezza dei dati grazie alla trasparenza e all'adattabilità. +* Il software OSS licenziato sotto licenze OSI garantisce condizioni giuridiche chiare e continuità, oltre alle libertà fondamentali dell'OSS, proteggendo in egual misura sviluppatori e utenti. + +*Standard aperti:* per sostenere l'intercambiabilità del software, i bandi pubblici dovrebbero esigere il rispetto di standard aperti,footnote:[Per esempio standard aperti quali eCH, ODF; cfr. anche https://it.wikipedia.org/wiki/Standard_aperto[Standard aperto — Wikipedia]] riducendo così al minimo il lock-in. +*Interfacce aperte:* anche le interfacce dovrebbero essere divulgate per consentire l'interoperabilità. + +Le autorità federali sono in linea di principio tenute a rispettare gli standard eCH.footnote:[https://www.ech.ch/[www.ech.ch]] + +La Scuola universitaria professionale di Berna ha esposto le considerazioni determinanti nello studio _Prospettive tecnologiche della sovranità digitale_ [Stü2024], realizzato su mandato del DFAE, mediante il modello della «casa della sovranità», in cui il software è presentato quale pilastro portante. In questo modello, gli strati sottostanti al tetto — collaborazione, competenze tecnologiche, i quattro pilastri e regolamentazione — sono gli ambiti in cui le misure raccomandate promuovono la sovranità digitale. + +[mermaid,align="center",alt="Rappresentazione schematica degli aspetti della sovranità digitale che consentono la fornitura di prodotti e servizi innovativi"] +.... +block-beta + columns 4 + Roof["Prodotti e servizi digitali innovativi
di imprese e autorità"]:4 + space:4 + Collab["Collaborazione con la ricerca e la società civile"]:4 + Skills["Competenze tecnologiche (programmazione, data science ecc.)"]:4 + SW["Software"] Data["Dati e
contenuti digitali"] AI["Intelligenza
artificiale"] Infra["Infrastruttura TIC
(hardware)"] + Reg["Regolamentazione (leggi, standard)"]:4 + Collab-- "consentono" -->Roof +.... + +_Figura 2: Rappresentazione schematica degli aspetti della sovranità digitale che consentono la fornitura di prodotti e servizi innovativi [Stü2024]_ + +=== Misurare la sovranità digitale + +Aspetti della sovranità digitale possono essere richiesti in un bando pubblico, ma tali requisiti devono essere oggettivamente motivati. Non sussiste una preferenza generale per l'OSS. + +*Come si può dunque misurare il grado di sovranità digitale per una determinata tecnologia, un prodotto o un servizio?* + +Questa operazionalizzazione va effettuata nel modo più oggettivo e trasparente possibile. + +Diverse iniziative tentano di farlo. L'OSBA ha per esempio sviluppato un **indice di sovranità**footnote:[https://osb-alliance.de/featured/ein-index-fuer-digitale-souveraenitaet[Un indice per la sovranità digitale | OSBA — Open Source Business Alliance]] _[OSBA-VK]_. _Nextcloud_ ha pubblicato un Digital Sovereignty Index (DSI),footnote:[https://dsi.nextcloud.com/[dsi.nextcloud.com]] che confronta interi Paesi ma può fornire anche criteri utili. +L'Unione europea ha pubblicato per il cloud un Cloud Sovereignty Framework.footnote:[https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf[commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf]] +Il _Centro per la sovranità digitale ZenDiS_ sta lavorando a un controllo della sovranità volto a valutare soluzioni informatiche e organizzazioni sulla base di criteri di sovranità trasparenti. + +Anche l'Amministrazione federale partecipa allo sviluppo di un *quadro di riferimento per la sovranità digitale* che consentirà tra l'altro di determinare il grado di adempimento secondo diverse prospettive. + +Le prospettive possibili sono: + +A -- Controllo tecnologico:: +In che misura l'Amministrazione federale controlla le tecnologie impiegate e il loro ulteriore sviluppo? + +B -- Sovranità dei dati:: +Chi ha accesso ai dati, il controllo su di essi e il potere decisionale — in particolare per i dati amministrativi sensibili? + +C -- Capacità giuridica d'azione:: +In che misura la Svizzera e l'Amministrazione federale possono influenzare il quadro giuridico e politico della digitalizzazione? + +D -- Resilienza:: +Quanto sono robusti e resistenti alle crisi i sistemi e i processi digitali dell'Amministrazione federale di fronte a perturbazioni, crisi e dipendenze? + +E -- Controllo economico:: +Come può l'Amministrazione federale esercitare un controllo economico e un sourcing strategico per assicurare la propria sovranità digitale in modo efficiente sotto il profilo dei costi, riducendo al minimo dipendenze e rischi negli acquisti informatici? + +Per ciascuna di queste prospettive il grado di sovranità digitale può essere determinato mediante una scala ancora da definire: + +0 -- Eterodiretto / non sovrano:: +Nessun controllo su sistemi, dati o infrastrutture; nessuna trasparenza, forti dipendenze; nessuna opzione di uscita o alternativa + +1 -- Controllo minimo:: +Prime conoscenze sull'utilizzo e sulle dipendenze; meccanismi di controllo puntuali; permangono lacune operative, giuridiche o tecnologiche + +2 -- Utilizzabile in modo regolamentato:: +Sistemi affidabili e parzialmente governabili; quadro giuridico e tecnico consolidato; permangono dipendenze strategiche + +3 -- Autonomo e resiliente:: +La posizione di mercato viene sfruttata; strategie di uscita e concetti multifornitore attuati; know-how sviluppato; resilienza e scenari di crisi preparati + +4 -- Sistemicamente sovrano:: +Sovranità in tutte le dimensioni rilevanti (giuridica, tecnologica, culturale, strategica); definizione attiva del mercato e degli standard; effetto geopolitico possibile + +_Figura 3: Grado di sovranità digitale._ + +Queste due dimensioni producono la matrice seguente: + +[.landscape] +[cols="2,^1,^1,^1,^1,^1",options="header"] +|=== +|Prospettiva +|0 + +Eterodiretto +|1 + +Controllo minimo +|2 + +Utilizzabile in modo regolamentato +|3 + +Autonomo e resiliente +|4 + +Sistemicamente sovrano + +|A -- Controllo tecnologico +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|B -- Sovranità dei dati +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|C -- Capacità giuridica d'azione +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|D -- Resilienza +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|E -- Controllo economico +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +|=== + +_Figura 4: Matrice Sovranità digitale: prospettive e grado di sovranità._ + +Per le singole intersezioni della griglia possono essere descritti criteri concreti per rendere la classificazione il più oggettiva possibile. + +Un simile quadro di riferimento è attualmente in fase di elaborazione nell'ambito della priorità 4 «Rafforzare la sovranità digitale» della «Strategia Amministrazione federale digitale».footnote:[https://www.bk.admin.ch/bk/it/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html[www.bk.admin.ch — Amministrazione federale digitale]] + +Il Consiglio federale ha posto in vigore il 1° gennaio 2026 la direttiva quadro Sovranità digitale nell'Amministrazione federale.footnote:[W012 - Direttive per la sovranità digitale nell'Amministrazione federale] I progetti devono integrare i diversi aspetti nella definizione dell'oggetto dell'acquisto e, se necessario, in un bando, sulla base del concreto fabbisogno di sovranità — per esempio sotto il profilo dei rischi nell'ambito della gestione della continuità operativa. + +== Casi d'applicazione per l'acquisto di software + +Le tecnologie dell'informazione e della comunicazione (TIC) e il software non sono fine a sé stessi nell'Amministrazione federale, bensì servono sempre ad adempiere un mandato legale. Data la digitalizzazione crescente e il ruolo centrale dell'Amministrazione federale in Svizzera, l'informatica deve essere una competenza chiave dell'amministrazione. + +I seguenti *fattori* incidono pertanto direttamente sugli acquisti: + +* *Digitalizzazione*: la strategia digitalefootnote:[https://digital.swiss/it/] richiede la digitalizzazione dei processi. +* *Ottimizzazione dei processi*: i processi in seno all'Amministrazione federale e nelle sue relazioni esterne possono e devono essere ottimizzati. +* *Sovranità digitale*: l'importanza della sovranità digitale cresce costantemente; cfr. _[Stü2024]_. +* Il principio *public money, public goods* e il rispetto dell'art. 9 LMeCA. +* *Libertà economica*: le misure non devono limitare inutilmente la libertà economica. +* Considerazioni generali di *sicurezza*: la sicurezza dei sistemi di elaborazione delle informazioni assume crescente importanza. +* Gestione delle crisi e delle catastrofi (*resilienza*): vista l'attuale situazione mondiale, l'amministrazione deve esaminare come poter continuare a mettere a disposizione gli strumenti di lavoro necessari anche in circostanze critiche. +* Indipendenza strategica e considerazioni sulla *catena di fornitura*: derivano dalla sovranità digitale e dalla resilienza. +* Evitare o ridurre al minimo il *vendor lock-in*: in informatica le dipendenze sono pressoché inevitabili, ma la dipendenza da un unico fornitore andrebbe ridotta ovunque possibile. +* *Rafforzamento delle competenze* dell'Amministrazione federalefootnote:[Non soltanto tra i quadri, i capiprogetto e gli architetti TIC, ma in tutto il personale.] (compresa la direzione) in materia di TIC: pilotare, sviluppare ed esercire le tecnologie dell'informazione richiede competenze adeguate nell'intero organico. + +Il presente documento distingue i seguenti *tipi di software*: + +* *Commodity — applicazioni specialistiche/settore — applicazioni specialistiche/autorità federale*: +** Applicazione standard (software commodity) senza logica applicativa particolare. +** Applicazione specialistica: esigenza specifica del settore/di tutti i livelli federali oppure esigenza specifica dell'autorità federale +* *Mirato — strategico — essenziale*: +** Applicazione mirata +** Applicazione strategica di notevole importanza per un'autorità federale o per l'insieme dell'Amministrazione federale +** Essenziale e critica per l'attività — deve restare funzionante in ogni circostanza (p. es. controllo del traffico aereo) + +Le applicazioni possono essere impiegate in uno o più *ambiti d'applicazione*. + +Ciò che conta qui è la *standardizzazione* delle applicazioni per prodotto all'interno di ciascun ambito: + +* Nessuna strategia +* Strategia monoprodotto +* Strategia multiprodotto + +Oltre alla standardizzazione dei prodotti, che va esaminata con cura, esiste anche la standardizzazione ai fini dell'interoperabilità (formati di dati, API, elementi applicativi).footnote:[P. es. tramite eCH] +La standardizzazione _è ammissibile_ purché sia proporzionata e non limiti indebitamente la concorrenza (p. es. art. 30 cpv. 3 LAPub). Può ridurre i costi d'esercizio e di manutenzione e generare effetti di sinergia, in particolare quando sono coinvolti tutti i livelli federali. D'altro canto accresce il lock-in, la dipendenza e in alcuni casi i rischi per la sicurezza (rischio di concentrazione). + +Il costo totale di proprietà (TCO) — comprendente esercizio, manutenzione e sviluppo ulteriore — andrebbe sempre considerato negli acquisti. Le conseguenze finanziarie a lungo termine non vanno trascurate. I modelli di business open source differiscono per certi aspetti da quelli dei fornitori proprietari. + +I capitoli seguenti si concentrano in misura crescente sull'open source e trattano il relativo approccio d'acquisto e la sua attuazione. + +La scelta tra consumption, contribution, collaboration e creation è effettuata _caso per caso secondo il progetto_, in funzione dell'efficienza economica e della situazione giuridica, ripartendo i costi il più ampiamente possibile. In quest'ottica le quattro C definite nelle link:em002.pdf[Em002 Linee guida strategiche OSS], capitolo 3, sono ordinate per importanza decrescente: + +image::./assets/four-cs/four-cs.it.svg[Ordine delle quattro C: Consumption, Contribution, Collaboration, Creation] + +. Consumption +. Contribution +. Collaboration +. Creation + +Con la semplice *consumption* i costi si ripartiscono su un gran numero di altri utenti, ma l'autorità federale non ha alcun controllo sullo sviluppo ulteriore. La creation è l'opposto: controllo totale, ma costo totale. + +Con la *contribution* l'impegno finanziario si limita all'elemento sviluppato, che viene poi consegnato a un'altra organizzazione per la manutenzione. + +La *collaboration* è lo scenario più complesso, poiché le configurazioni possono variare notevolmente. Nel migliore dei casi i costi sono condivisi e l'autorità federale dispone di influenza sufficiente per attuare le proprie esigenze senza compromessi (cfr. capitolo 8). + +Idealmente alla *creation* spetta la quota minore. Il software può essere sviluppato internamente, tramite prestazioni di servizi o mediante un contratto d'appalto. + +La pura consumption sarà praticabile soltanto per le applicazioni standard. + +=== Il software richiede prestazioni supplementari quali manutenzione, supporto e sviluppo ulteriore. + +Sebbene le applicazioni open source possano essere utilizzate gratuitamente, il loro impiego strategico su migliaia di istanze richiede manutenzione, supporto e, se necessario, sviluppo ulteriore. + +Le autorità federali hanno interesse a un supporto a lungo termine delle versioni impiegate (cfr. capitolo 3.2.3 in _[BITKOM2024]_). + +L'art. 9 LMeCA stesso riguarda soltanto lo sviluppo o l'ulteriore sviluppo interno di software e non è determinante per altre considerazioni relative all'open source — si applicano invece la sovranità digitale e altri fattori. Restrizioni ai sensi dell'art. 9 LMeCA su singoli componenti di sviluppo possono tuttavia ripercuotersi sull'intero progetto quando sono prevedibili sviluppi proprietari o supplementari. La collaboration può allora essere impiegata per sfruttare effetti di sinergia e, ove possibile, ridurre i costi per l'insieme dell'Amministrazione federale. + +=== Obbligo di pubblicazione nell'acquisto di software + +Quando le esigenze indicano un bisogno di adattamento del software o un possibile bisogno di adattamento successivo, l'art. 9 LMeCA è rilevante e la pubblicazione è obbligatoria per tali parti, salvo che si applichi una delle due eccezioni. Nell'acquisto di una soluzione open source tale pubblicazione sarebbe già coperta da un contributo al progetto open source. Anche quando l'acquisto riguarda soltanto la licenza di software standard o un acquisto TIC coperto da un'eccezione, gli sviluppi supplementari devono in linea di principio essere pubblicati, il che va rispecchiato nella documentazione d'acquisto e nella bozza di contratto. + +*L'obbligo di pubblicazione secondo l'art. 9 LMeCA è pertanto rilevante per ogni acquisto in cui è probabile uno sviluppo proprio o un ulteriore sviluppo* (cfr. anche _[KBB-MB]_). + +== Creation: bandi per software e prestazioni che rientrano nell'articolo 9 LMeCA + +Il presente capitolo tratta le implicazioni dell'art. 9 LMeCA per i bandi relativi a software e prestazioni che possono comportare la creazione o la modifica di software. + +Esso si applica sia all'Amministrazione federale centrale sia a quella decentralizzata. Le eccezioni a tale obbligo sono stabilite nell'ordinanza sulla digitalizzazione _[DigiV]_. + +=== Rilevanza dell'articolo 9 LMeCA per la creazione di software + +Un'operazione rientra nel campo d'applicazione dell'art. 9 LMeCA se ricade nella categoria determinante della tabella 1. La decisione «make or buy» resta centrale per gli acquisti. L'analisi dei diversi casi d'applicazione mostra che in linea di principio l'art. 9 LMeCA è rilevante in tutti i casi, salvo quando viene acquistato software preesistente (p. es. semplici licenze). Il capitolo II.4 delle _direttive Open Source negli acquisti [BBL-WL]_ espone l'approccio strategico e l'allegato VII.A descrive in dettaglio che cosa costituisca software. Una ripartizione dettagliata della decisione strategica figura nella tabella 1. + +[cols="3,2,4",options="header"] +|=== +|Caso d'applicazione |Make or buy |Obbligo di pubblicazione secondo l'art. 9 cpv. 1 LMeCA + +|Sviluppare software in seno all'Amministrazione federale +|Make +|Sì, obbligo di pubblicazione + +|Far sviluppare software da terzi +|Buy, quale contratto di prestazioni informatiche +|Sì, obbligo di pubblicazione + +|Acquistare software esistente +|Buy +a|In linea di principio no, ma verificare se sussistono obblighi di pubblicazione per le parti sviluppate. Particolarmente rilevante è la gestione dei diritti di terzi (cfr. link:em002-3.pdf[Em002-3 Guida alle licenze OSS]). + +|Riprendere software da altri enti pubblici +|Make o buy +a|— In seno all'Amministrazione federale: obbligo di pubblicazione per l'unità amministrativa cedente. + +— Altri: esaminare caso per caso se gli adattamenti effettuati dall'Amministrazione federale generino un obbligo di pubblicazione, almeno per tali parti. + +|Acquistare risorse di sviluppo +|Make +|Sì, obbligo di pubblicazione (i contratti devono consentire la pubblicazione) + +|Collaborare con altri enti pubblici allo sviluppo di software +|Make +|Sì, obbligo di pubblicazione (i contratti devono consentire la pubblicazione), in particolare in presenza di contributi di sviluppo sostanziali da parte o a favore della Confederazione +|=== + +_Tabella 1: Classificazione dell'obbligo di pubblicazione e della decisione «make or buy» (sulla base di una tabella di Rika Koch, BFH)_ + +Nota: l'art. 9 LMeCA va considerato anche per il software esistente e per i SaaS quando il software deve essere ulteriormente sviluppato o adattato per la Confederazione. Anche se la probabilità è ridotta, ciò andrebbe trattato nel processo d'acquisto. + +Ove occorra un chiarimento, il riferimento raccomandato è link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source]. Le liste di controllo andrebbero *compilate provvisoriamente il prima possibile* per i progetti potenzialmente interessati. Anche la _lista di controllo per l'eccezione forfettaria secondo l'art. 9 LMeCA [BBL-CL]_ può essere utilizzata a tal fine. + +=== Preparare un acquisto ai sensi dell'articolo 9 LMeCA + +Oltre alle consuete fasi preparatorie, i due documenti seguenti andrebbero consultati ogniqualvolta un acquisto comprenda componenti software: + +* _promemoria sull'acquisto di software e l'art. 9 LMeCA [KBB-MB] e_ +* _direttive Open Source negli acquisti [BBL-WL]_. + +Quando l'art. 9 LMeCA è chiaramente rilevante, l'unità amministrativa dovrebbe avere: + +* compilato provvisoriamente le liste di controllo link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Valutazione preliminare OSS] fino a link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Rilascio e pubblicazione OSS]; +* preso una decisione di principio sull'utilizzo di una licenza copyleft o permissiva;footnote:[Se necessario, un'analisi più approfondita può essere svolta in seguito mediante la _Em002-3 Guida alle licenze OSS_.] +* cercato eventuali alternative open source (o potenziali progetti di base per contributi o collaborazioni) conformemente a link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source], utilizzando gli strumenti ivi indicati per la ricerca e l'analisi di mercato;footnote:[Cfr. anche link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale], capitolo 7.] +* chiarito la struttura di un'eventuale community (link:em002-4.pdf[Em002-4 Guida alle community OSS] e link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Lista di controllo Community OSS]). + +Se un progetto OSS esistente deve essere utilizzato, sostenuto o posto a base di una collaborazione, vanno letti i capitoli 5, 6, 8 e 9 del presente documento. + +=== Creation mediante contratti di prestazioni esistenti + +Quando la creation avviene mediante contratti di partenariato esistenti, la pubblicazione OSS va assicurata al più tardi in sede di mini-bando, salvo che si applichi una delle due eccezioni. + +I nuovi bandi di prestazioni dovrebbero sempre includere un requisito di pubblicazione conformemente all'art. 9 LMeCA (cfr. _[BBL-WL] e_ _[KBB-MB])_. + +=== Costituire una community + +Costituire e curare una community massimizza i benefici del software open source, ma comporta anche un onere considerevole. + +Quando una community e una collaborazione sono opportune, ciò ha implicazioni per l'acquisto sin dall'inizio. La link:em002-4-1-checklist-oss-community.pdf[lista di controllo Em002-4.1 Community OSS] andrebbe pertanto compilata sulla base della link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +Se l'autorità federale deve assumere un ruolo importante nella community (p. es. un ruolo di governance) o se è prevista una collaborazione (cfr. capitolo 8), può essere necessario acquistare prestazioni supplementari: costituzione della community, consolidamento delle esigenze, gestione dello sviluppo ulteriore. + +=== Criteri tipo ed elementi contrattuali per gli acquisti informatici + +Il CCAP tiene un modello di possibili criteri d'acquisto nonché un modello di capitolo di contratto quadro per i bandi relativi al software _[KBB-KV]_. + +Il CCAP ha pubblicato su Perimap.admin.ch due documenti tipo che mostrano come possano essere soddisfatti i requisiti minimi per un'aggiudicazione conforme al diritto degli acquisti pubblici ai sensi dell'art. 9 LMeCA. [KBB-KV] + +. https://perimap.admin.ch/goto_perimap_file_47064_download.html[Criteri tipo — Acquisto LMeCA e open source] +. https://perimap.admin.ch/goto_perimap_file_47059_download.html[Testi contrattuali tipo — Sviluppo software] + +== Consumption: acquisto di software: parità di trattamento del software open source + +Il presente capitolo tratta l'acquisto e l'utilizzo (consumption) di software open source e mette in evidenza i principali aspetti strategici. +Si rinvia inoltre a _[BBL-WL] e_ _[KBB-MB]_. + +*Attualmente non esiste alcuna preferenza legalmente prescritta per il software open source negli acquisti.* + +Nei bandi relativi ad applicazioni informatiche sono considerati tutti i tipi di licenza e i modelli di business. Per soddisfare le esigenze formulate, i fornitori possono proporre soluzioni software basate su software open source non modificato, closed source o proprietario, oppure su combinazioni di modelli di licenza e prestazioni a valore aggiunto o abbonamenti. + +I punti seguentifootnote:[I documenti di riferimento determinanti per gli acquisti sono quelli pubblicati dall'UFCL e dal CCAP sulle rispettive piattaforme.] andrebbero considerati dalle autorità federali: + +* Indipendentemente dalla soluzione e dal modello di licenza, il fornitore di prestazioni deve indicare nella propria offerta *quali condizioni di licenza il servizio acquirente deve rispettare nell'utilizzo della prestazione*. +* Il fornitore di prestazioni è *libero di scegliere la soluzione* con cui intende soddisfare le esigenze messe a concorso nonché la forma di rimunerazione che desidera ricevere (tasse di licenza, di manutenzione o di abbonamento), purché ciò sia tecnicamente realizzabile ed economicamente ragionevole. +* L'intero *ciclo di vita* andrebbe considerato nelle specifiche e nella determinazione dei prezzi. + +Ciò consente all'Amministrazione federale di far valere i propri interessi in materia di proprietà intellettuale, garanzia e responsabilità — indipendentemente dal software o dal modello di licenza — a livello delle condizioni generali applicabili e di ancorarli nel contratto. + +Quando *adattamenti software* sono effettuati su mandato o in esecuzione di un contratto con l'autorità federale, si applica l'art. 9 LMeCA. +In via precauzionale l'autorizzazione alla pubblicazione andrebbe richiesta già nel bando, poiché l'esperienza mostra che prima o poi si rendono necessari adattamenti, anche se non prevedibili al momento del bando. + +Quando il servizio acquirente acquista da un fornitore *prestazioni a valore aggiunto* in aggiunta al software, i fornitori OSS propongono spesso un modello di abbonamento che offre un interlocutore locale con impegni di garanzia e responsabilità, oltre al rapporto diretto con i titolari dei diritti di proprietà intellettuale sui componenti OSS (spesso con sede all'estero e talvolta ignoti). + +=== L'OSS quale criterio strategico d'acquisto + +Quando un'autorità federale intende acquistare software open source per ragioni strategiche, sono possibili diversi scenari: + +* Bando funzionale senza criteri specifici per l'OSS. +Poiché ciò non comporta restrizioni, non è necessaria alcuna motivazione particolare. +* Bando funzionale con criterio di idoneità, criteri tecnici e criteri di aggiudicazione che esigono open source, accesso completo al codice sorgente o esperienza dimostrabile nella pubblicazione open source. + +*Una preferenza per l'open source è ammissibile sotto il profilo del diritto degli acquisti pubblici quando consente di soddisfare (meglio) le esigenze concrete del servizio aggiudicatore*.footnote:[Cfr. [BBL-WL\], [BBL-CL\], [KBB-MB\], [KBB-KV\]] + +Un'ulteriore ragione per privilegiare l'OSS — oltre alla sovranità digitale — è che, quando l'amministrazione richiede adattamenti software rilevanti, questi devono essere pubblicati ai sensi dell'art. 9 LMeCA. +La pubblicazione è più semplice quando l'intero prodotto è sempre stato open source e gli adattamenti possono in taluni casi essere effettuati direttamente nel prodotto. Altrimenti va definita un'eccezione e, se necessario, parti del codice vanno isolate e comunque pubblicate. + +=== L'utilizzo gratuito di OSS non sottostà al diritto degli acquisti pubblici. + +L'OSS può spesso essere scaricato e utilizzato direttamente. Il diritto degli acquisti pubblici si applica soltanto quando prestazioni sono ottenute da terzi dietro rimunerazione (comprese controprestazioni non pecuniarie). + +Lo scaricamento e l'utilizzo gratuiti di OSS non costituiscono di per sé un acquisto. + +È inoltre possibile acquistare in un secondo tempo le prestazioni necessarie per OSS scaricati, purché ciò non avvenga in modo abusivo.footnote:[Analogia: un Comune può utilizzare il proprio legname e commissionare la costruzione di un deposito di manutenzione con tale legname — non è tenuto ad acquistare esso stesso il legname.] + +Le prestazioni di manutenzione, supporto e sviluppo ulteriore del prodotto sono poi messe a concorso separatamente conformemente al diritto degli acquisti pubblici. + +Esistono già esempi di OSS utilizzati gratuitamente sulle postazioni di lavoro standard dell'Amministrazione federale e quindi non acquistati.footnote:[Esempi di OSS con potenziale di standardizzazione: Gimp, FileZilla, VLC Media Player e 7-zip quali prodotti Shell 2 (secondo [A029\]), utilizzabili perché l'installazione è gratuita. Nel 2024 l'UFIT ha designato Red Hat OpenShift quale prodotto strategico per determinati ambiti d'applicazione in ragione delle sue caratteristiche tecniche uniche. OpenShift è attualmente la piattaforma strategica per container e sistemi operativi.] + +=== Coordinare le esigenze con altre parti interessate + +Un'applicazione specialistica richiede sempre un titolare del fabbisogno (di regola un ufficio federale). Di regola è opportuno che l'ente con il fabbisogno armonizzi le proprie esigenze con quelle di altri servizi pubblici — internamente o nell'ambito di una collaborazione (cfr. capitolo 8) — nella misura in cui un prodotto disponibile sul mercato o uno sviluppo congiunto favorisca lo sviluppo e l'introduzione. + +Quando molte parti interessate hanno esigenze uguali o analoghe, può valere la pena soddisfare tali bisogni su base comune. Ciò vale per tutte le forme di software. + +Vanno rilevati due aspetti: quando in seguito un'autorità federale effettua adattamenti su richiesta di terzi, si applica nuovamente l'art. 9 LMeCA — il che tuttavia non pone problemi se viene impiegato software open source. + +Con l'OSS le esigenze devono talvolta essere armonizzate in modo più attivo dall'autorità federale, poiché può mancare una forza trainante come un fornitore commerciale che intenda pilotare e sviluppare il proprio prodotto. + +=== Considerare altri possibili attori pubblici nell'acquisto + +L'esempio di ZenDiSfootnote:[https://www.zendis.de/en[https://www.zendis.de/] ZenDiS si è posta l'obiettivo di liberare l'amministrazione da dipendenze critiche da singoli fornitori di tecnologia.] mostra che può essere sia praticabile sia conveniente indire un bando che copra simultaneamente tutti i livelli federali. + +*Una concorrenza equa va sempre preservata.* Nell'indire bandi occorre sempre esaminare se la soluzione potrebbe utilmente essere acquistata anche per altri enti. + +In tal caso questi potenziali committenti supplementari andrebbero contattati e le loro esigenze rispecchiate nella documentazione di gara, in particolare nei requisiti. Una certa flessibilità nei requisiti è importante in simili casi. + +Esempio: eOperations Svizzera SA (http://www.eoperations.ch[www.eoperations.ch]) può essere utilizzata per tali collaborazioni. eOperations consolida le esigenze di diversi servizi ed effettua essa stessa l'acquisto, senza necessariamente utilizzare il prodotto. Ciò può costituire un modello utile anche per l'acquisto di OSS. + +== Consumption: acquisto di supporto e manutenzione per l'OSS + +L'amministrazione pubblica può utilizzare il software open source in vari modi, dal semplice scaricamento e installazione fino all'acquisto formale (cfr. capitolo 6.2). + +Quando l'OSS è impiegato in ambiti critici, sono necessari standard costantemente elevati di sicurezza,footnote:[Cfr. anche link:em002-6.pdf[Em002-6 FAQ-OSS], capitolo 5.3] manutenzione e sviluppo ulteriore. Nell'acquisto ordinario di software ciò è di regola coperto dal bando. I requisiti valgono sia per il software stesso sia per le librerie e i framework utilizzati. Supporto e manutenzione meritano particolare attenzione, poiché lo sviluppo ulteriore è spesso coperto dal medesimo contratto e costituisce in ogni caso creation, rientrando così nel campo d'applicazione dell'art. 9 LMeCA. + +Queste prestazioni ad alta intensità di lavoro superano quasi sempre il valore soglia della legge federale sugli appalti pubblici (LAPub) se calcolate sull'intero ciclo di vita dell'applicazione. Se sono acquistate da terzi, va rispettato il diritto degli acquisti pubblici. Possono applicarsi eccezioni, quali l'acquisto intrastatale presso un altro committente pubblico,footnote:[Art. 10 cpv. 3 lett. b LAPub.] oppure, in casi eccezionali, l'acquisto per incarico diretto di prestazioni specialistiche.footnote:[Art. 21 cpv. 2 lett. c LAPub.] + +La tabella seguente presenta le distinzioni di caso per l'acquisto di prestazioni quali il supporto. + +[cols="1,1,1,2"] +|=== +2+h|Situazione iniziale 2+h|Risultati + +h|Costi del ciclo di vita + +→ valore soglia OMC?footnote:[I costi interni possono essere esclusi. Va considerato l'intero ciclo di vita.] +h|Intrastatale?footnote:[L'acquisto intrastatale non è soggetto a bando: è richiesto un ente responsabile statale, senza partecipazione al mercato. Si applica soltanto all'interno del settore pubblico svizzero.] +h|Bando OMC necessario?footnote:[Le direttive federali in materia di acquisti si applicano sempre non appena viene effettuato un pagamento.] +h|Osservazioni + +|No +|No +|No footnote:[Il software con supporto supera di regola il valore soglia LAPub; «no» si applicherà soltanto in rari casi (p. es. finanziamento di una singola funzionalità per un progetto OSS esistente).] +.2+|Raramente un pacchetto software completo con supporto — per lo più supporto ridotto e singole funzionalità. + +|No +|Sì +|No + +|Sì +|No +|Sì +|È determinante soltanto il volume destinato a terzi. + +|Sì +|Sì +|No +|Il bando è stato indetto dall'altro ente pubblico. +|=== + +_Tabella 2: Distinzione di caso — acquisto di supporto_ + +=== Supporto e manutenzione fanno sempre parte del software + +Supporto e manutenzione sono essenziali per l'esercizio sostenibile del software in un contesto amministrativo. In un mondo di exploit zero-day,footnote:[Un exploit zero-day designa lo sfruttamento di una falla di sicurezza per la quale non è ancora disponibile alcuna patch dello sviluppatore del componente.] l'applicazione rapida e professionale delle patch è determinante. Questa «infrastruttura» va finanziata — tanto più che l'amministrazione ha esigenze superiori a quelle di un consumatore privato. + +*La domanda non è dunque SE supporto e manutenzione saranno necessari, bensì COME saranno assicurati.* + +L'autorità federale deve stabilire quale livello di supporto, manutenzione, garanzia e responsabilità le occorre in base alle proprie esigenze di qualità del servizio. + +È importante che ogni fornitore di prestazioni incaricato della manutenzione e del supporto possa dimostrare un'esperienza sufficiente con il prodotto o con la relativa community open source — soltanto allora sarà in grado di adempiere efficacemente tali compiti (cfr. anche _[KBB-MB]_, II.5).footnote:[Il contratto di prestazioni dovrà eventualmente coprire anche il possibile trasferimento di conoscenze a un'organizzazione successiva.] + +Supporto e manutenzione vanno finanziati anche a livello di prodotto. Se nessuno contribuisce (il problema del free ridingfootnote:[https://it.wikipedia.org/wiki/Free_riding]), il futuro del progetto è compromesso e con esso il suo impiego in seno all'Amministrazione federale. Date le sue dimensioni, ci si può ragionevolmente attendere che l'Amministrazione federale contribuisca ai costi del software che impiega strategicamente. + +=== Organizzazioni che possono fornire supporto + +La qualità del supporto incide direttamente sulla soddisfazione e sulla produttività degli utenti finali. Un sistema di supporto strutturato, con tempi di risposta rapidi e reale competenza tecnica, garantisce che utenti e amministratori ottengano soluzioni efficaci ai loro problemi, risparmiando tempo di lavoro al committente e favorendo l'accettazione della soluzione software. + +Per rispettare i tempi di risposta convenuti contrattualmente nei service level agreement (SLA), il fornitore deve disporre di personale qualificato con le competenze necessarie. + +Le possibili fonti di supporto sono: + +*Interne*: + +* Uffici federali +* Fornitori di prestazioni + +*Intrastatali*: + +* Altri committenti pubblici in Svizzera +* Prestazioni acquistate da altri committenti pubblici in Svizzera + +*Terzi*: + +* Prestazione acquistata + +=== Sviluppo ulteriore per funzionalità specifiche + +Quando un'autorità federale necessita soltanto di un numero limitato di miglioramenti specifici di un software open source, ciò può avvenire con risorse interne o prestazioni acquistate. + +Tali sviluppi ulteriori dovrebbero mirare a essere proposti al progetto originario e a esservi integrati. Ciò non soltanto giova all'ecosistema del progetto, ma assicura che i miglioramenti continuino a essere mantenuti all'interno del progetto. In caso contrario ogni nuova versione del progetto originario può richiedere un aggiornamento manuale dello sviluppo su misura (cfr. anche capitolo 8). + +=== Abbonamento + +Molte imprese e progetti dell'ambiente open source offrono supporto gratuito entro certi limiti, fornito volontariamente da qualsiasi utente, principalmente attraverso canali aperti quali forum e sistemi di ticket pubblici. Questa offerta gratuita non è concepita per utenti professionali con esigenze SLA specifiche. + +Per utenti professionali quali le autorità federali sono spesso disponibili abbonamenti OSS che comprendono garanzia, manutenzione e supporto. + +Alcuni fornitori propongono anche speciali «versioni enterprise» che non soddisfano più i criteri open source dell'OSI. + +Esempi di abbonamenti: OpenShift di Red Hat, openDesk di ZenDiS + +=== Certificazioni nel settore open source e OpenChain + +Come per il software proprietario, anche nel settore open source esistono diverse certificazioni. Per l'amministrazione può valere la pena verificare, prima di indire un bando, l'esistenza di certificazioni potenzialmente rilevanti nell'ambito interessato. + +*OpenChain* è una norma ISO relativa allo sviluppo open source e alla compatibilità delle licenze (cfr. sotto). + +Se esistono certificazioni pertinenti e determinanti per la prestazione, esse andrebbero considerate nella valutazione dei fornitori. È importante che la certificazione stessa sia ritenuta significativa e che i fornitori possano dimostrare di essere in grado di fornire la prestazione anche senza certificazione. + +Data la complessità in gioco, non è consigliabile esigere certificazioni quale criterio di idoneità. Quale criterio di aggiudicazione — con la possibilità di dimostrare mediante referenze il rispetto dei contenuti della certificazione — esse possono essere adeguate a seconda del prodotto OSS, purché sia ammissibile utilizzare referenze per provare il soddisfacimento dei criteri di certificazione.footnote:[Nota: esigere una certificazione eccessiva o poco adatta all'oggetto del bando produrrà inevitabilmente offerte meno competitive.] + +Un'autocertificazione OpenChain può tutt'al più fungere da sostituto quando non esiste alcun'altra certificazione. Anche referenze che coprono i criteri determinanti possono sostituire certificazioni mancanti. + +*Certificazione delle imprese partner* + +Alcuni sviluppatori e progetti open sourcefootnote:[quali Nextcloud o Univention] certificano le imprese partner con cui collaborano. Tali certificazioni possono attestare una relazione esistente tra il fornitore e lo sviluppatore del software. Va notato che molti progetti OSS non offrono simili certificazioni. Una collaborazione comprovata in progetti di riferimento è un indicatore altrettanto valido — e meno restrittivo — della qualità ricercata. + +*Certificazione dei collaboratori* + +Alcuni fabbricanti o community open sourcefootnote:[quali LibreOffice o RedHat] certificano singole persone con competenze specialistiche nel software in questione. Se un fornitore di prestazioni impiega personale certificato, ciò può attestare competenze nella pubblicazione upstream di adattamenti e patch nonché nella fornitura di un supporto di terzo livello di qualità — in particolare quando più collaboratori lavorano con il prodotto. Ciò dipende anche dalla struttura dell'ecosistema del progetto OSS. + +In alternativa alle certificazioni, anche un'esperienza progettuale dimostrabile in referenze relative all'oggetto dell'acquisto può fungere da criterio distintivo. + +*Standard OpenChain* + +Lo standard OpenChain rappresenta sia una best practice in materia di compatibilità delle licenze sia una certificazione interessante per i servizi aggiudicatori. + +La norma ISO/IEC 5230 «OpenChain» si concentra sulle catene di fornitura del software, sulla semplificazione degli acquisti e sulla conformità delle licenze. Lo standard OpenChain può essere attribuito da un organismo di certificazione accreditato oppure ottenuto mediante autocertificazione. Questa certificazione è idonea a dimostrare in termini generali che un fornitore si è già occupato approfonditamente dei requisiti delle licenze open source e delle specificità dell'ecosistema open source. +Poiché l'allestimento di una Software Bill of Materials (SBOM) fa parte dello standard, questa certificazione attesta anche l'impegno di un fornitore a favore della sicurezza della catena di fornitura mediante il sostegno di componenti fondamentali. + +=== Ulteriori possibilità di acquistare prestazioni di manutenzione, supporto o sviluppo + +È opportuno trattare le prestazioni di sviluppo ulteriore nel medesimo contratto del supporto e della manutenzione, poiché la distinzione non è sempre netta e spesso non è praticabile nel contesto del software open source. Gli sviluppi ulteriori finanziati da un'autorità federale rientrano nel campo d'applicazione dell'art. 9 LMeCA. + +Attualmente sono disponibili le seguenti possibilitàfootnote:[Possono esistere anche altre possibilità, più di nicchia.] per acquistare prestazioni di supporto, manutenzione e/o sviluppo ulteriore per l'OSS: + +* Internamente, con sviluppo delle competenze: impiegare risorse di sviluppo proprie +* Acquisto: secondo il volume e nel rispetto della LAPub. Ciò può avvenire anche mediante contratti di prestazioni già messi a concorso. Affinché partner strategici possano mettere a disposizione sviluppatori principali esperti per progetti OSS centrali per l'Amministrazione federale, può essere opportuno ammettere il subappalto o esigere le relative competenze in determinati bandi. +* Accordi di cooperazione con terzi per manutenzione, supporto o sviluppo ulteriore: privi di problemi purché ciascuna parte sostenga i propri costi. +* Partecipazione della Confederazione a organizzazioni: priva di problemi purché ciascuna parte sostenga i propri costi. + +== Collaboration: aspetti di diritto degli acquisti pubblici della creazione, manutenzione e supporto congiunti di OSS + +I costi del software open source diminuiscono quando esso è sviluppato congiuntamente, sia in modo informale sia in una forma strutturata. La link:em002-4.pdf[Em002-4 Guida alle community OSS] espone i relativi approcci. + +La collaborazione con altri committenti pubblici o con terzi non pone problemi sotto il profilo del diritto degli acquisti pubblici purché ciascuna parte sostenga i propri costi. Sorgono difficoltà quando dalla collaborazione non risulta un OSS, poiché l'Amministrazione federale è vincolata all'art. 9 LMeCA. + +Tale cooperazione è ammessa dall'art. 4 LMeCA. + +Va chiarita la questione del trattamento delle spese generali o di una struttura centralizzata: la struttura necessita di un finanziamento sufficiente per sostenere il progetto anche nei periodi difficili. Un'alternativa è un unico partner gestore (p. es. se un partecipante è sufficientemente grande da assumere il ruolo di coordinamento). Se l'autorità federale assume tale ruolo, le relative prestazioni devono essere fornite internamente o messe a concorso nel modo consueto qualora debbano essere coinvolti terzi. + +A livello contrattuale, alle collaborazioni si applica quanto segue: + +* Quando non circola denaro e non sono richiesti obblighi formali, è possibile un Memorandum of Understanding a livello di ufficio federale o di Cancelleria federale. +* La creazione di una struttura comune — quale un'associazione o una corporazione di diritto pubblico — è in linea di principio possibile ma va valutata caso per caso. Se la struttura comune deve a sua volta acquistare prestazioni da terzi, occorre disciplinare l'applicazione del diritto degli acquisti pubblici. + +L'adesione può in taluni casi essere esercitata mediante altre organizzazioni quali eOperations o eCH. + +*Cooperazione con l'estero* + +La cooperazione con autorità estere non pone problemi purché non circoli denaro e non venga assunto alcun obbligo di sorta. + +Accordi di cooperazione al livello appropriato sono in linea di principio possibili ma vanno valutati caso per caso. +I trattati internazionali andrebbero evitati dati gli elevati ostacoli che comportano, sebbene siano in linea di principio anch'essi possibili. + +Esistono due casi particolarifootnote:[https://www.eda.admin.ch/deza/it/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] in cui la collaborazione sarebbe già coperta: + +* Le commesse aggiudicate in virtù di un accordo internazionale per la realizzazione congiunta di un progetto da parte di Stati firmatari. +* Le commesse aggiudicate conformemente alle procedure o condizioni particolari di un'organizzazione internazionale. + +== Contribution: contributi a progetti OSS + +La maggior parte delle caratteristiche e delle considerazioni giuridiche relative ai contributi è trattata nella link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +Sotto il profilo del diritto degli acquisti pubblici i contributi non pongono di regola problemi, poiché le prestazioni sono fornite per sviluppare codice destinato a un progetto che è o direttamente rilevante per l'autorità o già trattato sotto il profilo del diritto degli acquisti pubblici. + +*Anche i contributi di terzi a progetti OSS gestiti da autorità federali non pongono problemi sotto il profilo del diritto degli acquisti pubblici, purché non circoli denaro.* + +Nota: poiché l'autorità federale è tenuta a pubblicare il software che sviluppa, essa deve anche assicurare che esso resti pubblicato. Se un progetto OSS viene ritirato dai suoi gestori, nel peggiore dei casi l'autorità federale dovrà ripubblicarlo autonomamente. Nella pratica il codice sorgente resta tipicamente disponibile (p. es. come archivio), il progetto prosegue come fork, oppure il progetto — e con esso il codice sorgente — è semplicemente divenuto irrilevante. + +== Allegato A: Riferimenti: + +Una parte considerevole dei riferimenti è _già menzionata nelle Em002 Linee guida strategiche per il software open source nell'Amministrazione federale_. + +include::partials/references.it.adoc[tags=ref-em002-7] + +== Allegato B: Glossario + +Il presente glossario tratta termini specifici relativi ai temi degli acquisti. + +Il glossario generale della serie di documenti Em002 figura in Em002-6 FAQ-OSS. + +Ulteriori termini figurano nella https://www.bk.admin.ch/bk/it/home/dokumentation/sprachen/termdat.html[banca dati terminologica TERMDAT dell'Amministrazione federale]. + +include::partials/glossary.it.adoc[tags=gloss-em002-7] +endif::[] + +ifeval::["{lang}" == "rm"] +*Exclusiun da responsabladad:* Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source. Ulteriuras infurmaziuns chattais Vus en il {url-repo}/tree/main[README]. + +''' + +== L'essenzial en curt + +Quest document cumplettescha la seria da meds OSS Em002 cun aspects da l'acquist. El sa basa sin il _fegl d'infurmaziun davart l'acquist da software e l'art. 9 EMBAG_ publitgà dal Center da cumpetenza per l'acquist public da la Confederaziun (CCA)footnote:[Il Center da cumpetenza per l'acquist public da la Confederaziun (CCA) cusseglia ils posts d'acquist e da basegn en dumondas dal dretg d'acquist tenor l'art. 37 OAPub. Adressa d'e-mail centrala per dumondas: rechtsdienst.kbb@bbl.admin.ch] _[KBB-MB]_ e resumescha ils cuntegns da documents da l'UFCLfootnote:[L'Uffizi federal per edifizis e logistica (UFCL) è il post d'acquist central da la Confederaziun svizra (art. 5–7 OAPub). El acquista en ses sectur da cumpetenza, radunescha nua ch'igl è sensa e po concluder contracts da rom.] sco la _directiva Open Source en l'acquist_ [BBL-WL], che èn disponibels mo en l'intranet.footnote:[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] Il document tracta ultra da quai la suveranitad digitala sco criteri d'acquist. + +L'utilisaziun da software open source sa lascha repartir en quatter aspects: + +* Consumption: l'utilisaziun da OSS gia existent +* Creation: il svilup da nov OSS +* Contribution: l'integraziun d'agens adattaments en in project OSS existent +* Collaboration: il svilup vinavant cuminaivel da OSS cun terzas persunas. + +En tuttas questas situaziuns sto ina incumbensadra publica observar il dretg d'acquist applitgabel. + +*Consumption:* + +* Il dretg d'acquist vala, sche prestaziuns vegnan cumpradas sin il martgà cunter pajament (art. 8 LAPub). + +Cun autras pleds: + +* L'utilisaziun da OSS ch'è disponibel gratuitamain (senza taxas da licenza, contracts da support u da mantenziun etc.) na represchenta per ordinari nagin acquist. +* Prestaziuns cun plivalur che vegnan cumpradas per l'utilisaziun da OSS (support, garanzia, mantenziun e svilup vinavant) ston vegnir acquistadas tenor il dretg d'acquist. +* Tar l'acquist da software è fundamentalmain permess d'exiger OSS, p.ex. sche l'unitad administrativa (UA) spetga da quai avantatgs concrets, sco ina pli gronda suveranitad da las datas u ina observaziun pli simpla da l'art. 9 EMBAG tar adattaments individuals previsibels. Il martgà na dastga dentant betg vegnir restrenschì nunlubidamain. + +*Creation e contribution:* + +* Tar il svilup da software u da cumponentas da software, era en vista ad ina contribuziun posteriura ad in project OSS, sto l'art. 9 EMBAG adina vegnir resguardà. Sche prestaziuns da terzas persunas vegnan cumpradas per quai, vala il dretg d'acquist. +* Tar contribuziuns a projects OSS dat l'UA vinavant agen lavur a terzas persunas; quest process na suttastat perquai betg al dretg d'acquist. +* L'acceptaziun da contribuziuns da terzas persunas ad in project OSS da la Confederaziun è era senza problems dal puntg da vista dal dretg d'acquist, uschenavant che nagin pajament na vegn fatg. + +*Collaboration:* + +* La collavuraziun da differentas incumbensadras publicas ad in project OSS chaschuna ina gronda varietad da pretensiuns giuridicas. Dal puntg da vista dal dretg d'acquist basegnan quellas constellaziuns in'examinaziun accurata, nua che prestaziuns vegnan furnidas cunter pajament. +* Tar ina collavuraziun informala po mintga partida participanta acquistar u furnir prestaziuns da svilup independentamain e las metter suenter a disposiziun gratuitamain. Era prestaziuns da coordinaziun pon vegnir furnidas u acquistadas. +* Tar ina collavuraziun formalisada, p.ex. via in'associaziun d'acturs publics, po era il post central furnir u acquistar prestaziuns da svilup, uschenavant ch'el suttastat sez al dretg d'acquist. +* In acquist cuminaivel tras incumbensadras da differents pajais n'è percunter betg permess senza ulteriur. + +Per l'utilisaziun persistenta da software open source è impurtant che l'OSS na vegnia betg mo consumà, mabain che uschè blers participants sco pussaivel contribueschian era a l'ecosistem. Per quai datti blers vias: da contribuziuns regularas da code sur la creaziun da documentaziun fin a la finanziaziun da sviluppadras e sviluppaders e bler auter. + +== Finamira ed intent + +La lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG)footnote:[https://www.fedlex.admin.ch/eli/cc/2023/682/rm] pretenda che reflexiuns supplementaras vegnian resguardadas tar l'acquist da software sviluppà da nov e da prestaziuns da svilup da software. + +Per sustegnair l'observaziun da l'art. 9 EMBAG ha il sectur TDT elavurà meds e resursas en il rom da link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala] e da link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala] + +include::partials/document-map.rm.adoc[] + +Illustraziun 1: Survista dals meds OSS + +Ils meds e las resursas stattan a disposiziun sin la pagina d'internet da la Chanzlia federala sut https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html[meds OSS]. + +Quest document va ultra dal center da l'artitgel 9 EMBAG ed exponta ultra da quai, co ch'i sto vegnir tractà en general cun l'open source en il context da l'acquist. + +Chapitel 3:: L'impurtanza da la suveranitad digitala en il context da l'open source e da l'acquist +Chapitel 4:: Cas d'applicaziun relevants da l'acquist en connex cun software e software open source +Chapitel 5:: Creation: concurs per software e prestaziuns en connex cun l'art. 9 EMBAG +Chapitel 6:: Consumption: acquist da software: tractanda eguala dal software open source +Chapitel 7:: Consumption: acquist da prestaziuns supplementaras (support/mantenziun/svilup vinavant) per l'OSS +Chapitel 8:: Collaboration: aspects dal dretg d'acquist da collavuraziuns per la creaziun, la mantenziun ed il support da l'OSS +Chapitel 9:: Contribution: contribuziuns a projects OSS + +== Suveranitad digitala ed acquist + +=== Introducziun en la suveranitad digitala e l'OSS + +Cun l'art. 9 EMBAG dat l'administraziun federala, cun publitgar ses software sco OSS, ina contribuziun impurtanta a la persistenza ed a la suveranitad digitalas. + +La suveranitad digitala n'è betg in intent per sasez, mabain ina premissa per in'administraziun effizienta, democratica ed orientada al futur. Ella è in concept cun bleras fatschas cun dimensiuns tecnologicas, organisatoricas e politicas. + +**** +*Suveranitad digitala munta che il stadi dispona da la controlla e da la capacitad d'agir necessarias en il spazi digital per garantir l'adempliment da las incumbensas statalas.* +**** + +En spezial tar l'acquist da software ston vegnir resguardads ils effects sin la suveranitad digitala da l'administraziun federala. + +En ses *rols sco utilisadra, manadra ed incumbensadra* en il sectur da las TIC e dal software po l'administraziun federala prender conscientamain sia responsabladad en quest sectur. + +En il sectur dal software existan trais finamiras strategicas: + +*Substituibilitad*: [.underline]#Sco utilisadra# aspira l'administraziun publica da pudair tscherner libramain e flexibelmain tranter purschiders, soluziuns informaticas e tecnologias. Quai premetta la disponibladad d'alternativas effizientas e cumprovadas sco er architecturas informaticas, vias d'acquist ed ina dotaziun da persunal ch'èn concepidas per facilitar ina midada. + +*Capacitad da configuraziun*: [.underline]#Sco manadra d'informatica# dispona l'administraziun publica da la capacitad da configurar e da co-configurar ses sistems informatics. Per quai dispona ella da la savida necessaria e da structuras cooperativas adattadas per chapir e valitar soluziuns informaticas e per garantir sche necessari lur svilup, lur svilup vinavant e lur manaschi. + +*Influenza*: [.underline]#Sco incumbensadra# po l'administraziun publica formular ed imponer sias pretensiuns e ses basegns vers ils purschiders da tecnologia. Quai vala per las caracteristicas dals products (funcziuns, opziuns da manaschi, disponibladad, segirezza da las infurmaziuns e protecziun da datas etc.) sco er per la redacziun dals contracts ed ils models da licenza. + +*Standards averts* e *software open source* sustegnan quellas finamiras il meglier cun *princips open source*. + +L'OSS sustegna la suveranitad digitala uschia: + +* La segirezza informatica per l'administraziun publica, las infrastructuras criticas e las applicaziuns relevantas per la segirezza sa lascha garantir [.underline]#da tut temp# tras l'[.underline]#access cumplet# al code da funtauna. +* L'OSS pussibilitescha a posts publics da construir, da manar, da controllar e d'adattar lur atgna infrastructura informatica senza cundiziuns da licenza restrictivas. +* L'OSS porscha la controlla cumpletta davart actualisaziuns, funcziuns e patchs da segirezza, tant dal puntg da vista dal cuntegn sco er dal temp. +* L'OSS po impedir la dependenza da singuls purschiders u models da licenza e sustegna la substituibilitad. +* L'OSS permetta da represchentar e da suandar transparentamain l'entira chadaina da furniziun dal software. +* L'OSS sa lascha adattar ed extender – bain adattà a las pretensiuns specificas d'autoritads ed instituziuns da furmaziun, quai che premetta dentant enconuschientschas profundas dals agens collaboraturs. +* Investiziuns en l'OSS van era a bun da interpresas e communitads localas (creaziun da valur locala) ed augmentan la resilienza da l'economia svizra. +* L'OSS sa basa sin la collavuraziun e sin interfatschas avertas, facilitescha l'interoperabilitad tranter sistems e promova standards averts – era sur ils cunfins naziunals ora. +* L'OSS meglierescha la segirezza informatica e la segirezza da las datas tras la transparenza e l'adattabladad. +* Software OSS licenzià sut licenzas OSI garantescha cundiziuns giuridicas cleras e continuitad sco er las libertads fundamentalas da l'OSS e protegia tant las sviluppadras ed ils sviluppaders sco era las utilisadras ed ils utilisaders. + +*Standards averts:* Per sustegnair la substituibilitad dal software duessan concurs publics pretender l'observaziun da standards averts,footnote:[Per exempel standards averts sco eCH, ODF; vesair era https://de.wikipedia.org/wiki/Offener_Standard[Standard avert – Wikipedia]] e uschia minimar il lock-in. +*Interfatschas avertas:* Era las interfatschas duessan vegnir publitgadas per pussibilitar l'interoperabilitad. + +Las autoritads federalas èn fundamentalmain obligadas d'observar ils standards eCH.footnote:[https://www.ech.ch/[www.ech.ch]] + +La Scola auta spezialisada bernaisa ha exponì las reflexiuns relevantas en il studi _Perspectivas tecnologicas da la suveranitad digitala_ [Stü2024], elavurà per incumbensa dal DFAE, cun agid dal model «chasa da la suveranitad», en il qual il software vegn preschentà sco pitgun purtant. En quest model èn ils strats sut il tetg – collavuraziun, cumpetenzas tecnologicas, ils quatter pitguns e regulaziuns – ils secturs, en ils quals las mesiras recumandadas promovan la suveranitad digitala. + +[mermaid,align="center",alt="Represchentaziun schematica dals aspects da la suveranitad digitala che pussibiliteschan la purschida da products e servetschs innovativs"] +.... +block-beta + columns 4 + Roof["Products e servetschs digitals innovativs
da interpresas ed autoritads"]:4 + space:4 + Collab["Collavuraziun cun la perscrutaziun e la societad civila"]:4 + Skills["Cumpetenzas tecnologicas (programmaziun, data science etc.)"]:4 + SW["Software"] Data["Datas e
cuntegns digitals"] AI["Intelligenza
artifiziala"] Infra["Infrastructura TIC
(hardware)"] + Reg["Regulaziuns (leschas, standards)"]:4 + Collab-- "pussibiliteschan" -->Roof +.... + +_Illustraziun 2: Represchentaziun schematica dals aspects da la suveranitad digitala che pussibiliteschan la purschida da products e servetschs innovativs [Stü2024]_ + +=== Mesirar la suveranitad digitala + +Aspects da la suveranitad digitala pon vegnir pretendids en in concurs public, ma talas pretensiuns ston esser motivadas objectivamain. Ina preferenza generala per l'OSS n'exista betg. + +*Co sa lascha pia mesirar il grad da suveranitad digitala per ina tscherta tecnologia, in product u in servetsch?* + +Questa operaziunalisaziun sto vegnir fatga uschè objectivamain e transparentamain sco pussaivel. + +Differentas iniziativas empruvan quai. L'OSBA ha per exempel sviluppà in **index da suveranitad**footnote:[https://osb-alliance.de/featured/ein-index-fuer-digitale-souveraenitaet[In index per la suveranitad digitala | OSBA – Open Source Business Alliance]] _[OSBA-VK]_. _Nextcloud_ ha publitgà in Digital Sovereignty Index (DSI)footnote:[https://dsi.nextcloud.com/[dsi.nextcloud.com]] che cumparegliescha entirs pajais, ma po era furnir criteris utils. +L'Uniun europeica ha publitgà per il cloud in Cloud Sovereignty Framework.footnote:[https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf[commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf]] +Il _Center per la suveranitad digitala ZenDiS_ lavura ad ina controlla da suveranitad cun la quala soluziuns informaticas ed organisaziuns duain vegnir valitadas sin la basa da criteris da suveranitad transparents. + +Era l'administraziun federala è participada al svilup d'in *framework per la suveranitad digitala* cun il qual il grad d'adempliment po vegnir determinà tranter auter sur differentas perspectivas. + +Perspectivas pussaivlas èn: + +A -- Controlla tecnologica:: +Quant lunsch ha l'administraziun federala la controlla davart las tecnologias duvradas e lur svilup vinavant? + +B -- Suveranitad da las datas:: +Tgi ha access a las datas, la controlla davart ellas ed il pudair da decider – en spezial tar datas administrativas sensiblas? + +C -- Capacitad giuridica d'agir:: +Quant lunsch pon la Svizra e l'administraziun federala influenzar las cundiziuns basicas giuridicas e politicas da la digitalisaziun? + +D -- Resilienza:: +Quant robusts e resistents en cas da crisa èn ils sistems ed ils process digitals da l'administraziun federala envers disturbis, crisas e dependenzas? + +E -- Controlla economica:: +Co po l'administraziun federala exercitar ina controlla economica ed in sourcing strategic per garantir sia suveranitad digitala en moda effizienta areguard ils custs e per minimar a medem temp dependenzas e ristgs en l'acquist informatic? + +Per mintgina da questas perspectivas sa lascha determinar il grad da suveranitad digitala cun agid d'ina scala anc da definir: + +0 -- Determinà da terzs / betg suveran:: +Nagina controlla davart sistems, datas u infrastructura; nagina transparenza, grondas dependenzas; naginas opziuns d'exit u alternativas + +1 -- Controllà minimalmain:: +Emprimas enconuschientschas davart l'utilisaziun e las dependenzas; mecanissems da controlla puntuals; lacunas operativas, giuridicas u tecnologicas persistan + +2 -- Utilisabel en moda reglamentada:: +Sistems fidaivels e per part controllabels; rom giuridic e tecnic stabilì; dependenzas strategicas persistan + +3 -- Autoregulà e resilient:: +La posiziun sin il martgà vegn duvrada; strategias d'exit e concepts multifurnitur implementads; know-how construì; resilienza e scenaris da crisa preparads + +4 -- Suveran sistemicamain:: +Suveranitad en tut las dimensiuns relevantas (giuridica, tecnologica, culturala, strategica); format activ dal martgà e dals standards; effect geopolitic pussaivel + +_Illustraziun 3: Grad da la suveranitad digitala._ + +Questas duas dimensiuns dattan la suandanta matrix: + +[.landscape] +[cols="2,^1,^1,^1,^1,^1",options="header"] +|=== +|Perspectiva +|0 + +Determinà da terzs +|1 + +Controllà minimalmain +|2 + +Utilisabel en moda reglamentada +|3 + +Autoregulà e resilient +|4 + +Suveran sistemicamain + +|A -- Controlla tecnologica +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|B -- Suveranitad da las datas +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|C -- Capacitad giuridica d'agir +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|D -- Resilienza +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} + +|E -- Controlla economica +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +a| +[%interactive] +* [ ] {empty} +|=== + +_Illustraziun 4: Matrix suveranitad digitala: perspectivas ed il grad da suveranitad._ + +Per ils singuls champs da cruschada da la grilla pon vegnir descrits criteris concrets per render la classificaziun uschè objectiva sco pussaivel. + +In tal framework vegn actualmain sviluppà en il rom da l'accent 4 «Rinforzar la suveranitad digitala» da la «Strategia Administraziun federala digitala».footnote:[https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html[www.bk.admin.ch – Administraziun federala digitala]] + +Il Cussegl federal ha mess en vigur la directiva da tetg Suveranitad digitala en l'administraziun federalafootnote:[W012 - Directivas per la suveranitad digitala en l'administraziun federala] sin il 1. da schaner 2026. Projects ston integrar ils differents aspects en la definiziun da l'object d'acquist e sche necessari en in concurs, sin la basa dal basegn concret da suveranitad – per exempel dal puntg da vista dal ristg en il rom dal business continuity management. + +== Cas d'applicaziun per l'acquist da software + +La tecnologia d'infurmaziun e da communicaziun (TIC) ed il software n'èn en l'administraziun federala nagin intent per sasez, mabain servan adina a l'adempliment d'in mandat legal. Vista la digitalisaziun che progredescha ed il rol central da l'administraziun federala en Svizra sto la tecnologia d'infurmaziun esser ina cumpetenza centrala da l'administraziun. + +Ils suandants *facturs* ageschan perquai directamain sin l'acquist: + +* *Digitalisaziun*: La strategia digitalafootnote:[https://digital.swiss/rm/] pretenda la digitalisaziun dals process. +* *Optimaziun dals process*: Process entaifer l'administraziun federala ed en sias relaziuns externas pon e duain vegnir optimads. +* *Suveranitad digitala*: L'impurtanza da la suveranitad digitala crescha cuntinuadamain; vesair _[Stü2024]_. +* Il princip *public money, public goods* e l'observaziun da l'art. 9 EMBAG. +* *Libertad economica*: Mesiras na duain betg restrenscher nunnecessariamain la libertad economica. +* Reflexiuns generalas da *segirezza*: La segirezza dals sistems che elavuran infurmaziuns survegn adina dapli impurtanza. +* Gestiun da crisas e da catastrofas (*resilienza*): Vista la situaziun mundiala actuala sto l'administraziun examinar, co ch'ella po metter a disposiziun vinavant ils meds da lavur necessaris era en circumstanzas criticas. +* Independenza strategica e reflexiuns davart la *chadaina da furniziun*: Quellas resultan da la suveranitad digitala e da la resilienza. +* Evitar/minimar il *vendor lock-in*: Dependenzas sa laschan bunamain betg evitar en l'informatica, ma la dependenza d'in sulet purschider duess vegnir reducida nua ch'igl è pussaivel. +* *Abilitaziun* da l'administraziun federalafootnote:[Betg mo tar las persunas da direcziun, las manadras ed ils manaders da project e las architectas ed ils architects TIC, mabain tar tut ils collaboraturs.] (inclusiv la direcziun) en dumondas TIC: La direcziun, il svilup ed il manaschi da la tecnologia d'infurmaziun pretendan cumpetenzas adequatas en l'entira schientscha da lavur. + +Quest document distingua ils suandants *tips da software*: + +* *Commodity – applicaziuns spezialisadas/branscha – applicaziuns spezialisadas/autoritad federala*: +** Applicaziun standard (software commodity) senza logica da fatschenta speziala. +** Applicaziun spezialisada: basegn specific da la branscha/da tut ils nivels federals u basegn specific da l'autoritad federala +* *Mirà – strategic – essenzial*: +** Applicaziun mirada +** Applicaziun strategica cun ina impurtanza considerabla per in'autoritad federala u per l'administraziun federala entira +** Essenziala e critica per la fatschenta – sto restar funcziunanta en mintga circumstanza (p.ex. controlla dal traffic aviatic) + +Applicaziuns pon vegnir duvradas en in u en plirs *secturs d'applicaziun*. + +Determinanta è qua la *standardisaziun* da las applicaziuns tenor product entaifer mintga sectur: + +* Nagina strategia +* Strategia d'in product +* Strategia da plirs products + +Ultra da la standardisaziun dals products, che sto vegnir examinada accuratamain, datti era la standardisaziun per l'interoperabilitad (formats da datas, API, elements da fatschenta).footnote:[P.ex. via eCH] +La standardisaziun _è permessa_, uschenavant ch'ella è proporziunada e na restrenscha betg nunlubidamain la concurrenza (p.ex. art. 30 al. 3 LAPub). Ella po reducir ils custs da manaschi e da mantenziun e generar effects da sinergia, en spezial sche tut ils nivels federals èn participads. Da l'autra vart augmenta ella il lock-in, la dependenza ed en part ils ristgs da segirezza (ristg da cluster). + +Ils custs totals da possess (TCO) – inclusiv manaschi, mantenziun e svilup vinavant – duessan adina vegnir resguardads tar l'acquist. Consequenzas da custs a lunga vista na dastgan betg vegnir surtratgas. Models da fatschenta open source sa distinguan en tscherta moda da quels da purschiders proprietars. + +Ils chapitels suandants sa concentreschan adina dapli sin l'open source e tractan il proceder d'acquist relevant e sia realisaziun. + +La tscherna tranter consumption, contribution, collaboration e creation vegn fatga _specificamain per mintga project_ tenor la rentabilitad e la situaziun giuridica, cun repartir ils custs uschè amplamain sco pussaivel. Da questa vista èn ils quatter C tenor link:em002.pdf[Em002 Directivas strategicas OSS], chapitel 3, ordinads en impurtanza decreschenta: + +image::./assets/four-cs/four-cs.rm.svg[Rang dals quatter C: Consumption, Contribution, Collaboration, Creation] + +. Consumption +. Contribution +. Collaboration +. Creation + +Tar la simpla *consumption* sa repartan ils custs sin in grond dumber d'auters utilisaders, ma l'autoritad federala n'ha nagina controlla davart il svilup vinavant. La creation è il cuntrari: controlla cumpletta, ma custs cumplets. + +Tar la *contribution* sa limitescha la despaisa finanziala a l'element sviluppà, che vegn suenter surdà ad in'autra organisaziun per la tgira. + +La *collaboration* è il scenari il pli cumplex, perquai che la concepziun po variar fitg. En il meglier cas vegnan ils custs dividids e l'autoritad federala ha avunda influenza per realisar sias pretensiuns senza cumpromiss (vesair chapitel 8). + +Idealmain croda sin la *creation* la part la pli pitschna. Software po vegnir sviluppà internamain, via prestaziuns u via in contract d'ovra. + +Pura consumption vegn ad esser pussaivla mo tar applicaziuns standard. + +=== Software pretenda prestaziuns supplementaras sco mantenziun, support e svilup vinavant. + +Schebain che applicaziuns open source pon vegnir utilisadas gratuitamain, pretenda lur utilisaziun strategica sur millis d'instanzas mantenziun, support e sche necessari svilup vinavant. + +Autoritads federalas han in interess ad in support a lunga vista per las versiuns duvradas (vesair chapitel 3.2.3 en _[BITKOM2024]_). + +L'art. 9 EMBAG sez cuvra mo il svilup u il svilup vinavant intern da software e n'è betg determinant per autras reflexiuns davart l'open source – qua valan enstagl la suveranitad digitala ed ulteriurs facturs. Restricziuns tenor l'art. 9 EMBAG tar singulas cumponentas da svilup pon dentant avair consequenzas per l'entir project, sche svilups proprietars u supplementars èn previsibels. Cun la collaboration sa laschan lura utilisar effects da sinergia e reducir sche pussaivel ils custs per l'administraziun federala en general. + +=== Obligaziun da publicaziun tar l'acquist da software + +Sche las pretensiuns inditgeschan in basegn d'adattaziun dal software u in basegn d'adattaziun posteriur pussaivel, è l'art. 9 EMBAG relevant e la publicaziun è obligatorica per quellas parts, uschenavant che nagina da las duas excepziuns na vala. Tar l'acquist d'ina soluziun open source fiss ina tala publicaziun gia cuverta tras ina contribuziun al project open source. Era sche l'acquist pertutga mo la licenziaziun da software standard u in acquist TIC che croda sut in'excepziun, ston svilups supplementars fundamentalmain vegnir publitgads; quai sto vegnir reflectà en ils documents d'acquist ed en la sbozza da contract. + +*L'obligaziun da publicaziun tenor l'art. 9 EMBAG è perquai relevanta per mintga acquist, tar il qual in svilup agen u in svilup vinavant è probabel* (vesair era _[KBB-MB]_). + +== Creation: concurs per software e prestaziuns cun connex a l'artitgel 9 EMBAG + +Quest chapitel tracta las consequenzas da l'art. 9 EMBAG per concurs per software e prestaziuns che pon cumpigliar la creaziun u la midada da software. + +El vala tant per l'administraziun federala centrala sco er per quella decentralisada. Excepziuns da questa obligaziun èn fixadas en l'ordinaziun davart la digitalisaziun _[DigiV]_. + +=== Relevanza da l'artitgel 9 EMBAG per la creaziun da software + +In vorgang croda en il champ d'applicaziun da l'art. 9 EMBAG, sch'el croda sut la categoria relevanta da la tabella 1. La decisiun make-or-buy resta centrala per l'acquist. L'analisa dals differents cas d'applicaziun mussa che fundamentalmain l'art. 9 EMBAG è relevant en tut ils cas, ordaifer sche software gia existent vegn acquistà (p.ex. puras licenzas). Il chapitel II.4 da la _directiva Open Source en l'acquist [BBL-WL]_ exponta il proceder strategic, e l'agiunta VII.A descriva en detagl, tge che vala sco software. Ina repartiziun detagliada da la decisiun strategica sa chatta en la tabella 1. + +[cols="3,2,4",options="header"] +|=== +|Cas d'applicaziun |Make or buy |Obligaziun da publicaziun tenor l'art. 9 al. 1 EMBAG + +|Sviluppar software entaifer l'administraziun federala +|Make +|Gea, obligaziun da publicaziun + +|Far sviluppar software tras terzas persunas +|Buy sco contract da prestaziuns informaticas + +|Gea, obligaziun da publicaziun + +|Acquistar software existent +|Buy +a|Fundamentalmain na, ma examinar, sch'i existan obligaziuns da publicaziun per parts da sviluppar. Spezialmain relevant è il tractament dals dretgs da terzas persunas (vesair link:em002-3.pdf[Em002-3 Guida da licenzas OSS]). + +|Surpigliar software dad auters posts publics +|Make u buy +a|– Entaifer l'administraziun federala: obligaziun da publicaziun da l'unitad administrativa che dat vinavant. + +– Auters: examinar en il cas singul, sch'adattaments tras l'administraziun federala chaschunan in'obligaziun da publicaziun, almain per quellas parts. + +|Acquistar resursas da svilup +|Make +|Gea, obligaziun da publicaziun (ils contracts ston permetter la publicaziun) + +|Collavurar cun auters posts publics tar il svilup da software +|Make +|Gea, obligaziun da publicaziun (ils contracts ston permetter la publicaziun), en spezial tar contribuziuns da svilup essenzialas tras u per la Confederaziun +|=== + +_Tabella 1: Classificaziun da l'obligaziun da publicaziun e da la decisiun make-or-buy (en adherenza ad ina tabella da Rika Koch, BFH)_ + +Indicaziun: L'art. 9 EMBAG sto era vegnir resguardà tar software existent e SaaS, sche il software duai vegnir sviluppà vinavant u adattà per la Confederaziun. Era sche la probabladad è pitschna, duess quai vegnir tractà en il process d'acquist. + +Nua ch'i dat basegn da sclerida, vegn recumandà link:em002-2.pdf[Em002-2 Instrucziuns per publitgar software open source] sco referenza. Las glistas da controlla duessan vegnir *emplenidas provisoricamain uschè baud sco pussaivel* per projects potenzialmain relevants. Era la _glista da controlla excepziun integrala art. 9 EMBAG [BBL-CL]_ po vegnir duvrada per quai. + +=== Preparar in acquist tenor l'artitgel 9 EMBAG + +Supplementarmain als pass da preparaziun usitads duessan ils suandants dus documents adina vegnir consultads, sch'in acquist cumpiglia cumponentas da software: + +* _fegl d'infurmaziun davart l'acquist da software e l'art. 9 EMBAG [KBB-MB] e_ +* _directiva Open Source en l'acquist [BBL-WL]_. + +Nua che l'art. 9 EMBAG è cleramain relevant, duess l'unitad administrativa avair: + +* emplenì provisoricamain las glistas da controlla link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Evaluaziun preliminara OSS] fin link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Relaschada e publicaziun OSS]; +* prendì ina decisiun fundamentala, sch'ina licenza copyleft u permissiva vegn duvrada;footnote:[In'analisa pli profunda po vegnir fatga pli tard sche necessari cun agid da _Em002-3 Guida da licenzas OSS_.] +* tschertgà eventualas alternativas open source (u projects da basa potenzials per contributions/collaboration) tenor link:em002-2.pdf[Em002-2 Instrucziuns per publitgar software open source], cun utilisar ils utensilis inditgads là per la retschertga e l'analisa dal martgà;footnote:[Vesair era link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala], chapitel 7.] +* scleri la structura d'ina eventuala communitad (link:em002-4.pdf[Em002-4 Guida da communitads OSS] e link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Glista da controlla Communitad OSS]). + +Sch'in project OSS existent duai vegnir duvrà, sustegnì u duai servir sco basa per ina collaboration, ston vegnir legids ils chapitels 5, 6, 8 e 9 da quest document. + +=== Creation via contracts da prestaziuns existents + +Sche la creation ha lieu via contracts da partenariat existents, sto la publicaziun OSS vegnir garantida il pli tard tar il mini-concurs, uschenavant che nagina da las duas excepziuns na vala. + +Novs concurs da prestaziuns duessan adina cuntegnair ina pretensiun da publicaziun tenor l'art. 9 EMBAG (vesair _[BBL-WL] e_ _[KBB-MB])_. + +=== Construir ina communitad + +Construir e tgirar ina communitad maximescha il profit dal software open source, ma è era collià cun ina lavur considerabla. + +Nua ch'ina communitad ed ina collaboration èn sensadas, ha quai consequenzas per l'acquist dal cumenzament. La link:em002-4-1-checklist-oss-community.pdf[glista da controlla Em002-4.1 Communitad OSS] duess perquai vegnir emplenida sin la basa da la link:em002-4.pdf[Em002-4 Guida da communitads OSS]. + +Sche l'autoritad federala duai surpigliar in rol impurtant en la communitad (p.ex. in rol da governanza) u sch'ina collavuraziun è planisada (vesair chapitel 8), po l'acquist da prestaziuns supplementaras esser necessari: construcziun da la communitad, consolidaziun da las pretensiuns, direcziun dal svilup vinavant. + +=== Criteris models ed elements contractuals per l'acquist informatic + +Il CCA maina in model da criteris d'acquist pussaivels sco er in model per in chapitel da contract da rom per concurs cun connex a software _[KBB-KV]_. + +Il CCA ha publitgà sin Perimap.admin.ch dus models che mussan, co che las pretensiuns minimalas per ina attribuziun conforma al dretg d'acquist tenor l'art. 9 EMBAG pon vegnir ademplidas. [KBB-KV] + +. https://perimap.admin.ch/goto_perimap_file_47064_download.html[Criteris models – Acquist EMBAG ed open source] +. https://perimap.admin.ch/goto_perimap_file_47059_download.html[Texts da contract models – Svilup da software] + +== Consumption: acquist da software: tractanda eguala dal software open source + +Quest chapitel tracta l'acquist e l'utilisaziun (consumption) da software open source e relevescha ils aspects strategics centrals. +I vegn ultra da quai renvià a _[BBL-WL] e_ _[KBB-MB]_. + +*Actualmain n'exista nagina preferenza prescritta da la lescha per software open source en l'acquist.* + +Tar concurs per applicaziuns informaticas vegnan resguardads tut ils tips da licenza ed ils models da fatschenta. Per ademplir las pretensiuns fixadas pon ils purschiders purscher soluziuns da software sin la basa da software open source nunmidà, closed source u proprietar, u sin la basa da cumbinaziuns da models da licenza e prestaziuns cun plivalur resp. abunaments. + +Ils suandants punctsfootnote:[Ils documents da referenza determinants per l'acquist èn quels publitgads da l'UFCL e dal CCA sin las plattafurmas correspundentas.] ston vegnir resguardads da las autoritads federalas: + +* Independentamain da la soluziun e dal model da licenza sto il purschider da prestaziuns inditgar en sia offerta, *tge cundiziuns da licenza che il recepient da prestaziuns sto observar tar l'utilisaziun da la prestaziun*. +* Il purschider da prestaziuns è *liber en la tscherna da la soluziun* cun la quala el vul ademplir las pretensiuns messas a concurs, sco era en la furma da la recumpensa ch'el vul survegnir (taxas da licenza, da mantenziun u d'abunament), uschenavant che quai è tecnicamain realisabel ed economicamain raschunaivel. +* L'entir *ciclus da vita* duess vegnir resguardà en las specificaziuns ed en la fixaziun dals pretschs. + +Quai pussibilitescha a l'administraziun federala da far valair ses interess areguard la proprietad intellectuala, la garanzia e la responsabladad – independentamain dal model da software u da licenza – sin il nivel da las cundiziuns generalas applitgablas e da las ancorar en il contract. + +Sche *adattaments dal software* vegnan fatgs per incumbensa u en adempliment d'in contract cun l'autoritad federala, vala l'art. 9 EMBAG. +Per precauziun duess il permiss da publicaziun vegnir pretendì gia en il concurs, perquai che l'experientscha mussa che adattaments daventan pli baud u pli tard necessaris, era sch'els n'èn betg previsibels al mument dal concurs. + +Sche il recepient da prestaziuns obtegna *prestaziuns cun plivalur* d'in purschider ultra dal software, porschan furniturs OSS savens in model d'abunament che porscha in post da contact local cun garanzias da garanzia e da responsabladad, supplementarmain a la relaziun directa cun ils possessurs dals dretgs immaterials sin las cumponentas OSS (che han savens lur sedia a l'exteriur e ch'èn en part nunenconuschents). + +=== L'OSS sco criteri strategic d'acquist + +Sch'ina autoritad federala vul acquistar software open source per motivs strategics, èn plirs scenaris pussaivels: + +* Concurs funcziunal senza criteris specifics per l'OSS. +Perquai che quai na porta naginas restricziuns, n'è necessaria nagina motivaziun speziala. +* Concurs funcziunal cun criteri d'aptitude, criteris tecnics e criteris d'attribuziun che pretendan open source, access cumplet al code da funtauna u experientscha cumprovabla cun publicaziuns open source. + +*Ina preferenza per l'open source è permessa dal puntg da vista dal dretg d'acquist, sche cun quai sa laschan ademplir (meglier) ils basegns concrets dal post che attribuescha*.footnote:[Vesair [BBL-WL\], [BBL-CL\], [KBB-MB\], [KBB-KV\]] + +In ulteriur motiv per preferir l'OSS – ultra da la suveranitad digitala – è che tar adattaments considerabels dal software tras l'administraziun ston quels vegnir publitgads tenor l'art. 9 EMBAG. +Ina publicaziun è il pli simpel, sche l'entir product è adina stà open source e sch'adattaments pon en part vegnir fatgs directamain en il product. Uschiglio sto vegnir definida in'excepziun e ston sche necessari parts dal code vegnir isoladas e tuttina relaschadas. + +=== L'utilisaziun gratuita da l'OSS na suttastat betg al dretg d'acquist. + +L'OSS po savens vegnir telechargià ed utilisà directamain. Il dretg d'acquist vala mo, sche prestaziuns vegnan obtegnidas da terzas persunas cunter pajament (inclusiv cuntraprestaziuns betg pecuniaras). + +Il telechargiar e l'utilisar gratuit da l'OSS na represchentan per sasez nagin acquist. + +Igl è era pussaivel d'acquistar pli tard las prestaziuns necessarias per OSS telechargià, uschenavant che quai na capita betg abusivamain.footnote:[Analogia: Ina vischnanca po utilisar agen lain e dar en incumbensa la construcziun d'in atgnadi cun quest lain – ella na sto betg acquistar sezza il lain.] + +Prestaziuns da mantenziun, da support e da svilup vinavant per il product vegnan lura messas a concurs separadamain tenor il dretg d'acquist. + +I dat gia exempels d'OSS che vegn duvrà gratuitamain sin las plazzas da lavur standard da l'administraziun federala e che na vegn perquai betg acquistà.footnote:[Exempels d'OSS cun potenzial da standardisaziun: Gimp, FileZilla, VLC Media Player e 7-zip sco products Shell 2 (tenor [A029\]) che pon vegnir duvrads, perquai che l'installaziun è gratuita. Il 2024 ha l'UFIT designà Red Hat OpenShift sco product strategic per tscherts secturs d'applicaziun pervia da sias caracteristicas tecnicas unicas. OpenShift è actualmain la plattafurma strategica per containers e sistems da manaschi.] + +=== Accordar las pretensiuns cun auters participants + +Ina applicaziun spezialisada pretenda adina ina purtadra dal basegn (per ordinari in uffizi federal). Per ordinari è sensa che il post cun il basegn accordia sias pretensiuns cun quellas dad auters posts administrativs – internamain u en il rom d'ina collaboration (vesair chapitel 8) – uschenavant ch'in product dal martgà disponibel u in svilup cuminaivel è profitabel per il svilup e l'introducziun. + +Sche blers participants han las medemas u sumegliantas pretensiuns, po valair la paina da cuvrir quests basegns sin ina basa cuminaivla. Quai vala per tuttas furmas da software. + +Dus aspects èn da resguardar: Sche adattaments vegnan fatgs pli tard d'ina autoritad federala sin giavisch da terzas persunas, vala puspè l'art. 9 EMBAG – quai è dentant senza problems, sche software open source vegn duvrà. + +Tar l'OSS ston las pretensiuns eventualmain vegnir accordadas pli activamain da l'autoritad federala, perquai ch'ina forza motrica sco in purschider commerzial che vul manar e sviluppar ses agen product po mancar. + +=== Resguardar ulteriurs acturs publics pussaivels tar l'acquist + +L'exempel ZenDiSfootnote:[https://www.zendis.de/en[https://www.zendis.de/] ZenDiS s'ha mess la finamira da liberar l'administraziun da dependenzas criticas da singuls purschiders da tecnologia.] mussa ch'i po esser tant realisabel sco era profitabel da far in concurs a medem temp sur tut ils nivels federals. + +*Ina concurrenza gista sto adina vegnir mantegnida.* Tar concurs sto adina vegnir examinà, sche la soluziun pudess vegnir acquistada sensadamain era per auters posts. + +Sche quai è il cas, ston quests auters clients potenzials vegnir contactads e ston lur basegns vegnir reflectads en ils documents dal concurs, en spezial en las pretensiuns. Ina tscherta flexibilitad en las pretensiuns è impurtanta en tals cas. + +Exempel: eOperations Svizra SA (http://www.eoperations.ch[www.eoperations.ch]) po vegnir duvrada per talas collavuraziuns. eOperations consolidescha las pretensiuns da differents posts ed exequescha sezza l'acquist, senza duvrar necessariamain il product sezza. Quai po era esser in model util per l'acquist da l'OSS. + +== Consumption: acquist da support e da mantenziun per l'OSS + +L'administraziun publica po utilisar software open source en differentas modas, dal simpel telechargiar ed installar fin a l'acquist formal (vesair chapitel 6.2). + +Sche l'OSS vegn duvrà en secturs critics, èn necessaris standards cuntinuadamain auts da segirezza,footnote:[Vesair era link:em002-6.pdf[Em002-6 FAQ-OSS], chapitel 5.3] da mantenziun e da svilup vinavant. Tar l'acquist regular da software vegn quai usitadamain cuvert dal concurs. Las pretensiuns valan tant per il software sez sco er per las bibliotecas ed ils frameworks utilisads. Il support e la mantenziun merita ina attenziun speziala, perquai che il svilup vinavant è savens cuvert dal medem contract e represchenta tuttina creation e croda uschia en il champ d'applicaziun da l'art. 9 EMBAG. + +Questas prestaziuns intensivas en lavur surpassan bunamain adina, quintadas sur l'entir ciclus da vita da l'applicaziun, il valur da sava tenor la lescha federala davart l'acquist public (LAPub). Sch'ellas vegnan obtegnidas da terzas persunas, sto vegnir observà il dretg d'acquist. Excepziuns pon valair, sco l'acquist entaifer il stadi tar in'autra incumbensadra publica,footnote:[Art. 10 al. 3 lit. b LAPub.] u en cas excepziunals l'acquist liber da prestaziuns spezialas.footnote:[Art. 21 al. 2 lit. c LAPub.] + +La tabella suandanta mussa las distincziuns dals cas per l'acquist da prestaziuns sco il support. + +[cols="1,1,1,2"] +|=== +2+h|Situaziun da partenza 2+h|Resultats + +h|Custs dal ciclus da vita + +→ valur da sava OMC?footnote:[Custs interns pon vegnir exclus. L'entir ciclus da vita sto vegnir resguardà.] +h|Entaifer il stadi?footnote:[L'acquist entaifer il stadi n'è betg suttamess al concurs: purtadras statalas èn necessarias, nagina participaziun al martgà. Vala mo entaifer il sectur public svizzer.] +h|Concurs OMC necessari?footnote:[Las directivas d'acquist da la Confederaziun valan adina, uschespert ch'in pajament vegn fatg.] +h|Remartgas + +|Na +|Na +|Na footnote:[Software cun support surpassa per ordinari il valur da sava LAPub; «na» vala mo en cas rars (p.ex. finanziaziun d'ina suletta funcziun per in project OSS existent).] +.2+|Darar in pachet da software cumplet cun support – per ordinari in pitschen support e singulas funcziuns. + +|Na +|Gea +|Na + +|Gea +|Na +|Gea +|Mo il volum vers terzas persunas è determinant. + +|Gea +|Gea +|Na +|Il concurs è vegnì fatg da l'auter post public. +|=== + +_Tabella 2: Distincziun dals cas – acquist da support_ + +=== Support e mantenziun fan adina part dal software + +Support e mantenziun èn indispensabels per il manaschi persistent da software en il rom d'autoritads. En in mund da zero-day-exploitsfootnote:[In zero-day-exploit designescha l'exploataziun d'ina largia da segirezza, per la quala i n'è anc disponibel nagin patch dal sviluppader da la cumponenta.] è in installar svelt e professiunal da patchs decisiv. Questa «infrastructura» sto vegnir finanziada – tant pli che l'administraziun ha pretensiuns pli autas ch'in consument privat. + +*La dumonda n'è perquai betg, SCHE support e mantenziun èn necessaris, mabain CO ch'els vegnan furnids.* + +L'autoritad federala sto determinar sin la basa da sias pretensiuns a la qualitad da la prestaziun, tge dimensiun da support, mantenziun, garanzia e responsabladad ch'ella dovra. + +Impurtant è ch'in purschider da prestaziuns per la mantenziun ed il support possia cumprovar ina experientscha suffizienta cun il product u cun la communitad open source pertutgada – mo lura vegn el ad esser abel da ademplir effizientamain questas incumbensas (vesair era _[KBB-MB]_, II.5).footnote:[Il contract da prestaziuns sto eventualmain era cuvrir il transferiment pussaivel da savida ad ina organisaziun successura.] + +Support e mantenziun ston era vegnir finanziads sin il nivel dal product. Sche nagin na contribuescha (il problem dal free ridingfootnote:[https://de.wikipedia.org/wiki/Trittbrettfahrerproblem]), è il futur dal project en privel ed uschia era ses diever en l'administraziun federala. Vista sia grondezza po vegnir spetgà raschunaivlamain da l'administraziun federala ch'ella sa participeschia als custs dal software ch'ella duvra strategicamain. + +=== Organisaziuns che pon furnir support + +La qualitad dal support ha in effect direct sin la cuntentientscha e la productivitad dals utilisaders finals. In sistem da support structurà cun temps da reacziun sperts e cun ina vaira cumpetenza tecnica garantescha che ils utilisaders e las administraturas ed ils administraturs survegnian soluziuns effizientas per lur problems, quai che spargna temp da lavur a l'incumbensadra e promova l'acceptanza da la soluziun da software. + +Per observar ils temps da reacziun convegnids contractualmain en ils service level agreements (SLA), sto il purschider disponer da persunal qualifitgà cun la savida necessaria. + +Funtaunas da support pussaivlas èn: + +*Intern*: + +* Uffizis federals +* Purschiders da prestaziuns + +*Entaifer il stadi*: + +* Autras incumbensadras publicas en Svizra +* Prestaziuns acquistadas dad autras incumbensadras publicas en Svizra + +*Terzas persunas*: + +* Prestaziun acquistada + +=== Svilup vinavant per funcziuns specificas + +Sch'ina autoritad federala dovra mo in dumber limità d'extensiuns specificas ad in software open source, po quai capitar cun resursas internas u cun prestaziuns acquistadas. + +Tals svilups vinavant duessan esser orientads a vegnir purschids al project original ed integrads en quel. Quai va betg mo a bun a l'ecosistem dal project, mabain garantescha che las extensiuns vegnian tgiradas vinavant en il project. Uschiglio po mintga nova versiun dal project original pretender ina actualisaziun manuala dal svilup individual (vesair era chapitel 8). + +=== Abunament + +Bleras interpresas e projects en il rom da l'open source porschan entaifer tschertas limitas in support gratuit che vegn furnì voluntarmain da tut ils utilisaders, principalmain via chanals averts sco forums e sistems da tickets publics. Questa purschida gratuita n'è betg concepida per utilisaders professiunals cun pretensiuns SLA specificas. + +Per utilisaders professiunals sco autoritads federalas èn savens disponibels abunaments OSS che cumpiglian garanzia, mantenziun e support. + +Tscherts purschiders porschan ultra da quai spezialas «versiuns enterprise» che n'ademplan betg pli ils criteris open source da l'OSI. + +Exempels d'abunaments: OpenShift da Red Hat, openDesk da ZenDiS + +=== Certificaziuns en il sectur open source ed OpenChain + +Sco tar software proprietar existan era en il sectur open source differentas certificaziuns. Per l'administraziun po valair la paina d'examinar avant in concurs, sch'i existan certificaziuns relevantas en il sectur pertutgà. + +*OpenChain* è ina norma ISO davart il svilup open source e la cumpatibilitad da las licenzas (vesair sutvart). + +Sch'i existan certificaziuns relevantas e sch'ellas èn determinantas per la prestaziun, ston ellas vegnir resguardadas en la giudicaziun dals purschiders. Impurtant è che la certificaziun sezza vala sco expressiva e ch'ils purschiders possian cumprovar ch'els èn abels da furnir la prestaziun era senza certificaziun. + +Vista la cumplexitad colliada cun quai n'è betg recumandabel da pretender certificaziuns sco criteri d'aptitude. Sco criteri d'attribuziun – cun la pussaivladad da cumprovar l'observaziun dals cuntegns da la certificaziun cun referenzas – pon ellas esser adequatas tut tenor il product OSS, uschenavant ch'igl è permess da duvrar referenzas per cumprovar l'adempliment dals criteris da certificaziun.footnote:[Indicaziun: Sch'ina certificaziun vegn pretendida ch'è exageradas u inadattada per l'object dal concurs, maina quai inevitablamain ad offertas main concurrenzialas.] + +Ina autocertificaziun tenor OpenChain po al pli servir sco substitut, sche nagina autra certificaziun n'exista. Referenzas che cuvran ils criteris determinants pon era remplazzar certificaziuns mancantas. + +*Certificaziun d'interpresas partenarias* + +Tscherts sviluppaders e projects open sourcefootnote:[sco Nextcloud u Univention] certifitgeschan interpresas partenarias cun las qualas els collavuran. Talas certificaziuns pon cumprovar ina relaziun existenta tranter il purschider ed il sviluppader dal software. Da resguardar è che blers projects OSS na porschan betg talas certificaziuns. Ina collavuraziun cumprovada en projects da referenza è in indicatur medemamain valid – e main restrictiv – per la qualitad giavischada. + +*Certificaziun da collaboraturs* + +Tscherts fabricants u communitads open sourcefootnote:[sco LibreOffice u RedHat] certifitgeschan persunas singulas cun savida speziala davart il software pertutgà. Sch'in purschider da prestaziuns occupa persunal certifitgà, po quai cumprovar savida tar la publicaziun upstream d'adattaments e da patchs sco er tar la furnitura d'in support da terz nivel da buna qualitad – en spezial sche plirs collaboraturs lavuran cun il product. Quai dependa era da la structura da l'ecosistem dal project OSS. + +Sco alternativa a certificaziuns po era ina experientscha da project cumprovabla en referenzas davart l'object d'acquist servir sco criteri da distincziun. + +*Standard OpenChain* + +Il standard OpenChain represchenta tant ina best practice per la cumpatibilitad da las licenzas sco era ina certificaziun interessanta per ils posts che acquistan. + +La norma ISO/IEC 5230 «OpenChain» sa concentrescha sin las chadainas da furniziun da software, sin in acquist sveltì e sin la conformitad da las licenzas. Il standard OpenChain po vegnir attribuì d'in post da certificaziun accredità u vegnir obtegnì cun ina autocertificaziun. Questa certificaziun è adattada per cumprovar en general ch'in purschider s'ha gia occupà a fund cun las pretensiuns da las licenzas open source e cun las particularitads da l'ecosistem open source. +Perquai che l'elavuraziun d'ina Software Bill of Materials (SBOM) fa part dal standard, cumprova questa certificaziun era l'engaschament d'in furnitur per la segirezza da la chadaina da furniziun tras il sustegn da cumponentas fundamentalas. + +=== Ulteriuras pussaivladads per acquistar prestaziuns da mantenziun, support u svilup vinavant + +Igl è sensa da tractar las prestaziuns da svilup vinavant en il medem contract sco il support e la mantenziun, perquai che la delimitaziun n'è betg adina clera ed è savens betg practicabla en il context dal software open source. Svilups vinavant finanziads d'ina autoritad federala crodan en il champ d'applicaziun da l'art. 9 EMBAG. + +Actualmain existan las suandantas pussaivladasfootnote:[Ulteriuras pussaivladads, pli nischadas, pon era exister.] per acquistar prestaziuns da support, da mantenziun e/u da svilup vinavant per l'OSS: + +* Intern, cun construcziun da cumpetenza: duvrar atgnas resursas da svilup +* Acquist: tenor il volum e cun observar la LAPub. Quai po era capitar via contracts da prestaziuns gia mess a concurs. Per che partenaris strategics possian metter a disposiziun sviluppaders centrals experimentads per projects OSS ch'èn centrals per l'administraziun federala, po esser sensa da permetter incumbensas en sutincumbensa u da pretender la savida correspundenta en tscherts concurs. +* Cunvegnas da cooperaziun cun terzas persunas per mantenziun, support u svilup vinavant: senza problems, uschè ditg che mintga partida porta ses agens custs. +* Participaziun da la Confederaziun ad organisaziuns: senza problems, uschè ditg che mintga partida porta ses agens custs. + +== Collaboration: aspects dal dretg d'acquist da la creaziun, mantenziun e dal support cuminaivels da l'OSS + +Ils custs dal software open source sa reduceschan, sch'el vegn sviluppà cuminaivlamain, saja quai informalmain u en ina furma structurada. La link:em002-4.pdf[Em002-4 Guida da communitads OSS] exponta ils proceders relevants. + +La collavuraziun cun autras incumbensadras publicas u cun terzas persunas è senza problems dal puntg da vista dal dretg d'acquist, uschè ditg che mintga partida porta ses agens custs. Difficultads nascha, sche da la collavuraziun na resulta nagin OSS, perquai che l'administraziun federala è liada a l'art. 9 EMBAG. + +Ina tala cooperaziun è permessa tenor l'art. 4 EMBAG. + +Da sclerir è la dumonda, co ch'i sto vegnir tractà cun custs generals u cun ina structura centrala: La structura dovra ina finanziaziun suffizienta per purtar il project era tras temps difficils. Ina alternativa è ina suletta partenaria manadra (p.ex. sch'in post participà è avunda grond per surpigliar il rol da coordinaziun). Sche l'autoritad federala surpiglia quest rol, ston las prestaziuns correspundentas vegnir furnidas internamain u vegnir messas a concurs sin la via usitada, sche terzas persunas duain vegnir integradas. + +Sin il nivel contractual vala per collavuraziuns quai che suonda: + +* Sche nagin daner na flueschia e sche naginas obligaziuns formalas n'èn necessarias, è in Memorandum of Understanding sin il nivel da l'uffizi federal u da la Chanzlia federala pussaivel. +* La creaziun d'ina structura cuminaivla – sco in'associaziun u ina corporaziun da dretg public – è fundamentalmain pussaivla, ma sto vegnir giuditgada en il cas singul. Sche la structura cuminaivla duai sezza acquistar prestaziuns da terzas persunas, sto vegnir reglada l'applicaziun dal dretg d'acquist. + +La commembranza po en tscherts cas vegnir exercitada via autras organisaziuns sco eOperations u eCH. + +*Collavuraziun cun l'exteriur* + +La collavuraziun cun autoritads a l'exteriur è senza problems, uschè ditg che nagin daner na flueschia e che naginas obligaziuns da tge gener ch'i saja na vegnan surpigliadas. + +Cunvegnas da cooperaziun sin il nivel adattà èn fundamentalmain pussaivlas, ma ston vegnir giuditgadas en il cas singul. +Da contracts internaziunals è d'evitar vista las autas savas, schebain ch'els fissan fundamentalmain era pussaivels. + +I existan dus cas spezialsfootnote:[https://www.eda.admin.ch/deza/de/home/partnerschaften/auftraege-beitraege/auftraege/anforderungen/rechtlich.html] en ils quals ina collavuraziun fiss gia cuverta: + +* Incumbensas attribuidas en il rom d'ina cunvegna internaziunala per la realisaziun cuminaivla d'in project tras stadis signatars. +* Incumbensas attribuidas tenor las proceduras u cundiziuns spezialas d'ina organisaziun internaziunala. + +== Contribution: contribuziuns a projects OSS + +La gronda part da las caracteristicas e da las reflexiuns giuridicas davart las contribuziuns vegnan tractadas en la link:em002-4.pdf[Em002-4 Guida da communitads OSS]. + +Dal puntg da vista dal dretg d'acquist èn las contribuziuns fundamentalmain senza problems, perquai che las prestaziuns vegnan furnidas per sviluppar code per in project ch'è u directamain relevant per l'autoritad u ch'è gia vegnì tractà dal puntg da vista dal dretg d'acquist. + +*Contribuziuns da terzas persunas a projects OSS d'autoritads federalas èn era senza problems dal puntg da vista dal dretg d'acquist, uschè ditg che nagin daner na flueschia.* + +Indicaziun: Perquai che l'autoritad federala è obligada da publitgar il software ch'ella sviluppa, sto ella era garantir ch'el restia publitgà. Sch'in project OSS vegn stizzà da ses manaders, sto l'autoritad federala en il pes cas il publitgar danovamain independentamain. En la pratica resta il code da funtauna tipicamain disponibel (p.ex. sco archiv), il project vegn manà vinavant sco fork, u il project – ed uschia il code da funtauna – n'è simplamain betg pli relevant. + +== Agiunta A: Referenzas: + +Ina part considerabla da las referenzas è _gia inditgada en Em002 Directivas strategicas per software open source en l'administraziun federala_. + +include::partials/references.rm.adoc[tags=ref-em002-7] + +== Agiunta B: Glossari + +Quest glossari tracta terms specifics davart temas d'acquist. + +Il glossari general per la seria da documents Em002 sa chatta en Em002-6 OSS-FAQ. + +Ulteriurs terms sa chattan en la https://www.bk.admin.ch/bk/de/home/dokumentation/sprachen/termdat.html[banca da datas terminologica TERMDAT da l'administraziun federala]. + +include::partials/glossary.rm.adoc[tags=gloss-em002-7] +endif::[] diff --git a/docs/em002.adoc b/docs/em002.adoc new file mode 100644 index 0000000..e6fd90c --- /dev/null +++ b/docs/em002.adoc @@ -0,0 +1,1335 @@ +:lang: en +ifeval::["{lang}" == "en"] += Em002 Strategic Guidelines for Open Source Software in the Federal Administration +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Em002 Linee guida strategiche per il software open source nell'Amministrazione federale +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Em002 Directivas strategicas per software open source en l'administraziun federala +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// The Confederation logo in colour. open-govpress falls back to `black` for any +// value it does not recognise, `colour` being the one synonym it takes, so the +// spelling here is the whole of the choice. +:title-logo-base: color +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// The repository, written as `{url-repo}` throughout the body. open-govpress +// reads nothing here; this is its own documented idiom for an author-defined +// attribute that saves repetition (see the `showcase.adoc` it ships). +:url-repo: https://github.com/swiss/opensource-guidelines +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +NOTE: This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main link:{url-repo}/tree/main[README]. + +''' + +== Introduction + +=== Objective and purpose + +Under Article 9 paragraph 1 of the Federal Act of 17 March 2023footnote:[SR 172.019] on the Use of Electronic Means to Carry Out Official Tasks (EMOTA), public authorities must disclose the source code of software they develop or commission to perform their duties, unless third-party rights or security-relevant reasons preclude or restrict this. This eliminates legal uncertainty regarding the publication of software by federal authorities. + +In recent years, it has become clear that the importance of open source software (OSS) in the Federal Administration has generally continued to increase. + +These strategic guidelines describe the fundamentals of open source software and how this is handled in the Federal Administration. The document sets out six objectives and proposes nine measures to fulfil these. + +It also gives references to other relevant public sector strategies regarding open source. + +=== Background + +In 2005, the Federal IT Strategy Unit (FITSU) published the first version of an OSS strategy for the Federal Administration. At that time, the most important principle was defined as the equal treatment of OSS with closed source software in procurement. + +Since publication in 2005, the prevalence of open source software has steadily increased. Today, according to the Open Source Study Switzerland 2024 report, a clear majority of companies and authorities use open source software in many different areas. In the software industry, very few companies do not work with open source tools and components. + +On 1 February 2019, these Strategic Guidelines for Open Source Software in the Federal Administration and the practical guidelines came into force as Version 1.0. With the enactment of EMOTA and the new obligations under Article 9, it became necessary to align both sets of guidelines with the new status and create additional tools for the federal authorities. + +=== Procedure + +The federal offices are responsible for implementing EMOTA themselves. However, given the growing importance of open source, it was decided to revise the practical guidelines _link:em002-1.pdf[Em002-1]_ together with all stakeholders. Furthermore, additional tools for implementing EMOTA were added. + +The practical guidelines define the necessary concepts, set out the constellations for using open source software, where and how alternatives to existing commercial software can be found, how open source should be procured, what business models exist for open source and what support models are possible when using open source. The other tools provide answers to frequently asked questions and guidance on releasing open source software in accordance with EMOTA. They explore all issues surrounding OSS licences and show how a community can be built around software. Several checklists for guidance and documentation are also made available to federal authorities. + +Documents relating to procurement were also amended, and an additional information sheet [KBB-MB], set of guidelines [BBL-WL] and a checklist [BBL-CL] were drawn up. + +Existing uncertainties are resolved as far as possible with these strategic guidelines, the accompanying practical guidelines and recommendations for action, as well as the additional tools. + +== Reference to other strategies + +These Strategic Guidelines for Open Source Software in the Federal Administration are aligned with four current public sector strategies and EMOTA.footnote:[SR 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/de] These contain a direct or indirect reference to the topic of open source software and IT collaboration among public institutions: + +The *Digital Federal Administration Strategy* [SB001] sets out eight principles and four priorities. By using open source software, the Federal Administration contributes to priority 4, 'Strengthening digital sovereignty'. An open source solution can be reused any number of times and adapted to the individual needs of the Federal Administration due to its open source code. + +The concept of digital sustainability and digital sovereignty also comes up in the **Digital Public Services Switzerland Strategy 2024–2027**footnote:[Digital Public Services Switzerland Strategy 2024–2027: https://www.digital-public-services-switzerland.ch/strategy]. The Confederation and cantons will create appropriate conditions for this multiple use. Basic modules for expanding eGovernment will be 'implemented once and used jointly'. Opting for open source software makes it easier to reuse IT solutions. + +According to the **Digital Switzerland Strategy**footnote:[https://digital.swiss/en/] it is crucial for Switzerland's success in the digital space to strengthen the networking of federal levels. Particular attention should therefore be paid to coordination between the Confederation, cantons and communes as well as cooperation between organisations active in the field of digitalisation throughout Switzerland. The Federal Council also attached particular importance to Switzerland's digital sovereignty as a focus topic for 2023.footnote:[https://digital.swiss/en/strategy/focus-topics/digital-sovereignty] + +In the **Open Government Data Strategy Switzerland (2019–2023)**footnote:[Open Government Data Strategy 2019 – 2023] the Federal Council states that data from the Federal Administration that is not personal and not security-critical should be published according to the Open by Default principle. The Federal Administration has launched the opendata.swiss portal for this purpose.footnote:[https://opendata.swiss/en] Federal offices, cantons, cities and other public organisations have currently published over 11,700 datasets there. + +The Open Government Data Master Plan 2024–2027footnote:[https://www.bfs.admin.ch/asset/en/28425806] implements the Open by Default principle. + +== Governance and tools + +When talking about open source software, a distinction has to be made between *consuming* (using), *contributing* (adding to existing code) and *creating* (i.e. new projects). + +image::./assets/four-cs/four-cs.en.svg[The 4 Cs in the context of OSS] + +Figure 1: The 4 Cs in the context of OSS + +*Collaboration* is also always conceivable in the background. In the case of creation, it must be initiated by the Federal Administration; in the case of contribution, it already exists; and it can also be helpful in the case of consumption (e.g. user group). + +When *consuming* open source software, it should be treated and evaluated as equivalent to proprietary software. + +When *developing* software, open source release is generally mandatory, subject to the exceptions set out in Art. 9 EMOTA (third-party rights and security-relevant reasons). + +These exceptions are addressed in link:em002-2.pdf[Em002-2 Instructions for Publishing OSS]. + +The federal authorities, i.e. the administrative units of the Federal Administration, are themselves responsible for correct compliance; there is no centralised responsibility. + +*Publication* brings added value especially when a *community* of interested parties emerges and works together on the software. If the community collaborates on a project and the Federal Administration allows these contributions, economic benefits and synergy effects are created.footnote:[https://test.bitkom.org/sites/main/files/2023-03/BitkomLeitfadenOpenSourceSoftware31.pdf, Section 4 (in German)] + +In practice, release often consists of not only the source code, but also all other aspects (documentation, governance, build instructions, etc.). + +In principle, the Federal Administration has no obligation to build communities; the legal mandate only requires it to publish the source code. The Federal Administration should prioritise investing in communities where the benefit for the Confederation and third parties is great and the effort is as low as possible. + +Currently, there is no common federal platform for *developing and publishing source code*. Each public authority must therefore select a platform (repository) for publication itself. The practical guidelines in link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software] and the associated checklists define how to work with a platform and which properties it must fulfil. + +The *choice of licence* is dealt with in the OSS Licensing Guidelines link:em002-3.pdf[Em002-3]), which presents a selection of standard licences and explains their uses. The Federal Administration should only use its own licence texts in justified cases according to Art. 9 para. 4 EMOTA. + +When using and developing OSS, **support**footnote:[At least during the lifecycle by way of contracts or a community.] must always be regulated (even if it is waived). The responsible administrative unit regulates this during the release process or when defining the community. EMOTA does not make any provisions here, and no additional financing or personnel will be made available for support. It may make sense to include support and joint further development where the benefit for Swiss authorities or the Swiss economy is considered sufficiently large (ecosystem costs) and/or cost-sharing or cooperation is sought. If the supplier takes this on, its support costs can be covered by the users. + +The *procurement of OSS* is done via the Federal Administration's regular procurement process. The FOBL provides the relevant documents and tools. + +In addition, a _Software procurement and Art. 9 EMOTA information sheet_ is availablefootnote:[Available here (in German): https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html and https://perimap.admin.ch/goto_perimap_file_46835_download.html] _[KBB-MB]_ (see Figure 2). + +Legal and practical considerations mean that under certain circumstances the obligation to release OSS may be transferred to a supplier (during the tender or in operation). The procurement tools and the release process determine how this is to be approached with the supplier. Most of this is achieved by supplementing existing processes, contract drafts and tools. + +The organisational procedure is regulated in link:em002-2.pdf[Em002-2 Instructions for Publishing Open Source Software] and the associated tools. + +*OSS is treated equally to proprietary software under procurement law.* Since no licence fees are incurred for OSS according to the definition of the Open Source Initiative (OSI), software can be downloaded and used in principle without a tender. Only the services to be provided by companies (e.g. support, engineering) are then subject to procurement law and must be put out to tender. + +Where necessary, the relevant aspects from the tools are integrated into the Confederation's project management processes (i.e. HERMES). + +Open development (direct open development on an openly accessible repository) and participation in existing projects (contribution) are also covered in the explanations in link:em002-4.pdf[Em002-4 OSS Community Guidelines]. + +=== Overview of OSS documents + +The following diagram gives an overview of the documents relevant to OSS in the Federal Administration. + +include::partials/document-map.en.adoc[] + +Figure 2: Documents related to Art. 9 EMOTA + +== Objectives + +The following overarching, long-term objectives show how the Federal Administration taps into the potential of open source software and addresses the risks and challenges: + +A) Compliance with legal requirements (i.e. EMOTA):: The release of open source software is governed by Article 9 EMOTA. Compliance with this legal requirement is a key aspect of these guidelines and the associated documents. Federal authorities should comply with this article and maximise the benefits for the Federal Administration and Switzerland. The organisational units themselves are responsible for implementation. + +B) Increase innovation and efficiency:: Open source software serves as the basis of modern IT today. Building on the millions of freely available components and solutions, independent applications can be rapidly developed and operated. The associated time and resource savings and the architectural principles associated with open source software, such as interoperability, agility and microservices, increase the capacity for innovation and efficiency of software development. This in turn accelerates the digitalisation of the Federal Administration. By releasing open source software, the adoption of digital solutions can be accelerated in the federal environment and synergy effects can be utilised. + +C) Promote a culture of collaboration:: Open source software promotes a culture of collaboration in IT through the sharing of source code, open communication and practices for joint further development. These principles can be applied to increase collaboration in IT within the Federal Administration, with the cantons and with other public institutions. This strengthens digital sovereignty and reduces dependencies on software vendors. + +D) Create clarity and minimise risks:: Information on frequently used open source licences should enable the Federal Administration to select the right licences. This minimises legal risks. Technical and legal recommendations enable the Federal Administration to use and release open source software. + +E) Create an overview to utilise synergies:: Open source software is currently used in numerous places within the Federal Administration in different ways. A lot of knowledge and experience is available, but the synergies cannot yet be utilised as there is no overview of the open source solutions in use. Such an overview and the joint procurement of services will make it possible to better exploit the potential of open source software, which saves resources and creates synergies. + +F) Increase attractiveness as an IT employer:: Open source software is popular with many highly qualified IT professionals. The use of modern open source technologies and the application of open source development methods motivate many employees and increase the attractiveness of the Federal Administration as an employer. To use open source software, the Confederation needs specialists with knowledge and experience of open source software, so efforts should be made when recruiting specialists to expand internal open source know-how. + +== Measures + +The following measures are intended to help achieve the objectives outlined above. The measures will be supplemented or replaced in due course and adapted to changed circumstances. + +The following overview illustrates how the objectives are linked to the corresponding measures. These support implementation of the respective objectives but they may also have an impact on other objectives. + +A) Compliance with legal requirements (EMOTA):: +1) Implement the _Practical Guidelines for Open Source Software in the Federal Administration link:em002-1.pdf[Em002-1]_ + +2) Implement the _Instructions for Publishing Open Source Software link:em002-2.pdf[Em002-2]_ and the tools derived from that. + +3) Procurement authorities build up open source know-how and thus support the Federal Administration. + +B) Increase innovation and efficiency:: +1) Implement the _Practical Guidelines for Open Source Software in the Federal Administration link:em002-1.pdf[Em002-1]_ + +3) The procurement authorities can deal with open source and optimally support Art. 9 EMOTA. + +8) Promote community building + +C) Promote a culture of collaboration:: +1) Implement the _Practical Guidelines for Open Source Software in the Federal Administration link:em002-1.pdf[Em002-1]_ + +4) Promote knowledge and experience exchange + +8) Promote community building + +9) Examine the possibility of establishing own publication platform; promote Open Development + +D) Create clarity and minimise risks:: +1) Implement the _Practical Guidelines for Open Source Software in the Federal Administration link:em002-1.pdf[Em002-1]_ + +2) Implement the _Instructions for Publishing Open Source Software link:em002-2.pdf[Em002-2]_ and the tools derived from that. + +E) Create an overview to utilise synergies:: +6) Implement joint procurement of services + +7) Create an overview of open source software used, released and co-developed + +8) Promote community building + +F) Increase attractiveness as an IT employer:: +5) Promote and communicate an open source culture + +8) Promote community building + +=== Description of the measures + +Measure 1: Implement the _Practical Guidelines for Open Source Software in the Federal Administration link:em002-1.pdf[Em002-1]_.:: +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 link:em002-6.pdf[EM002-6 FAQ about Publishing OSS (OSS-FAQ)] are available. + +Measure 2: Implement the Instructions for Publishing Open Source Software link:em002-2.pdf[Em002-2] 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 link:em002-7.pdf[Em002-7 Strategic Aspects of Procurement and OSS] 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 link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[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 link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[Open Source in Procurement Guidelines] [BBL-WL] and the link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[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.footnote:[Technology radars should be used as widely as possible. This means, if possible, at the level of the federal authorities or even the Federal Administration.] 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.footnote:[This concerns support for the software in use. Third party support for software released under EMOTA is possible and may be charged for. This is covered in link:em002-4.pdf[Em002-4 OSS Community Guidelines.]] + +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 repository (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). + +== Annexes + +=== Changes from previous version + +* Minor editorial changes and improvements. +* Factsheet Em002-5 has been replaced by the OSS tools information sheet'. +* A new addition is the document '`link:em002-7.pdf[Em002-7 Procurement and OSS]`'. +* New diagram depicting the 4 Cs in the context of OSS (addition of 'collaboration'). +* New FOBL and CCPP references. + +=== References for OSS tools + +The following references list the documents relating to the document set for link:em002.pdf[Em002 Tools for Open Source Software] in the Federal Administration. + +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 (link:https://github.com/kanton-bern/oss[https://github.com/kanton-bern/oss]). + +The current Em002 documents are published on the OSS resources page of the Federal Chancellery. https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software.html. + +The English version is also published as markdown on GitHub. Feedback can also be given there. {url-repo} + +include::partials/references.en.adoc[tags=ref-em002-tools] + +Visual overview of OSS tools: + +include::partials/document-map.en.adoc[] + +Figure 3: Documents in connection with Art. 9 EMOTA + +=== General references + +All references to the Em002 document set can be found here *in Em002 Strategic Guidelines [Em002*]. + +include::partials/references.en.adoc[tags=ref-em002-general] + +=== Abbreviations + +This list of abbreviations contains all the abbreviations used in the OSS Em002 document set. A glossary can be found in link:em002-6.pdf[Em002-6 FAQ about Publishing OSS]. + +[horizontal] +include::partials/abbreviations.en.adoc[tags=abbr-em002] +endif::[] + +ifeval::["{lang}" == "de"] +NOTE: Dieses Dokument ist ein laufend weiterentwickelter Entwurf und Teil der Hilfsmittel, welche die Bundesverwaltung bei der Veröffentlichung von Open-Source-Code unterstützen. Weitere Informationen finden Sie im link:{url-repo}/tree/main[README]. + +''' + +== Einleitung + +=== Ziel und Zweck + +Nach Artikel 9 Absatz 1 des Bundesgesetzes vom 17. März 2023footnote:[SR 172.019] über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG) müssen Behörden den Quellcode von Software offenlegen, die sie zur Erfüllung ihrer Aufgaben entwickeln oder entwickeln lassen, sofern nicht Rechte Dritter oder sicherheitsrelevante Gründe dies ausschliessen oder einschränken. Damit entfällt die Rechtsunsicherheit bei der Veröffentlichung von Software durch Bundesbehörden. + +In den vergangenen Jahren hat sich gezeigt, dass die Bedeutung von Open-Source-Software (OSS) in der Bundesverwaltung insgesamt weiter zugenommen hat. + +Diese strategischen Leitlinien beschreiben die Grundlagen von Open-Source-Software und den Umgang damit in der Bundesverwaltung. Das Dokument legt sechs Ziele fest und schlägt neun Massnahmen zu deren Erfüllung vor. + +Es verweist zudem auf weitere relevante Strategien der öffentlichen Hand zum Thema Open Source. + +=== Ausgangslage + +2005 veröffentlichte das Informatiksteuerungsorgan des Bundes (ISB) die erste Fassung einer OSS-Strategie für die Bundesverwaltung. Als wichtigster Grundsatz wurde damals die Gleichbehandlung von OSS mit Closed-Source-Software bei der Beschaffung festgelegt. + +Seit der Veröffentlichung 2005 hat die Verbreitung von Open-Source-Software stetig zugenommen. Heute nutzt gemäss dem Bericht «Open Source Studie Schweiz 2024» eine deutliche Mehrheit der Unternehmen und Behörden Open-Source-Software in vielen unterschiedlichen Bereichen. In der Softwarebranche gibt es nur sehr wenige Unternehmen, die nicht mit Open-Source-Werkzeugen und -Komponenten arbeiten. + +Am 1. Februar 2019 traten diese Strategischen Leitlinien für Open-Source-Software in der Bundesverwaltung sowie der Praxisleitfaden als Version 1.0 in Kraft. Mit dem Erlass des EMBAG und den neuen Pflichten nach Artikel 9 wurde es notwendig, beide Dokumente auf den neuen Stand zu bringen und zusätzliche Hilfsmittel für die Bundesbehörden zu schaffen. + +=== Vorgehen + +Für die Umsetzung des EMBAG sind die Bundesämter selbst verantwortlich. Angesichts der wachsenden Bedeutung von Open Source wurde jedoch entschieden, den Praxisleitfaden _link:em002-1.pdf[Em002-1]_ gemeinsam mit allen Anspruchsgruppen zu überarbeiten. Zudem wurden zusätzliche Hilfsmittel für die Umsetzung des EMBAG ergänzt. + +Der Praxisleitfaden definiert die notwendigen Begriffe, legt die Konstellationen für den Einsatz von Open-Source-Software dar, zeigt, wo und wie Alternativen zu bestehender kommerzieller Software gefunden werden können, wie Open Source beschafft werden soll, welche Geschäftsmodelle es für Open Source gibt und welche Supportmodelle beim Einsatz von Open Source möglich sind. Die weiteren Hilfsmittel beantworten häufig gestellte Fragen und geben Anleitung zur Freigabe von Open-Source-Software nach EMBAG. Sie behandeln sämtliche Fragen rund um OSS-Lizenzen und zeigen, wie eine Community um eine Software aufgebaut werden kann. Mehrere Checklisten zur Orientierung und Dokumentation stehen den Bundesbehörden ebenfalls zur Verfügung. + +Auch die Dokumente zur Beschaffung wurden angepasst, und es wurden ein zusätzliches Merkblatt [KBB-MB], eine Wegleitung [BBL-WL] sowie eine Checkliste [BBL-CL] erarbeitet. + +Bestehende Unsicherheiten werden mit diesen strategischen Leitlinien, dem begleitenden Praxisleitfaden und den Handlungsempfehlungen sowie den zusätzlichen Hilfsmitteln so weit wie möglich ausgeräumt. + +== Bezug zu anderen Strategien + +Diese Strategischen Leitlinien für Open-Source-Software in der Bundesverwaltung sind auf vier aktuelle Strategien der öffentlichen Hand und auf das EMBAG abgestimmt.footnote:[SR 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/de] Diese enthalten einen direkten oder indirekten Bezug zum Thema Open-Source-Software und zur IT-Zusammenarbeit zwischen öffentlichen Institutionen: + +Die *Strategie Digitale Bundesverwaltung* [SB001] legt acht Grundsätze und vier Schwerpunkte fest. Mit dem Einsatz von Open-Source-Software leistet die Bundesverwaltung einen Beitrag zum Schwerpunkt 4 «Digitale Souveränität stärken». Eine Open-Source-Lösung kann beliebig oft wiederverwendet und aufgrund ihres offenen Quellcodes an die individuellen Bedürfnisse der Bundesverwaltung angepasst werden. + +Der Gedanke der digitalen Nachhaltigkeit und der digitalen Souveränität kommt auch in der **Strategie Digitale Verwaltung Schweiz 2024–2027**footnote:[Strategie Digitale Verwaltung Schweiz 2024–2027: https://www.digital-public-services-switzerland.ch/strategy] zum Tragen. Bund und Kantone schaffen für diese Mehrfachnutzung geeignete Rahmenbedingungen. Basismodule für den Ausbau von E-Government werden «einmal umgesetzt und gemeinsam genutzt». Die Wahl von Open-Source-Software erleichtert die Wiederverwendung von IT-Lösungen. + +Gemäss der **Strategie Digitale Schweiz**footnote:[https://digital.swiss/de/] ist es für den Erfolg der Schweiz im digitalen Raum entscheidend, die Vernetzung der föderalen Ebenen zu stärken. Besonderes Augenmerk ist daher auf die Koordination zwischen Bund, Kantonen und Gemeinden sowie auf die Zusammenarbeit zwischen den schweizweit im Bereich der Digitalisierung tätigen Organisationen zu legen. Der Bundesrat mass zudem der digitalen Souveränität der Schweiz als Fokusthema 2023 besondere Bedeutung bei.footnote:[https://digital.swiss/de/strategie/fokusthemen/digitale-souveraenitaet] + +In der **Strategie Open Government Data Schweiz (2019–2023)**footnote:[Strategie Open Government Data 2019 – 2023] hält der Bundesrat fest, dass Daten der Bundesverwaltung, die nicht personenbezogen und nicht sicherheitskritisch sind, nach dem Grundsatz Open by Default veröffentlicht werden sollen. Die Bundesverwaltung hat hierfür das Portal opendata.swiss lanciert.footnote:[https://opendata.swiss/de] Bundesämter, Kantone, Städte und weitere öffentliche Organisationen haben dort derzeit über 11 700 Datensätze veröffentlicht. + +Der Masterplan Open Government Data 2024–2027footnote:[https://www.bfs.admin.ch/asset/de/28425806] setzt den Grundsatz Open by Default um. + +== Governance und Hilfsmittel + +Wenn von Open-Source-Software die Rede ist, muss zwischen *Consuming* (Nutzen), *Contributing* (Beitragen zu bestehendem Code) und *Creating* (also neuen Projekten) unterschieden werden. + +image::./assets/four-cs/four-cs.de.svg[Die 4 C im Kontext von OSS] + +Abbildung 1: Die 4 C im Kontext von OSS + +*Collaboration* ist zudem stets im Hintergrund denkbar. Beim Creating muss sie von der Bundesverwaltung angestossen werden, beim Contributing besteht sie bereits, und beim Consuming kann sie ebenfalls hilfreich sein (z. B. Anwendergruppe). + +Beim *Consuming* von Open-Source-Software soll diese gleichwertig zu proprietärer Software behandelt und bewertet werden. + +Beim *Entwickeln* von Software ist die Open-Source-Freigabe grundsätzlich obligatorisch, vorbehältlich der in Art. 9 EMBAG festgelegten Ausnahmen (Rechte Dritter und sicherheitsrelevante Gründe). + +Diese Ausnahmen werden in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] behandelt. + +Die Bundesbehörden, also die Verwaltungseinheiten der Bundesverwaltung, sind selbst für die korrekte Einhaltung verantwortlich; es gibt keine zentrale Zuständigkeit. + +Die *Veröffentlichung* bringt insbesondere dann Mehrwert, wenn eine *Community* von Interessierten entsteht und gemeinsam an der Software arbeitet. Arbeitet die Community an einem Projekt mit und lässt die Bundesverwaltung diese Beiträge zu, so entstehen wirtschaftlicher Nutzen und Synergieeffekte.footnote:[https://test.bitkom.org/sites/main/files/2023-03/BitkomLeitfadenOpenSourceSoftware31.pdf, Kapitel 4] + +In der Praxis umfasst die Freigabe oft nicht nur den Quellcode, sondern auch alle weiteren Aspekte (Dokumentation, Governance, Build-Anleitungen usw.). + +Grundsätzlich besteht für die Bundesverwaltung keine Pflicht, Communities aufzubauen; der gesetzliche Auftrag verlangt lediglich die Veröffentlichung des Quellcodes. Die Bundesverwaltung sollte vorrangig dort in Communities investieren, wo der Nutzen für den Bund und für Dritte gross und der Aufwand möglichst gering ist. + +Derzeit gibt es keine gemeinsame Plattform des Bundes für das *Entwickeln und Veröffentlichen von Quellcode*. Jede Behörde muss daher selbst eine Plattform (Repository) für die Veröffentlichung wählen. Der Praxisleitfaden in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] und die zugehörigen Checklisten legen fest, wie mit einer Plattform zu arbeiten ist und welche Eigenschaften sie erfüllen muss. + +Die *Lizenzwahl* wird im Leitfaden OSS-Lizenzierung link:em002-3.pdf[Em002-3]) behandelt, der eine Auswahl von Standardlizenzen vorstellt und deren Einsatz erläutert. Eigene Lizenztexte soll die Bundesverwaltung nur in begründeten Fällen nach Art. 9 Abs. 4 EMBAG verwenden. + +Beim Einsatz und bei der Entwicklung von OSS ist der **Support**footnote:[Mindestens während des Lebenszyklus mittels Verträgen oder einer Community.] stets zu regeln (auch wenn darauf verzichtet wird). Die zuständige Verwaltungseinheit regelt dies im Freigabeprozess oder bei der Definition der Community. Das EMBAG macht hierzu keine Vorgaben, und es werden keine zusätzlichen Finanzmittel oder Personalressourcen für den Support bereitgestellt. Es kann sinnvoll sein, Support und gemeinsame Weiterentwicklung einzubeziehen, wo der Nutzen für Schweizer Behörden oder die Schweizer Wirtschaft als ausreichend gross erachtet wird (Ökosystemkosten) und/oder eine Kostenteilung oder Zusammenarbeit angestrebt wird. Übernimmt dies der Lieferant, so können seine Supportkosten von den Nutzenden getragen werden. + +Die *Beschaffung von OSS* erfolgt über den regulären Beschaffungsprozess der Bundesverwaltung. Das BBL stellt die entsprechenden Dokumente und Hilfsmittel bereit. + +Zusätzlich steht ein _Merkblatt zur Softwarebeschaffung und Art. 9 EMBAG_ zur Verfügungfootnote:[Verfügbar unter: https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html und https://perimap.admin.ch/goto_perimap_file_46835_download.html] _[KBB-MB]_ (siehe Abbildung 2). + +Rechtliche und praktische Überlegungen führen dazu, dass die Pflicht zur OSS-Freigabe unter Umständen an einen Lieferanten übertragen werden kann (bei der Ausschreibung oder im Betrieb). Die Beschaffungshilfsmittel und der Freigabeprozess bestimmen, wie dies mit dem Lieferanten anzugehen ist. Dies wird grösstenteils durch Ergänzungen bestehender Prozesse, Vertragsentwürfe und Hilfsmittel erreicht. + +Das organisatorische Vorgehen ist in link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software] und den zugehörigen Hilfsmitteln geregelt. + +*OSS wird beschaffungsrechtlich gleich behandelt wie proprietäre Software.* Da für OSS nach der Definition der Open Source Initiative (OSI) keine Lizenzgebühren anfallen, kann Software grundsätzlich ohne Ausschreibung heruntergeladen und genutzt werden. Nur die von Unternehmen zu erbringenden Leistungen (z. B. Support, Engineering) unterstehen dann dem Beschaffungsrecht und müssen ausgeschrieben werden. + +Wo nötig, werden die relevanten Aspekte aus den Hilfsmitteln in die Projektmanagementprozesse des Bundes (also HERMES) integriert. + +Open Development (direkte offene Entwicklung auf einem öffentlich zugänglichen Repository) und die Beteiligung an bestehenden Projekten (Contribution) werden ebenfalls in den Erläuterungen in link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] behandelt. + +=== Übersicht über die OSS-Dokumente + +Die folgende Grafik gibt einen Überblick über die für OSS relevanten Dokumente in der Bundesverwaltung. + +include::partials/document-map.de.adoc[] + +Abbildung 2: Dokumente im Zusammenhang mit Art. 9 EMBAG + +== Ziele + +Die folgenden übergeordneten, langfristigen Ziele zeigen, wie die Bundesverwaltung das Potenzial von Open-Source-Software nutzt und die Risiken und Herausforderungen angeht: + +A) Einhaltung der gesetzlichen Vorgaben (also des EMBAG):: Die Freigabe von Open-Source-Software richtet sich nach Artikel 9 EMBAG. Die Einhaltung dieser gesetzlichen Vorgabe ist ein zentraler Aspekt dieser Leitlinien und der zugehörigen Dokumente. Die Bundesbehörden sollen diesen Artikel einhalten und den Nutzen für die Bundesverwaltung und die Schweiz maximieren. Für die Umsetzung sind die Organisationseinheiten selbst verantwortlich. + +B) Innovation und Effizienz steigern:: Open-Source-Software bildet heute die Grundlage moderner IT. Aufbauend auf den Millionen frei verfügbarer Komponenten und Lösungen lassen sich eigenständige Anwendungen rasch entwickeln und betreiben. Die damit verbundenen Zeit- und Ressourceneinsparungen sowie die mit Open-Source-Software verbundenen Architekturprinzipien wie Interoperabilität, Agilität und Microservices steigern die Innovationsfähigkeit und Effizienz der Softwareentwicklung. Dies wiederum beschleunigt die Digitalisierung der Bundesverwaltung. Durch die Freigabe von Open-Source-Software kann die Übernahme digitaler Lösungen im Bundesumfeld beschleunigt und können Synergieeffekte genutzt werden. + +C) Eine Kultur der Zusammenarbeit fördern:: Open-Source-Software fördert durch das Teilen von Quellcode, offene Kommunikation und Praktiken der gemeinsamen Weiterentwicklung eine Kultur der Zusammenarbeit in der IT. Diese Grundsätze lassen sich anwenden, um die Zusammenarbeit in der IT innerhalb der Bundesverwaltung, mit den Kantonen und mit weiteren öffentlichen Institutionen zu verstärken. Dies stärkt die digitale Souveränität und verringert Abhängigkeiten von Softwareanbietern. + +D) Klarheit schaffen und Risiken minimieren:: Informationen zu häufig verwendeten Open-Source-Lizenzen sollen es der Bundesverwaltung ermöglichen, die richtigen Lizenzen auszuwählen. Dies minimiert rechtliche Risiken. Technische und rechtliche Empfehlungen befähigen die Bundesverwaltung, Open-Source-Software zu nutzen und freizugeben. + +E) Übersicht schaffen, um Synergien zu nutzen:: Open-Source-Software wird derzeit an zahlreichen Stellen innerhalb der Bundesverwaltung auf unterschiedliche Weise eingesetzt. Es ist viel Wissen und Erfahrung vorhanden, doch die Synergien lassen sich noch nicht nutzen, da eine Übersicht über die eingesetzten Open-Source-Lösungen fehlt. Eine solche Übersicht und die gemeinsame Beschaffung von Leistungen werden es ermöglichen, das Potenzial von Open-Source-Software besser auszuschöpfen, was Ressourcen spart und Synergien schafft. + +F) Attraktivität als IT-Arbeitgeber steigern:: Open-Source-Software ist bei vielen hoch qualifizierten IT-Fachpersonen beliebt. Der Einsatz moderner Open-Source-Technologien und die Anwendung von Open-Source-Entwicklungsmethoden motivieren viele Mitarbeitende und steigern die Attraktivität der Bundesverwaltung als Arbeitgeberin. Für den Einsatz von Open-Source-Software benötigt der Bund Fachpersonen mit Wissen und Erfahrung im Bereich Open-Source-Software; bei der Rekrutierung von Fachpersonen sollte daher darauf hingewirkt werden, das interne Open-Source-Know-how auszubauen. + +== Massnahmen + +Die folgenden Massnahmen sollen zur Erreichung der oben dargelegten Ziele beitragen. Die Massnahmen werden zu gegebener Zeit ergänzt oder ersetzt und an veränderte Gegebenheiten angepasst. + +Die folgende Übersicht veranschaulicht, wie die Ziele mit den entsprechenden Massnahmen verknüpft sind. Diese unterstützen die Umsetzung der jeweiligen Ziele, können sich aber auch auf andere Ziele auswirken. + +A) Einhaltung der gesetzlichen Vorgaben (EMBAG):: +1) Den _Praxisleitfaden für Open-Source-Software in der Bundesverwaltung link:em002-1.pdf[Em002-1]_ umsetzen + +2) Die _Anleitung zur Veröffentlichung von Open-Source-Software link:em002-2.pdf[Em002-2]_ und die daraus abgeleiteten Hilfsmittel umsetzen. + +3) Die Beschaffungsstellen bauen Open-Source-Know-how auf und unterstützen damit die Bundesverwaltung. + +B) Innovation und Effizienz steigern:: +1) Den _Praxisleitfaden für Open-Source-Software in der Bundesverwaltung link:em002-1.pdf[Em002-1]_ umsetzen + +3) Die Beschaffungsstellen können mit Open Source umgehen und Art. 9 EMBAG optimal unterstützen. + +8) Den Aufbau von Communities fördern + +C) Eine Kultur der Zusammenarbeit fördern:: +1) Den _Praxisleitfaden für Open-Source-Software in der Bundesverwaltung link:em002-1.pdf[Em002-1]_ umsetzen + +4) Den Wissens- und Erfahrungsaustausch fördern + +8) Den Aufbau von Communities fördern + +9) Die Möglichkeit einer eigenen Veröffentlichungsplattform prüfen; Open Development fördern + +D) Klarheit schaffen und Risiken minimieren:: +1) Den _Praxisleitfaden für Open-Source-Software in der Bundesverwaltung link:em002-1.pdf[Em002-1]_ umsetzen + +2) Die _Anleitung zur Veröffentlichung von Open-Source-Software link:em002-2.pdf[Em002-2]_ und die daraus abgeleiteten Hilfsmittel umsetzen. + +E) Übersicht schaffen, um Synergien zu nutzen:: +6) Die gemeinsame Beschaffung von Leistungen umsetzen + +7) Eine Übersicht über eingesetzte, freigegebene und mitentwickelte Open-Source-Software schaffen + +8) Den Aufbau von Communities fördern + +F) Attraktivität als IT-Arbeitgeber steigern:: +5) Eine Open-Source-Kultur fördern und kommunizieren + +8) Den Aufbau von Communities fördern + +=== Beschreibung der Massnahmen + +Massnahme 1: Den _Praxisleitfaden für Open-Source-Software in der Bundesverwaltung link:em002-1.pdf[Em002-1]_ umsetzen.:: +Obwohl der Begriff Open-Source-Software bereits über 20 Jahre alt ist, führen die stetige Verbreitung von Open-Source-Software und die laufende Entwicklung von Anwendungsszenarien fortwährend zu neuen Praktiken und Fragen. Neu- und Weiterentwicklungen von Open-Source-Lösungen bilden zudem immer häufiger vollwertige Alternativen zu proprietärer Software. Mit dem EMBAG kommt die Pflicht zur Veröffentlichung von Eigenentwicklungen hinzu. ++ +Der _Praxisleitfaden für Open-Source-Software in der Bundesverwaltung_ gibt einen Überblick und eine Einführung in das Thema, zeigt die Vor- und Nachteile von Open-Source-Software auf und erläutert alle weiteren Hilfsmittel. Er enthält zudem Best Practices, bewährte Alternativen und praktische Empfehlungen dazu, wie die Bundesverwaltung mit Open-Source-Software umgehen soll. ++ +Dieser Praxisleitfaden und die weiteren Hilfsmittel sollen von den Bundesbehörden im Umgang mit Open-Source-Software und Freigaben genutzt und umgesetzt werden. ++ +Als kurze Einführung in das Thema stehen ein _Merkblatt zur Anwendung von Art. 9 EMBAG_ sowie link:em002-6.pdf[Em002-6 FAQ zur Veröffentlichung von OSS (OSS-FAQ)] zur Verfügung. + +Massnahme 2: Die Anleitung zur Veröffentlichung von Open-Source-Software link:em002-2.pdf[Em002-2] und die daraus abgeleiteten Hilfsmittel umsetzen.:: +Der effiziente Einsatz von OSS in der Softwareentwicklung erfordert oft Beiträge in Form von Fehlerbehebungen und funktionalen Erweiterungen. Mit dem EMBAG besteht zudem eine Pflicht zur Freigabe selbst erstellter Software. Die nötige Orientierung bieten verschiedene Hilfsmittel. ++ +Die Checklisten sind Teil der Anleitung zur Veröffentlichung von OSS. Sie sollen ergänzend zu den entsprechenden Richtlinien der Verwaltungseinheiten vor und während der Entwicklung eingesetzt werden. ++ +Behandelt wird auch der Umgang mit Legacy-Code nach Art. 9 EMBAG. Ziel ist es, pragmatische Lösungen zu finden und umzusetzen. ++ +Lizenzen sind im OSS-Umfeld besonders wichtig. Bei der Freigabe, Beschaffung und Nutzung von Software müssen die Lizenzen auf das rechtlich Machbare und die gewünschte Wirkung abgestimmt werden. Das nötige Wissen und die entsprechenden Entscheide sollen dokumentiert werden. In diesem Zusammenhang werden auch die erforderlichen Zusatzdokumente wie das Contributor Licence Agreement (CLA) bereitgestellt. ++ +Um die Anwendung von Art. 9 EMBAG zu erleichtern, werden Ergänzungen an der Projektmanagementmethode des Bundes (HERMES) vorgenommen. Die Verwaltungseinheiten sollen die notwendigen Hilfsmittel im regulären Prozess vorfinden. + +Massnahme 3: Die Beschaffungsstellen bauen Open-Source-Know-how auf und unterstützen damit die Bundesverwaltung.:: +Für die Beschaffungsaspekte wurde das neue link:em002-7.pdf[Em002-7 Strategische Aspekte der Beschaffung und OSS] erstellt. ++ +Zur Sicherstellung eines breiten Wettbewerbs verlangt die Beschaffung, dass Open- und Closed-Source-Software gleich behandelt werden. Die erhöhten Anforderungen im Zusammenhang mit Art. 9 EMBAG bezüglich der für die Softwareveröffentlichung zu beschaffenden Mittel sind zu berücksichtigen. ++ +Das Kompetenzzentrum Beschaffungswesen Bund (KBB) hat unter folgendem Link ein Merkblatt zur Softwarebeschaffung und Art. 9 EMBAG [KBB-MB] veröffentlicht: link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html]. ++ +Weitere Unterstützung steht im BBL-Intranet (nur aus dem Bundesnetz zugänglich) mit der link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[Wegleitung Open Source in der Beschaffung] [BBL-WL] und der link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[Checkliste Integral-Ausnahme Art. 9 EMBAG] [BBL-CL] zur Verfügung. + +Massnahme 4: Den Wissens- und Erfahrungsaustausch fördern:: +Das Erstellen und Nutzen von Open-Source-Software erfordert vertieftes, spezialisiertes Know-how. Gleichzeitig entwickeln sich Open-Source-Lösungen laufend weiter und es werden neue Open-Source-Projekte lanciert. Es ist daher eine Herausforderung, einen umfassenden Überblick über aktuelle Trends und Technologien zu behalten. ++ +Um den professionellen Einsatz von Open Source zu fördern und den Wissens- und Erfahrungsaustausch zu erleichtern, sollen Informationen innerhalb einer erweiterten Interessengemeinschaft geteilt und die Mitarbeitenden innerhalb der Bundesverwaltung kompetent unterstützt werden. + +Massnahme 5: Eine Open-Source-Kultur fördern und kommunizieren:: +Die fortschreitende Digitalisierung hat den Fachkräftemangel in der IT weiter verschärft. Dies erschwert auch den Leistungserbringern der Bundesverwaltung die Rekrutierung von qualifiziertem IT-Personal. Der Einsatz von Open-Source-Software und die damit verbundene Entwicklerkultur sind bekanntermassen ein Argument für Fachpersonen, sich auf solche Stellen zu bewerben. ++ +Um in der Öffentlichkeit als «Open-Source-freundliche» Arbeitgeberin wahrgenommen zu werden, sollen die verschiedenen Massnahmen und die eingesetzten Open-Source-Lösungen aktiv in Form eines Technologieradars kommuniziert werden.footnote:[Technologieradare sollen möglichst breit eingesetzt werden. Das heisst, wenn möglich auf Stufe der Bundesbehörden oder gar der Bundesverwaltung.] Für die Arbeitgeberattraktivität ist es zudem wichtig, Bundesangestellten zu erlauben, zu bestehender Open-Source-Software beizutragen. + +Massnahme 6: Die gemeinsame Beschaffung von Leistungen umsetzen:: +Wartung und Support von Open-Source-Software werden derzeit von internen Mitarbeitenden der Bundesverwaltung erbracht, während externe Lieferanten für bestimmte Open-Source-Lösungen Leistungen anbieten. Diese Leistungen werden häufig von den jeweiligen Ämtern eigenständig beschafft, was zu Doppelspurigkeiten und den damit verbundenen finanziellen Einbussen führen kann. ++ +Die gemeinsame Beschaffung von Leistungen für Open-Source-Software soll die Zuverlässigkeit von Wartung und Support im Betrieb erhöhen und den Einsatz von Open-Source-Lösungen vereinfachen. Auf Basis des Technologieradars (siehe Massnahme 5) sollen Leistungen für die am weitesten verbreiteten Open-Source-Systeme und -Technologien zentral beschafft werden. Diese Leistungen können anschliessend von allen Ämtern nach Bedarf bezogen werden.footnote:[Dies betrifft den Support für die eingesetzte Software. Support durch Dritte für nach EMBAG freigegebene Software ist möglich und kann verrechnet werden. Dies wird in link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] behandelt.] + +Massnahme 7: Eine Übersicht über eingesetzte, freigegebene und mitentwickelte Open-Source-Software schaffen.:: +Da beim Einsatz von Open-Source-Software keine Lizenzen gekauft werden müssen, entfällt oft der aufwendige Beschaffungsprozess. ++ +Dies erschwert die Nachverfolgung, wo die Bundesverwaltung welche Open-Source-Software einsetzt. Dadurch kann das Potenzial von Open-Source-Software – etwa die Nutzung von Synergien, die Bildung von Communities für den Erfahrungsaustausch usw. – nicht voll ausgeschöpft werden. ++ +Ein Technologieradar innerhalb der Bundesverwaltung soll einen Überblick darüber geben, wo welche Open-Source-Software eingesetzt wird und wer über welches Know-how verfügt. + +Massnahme 8: Den Aufbau von Communities fördern:: +Der Aufbau von und die Beteiligung an Communities für die Projektentwicklung sind für OSS sehr wichtig. Daraus ergeben sich erhebliche Synergien. Es kann sein, dass das Projekt bereits besteht und der Bund sich lediglich beteiligt, oder der Bund kann das Projekt leiten, oder es kann sich auch um eine Zusammenarbeit handeln. Auf eine Community zu verzichten, ist ebenfalls ein wichtiger Entscheid. Die direkte Entwicklung auf einem offenen Repository (ohne nachträgliche Freigabe) kann weitere Effizienzgewinne bringen und die gemeinsame Entwicklung fördern. Em002-4 bietet Orientierung und Motivation für den Aufbau von Communities durch die Bundesbehörden. + +Massnahme 9: Die Möglichkeit einer eigenen Veröffentlichungsplattform prüfen; Open Development fördern:: +Der Aufbau und Betrieb einer internen oder schweizerischen Veröffentlichungsplattform wird geprüft und nach einem entsprechenden Entscheid umgesetzt. ++ +Ziel einer eigenständigen Plattform für die Bundesverwaltung ist die Wahrung der digitalen Souveränität und Unabhängigkeit. Die Zusammenarbeit wird vereinfacht und gleichzeitig entsteht eine Übersicht über die Aktivitäten. ++ +Eine föderale Zusammenarbeit über alle Behörden der Schweiz hinweg (ähnlich opencode.de) wird geprüft (z. B. DVS oder eOperations Schweiz). + +== Anhänge + +=== Änderungen gegenüber der Vorversion + +* Kleinere redaktionelle Änderungen und Verbesserungen. +* Das Faktenblatt Em002-5 wurde durch das Merkblatt OSS-Hilfsmittel ersetzt. +* Neu hinzugekommen ist das Dokument «`link:em002-7.pdf[Em002-7 Beschaffung und OSS]`». +* Neue Grafik mit den 4 C im Kontext von OSS (Ergänzung um «Collaboration»). +* Neue Verweise auf BBL und KBB. + +=== Referenzen zu den OSS-Hilfsmitteln + +Die folgende Referenzliste führt die Dokumente zum Dokumentensatz link:em002.pdf[Em002 Hilfsmittel für Open-Source-Software] in der Bundesverwaltung auf. + +NOTE: Die Hilfsmittel und insbesondere die Checklisten beruhen teilweise auf den *OSS-Dokumenten des Kantons Bern*, die unter einer BSD3-Lizenz veröffentlicht sind (link:https://github.com/kanton-bern/oss[https://github.com/kanton-bern/oss]). + +Die aktuellen Em002-Dokumente werden auf der Seite OSS-Hilfsmittel der Bundeskanzlei veröffentlicht. https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software.html. + +Die Dokumente werden zudem auf GitHub veröffentlicht. Dort kann auch Rückmeldung gegeben werden. {url-repo} + +include::partials/references.de.adoc[tags=ref-em002-tools] + +Visuelle Übersicht über die OSS-Hilfsmittel: + +include::partials/document-map.de.adoc[] + +Abbildung 3: Dokumente im Zusammenhang mit Art. 9 EMBAG + +=== Allgemeine Referenzen + +Alle Referenzen zum Em002-Dokumentensatz finden sich hier *in Em002 Strategische Leitlinien [Em002*]. + +include::partials/references.de.adoc[tags=ref-em002-general] + +=== Abkürzungen + +Dieses Abkürzungsverzeichnis enthält alle im OSS-Dokumentensatz Em002 verwendeten Abkürzungen. Ein Glossar findet sich in link:em002-6.pdf[Em002-6 FAQ zur Veröffentlichung von OSS]. + +[horizontal] +include::partials/abbreviations.de.adoc[tags=abbr-em002] +endif::[] + +ifeval::["{lang}" == "fr"] +NOTE: Le présent document est un projet en cours d'élaboration et fait partie des outils destinés à soutenir l'administration fédérale dans la publication de code open source. Pour de plus amples informations, voir le link:{url-repo}/tree/main[README] principal. + +''' + +== Introduction + +=== But et objet + +Conformément à l'article 9, alinéa 1, de la loi fédérale du 17 mars 2023footnote:[RS 172.019] sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA), les autorités doivent publier le code source des logiciels qu'elles développent ou font développer pour accomplir leurs tâches, pour autant que des droits de tiers ou des motifs relevant de la sécurité ne l'excluent ou ne le restreignent. L'insécurité juridique entourant la publication de logiciels par les autorités fédérales est ainsi levée. + +Ces dernières années ont montré que l'importance des logiciels open source (OSS) au sein de l'administration fédérale n'a globalement cessé de croître. + +Les présentes lignes directrices stratégiques décrivent les fondements des logiciels open source et la manière dont ceux-ci sont traités au sein de l'administration fédérale. Le document fixe six objectifs et propose neuf mesures pour les atteindre. + +Il renvoie en outre à d'autres stratégies pertinentes du secteur public en matière d'open source. + +=== Contexte + +En 2005, l'Unité de pilotage informatique de la Confédération (USIC) a publié la première version d'une stratégie OSS pour l'administration fédérale. Le principe le plus important défini à l'époque était l'égalité de traitement entre les OSS et les logiciels propriétaires lors des acquisitions. + +Depuis cette publication de 2005, la diffusion des logiciels open source n'a cessé de croître. Aujourd'hui, selon le rapport « Étude Open Source Suisse 2024 », une nette majorité des entreprises et des autorités utilisent des logiciels open source dans de très nombreux domaines. Dans le secteur du logiciel, très peu d'entreprises ne travaillent pas avec des outils et des composants open source. + +Le 1er février 2019, les présentes Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale ainsi que le guide pratique sont entrés en vigueur en version 1.0. Avec l'adoption de la LMETA et les nouvelles obligations découlant de son article 9, il est devenu nécessaire d'actualiser ces deux documents et de créer des outils supplémentaires pour les autorités fédérales. + +=== Procédure + +La mise en œuvre de la LMETA incombe aux offices fédéraux eux-mêmes. Compte tenu de l'importance croissante de l'open source, il a toutefois été décidé de réviser le guide pratique _link:em002-1.pdf[Em002-1]_ en concertation avec toutes les parties prenantes. Des outils supplémentaires pour la mise en œuvre de la LMETA ont en outre été ajoutés. + +Le guide pratique définit les notions nécessaires, expose les constellations d'utilisation des logiciels open source, indique où et comment trouver des alternatives aux logiciels commerciaux existants, comment acquérir de l'open source, quels modèles d'affaires existent pour l'open source et quels modèles de support sont possibles lors de son utilisation. Les autres outils répondent aux questions fréquentes et donnent des indications sur la publication de logiciels open source conformément à la LMETA. Ils traitent de toutes les questions relatives aux licences OSS et montrent comment constituer une communauté autour d'un logiciel. Plusieurs listes de contrôle destinées à l'orientation et à la documentation sont également mises à la disposition des autorités fédérales. + +Les documents relatifs aux acquisitions ont eux aussi été adaptés, et un aide-mémoire supplémentaire [KBB-MB], des directives [BBL-WL] et une liste de contrôle [BBL-CL] ont été élaborés. + +Les incertitudes existantes sont levées dans toute la mesure du possible par les présentes lignes directrices stratégiques, le guide pratique qui les accompagne et les recommandations d'action, ainsi que par les outils supplémentaires. + +== Lien avec d'autres stratégies + +Les présentes Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale sont alignées sur quatre stratégies actuelles du secteur public et sur la LMETA.footnote:[RS 172.019 : https://www.fedlex.admin.ch/eli/cc/2023/682/fr] Celles-ci comportent un lien direct ou indirect avec le thème des logiciels open source et de la collaboration informatique entre institutions publiques : + +La *Stratégie Administration fédérale numérique* [SB001] fixe huit principes et quatre priorités. En utilisant des logiciels open source, l'administration fédérale contribue à la priorité 4, « Renforcer la souveraineté numérique ». Une solution open source peut être réutilisée un nombre illimité de fois et adaptée aux besoins propres de l'administration fédérale grâce à son code source ouvert. + +L'idée de durabilité numérique et de souveraineté numérique se retrouve également dans la **Stratégie Administration numérique suisse 2024–2027**footnote:[Stratégie Administration numérique suisse 2024–2027 : https://www.digital-public-services-switzerland.ch/strategy]. La Confédération et les cantons créent des conditions-cadres appropriées pour cette utilisation multiple. Les modules de base destinés au développement de la cyberadministration sont « réalisés une fois et utilisés en commun ». Le choix de logiciels open source facilite la réutilisation des solutions informatiques. + +Selon la **Stratégie Suisse numérique**footnote:[https://digital.swiss/fr/], il est déterminant pour le succès de la Suisse dans l'espace numérique de renforcer la mise en réseau des niveaux fédéraux. Une attention particulière doit donc être portée à la coordination entre la Confédération, les cantons et les communes ainsi qu'à la coopération entre les organisations actives dans le domaine de la numérisation dans toute la Suisse. Le Conseil fédéral a en outre accordé une importance particulière à la souveraineté numérique de la Suisse en tant que thème prioritaire pour 2023.footnote:[https://digital.swiss/fr/strategie/themes-prioritaires/souverainete-numerique] + +Dans la **Stratégie Open Government Data Suisse (2019–2023)**footnote:[Stratégie Open Government Data 2019 – 2023], le Conseil fédéral retient que les données de l'administration fédérale qui ne sont ni personnelles ni critiques pour la sécurité doivent être publiées selon le principe Open by Default. L'administration fédérale a lancé à cet effet le portail opendata.swiss.footnote:[https://opendata.swiss/fr] Des offices fédéraux, des cantons, des villes et d'autres organisations publiques y ont actuellement publié plus de 11 700 jeux de données. + +Le plan directeur Open Government Data 2024–2027footnote:[https://www.bfs.admin.ch/asset/fr/28425806] met en œuvre le principe Open by Default. + +== Gouvernance et outils + +Lorsqu'il est question de logiciels open source, il convient de distinguer entre *consuming* (utiliser), *contributing* (contribuer à du code existant) et *creating* (c'est-à-dire de nouveaux projets). + +image::./assets/four-cs/four-cs.fr.svg[Les 4 C dans le contexte de l'OSS] + +Figure 1 : Les 4 C dans le contexte de l'OSS + +La *collaboration* est en outre toujours envisageable en arrière-plan. Dans le cas du creating, elle doit être initiée par l'administration fédérale ; dans celui du contributing, elle existe déjà ; et dans celui du consuming, elle peut également être utile (p. ex. groupe d'utilisateurs). + +Lors du *consuming* de logiciels open source, ceux-ci doivent être traités et évalués à égalité avec les logiciels propriétaires. + +Lors du *développement* de logiciels, la publication en open source est en principe obligatoire, sous réserve des exceptions prévues à l'art. 9 LMETA (droits de tiers et motifs relevant de la sécurité). + +Ces exceptions sont traitées dans link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS]. + +Les autorités fédérales, c'est-à-dire les unités administratives de l'administration fédérale, sont elles-mêmes responsables du respect correct de ces règles ; il n'existe aucune compétence centralisée. + +La *publication* apporte une plus-value en particulier lorsqu'une *communauté* de personnes intéressées se forme et travaille en commun sur le logiciel. Si la communauté collabore à un projet et que l'administration fédérale admet ces contributions, il en résulte des bénéfices économiques et des effets de synergie.footnote:[https://test.bitkom.org/sites/main/files/2023-03/BitkomLeitfadenOpenSourceSoftware31.pdf, chapitre 4 (en allemand)] + +Dans la pratique, la publication ne porte souvent pas seulement sur le code source, mais aussi sur tous les autres aspects (documentation, gouvernance, instructions de compilation, etc.). + +En principe, l'administration fédérale n'a aucune obligation de constituer des communautés ; le mandat légal exige uniquement la publication du code source. L'administration fédérale devrait investir en priorité dans les communautés là où le bénéfice pour la Confédération et pour des tiers est important et où la charge est la plus faible possible. + +Il n'existe actuellement aucune plateforme fédérale commune pour le *développement et la publication de code source*. Chaque autorité doit donc choisir elle-même une plateforme (dépôt) pour la publication. Le guide pratique figurant dans link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source] et les listes de contrôle correspondantes définissent comment travailler avec une plateforme et quelles caractéristiques celle-ci doit présenter. + +Le *choix de la licence* est traité dans le link:em002-3.pdf[Em002-3 Guide de licences OSS]), qui présente une sélection de licences standard et explique leurs usages. L'administration fédérale ne devrait utiliser ses propres textes de licence que dans des cas justifiés, conformément à l'art. 9, al. 4, LMETA. + +Lors de l'utilisation et du développement d'OSS, le **support**footnote:[Au moins pendant le cycle de vie, au moyen de contrats ou d'une communauté.] doit toujours être réglé (même s'il y est renoncé). L'unité administrative compétente règle ce point dans le processus de publication ou lors de la définition de la communauté. La LMETA ne prévoit rien à ce sujet, et aucun financement ni personnel supplémentaire ne sera mis à disposition pour le support. Il peut être judicieux d'inclure le support et le développement commun là où le bénéfice pour les autorités suisses ou l'économie suisse est jugé suffisamment important (coûts d'écosystème) et/ou lorsqu'un partage des coûts ou une coopération est recherché. Si le fournisseur s'en charge, ses coûts de support peuvent être supportés par les utilisateurs. + +L'*acquisition d'OSS* s'effectue via le processus d'acquisition ordinaire de l'administration fédérale. L'OFCL met à disposition les documents et outils correspondants. + +Un _aide-mémoire sur l'acquisition de logiciels et l'art. 9 LMETA_ est en outre disponiblefootnote:[Disponible ici (en allemand) : https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html et https://perimap.admin.ch/goto_perimap_file_46835_download.html] _[KBB-MB]_ (voir figure 2). + +Des considérations juridiques et pratiques font que l'obligation de publier en OSS peut, dans certaines circonstances, être transférée à un fournisseur (lors de l'appel d'offres ou en exploitation). Les outils d'acquisition et le processus de publication déterminent comment aborder ce point avec le fournisseur. Cela est réalisé pour l'essentiel en complétant les processus, les projets de contrat et les outils existants. + +La procédure organisationnelle est réglée dans link:em002-2.pdf[Em002-2 Instructions pour la publication de logiciels open source] et dans les outils correspondants. + +*Du point de vue du droit des marchés publics, les OSS sont traités à égalité avec les logiciels propriétaires.* Comme aucune redevance de licence n'est due pour les OSS selon la définition de l'Open Source Initiative (OSI), un logiciel peut en principe être téléchargé et utilisé sans appel d'offres. Seules les prestations à fournir par des entreprises (p. ex. support, ingénierie) sont alors soumises au droit des marchés publics et doivent faire l'objet d'un appel d'offres. + +Là où c'est nécessaire, les aspects pertinents des outils sont intégrés dans les processus de gestion de projet de la Confédération (c'est-à-dire HERMES). + +L'open development (développement ouvert directement sur un dépôt librement accessible) et la participation à des projets existants (contribution) sont également traités dans les explications figurant dans link:em002-4.pdf[Em002-4 Guide des communautés OSS]. + +=== Vue d'ensemble des documents OSS + +Le schéma suivant donne une vue d'ensemble des documents pertinents pour l'OSS au sein de l'administration fédérale. + +include::partials/document-map.fr.adoc[] + +Figure 2 : Documents en lien avec l'art. 9 LMETA + +== Objectifs + +Les objectifs transversaux et à long terme suivants montrent comment l'administration fédérale exploite le potentiel des logiciels open source et répond aux risques et aux défis : + +A) Respect des exigences légales (c'est-à-dire de la LMETA):: La publication de logiciels open source est régie par l'article 9 LMETA. Le respect de cette exigence légale est un aspect central des présentes lignes directrices et des documents qui s'y rapportent. Les autorités fédérales doivent respecter cet article et maximiser le bénéfice pour l'administration fédérale et pour la Suisse. La mise en œuvre incombe aux unités d'organisation elles-mêmes. + +B) Accroître l'innovation et l'efficience:: Les logiciels open source constituent aujourd'hui le socle de l'informatique moderne. En s'appuyant sur les millions de composants et de solutions librement disponibles, des applications autonomes peuvent être développées et exploitées rapidement. Les économies de temps et de ressources qui en découlent, ainsi que les principes d'architecture associés aux logiciels open source tels que l'interopérabilité, l'agilité et les microservices, accroissent la capacité d'innovation et l'efficience du développement logiciel. Cela accélère à son tour la numérisation de l'administration fédérale. La publication de logiciels open source permet d'accélérer l'adoption de solutions numériques dans l'environnement fédéral et d'exploiter des effets de synergie. + +C) Promouvoir une culture de la collaboration:: Les logiciels open source favorisent une culture de la collaboration en informatique grâce au partage du code source, à une communication ouverte et à des pratiques de développement commun. Ces principes peuvent être appliqués pour renforcer la collaboration informatique au sein de l'administration fédérale, avec les cantons et avec d'autres institutions publiques. Cela renforce la souveraineté numérique et réduit les dépendances vis-à-vis des fournisseurs de logiciels. + +D) Créer de la clarté et minimiser les risques:: Les informations sur les licences open source fréquemment utilisées doivent permettre à l'administration fédérale de choisir les bonnes licences. Cela minimise les risques juridiques. Des recommandations techniques et juridiques permettent à l'administration fédérale d'utiliser et de publier des logiciels open source. + +E) Créer une vue d'ensemble pour exploiter les synergies:: Les logiciels open source sont actuellement utilisés de diverses manières à de nombreux endroits au sein de l'administration fédérale. Beaucoup de savoir et d'expérience sont disponibles, mais les synergies ne peuvent pas encore être exploitées faute d'une vue d'ensemble des solutions open source utilisées. Une telle vue d'ensemble et l'acquisition commune de prestations permettront de mieux exploiter le potentiel des logiciels open source, ce qui économise des ressources et crée des synergies. + +F) Accroître l'attractivité en tant qu'employeur informatique:: Les logiciels open source sont appréciés par de nombreux spécialistes informatiques hautement qualifiés. L'utilisation de technologies open source modernes et l'application de méthodes de développement open source motivent de nombreux collaborateurs et accroissent l'attractivité de l'administration fédérale en tant qu'employeur. Pour utiliser des logiciels open source, la Confédération a besoin de spécialistes disposant de connaissances et d'expérience dans ce domaine ; il convient donc, lors du recrutement de spécialistes, de veiller à développer le savoir-faire interne en matière d'open source. + +== Mesures + +Les mesures suivantes doivent contribuer à atteindre les objectifs exposés ci-dessus. Elles seront complétées ou remplacées en temps voulu et adaptées à l'évolution des circonstances. + +La liste suivante illustre les liens entre les objectifs et les mesures correspondantes. Celles-ci soutiennent la mise en œuvre des objectifs concernés, mais peuvent aussi avoir un effet sur d'autres objectifs. + +A) Respect des exigences légales (LMETA):: +1) Mettre en œuvre le _Guide pratique pour les logiciels open source dans l'administration fédérale link:em002-1.pdf[Em002-1]_ + +2) Mettre en œuvre les _Instructions pour la publication de logiciels open source link:em002-2.pdf[Em002-2]_ et les outils qui en découlent. + +3) Les services d'achat développent un savoir-faire en matière d'open source et soutiennent ainsi l'administration fédérale. + +B) Accroître l'innovation et l'efficience:: +1) Mettre en œuvre le _Guide pratique pour les logiciels open source dans l'administration fédérale link:em002-1.pdf[Em002-1]_ + +3) Les services d'achat savent gérer l'open source et soutenir de manière optimale l'art. 9 LMETA. + +8) Promouvoir la constitution de communautés + +C) Promouvoir une culture de la collaboration:: +1) Mettre en œuvre le _Guide pratique pour les logiciels open source dans l'administration fédérale link:em002-1.pdf[Em002-1]_ + +4) Promouvoir l'échange de savoir et d'expérience + +8) Promouvoir la constitution de communautés + +9) Examiner la possibilité d'une plateforme de publication propre ; promouvoir l'open development + +D) Créer de la clarté et minimiser les risques:: +1) Mettre en œuvre le _Guide pratique pour les logiciels open source dans l'administration fédérale link:em002-1.pdf[Em002-1]_ + +2) Mettre en œuvre les _Instructions pour la publication de logiciels open source link:em002-2.pdf[Em002-2]_ et les outils qui en découlent. + +E) Créer une vue d'ensemble pour exploiter les synergies:: +6) Mettre en œuvre l'acquisition commune de prestations + +7) Créer une vue d'ensemble des logiciels open source utilisés, publiés et codéveloppés + +8) Promouvoir la constitution de communautés + +F) Accroître l'attractivité en tant qu'employeur informatique:: +5) Promouvoir et communiquer une culture open source + +8) Promouvoir la constitution de communautés + +=== Description des mesures + +Mesure 1 : Mettre en œuvre le _Guide pratique pour les logiciels open source dans l'administration fédérale link:em002-1.pdf[Em002-1]_.:: +Bien que la notion de logiciel open source ait déjà plus de 20 ans, la diffusion constante de ces logiciels et l'évolution continue des scénarios d'application donnent sans cesse lieu à de nouvelles pratiques et questions. Les nouveaux développements et les développements ultérieurs de solutions open source constituent en outre de plus en plus souvent des alternatives à part entière aux logiciels propriétaires. Avec la LMETA s'ajoute l'obligation de publier les développements réalisés en interne. ++ +Le _Guide pratique pour les logiciels open source dans l'administration fédérale_ donne une vue d'ensemble et une introduction au sujet, expose les avantages et les inconvénients des logiciels open source et explique tous les autres outils. Il contient également des bonnes pratiques, des alternatives éprouvées et des recommandations pratiques sur la manière dont l'administration fédérale doit gérer les logiciels open source. ++ +Ce guide pratique et les autres outils doivent être utilisés et mis en œuvre par les autorités fédérales dans leur gestion des logiciels open source et des publications. ++ +En guise de brève introduction au sujet, un _aide-mémoire sur l'application de l'art. 9 LMETA_ et la link:em002-6.pdf[Em002-6 FAQ sur la publication d'OSS (FAQ-OSS)] sont disponibles. + +Mesure 2 : Mettre en œuvre les Instructions pour la publication de logiciels open source link:em002-2.pdf[Em002-2] et les outils qui en découlent.:: +L'utilisation efficiente des OSS dans le développement logiciel requiert souvent des contributions sous forme de corrections d'erreurs et d'extensions fonctionnelles. Avec la LMETA s'ajoute une obligation de publier les logiciels créés en propre. Les orientations nécessaires sont fournies par différents outils. ++ +Les listes de contrôle font partie des instructions pour la publication d'OSS. Elles doivent être utilisées en complément des directives correspondantes des unités administratives, avant et pendant le développement. ++ +Le traitement du code existant au sens de l'art. 9 LMETA est également abordé. L'objectif est de trouver et de mettre en œuvre des solutions pragmatiques. ++ +Les licences revêtent une importance particulière dans l'environnement OSS. Lors de la publication, de l'acquisition et de l'utilisation de logiciels, les licences doivent être alignées sur ce qui est juridiquement réalisable et sur l'effet recherché. Les connaissances nécessaires et les décisions correspondantes doivent être documentées. Dans ce contexte, les documents complémentaires nécessaires, tels que le Contributor Licence Agreement (CLA), sont également mis à disposition. ++ +Afin de faciliter l'application de l'art. 9 LMETA, des compléments seront apportés à la méthode de gestion de projet de la Confédération (HERMES). Les unités administratives doivent trouver les outils nécessaires dans le processus ordinaire. + +Mesure 3 : Les services d'achat développent un savoir-faire en matière d'open source et soutiennent ainsi l'administration fédérale.:: +Le nouveau document link:em002-7.pdf[Em002-7 Aspects stratégiques des achats et OSS] a été créé pour traiter les aspects liés aux acquisitions. ++ +Afin de garantir une large concurrence, les acquisitions exigent que les logiciels open source et propriétaires soient traités à égalité. Les exigences accrues liées à l'art. 9 LMETA concernant les moyens à acquérir pour la publication de logiciels doivent être prises en compte. ++ +Le Centre de compétence des marchés publics de la Confédération (CCMP) a publié un aide-mémoire sur l'acquisition de logiciels et l'art. 9 LMETA [KBB-MB] sous le lien suivant : link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html]. ++ +Une aide supplémentaire est disponible sur l'intranet de l'OFCL (accessible uniquement depuis le réseau fédéral) avec les link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[directives Open Source dans les acquisitions] [BBL-WL] et la link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[liste de contrôle pour l'exception forfaitaire selon l'art. 9 LMETA] [BBL-CL]. + +Mesure 4 : Promouvoir l'échange de savoir et d'expérience:: +La création et l'utilisation de logiciels open source requièrent un savoir-faire approfondi et spécialisé. Parallèlement, les solutions open source évoluent constamment et de nouveaux projets open source sont lancés. Il est donc difficile de conserver une vue d'ensemble complète des tendances et technologies actuelles. ++ +Afin de promouvoir l'utilisation professionnelle de l'open source et de faciliter l'échange de savoir et d'expérience, les informations doivent être partagées au sein d'une communauté d'intérêts élargie et les collaborateurs de l'administration fédérale doivent être soutenus avec compétence. + +Mesure 5 : Promouvoir et communiquer une culture open source:: +La numérisation croissante a encore aggravé la pénurie de personnel qualifié en informatique. Cela complique également le recrutement de personnel informatique qualifié pour les prestataires de l'administration fédérale. L'utilisation de logiciels open source et la culture de développement qui y est associée constituent, comme on le sait, un argument incitant les spécialistes à postuler à de tels postes. ++ +Pour être perçue par le public comme un employeur « favorable à l'open source », l'administration devrait communiquer activement sur les différentes mesures et sur les solutions open source utilisées, sous la forme d'un radar technologique.footnote:[Les radars technologiques doivent être utilisés aussi largement que possible, c'est-à-dire si possible au niveau des autorités fédérales, voire de l'administration fédérale.] Pour l'attractivité de l'employeur, il est en outre important de permettre aux employés de la Confédération de contribuer à des logiciels open source existants. + +Mesure 6 : Mettre en œuvre l'acquisition commune de prestations:: +La maintenance et le support des logiciels open source sont actuellement assurés par des collaborateurs internes de l'administration fédérale, tandis que des fournisseurs externes proposent des prestations pour certaines solutions open source. Ces prestations sont souvent acquises de manière autonome par les offices concernés, ce qui peut entraîner des doublons et les pertes financières qui en découlent. ++ +L'acquisition commune de prestations pour les logiciels open source doit accroître la fiabilité de la maintenance et du support en exploitation et simplifier l'utilisation de solutions open source. Sur la base du radar technologique (voir mesure 5), des prestations pour les systèmes et technologies open source les plus répandus doivent être acquises de manière centralisée. Ces prestations peuvent ensuite être obtenues par tous les offices selon leurs besoins.footnote:[Cela concerne le support du logiciel utilisé. Un support par des tiers pour des logiciels publiés selon la LMETA est possible et peut être facturé. Ce point est traité dans link:em002-4.pdf[Em002-4 Guide des communautés OSS].] + +Mesure 7 : Créer une vue d'ensemble des logiciels open source utilisés, publiés et codéveloppés.:: +Comme il n'est pas nécessaire d'acheter des licences lors de l'utilisation de logiciels open source, le processus d'acquisition, souvent lourd, disparaît fréquemment. ++ +Il devient dès lors difficile de savoir où l'administration fédérale utilise quels logiciels open source. De ce fait, le potentiel des logiciels open source — comme l'exploitation des synergies, la formation de communautés pour l'échange d'expériences, etc. — ne peut pas être pleinement mis à profit. ++ +Un radar technologique au sein de l'administration fédérale doit donner une vue d'ensemble indiquant où quels logiciels open source sont utilisés et qui dispose de quel savoir-faire. + +Mesure 8 : Promouvoir la constitution de communautés:: +La constitution de communautés pour le développement de projets et la participation à celles-ci sont très importantes pour l'OSS. Il en résulte des synergies considérables. Il se peut que le projet existe déjà et que la Confédération y participe seulement, ou que la Confédération dirige le projet, ou encore qu'il s'agisse d'une collaboration. Renoncer à une communauté est également une décision importante. Le développement direct sur un dépôt ouvert (sans publication ultérieure) peut apporter des gains d'efficience supplémentaires et favoriser le développement commun. Em002-4 fournit des orientations et des arguments en faveur de la constitution de communautés par les autorités fédérales. + +Mesure 9 : Examiner la possibilité d'une plateforme de publication propre ; promouvoir l'open development:: +La mise en place et l'exploitation d'une plateforme de publication interne ou suisse seront examinées et réalisées une fois la décision correspondante prise. ++ +L'objectif d'une plateforme indépendante pour l'administration fédérale est de préserver la souveraineté numérique et l'indépendance. La collaboration s'en trouve simplifiée et, dans le même temps, une vue d'ensemble des activités est créée. ++ +Une coopération fédérale entre toutes les autorités de Suisse (à l'instar d'opencode.de) est à l'examen (p. ex. ANS ou eOperations Suisse). + +== Annexes + +=== Modifications par rapport à la version précédente + +* Modifications et améliorations rédactionnelles mineures. +* La fiche d'information Em002-5 a été remplacée par l'aide-mémoire Outils OSS. +* Le document «`link:em002-7.pdf[Em002-7 Acquisitions et OSS]`» a été ajouté. +* Nouveau schéma représentant les 4 C dans le contexte de l'OSS (ajout de « collaboration »). +* Nouvelles références à l'OFCL et au CCMP. + +=== Références relatives aux outils OSS + +La liste de référence suivante recense les documents relatifs au jeu de documents link:em002.pdf[Em002 Outils pour les logiciels open source] dans l'administration fédérale. + +NOTE: Les outils et en particulier les listes de contrôle s'appuient en partie sur les *documents OSS du canton de Berne*, publiés sous licence BSD3 (link:https://github.com/kanton-bern/oss[https://github.com/kanton-bern/oss]). + +Les documents Em002 actuels sont publiés sur la page Outils OSS de la Chancellerie fédérale. https://www.bk.admin.ch/bk/fr/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software.html. + +Les documents sont en outre publiés sur GitHub. Il est également possible d'y donner son avis. {url-repo} + +include::partials/references.fr.adoc[tags=ref-em002-tools] + +Vue d'ensemble visuelle des outils OSS : + +include::partials/document-map.fr.adoc[] + +Figure 3 : Documents en lien avec l'art. 9 LMETA + +=== Références générales + +Toutes les références relatives au jeu de documents Em002 figurent ici *dans Em002 Lignes directrices stratégiques [Em002*]. + +include::partials/references.fr.adoc[tags=ref-em002-general] + +=== Abréviations + +La présente liste d'abréviations contient toutes les abréviations utilisées dans le jeu de documents OSS Em002. Un glossaire figure dans link:em002-6.pdf[Em002-6 FAQ sur la publication d'OSS]. + +[horizontal] +include::partials/abbreviations.fr.adoc[tags=abbr-em002] +endif::[] + +ifeval::["{lang}" == "it"] +NOTE: Il presente documento è una bozza in continua evoluzione e fa parte degli strumenti destinati a sostenere l'Amministrazione federale nella pubblicazione di codice open source. Per maggiori informazioni si veda il link:{url-repo}/tree/main[README] principale. + +''' + +== Introduzione + +=== Scopo e obiettivo + +Secondo l'articolo 9 capoverso 1 della legge federale del 17 marzo 2023footnote:[RS 172.019] sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA), le autorità devono pubblicare il codice sorgente del software che sviluppano o fanno sviluppare per adempiere i loro compiti, sempre che diritti di terzi o motivi rilevanti per la sicurezza non lo escludano o lo limitino. Viene così eliminata l'incertezza giuridica riguardo alla pubblicazione di software da parte delle autorità federali. + +Negli ultimi anni è emerso che l'importanza del software open source (OSS) nell'Amministrazione federale ha complessivamente continuato a crescere. + +Le presenti linee guida strategiche descrivono i fondamenti del software open source e il modo in cui esso viene trattato nell'Amministrazione federale. Il documento fissa sei obiettivi e propone nove misure per conseguirli. + +Rinvia inoltre ad altre strategie rilevanti dell'ente pubblico in materia di open source. + +=== Situazione iniziale + +Nel 2005 l'Organo direzione informatica della Confederazione (ODIC) ha pubblicato la prima versione di una strategia OSS per l'Amministrazione federale. Il principio più importante definito all'epoca era la parità di trattamento tra OSS e software proprietario negli acquisti. + +Dalla pubblicazione del 2005 la diffusione del software open source è costantemente aumentata. Oggi, secondo il rapporto «Studio Open Source Svizzera 2024», una netta maggioranza delle imprese e delle autorità utilizza software open source in moltissimi ambiti. Nel settore del software sono pochissime le imprese che non lavorano con strumenti e componenti open source. + +Il 1° febbraio 2019 le presenti Linee guida strategiche per il software open source nell'Amministrazione federale e la guida pratica sono entrate in vigore nella versione 1.0. Con l'adozione della LMeCA e i nuovi obblighi secondo l'articolo 9 si è reso necessario aggiornare entrambi i documenti e creare strumenti supplementari per le autorità federali. + +=== Procedura + +L'attuazione della LMeCA compete agli uffici federali stessi. Vista la crescente importanza dell'open source si è tuttavia deciso di rielaborare la guida pratica _link:em002-1.pdf[Em002-1]_ insieme a tutte le parti interessate. Sono inoltre stati aggiunti strumenti supplementari per l'attuazione della LMeCA. + +La guida pratica definisce i concetti necessari, illustra le costellazioni d'impiego del software open source, indica dove e come trovare alternative al software commerciale esistente, come acquistare open source, quali modelli di business esistono per l'open source e quali modelli di supporto sono possibili nel suo impiego. Gli altri strumenti rispondono alle domande frequenti e forniscono indicazioni sulla pubblicazione di software open source secondo la LMeCA. Trattano tutte le questioni relative alle licenze OSS e mostrano come costituire una community attorno a un software. Diverse liste di controllo per l'orientamento e la documentazione sono parimenti messe a disposizione delle autorità federali. + +Anche i documenti relativi agli acquisti sono stati adeguati e sono stati elaborati un promemoria supplementare [KBB-MB], direttive [BBL-WL] e una lista di controllo [BBL-CL]. + +Le incertezze esistenti vengono eliminate per quanto possibile con le presenti linee guida strategiche, la guida pratica che le accompagna e le raccomandazioni d'azione, nonché con gli strumenti supplementari. + +== Rapporto con altre strategie + +Le presenti Linee guida strategiche per il software open source nell'Amministrazione federale sono allineate a quattro attuali strategie dell'ente pubblico e alla LMeCA.footnote:[RS 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/it] Esse contengono un riferimento diretto o indiretto al tema del software open source e della collaborazione informatica tra istituzioni pubbliche: + +La *Strategia Amministrazione federale digitale* [SB001] fissa otto principi e quattro priorità. Impiegando software open source l'Amministrazione federale contribuisce alla priorità 4 «Rafforzare la sovranità digitale». Una soluzione open source può essere riutilizzata un numero illimitato di volte e adattata alle esigenze specifiche dell'Amministrazione federale grazie al suo codice sorgente aperto. + +L'idea di sostenibilità digitale e di sovranità digitale emerge anche nella **Strategia Amministrazione digitale Svizzera 2024–2027**footnote:[Strategia Amministrazione digitale Svizzera 2024–2027: https://www.digital-public-services-switzerland.ch/strategy]. La Confederazione e i Cantoni creano condizioni quadro adeguate per questo utilizzo multiplo. I moduli di base per lo sviluppo del governo elettronico vengono «realizzati una volta e utilizzati in comune». La scelta di software open source facilita il riutilizzo delle soluzioni informatiche. + +Secondo la **Strategia Svizzera digitale**footnote:[https://digital.swiss/it/] è determinante per il successo della Svizzera nello spazio digitale rafforzare l'interconnessione dei livelli federali. Occorre pertanto prestare particolare attenzione al coordinamento tra Confederazione, Cantoni e Comuni nonché alla cooperazione tra le organizzazioni attive nel settore della digitalizzazione in tutta la Svizzera. Il Consiglio federale ha inoltre attribuito particolare importanza alla sovranità digitale della Svizzera quale tema prioritario per il 2023.footnote:[https://digital.swiss/it/strategia/temi-prioritari/sovranita-digitale] + +Nella **Strategia Open Government Data Svizzera (2019–2023)**footnote:[Strategia Open Government Data 2019 – 2023] il Consiglio federale stabilisce che i dati dell'Amministrazione federale non personali e non critici per la sicurezza devono essere pubblicati secondo il principio Open by Default. A tal fine l'Amministrazione federale ha lanciato il portale opendata.swiss.footnote:[https://opendata.swiss/it] Uffici federali, Cantoni, città e altre organizzazioni pubbliche vi hanno attualmente pubblicato oltre 11 700 set di dati. + +Il piano direttore Open Government Data 2024–2027footnote:[https://www.bfs.admin.ch/asset/it/28425806] attua il principio Open by Default. + +== Governance e strumenti + +Quando si parla di software open source occorre distinguere tra *consuming* (utilizzare), *contributing* (contribuire a codice esistente) e *creating* (ossia nuovi progetti). + +image::./assets/four-cs/four-cs.it.svg[Le 4 C nel contesto dell'OSS] + +Figura 1: Le 4 C nel contesto dell'OSS + +La *collaboration* è inoltre sempre ipotizzabile sullo sfondo. Nel caso del creating deve essere avviata dall'Amministrazione federale, nel caso del contributing esiste già e nel caso del consuming può parimenti risultare utile (p. es. gruppo di utenti). + +Nel *consuming* di software open source questo va trattato e valutato alla pari del software proprietario. + +Nello *sviluppo* di software la pubblicazione open source è in linea di principio obbligatoria, fatte salve le eccezioni previste dall'art. 9 LMeCA (diritti di terzi e motivi rilevanti per la sicurezza). + +Tali eccezioni sono trattate in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS]. + +Le autorità federali, ossia le unità amministrative dell'Amministrazione federale, sono esse stesse responsabili del corretto rispetto di queste regole; non esiste una competenza centralizzata. + +La *pubblicazione* apporta un valore aggiunto soprattutto quando si forma una *community* di persone interessate che lavora congiuntamente al software. Se la community collabora a un progetto e l'Amministrazione federale ammette tali contributi, ne derivano benefici economici ed effetti di sinergia.footnote:[https://test.bitkom.org/sites/main/files/2023-03/BitkomLeitfadenOpenSourceSoftware31.pdf, capitolo 4 (in tedesco)] + +Nella pratica la pubblicazione comprende spesso non soltanto il codice sorgente, ma anche tutti gli altri aspetti (documentazione, governance, istruzioni di build ecc.). + +In linea di principio l'Amministrazione federale non ha alcun obbligo di costituire community; il mandato legale richiede unicamente la pubblicazione del codice sorgente. L'Amministrazione federale dovrebbe investire prioritariamente nelle community laddove il beneficio per la Confederazione e per i terzi è elevato e l'onere è il più contenuto possibile. + +Attualmente non esiste una piattaforma comune della Confederazione per lo *sviluppo e la pubblicazione di codice sorgente*. Ogni autorità deve quindi scegliere autonomamente una piattaforma (repository) per la pubblicazione. La guida pratica contenuta in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source] e le relative liste di controllo stabiliscono come lavorare con una piattaforma e quali caratteristiche essa deve soddisfare. + +La *scelta della licenza* è trattata nella link:em002-3.pdf[Em002-3 Guida alle licenze OSS]), che presenta una selezione di licenze standard e ne illustra gli impieghi. L'Amministrazione federale dovrebbe utilizzare testi di licenza propri soltanto in casi motivati, conformemente all'art. 9 cpv. 4 LMeCA. + +Nell'impiego e nello sviluppo di OSS il **supporto**footnote:[Almeno durante il ciclo di vita, mediante contratti o una community.] va sempre disciplinato (anche se vi si rinuncia). L'unità amministrativa competente lo disciplina nel processo di pubblicazione o in sede di definizione della community. La LMeCA non prevede nulla al riguardo e non saranno messi a disposizione mezzi finanziari o risorse di personale supplementari per il supporto. Può essere opportuno includere il supporto e lo sviluppo congiunto laddove il beneficio per le autorità svizzere o per l'economia svizzera è ritenuto sufficientemente elevato (costi dell'ecosistema) e/o si mira a una ripartizione dei costi o a una cooperazione. Se se ne fa carico il fornitore, i suoi costi di supporto possono essere sostenuti dagli utenti. + +L'*acquisto di OSS* avviene tramite il normale processo d'acquisto dell'Amministrazione federale. L'UFCL mette a disposizione i relativi documenti e strumenti. + +È inoltre disponibile un _promemoria sull'acquisto di software e l'art. 9 LMeCA_footnote:[Disponibile qui (in tedesco): https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html e https://perimap.admin.ch/goto_perimap_file_46835_download.html] _[KBB-MB]_ (cfr. figura 2). + +Considerazioni giuridiche e pratiche fanno sì che l'obbligo di pubblicazione OSS possa in determinate circostanze essere trasferito a un fornitore (in sede di gara o durante l'esercizio). Gli strumenti d'acquisto e il processo di pubblicazione stabiliscono come affrontare la questione con il fornitore. Ciò avviene in gran parte integrando i processi, le bozze di contratto e gli strumenti esistenti. + +La procedura organizzativa è disciplinata in link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di software open source] e nei relativi strumenti. + +*Dal profilo del diritto degli acquisti pubblici l'OSS è trattato alla pari del software proprietario.* Poiché per l'OSS, secondo la definizione dell'Open Source Initiative (OSI), non sono dovute tasse di licenza, il software può in linea di principio essere scaricato e utilizzato senza gara pubblica. Soltanto le prestazioni che devono essere fornite da imprese (p. es. supporto, engineering) sottostanno quindi al diritto degli acquisti pubblici e devono essere messe a concorso. + +Ove necessario, gli aspetti rilevanti degli strumenti sono integrati nei processi di gestione dei progetti della Confederazione (ossia HERMES). + +L'open development (sviluppo aperto direttamente su un repository liberamente accessibile) e la partecipazione a progetti esistenti (contribution) sono parimenti trattati nelle spiegazioni contenute in link:em002-4.pdf[Em002-4 Guida alle community OSS]. + +=== Panoramica dei documenti OSS + +Il grafico seguente offre una panoramica dei documenti rilevanti per l'OSS nell'Amministrazione federale. + +include::partials/document-map.it.adoc[] + +Figura 2: Documenti in relazione all'art. 9 LMeCA + +== Obiettivi + +I seguenti obiettivi generali e a lungo termine mostrano come l'Amministrazione federale sfrutta il potenziale del software open source e affronta i rischi e le sfide: + +A) Rispetto delle prescrizioni legali (ossia della LMeCA):: La pubblicazione di software open source è retta dall'articolo 9 LMeCA. Il rispetto di questa prescrizione legale è un aspetto centrale delle presenti linee guida e dei documenti correlati. Le autorità federali devono rispettare tale articolo e massimizzare il beneficio per l'Amministrazione federale e per la Svizzera. L'attuazione compete alle unità organizzative stesse. + +B) Accrescere innovazione ed efficienza:: Il software open source costituisce oggi la base dell'informatica moderna. Sulla scorta dei milioni di componenti e soluzioni liberamente disponibili è possibile sviluppare ed esercire rapidamente applicazioni autonome. I conseguenti risparmi di tempo e risorse nonché i principi architetturali associati al software open source, quali interoperabilità, agilità e microservizi, accrescono la capacità innovativa e l'efficienza dello sviluppo software. Ciò accelera a sua volta la digitalizzazione dell'Amministrazione federale. Mediante la pubblicazione di software open source è possibile accelerare l'adozione di soluzioni digitali in ambito federale e sfruttare effetti di sinergia. + +C) Promuovere una cultura della collaborazione:: Il software open source promuove, attraverso la condivisione del codice sorgente, la comunicazione aperta e le pratiche di sviluppo congiunto, una cultura della collaborazione in ambito informatico. Questi principi possono essere applicati per rafforzare la collaborazione informatica all'interno dell'Amministrazione federale, con i Cantoni e con altre istituzioni pubbliche. Ciò rafforza la sovranità digitale e riduce le dipendenze dai fornitori di software. + +D) Creare chiarezza e ridurre al minimo i rischi:: Le informazioni sulle licenze open source di uso frequente devono consentire all'Amministrazione federale di scegliere le licenze giuste. Ciò riduce al minimo i rischi giuridici. Raccomandazioni tecniche e giuridiche mettono l'Amministrazione federale in condizione di utilizzare e pubblicare software open source. + +E) Creare una panoramica per sfruttare le sinergie:: Il software open source è attualmente impiegato in numerosi punti dell'Amministrazione federale in modi diversi. Vi sono molte conoscenze ed esperienze, ma le sinergie non possono ancora essere sfruttate poiché manca una panoramica delle soluzioni open source impiegate. Una simile panoramica e l'acquisto congiunto di prestazioni consentiranno di sfruttare meglio il potenziale del software open source, il che permette di risparmiare risorse e crea sinergie. + +F) Accrescere l'attrattiva quale datore di lavoro nel settore informatico:: Il software open source è apprezzato da molti specialisti informatici altamente qualificati. L'impiego di moderne tecnologie open source e l'applicazione di metodi di sviluppo open source motivano molti collaboratori e accrescono l'attrattiva dell'Amministrazione federale quale datore di lavoro. Per impiegare software open source la Confederazione necessita di specialisti con conoscenze ed esperienza in materia; nel reclutamento di specialisti occorre pertanto adoperarsi per ampliare il know-how interno in materia di open source. + +== Misure + +Le misure seguenti devono contribuire al conseguimento degli obiettivi sopra esposti. Saranno completate o sostituite a tempo debito e adeguate al mutare delle circostanze. + +L'elenco seguente illustra come gli obiettivi sono collegati alle misure corrispondenti. Queste sostengono l'attuazione dei rispettivi obiettivi, ma possono ripercuotersi anche su altri obiettivi. + +A) Rispetto delle prescrizioni legali (LMeCA):: +1) Attuare la _Guida pratica per il software open source nell'Amministrazione federale link:em002-1.pdf[Em002-1]_ + +2) Attuare le _Istruzioni per la pubblicazione di software open source link:em002-2.pdf[Em002-2]_ e gli strumenti che ne derivano. + +3) I servizi d'acquisto sviluppano know-how in materia di open source sostenendo così l'Amministrazione federale. + +B) Accrescere innovazione ed efficienza:: +1) Attuare la _Guida pratica per il software open source nell'Amministrazione federale link:em002-1.pdf[Em002-1]_ + +3) I servizi d'acquisto sanno gestire l'open source e sostenere in modo ottimale l'art. 9 LMeCA. + +8) Promuovere la costituzione di community + +C) Promuovere una cultura della collaborazione:: +1) Attuare la _Guida pratica per il software open source nell'Amministrazione federale link:em002-1.pdf[Em002-1]_ + +4) Promuovere lo scambio di conoscenze ed esperienze + +8) Promuovere la costituzione di community + +9) Esaminare la possibilità di una piattaforma di pubblicazione propria; promuovere l'open development + +D) Creare chiarezza e ridurre al minimo i rischi:: +1) Attuare la _Guida pratica per il software open source nell'Amministrazione federale link:em002-1.pdf[Em002-1]_ + +2) Attuare le _Istruzioni per la pubblicazione di software open source link:em002-2.pdf[Em002-2]_ e gli strumenti che ne derivano. + +E) Creare una panoramica per sfruttare le sinergie:: +6) Attuare l'acquisto congiunto di prestazioni + +7) Creare una panoramica del software open source impiegato, pubblicato e cosviluppato + +8) Promuovere la costituzione di community + +F) Accrescere l'attrattiva quale datore di lavoro nel settore informatico:: +5) Promuovere e comunicare una cultura open source + +8) Promuovere la costituzione di community + +=== Descrizione delle misure + +Misura 1: Attuare la _Guida pratica per il software open source nell'Amministrazione federale link:em002-1.pdf[Em002-1]_.:: +Sebbene il termine software open source abbia già oltre 20 anni, la costante diffusione di tale software e la continua evoluzione degli scenari applicativi danno luogo di continuo a nuove pratiche e questioni. Gli sviluppi nuovi e ulteriori di soluzioni open source costituiscono inoltre sempre più spesso alternative a pieno titolo al software proprietario. Con la LMeCA si aggiunge l'obbligo di pubblicare gli sviluppi realizzati internamente. ++ +La _Guida pratica per il software open source nell'Amministrazione federale_ offre una panoramica e un'introduzione al tema, illustra i vantaggi e gli svantaggi del software open source e spiega tutti gli altri strumenti. Contiene inoltre best practice, alternative collaudate e raccomandazioni pratiche su come l'Amministrazione federale deve gestire il software open source. ++ +Questa guida pratica e gli altri strumenti devono essere utilizzati e attuati dalle autorità federali nella gestione del software open source e delle pubblicazioni. ++ +Quale breve introduzione al tema sono disponibili un _promemoria sull'applicazione dell'art. 9 LMeCA_ e le link:em002-6.pdf[Em002-6 FAQ sulla pubblicazione di OSS (FAQ-OSS)]. + +Misura 2: Attuare le Istruzioni per la pubblicazione di software open source link:em002-2.pdf[Em002-2] e gli strumenti che ne derivano.:: +L'impiego efficiente dell'OSS nello sviluppo software richiede spesso contributi sotto forma di correzioni di errori ed estensioni funzionali. Con la LMeCA sussiste inoltre l'obbligo di pubblicare il software creato in proprio. L'orientamento necessario è fornito da diversi strumenti. ++ +Le liste di controllo fanno parte delle istruzioni per la pubblicazione di OSS. Devono essere utilizzate a complemento delle corrispondenti direttive delle unità amministrative, prima e durante lo sviluppo. ++ +Viene trattata anche la gestione del codice preesistente secondo l'art. 9 LMeCA. L'obiettivo è trovare e attuare soluzioni pragmatiche. ++ +Le licenze rivestono particolare importanza nell'ambiente OSS. In sede di pubblicazione, acquisto e utilizzo di software le licenze devono essere allineate a quanto è giuridicamente fattibile e all'effetto desiderato. Le conoscenze necessarie e le relative decisioni devono essere documentate. In tale contesto sono messi a disposizione anche i documenti supplementari necessari, come il Contributor Licence Agreement (CLA). ++ +Per agevolare l'applicazione dell'art. 9 LMeCA saranno apportati complementi al metodo di gestione dei progetti della Confederazione (HERMES). Le unità amministrative devono trovare gli strumenti necessari nel processo ordinario. + +Misura 3: I servizi d'acquisto sviluppano know-how in materia di open source sostenendo così l'Amministrazione federale.:: +Per gli aspetti relativi agli acquisti è stato creato il nuovo documento link:em002-7.pdf[Em002-7 Aspetti strategici degli acquisti e OSS]. ++ +Per garantire un'ampia concorrenza gli acquisti esigono che il software open source e quello proprietario siano trattati alla pari. Occorre tenere conto delle maggiori esigenze connesse all'art. 9 LMeCA riguardo ai mezzi da acquistare per la pubblicazione del software. ++ +Il Centro di competenza per gli acquisti pubblici della Confederazione (CCAP) ha pubblicato un promemoria sull'acquisto di software e l'art. 9 LMeCA [KBB-MB] al seguente link: link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html]. ++ +Ulteriore sostegno è disponibile sull'intranet dell'UFCL (accessibile soltanto dalla rete federale) con le link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[direttive Open Source negli acquisti] [BBL-WL] e la link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[lista di controllo per l'eccezione forfettaria secondo l'art. 9 LMeCA] [BBL-CL]. + +Misura 4: Promuovere lo scambio di conoscenze ed esperienze:: +La creazione e l'utilizzo di software open source richiedono un know-how approfondito e specialistico. Al tempo stesso le soluzioni open source evolvono costantemente e vengono lanciati nuovi progetti open source. È pertanto una sfida mantenere una panoramica completa delle tendenze e delle tecnologie attuali. ++ +Per promuovere l'impiego professionale dell'open source e agevolare lo scambio di conoscenze ed esperienze, le informazioni devono essere condivise in seno a una comunità d'interessi allargata e i collaboratori dell'Amministrazione federale devono essere sostenuti con competenza. + +Misura 5: Promuovere e comunicare una cultura open source:: +La digitalizzazione crescente ha ulteriormente acuito la carenza di personale qualificato nel settore informatico. Ciò rende difficile anche ai fornitori di prestazioni dell'Amministrazione federale reclutare personale informatico qualificato. L'impiego di software open source e la cultura di sviluppo che vi è associata costituiscono, com'è noto, un argomento che induce gli specialisti a candidarsi a tali posti. ++ +Per essere percepita dal pubblico quale datore di lavoro «favorevole all'open source», l'Amministrazione dovrebbe comunicare attivamente le diverse misure e le soluzioni open source impiegate sotto forma di un radar tecnologico.footnote:[I radar tecnologici devono essere impiegati il più ampiamente possibile, ossia se possibile a livello delle autorità federali o addirittura dell'Amministrazione federale.] Per l'attrattiva del datore di lavoro è inoltre importante consentire agli impiegati federali di contribuire a software open source esistente. + +Misura 6: Attuare l'acquisto congiunto di prestazioni:: +La manutenzione e il supporto del software open source sono attualmente assicurati da collaboratori interni dell'Amministrazione federale, mentre fornitori esterni offrono prestazioni per determinate soluzioni open source. Tali prestazioni sono spesso acquistate autonomamente dai rispettivi uffici, il che può comportare doppioni e le conseguenti perdite finanziarie. ++ +L'acquisto congiunto di prestazioni per il software open source deve accrescere l'affidabilità della manutenzione e del supporto in esercizio e semplificare l'impiego di soluzioni open source. Sulla base del radar tecnologico (cfr. misura 5) le prestazioni per i sistemi e le tecnologie open source più diffusi devono essere acquistate in modo centralizzato. Tali prestazioni possono poi essere ottenute da tutti gli uffici secondo il fabbisogno.footnote:[Ciò riguarda il supporto del software impiegato. Il supporto da parte di terzi per software pubblicato secondo la LMeCA è possibile e può essere fatturato. Questo aspetto è trattato in link:em002-4.pdf[Em002-4 Guida alle community OSS].] + +Misura 7: Creare una panoramica del software open source impiegato, pubblicato e cosviluppato.:: +Poiché nell'impiego di software open source non occorre acquistare licenze, viene spesso meno il dispendioso processo d'acquisto. ++ +Ciò rende difficile tracciare dove l'Amministrazione federale impiega quale software open source. Di conseguenza il potenziale del software open source — come lo sfruttamento delle sinergie, la formazione di community per lo scambio di esperienze ecc. — non può essere pienamente valorizzato. ++ +Un radar tecnologico in seno all'Amministrazione federale deve fornire una panoramica di dove viene impiegato quale software open source e di chi dispone di quale know-how. + +Misura 8: Promuovere la costituzione di community:: +La costituzione di community per lo sviluppo di progetti e la partecipazione ad esse sono molto importanti per l'OSS. Ne derivano sinergie considerevoli. Può darsi che il progetto esista già e che la Confederazione vi partecipi soltanto, oppure che la Confederazione diriga il progetto, o ancora che si tratti di una collaborazione. Anche rinunciare a una community è una decisione importante. Lo sviluppo diretto su un repository aperto (senza pubblicazione successiva) può apportare ulteriori guadagni di efficienza e promuovere lo sviluppo congiunto. Em002-4 fornisce orientamento e motivazione per la costituzione di community da parte delle autorità federali. + +Misura 9: Esaminare la possibilità di una piattaforma di pubblicazione propria; promuovere l'open development:: +La creazione e la gestione di una piattaforma di pubblicazione interna o svizzera saranno esaminate e attuate una volta presa la relativa decisione. ++ +L'obiettivo di una piattaforma autonoma per l'Amministrazione federale è preservare la sovranità e l'indipendenza digitali. La collaborazione viene semplificata e al tempo stesso si crea una panoramica delle attività. ++ +È allo studio una cooperazione federale tra tutte le autorità della Svizzera (analogamente a opencode.de), p. es. ADS o eOperations Svizzera. + +== Allegati + +=== Modifiche rispetto alla versione precedente + +* Modifiche e miglioramenti redazionali minori. +* La scheda informativa Em002-5 è stata sostituita dal promemoria Strumenti OSS. +* È stato aggiunto il documento «`link:em002-7.pdf[Em002-7 Acquisti e OSS]`». +* Nuovo grafico raffigurante le 4 C nel contesto dell'OSS (aggiunta di «collaboration»). +* Nuovi rinvii a UFCL e CCAP. + +=== Riferimenti agli strumenti OSS + +L'elenco di riferimento seguente elenca i documenti relativi alla serie link:em002.pdf[Em002 Strumenti per il software open source] nell'Amministrazione federale. + +NOTE: Gli strumenti e in particolare le liste di controllo si basano in parte sui *documenti OSS del Cantone di Berna*, pubblicati sotto licenza BSD3 (link:https://github.com/kanton-bern/oss[https://github.com/kanton-bern/oss]). + +Gli attuali documenti Em002 sono pubblicati sulla pagina Strumenti OSS della Cancelleria federale. https://www.bk.admin.ch/bk/it/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software.html. + +I documenti sono inoltre pubblicati su GitHub, dove è possibile fornire riscontri. {url-repo} + +include::partials/references.it.adoc[tags=ref-em002-tools] + +Panoramica visiva degli strumenti OSS: + +include::partials/document-map.it.adoc[] + +Figura 3: Documenti in relazione all'art. 9 LMeCA + +=== Riferimenti generali + +Tutti i riferimenti alla serie di documenti Em002 si trovano qui *in Em002 Linee guida strategiche [Em002*]. + +include::partials/references.it.adoc[tags=ref-em002-general] + +=== Abbreviazioni + +Il presente elenco contiene tutte le abbreviazioni utilizzate nella serie di documenti OSS Em002. Un glossario figura in link:em002-6.pdf[Em002-6 FAQ sulla pubblicazione di OSS]. + +[horizontal] +include::partials/abbreviations.it.adoc[tags=abbr-em002] +endif::[] + +ifeval::["{lang}" == "rm"] +NOTE: Quest document è ina sbozza ch'è vegn sviluppada vinavant e fa part dals meds che sustegnan l'administraziun federala en la publicaziun da code open source. Ulteriuras infurmaziuns chattais Vus en il link:{url-repo}/tree/main[README] principal. + +''' + +== Introducziun + +=== Finamira e intent + +Tenor l'artitgel 9 alinea 1 da la lescha federala dals 17 da mars 2023footnote:[CS 172.019] davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG) ston las autoritads publitgar il code da funtauna dal software ch'ellas sviluppan u fan sviluppar per ademplir lur incumbensas, uschenavant che dretgs da terzas persunas u motivs relevants per la segirezza n'excludan u na restrenschan betg quai. Uschia croda davent l'inscuritad giuridica tar la publicaziun da software tras autoritads federalas. + +Ils ultims onns ha mussà che l'impurtanza dal software open source (OSS) en l'administraziun federala è cuntinuadamain creschida. + +Questas directivas strategicas descrivan las basas dal software open source e co ch'i vegn tractà cun quel en l'administraziun federala. Il document fixescha sis finamiras e propona nov mesiras per las cuntanscher. + +El renviescha ultra da quai ad ulteriuras strategias relevantas dal maun public en il sectur open source. + +=== Situaziun da partenza + +Il 2005 ha l'Organ da direcziun d'informatica da la Confederaziun (ISB) publitgà l'emprima versiun d'ina strategia OSS per l'administraziun federala. Sco il princip il pli impurtant è vegnida fixada lura la tractanda eguala da l'OSS cun il software closed source tar l'acquist. + +Dapi la publicaziun dal 2005 è la derasaziun dal software open source creschida cuntinuadamain. Oz utilisescha, tenor il rapport «Studi Open Source Svizra 2024», ina cler maioritad da las interpresas e da las autoritads software open source en fitg blers secturs differents. En la branscha dal software datti mo fitg paucas interpresas che na lavuran betg cun utensilis e cumponentas open source. + +Il 1. da favrer 2019 èn questas Directivas strategicas per software open source en l'administraziun federala sco er la guida pratica entradas en vigur en la versiun 1.0. Cun il relasch da l'EMBAG e las novas obligaziuns tenor l'artitgel 9 è vegnì necessari d'actualisar omadus documents e da crear meds supplementars per las autoritads federalas. + +=== Proceder + +Per la realisaziun da l'EMBAG èn ils uffizis federals sezs responsabels. Vista l'impurtanza creschenta da l'open source è vegnì decidì da reelavurar la guida pratica _link:em002-1.pdf[Em002-1]_ ensemen cun tuttas gruppas d'interess. Ultra da quai èn vegnids agiuntads meds supplementars per la realisaziun da l'EMBAG. + +La guida pratica definescha ils concepts necessaris, exponta las constellaziuns per l'utilisaziun da software open source, mussa nua e co ch'i sa laschan chattar alternativas al software commerzial existent, co che l'open source duai vegnir acquistà, tge models da fatschenta ch'i dat per l'open source e tge models da support ch'èn pussaivels tar l'utilisaziun da l'open source. Ils ulteriurs meds respundan dumondas frequentas e dattan instrucziuns per relaschar software open source tenor l'EMBAG. Els tractan tuttas dumondas davart las licenzas OSS e mussan, co ch'ina communitad po vegnir construida enturn in software. Pliras glistas da controlla per l'orientaziun e la documentaziun stattan era a disposiziun a las autoritads federalas. + +Era ils documents davart l'acquist èn vegnids adattads, e i èn vegnids elavurads in fegl d'infurmaziun supplementar [KBB-MB], ina directiva [BBL-WL] sco er ina glista da controlla [BBL-CL]. + +Inscuritads existentas vegnan eliminadas uschè lunsch sco pussaivel cun questas directivas strategicas, la guida pratica accumpagnanta e las recumandaziuns d'acziun sco er cun ils meds supplementars. + +== Relaziun cun autras strategias + +Questas Directivas strategicas per software open source en l'administraziun federala èn accordadas cun quatter strategias actualas dal maun public e cun l'EMBAG.footnote:[CS 172.019: https://www.fedlex.admin.ch/eli/cc/2023/682/rm] Quellas cuntegnan ina relaziun directa u indirecta cun il tema dal software open source e cun la collavuraziun informatica tranter instituziuns publicas: + +La *Strategia Administraziun federala digitala* [SB001] fixescha otg princips e quatter accents. Cun l'utilisaziun da software open source contribuescha l'administraziun federala a l'accent 4 «Rinforzar la suveranitad digitala». Ina soluziun open source po vegnir reutilisada uschè savens sco ins vul e vegnir adattada als basegns individuals da l'administraziun federala grazia a ses code da funtauna avert. + +Il pensier da la persistenza digitala e da la suveranitad digitala vegn era en giu en la **Strategia Administraziun digitala Svizra 2024–2027**footnote:[Strategia Administraziun digitala Svizra 2024–2027: https://www.digital-public-services-switzerland.ch/strategy]. La Confederaziun ed ils chantuns creeschan cundiziuns basicas adattadas per questa utilisaziun multipla. Moduls da basa per il svilup dal cybergovern vegnan «realisads ina giada ed utilisads cuminaivlamain». La tscherna da software open source facilitescha la reutilisaziun da soluziuns informaticas. + +Tenor la **Strategia Svizra digitala**footnote:[https://digital.swiss/rm/] è decisiv per il success da la Svizra en il spazi digital da rinforzar la colliaziun dals nivels federals. Attenziun speziala sto perquai vegnir dada a la coordinaziun tranter Confederaziun, chantuns e vischnancas sco er a la collavuraziun tranter las organisaziuns activas en il sectur da la digitalisaziun en tut la Svizra. Il Cussegl federal ha ultra da quai dà ina impurtanza speziala a la suveranitad digitala da la Svizra sco tema d'accent 2023.footnote:[https://digital.swiss/rm/strategia/temas-d-accent/suveranitad-digitala] + +En la **Strategia Open Government Data Svizra (2019–2023)**footnote:[Strategia Open Government Data 2019 – 2023] tegna il Cussegl federal en scrit che datas da l'administraziun federala che n'èn betg persunalas e betg criticas per la segirezza duain vegnir publitgadas tenor il princip Open by Default. L'administraziun federala ha lantschà per quai il portal opendata.swiss.footnote:[https://opendata.swiss/rm] Uffizis federals, chantuns, citads ed ulteriuras organisaziuns publicas han publitgà là actualmain passa 11 700 sets da datas. + +Il plan directiv Open Government Data 2024–2027footnote:[https://www.bfs.admin.ch/asset/rm/28425806] realisescha il princip Open by Default. + +== Governanza e meds + +Sch'ins discurra da software open source, sto vegnir distinguì tranter *consuming* (utilisar), *contributing* (contribuir a code existent) e *creating* (pia novs projects). + +image::./assets/four-cs/four-cs.rm.svg[Ils 4 C en il context da l'OSS] + +Illustraziun 1: Ils 4 C en il context da l'OSS + +La *collaboration* è ultra da quai adina imaginabla en il fund. Tar il creating sto ella vegnir inizialisada da l'administraziun federala, tar il contributing exista ella gia, e tar il consuming po ella era esser d'agid (p.ex. gruppa d'utilisaders). + +Tar il *consuming* da software open source duai quel vegnir tractà e valità egualmain sco software proprietar. + +Tar il *svilup* da software è la relaschada open source fundamentalmain obligatorica, cun resalva da las excepziuns fixadas en l'art. 9 EMBAG (dretgs da terzas persunas e motivs relevants per la segirezza). + +Questas excepziuns vegnan tractadas en link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS]. + +Las autoritads federalas, pia las unitads administrativas da l'administraziun federala, èn sezzas responsablas per l'observaziun correcta; i n'exista nagina cumpetenza centrala. + +La *publicaziun* porta in plivalur en spezial, sch'ina *communitad* d'interessads nascha e lavura cuminaivlamain al software. Sche la communitad collavura ad in project e sche l'administraziun federala lascha vinavant questas contribuziuns, nascha in profit economic ed effects da sinergia.footnote:[https://test.bitkom.org/sites/main/files/2023-03/BitkomLeitfadenOpenSourceSoftware31.pdf, chapitel 4 (per tudestg)] + +En la pratica cumpiglia la relaschada savens betg mo il code da funtauna, mabain era tut ils auters aspects (documentaziun, governanza, instrucziuns da build etc.). + +Fundamentalmain n'exista per l'administraziun federala nagina obligaziun da construir communitads; l'incumbensa legala pretenda mo la publicaziun dal code da funtauna. L'administraziun federala duess investir prioritarmain en communitads, nua che il profit per la Confederaziun e per terzas persunas è grond e la lavur uschè pitschna sco pussaivel. + +Actualmain n'exista nagina plattafurma cuminaivla da la Confederaziun per il *svilup e la publicaziun da code da funtauna*. Mintga autoritad sto perquai tscherner sezza ina plattafurma (repositori) per la publicaziun. La guida pratica en link:em002-2.pdf[Em002-2 Instrucziuns per publitgar software open source] e las glistas da controlla appartegnentas fixeschan, co ch'i sto vegnir lavurà cun ina plattafurma e tge caracteristicas ch'ella sto ademplir. + +La *tscherna da la licenza* vegn tractada en la link:em002-3.pdf[Em002-3 Guida da licenzas OSS]), che preschenta ina selecziun da licenzas standard ed explitgescha lur utilisaziun. Agens texts da licenza duai l'administraziun federala utilisar mo en cas motivads tenor l'art. 9 al. 4 EMBAG. + +Tar l'utilisaziun ed il svilup da l'OSS sto il **support**footnote:[Almain durant il ciclus da vita cun agid da contracts u d'ina communitad.] adina vegnir reglà (era sch'ins renunzia ad el). L'unitad administrativa cumpetenta reglescha quai en il process da relaschada u tar la definiziun da la communitad. L'EMBAG na fa naginas prescripziuns davart quai, ed i na vegnan messas a disposiziun naginas ulteriuras finanzas u resursas da persunal per il support. I po esser raschunaivel d'integrar il support ed il svilup vinavant cuminaivel, nua che il profit per las autoritads svizras u per l'economia svizra vegn considerà sco suffizientamain grond (custs d'ecosistem) e/u nua ch'ins aspira ina partiziun dals custs u ina collavuraziun. Sche il furnitur surpiglia quai, pon ses custs da support vegnir purtads dals utilisaders. + +L'*acquist da l'OSS* ha lieu via il process d'acquist regular da l'administraziun federala. L'UFCL metta a disposiziun ils documents ed ils meds correspundents. + +Supplementarmain stat a disposiziun in _fegl d'infurmaziun davart l'acquist da software e l'art. 9 EMBAG_footnote:[Disponibel qua (per tudestg): https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html e https://perimap.admin.ch/goto_perimap_file_46835_download.html] _[KBB-MB]_ (vesair illustraziun 2). + +Reflexiuns giuridicas e praticas mainan a quai che l'obligaziun da relaschar OSS po sut tschertas circumstanzas vegnir transferida ad in furnitur (tar il concurs u durant il manaschi). Ils meds d'acquist ed il process da relaschada determineschan, co ch'i sto vegnir procedì cun il furnitur. Quai vegn cuntanschì per gronda part cun cumplettar ils process, las sbozzas da contract ed ils meds existents. + +Il proceder organisatoric è reglà en link:em002-2.pdf[Em002-2 Instrucziuns per publitgar software open source] ed en ils meds appartegnents. + +*Dal puncta da vista dal dretg d'acquist vegn l'OSS tractà egualmain sco il software proprietar.* Perquai che per l'OSS, tenor la definiziun da l'Open Source Initiative (OSI), na vegnan incassadas naginas taxas da licenza, po software fundamentalmain vegnir telechargià ed utilisà senza concurs. Mo las prestaziuns che ston vegnir furnidas d'interpresas (p.ex. support, engineering) suttastattan lura al dretg d'acquist e ston vegnir messas a concurs. + +Nua ch'igl è necessari vegnan ils aspects relevants dals meds integrads en ils process da management da projects da la Confederaziun (pia HERMES). + +L'open development (svilup avert directamain sin in repositori accessibel publicamain) e la participaziun a projects existents (contribution) vegnan era tractads en las explicaziuns en link:em002-4.pdf[Em002-4 Guida da communitads OSS]. + +=== Survista dals documents OSS + +La grafica suandanta dat ina survista dals documents relevants per l'OSS en l'administraziun federala. + +include::partials/document-map.rm.adoc[] + +Illustraziun 2: Documents en connex cun l'art. 9 EMBAG + +== Finamiras + +Las suandantas finamiras surordinadas ed a lunga vista mussan, co che l'administraziun federala utilisescha il potenzial dal software open source ed affrunta ils ristgs e las sfidas: + +A) Observaziun da las prescripziuns legalas (pia da l'EMBAG):: La relaschada da software open source sa drizza tenor l'artitgel 9 EMBAG. L'observaziun da questa prescripziun legala è in aspect central da questas directivas e dals documents appartegnents. Las autoritads federalas duain observar quest artitgel e maximar il profit per l'administraziun federala e per la Svizra. Per la realisaziun èn las unitads d'organisaziun sezzas responsablas. + +B) Augmentar l'innovaziun e l'efficienza:: Il software open source furma oz la basa da l'informatica moderna. Sin la basa dals milliuns da cumponentas e soluziuns disponiblas libramain sa laschan sviluppar e manar rapidamain applicaziuns independentas. Las spargnas da temp e da resursas colliadas cun quai sco er ils princips d'architectura colliads cun il software open source, sco l'interoperabilitad, l'agilitad ed ils microservetschs, augmentan la capacitad d'innovaziun e l'efficienza dal svilup da software. Quai accelerescha puspè la digitalisaziun da l'administraziun federala. Cun relaschar software open source po vegnir accelerada la surpigliada da soluziuns digitalas en il rom federal e pon vegnir utilisads effects da sinergia. + +C) Promover ina cultura da la collavuraziun:: Il software open source promova, cun cundivider il code da funtauna, cun ina communicaziun averta e cun praticas dal svilup vinavant cuminaivel, ina cultura da la collavuraziun en l'informatica. Quests princips sa laschan applitgar per rinforzar la collavuraziun en l'informatica entaifer l'administraziun federala, cun ils chantuns e cun ulteriuras instituziuns publicas. Quai rinforza la suveranitad digitala e reducescha las dependenzas da purschiders da software. + +D) Crear claritad e reducir ils ristgs:: Infurmaziuns davart licenzas open source utilisadas savens duain pussibilitar a l'administraziun federala da tscherner las licenzas gistas. Quai reducescha ils ristgs giuridics. Recumandaziuns tecnicas e giuridicas abiliteschan l'administraziun federala d'utilisar e da relaschar software open source. + +E) Crear ina survista per utilisar sinergias:: Software open source vegn actualmain duvrà en numerus lieus entaifer l'administraziun federala en moda differenta. I dat blera savida ed experientscha, ma las sinergias na sa laschan anc betg utilisar, perquai ch'ina survista da las soluziuns open source duvradas manca. Ina tala survista e l'acquist cuminaivel da prestaziuns pussibiliteschan da meglier exquirir il potenzial dal software open source, quai che spargna resursas e crea sinergias. + +F) Augmentar l'attractivitad sco patrun en l'informatica:: Software open source è popular tar bleras persunas spezialisadas en informatica cun ina auta qualificaziun. L'utilisaziun da tecnologias open source modernas e l'applicaziun da metodas da svilup open source motiveschan blers collaboraturs ed augmentan l'attractivitad da l'administraziun federala sco patruna. Per utilisar software open source dovra la Confederaziun persunas spezialisadas cun savida ed experientscha en il sectur dal software open source; tar la reclutaziun da persunas spezialisadas duess ins perquai s'engaschar per ampliar la savida interna davart l'open source. + +== Mesiras + +Las suandantas mesiras duain contribuir a cuntanscher las finamiras exponidas survart. Las mesiras vegnan cumplettadas u remplazzadas a temp ed adattadas a circumstanzas midadas. + +La glista suandanta illustrescha, co che las finamiras èn colliadas cun las mesiras correspundentas. Quellas sustegnan la realisaziun da las finamiras respectivas, ma pon era avair effects sin autras finamiras. + +A) Observaziun da las prescripziuns legalas (EMBAG):: +1) Realisar la _Guida pratica per software open source en l'administraziun federala link:em002-1.pdf[Em002-1]_ + +2) Realisar las _Instrucziuns per publitgar software open source link:em002-2.pdf[Em002-2]_ ed ils meds che deriveschan da quellas. + +3) Ils posts d'acquist construeschan savida davart l'open source e sustegnan uschia l'administraziun federala. + +B) Augmentar l'innovaziun e l'efficienza:: +1) Realisar la _Guida pratica per software open source en l'administraziun federala link:em002-1.pdf[Em002-1]_ + +3) Ils posts d'acquist san tractar cun l'open source e sustegnair optimalmain l'art. 9 EMBAG. + +8) Promover la construcziun da communitads + +C) Promover ina cultura da la collavuraziun:: +1) Realisar la _Guida pratica per software open source en l'administraziun federala link:em002-1.pdf[Em002-1]_ + +4) Promover il barat da savida e d'experientscha + +8) Promover la construcziun da communitads + +9) Examinar la pussaivladad d'ina atgna plattafurma da publicaziun; promover l'open development + +D) Crear claritad e reducir ils ristgs:: +1) Realisar la _Guida pratica per software open source en l'administraziun federala link:em002-1.pdf[Em002-1]_ + +2) Realisar las _Instrucziuns per publitgar software open source link:em002-2.pdf[Em002-2]_ ed ils meds che deriveschan da quellas. + +E) Crear ina survista per utilisar sinergias:: +6) Realisar l'acquist cuminaivel da prestaziuns + +7) Crear ina survista dal software open source duvrà, relaschà e co-sviluppà + +8) Promover la construcziun da communitads + +F) Augmentar l'attractivitad sco patrun en l'informatica:: +5) Promover e communitgar ina cultura open source + +8) Promover la construcziun da communitads + +=== Descripziun da las mesiras + +Mesira 1: Realisar la _Guida pratica per software open source en l'administraziun federala link:em002-1.pdf[Em002-1]_.:: +Schebain che il term software open source ha gia passa 20 onns, mainan la derasaziun cuntinuanta da software open source ed il svilup permanent da scenaris d'applicaziun adina puspè a novas praticas e dumondas. Novs svilups e svilups vinavant da soluziuns open source furman ultra da quai adina pli savens alternativas cumplainas al software proprietar. Cun l'EMBAG s'agiunta l'obligaziun da publitgar ils agens svilups. ++ +La _Guida pratica per software open source en l'administraziun federala_ dat ina survista ed ina introducziun en il tema, mussa ils avantatgs ed ils dischavantatgs dal software open source ed explitgescha tut ils auters meds. Ella cuntegna ultra da quai best practices, alternativas cumprovadas e recumandaziuns praticas, co che l'administraziun federala duai tractar cun software open source. ++ +Questa guida pratica ed ils ulteriurs meds duain vegnir duvrads e realisads da las autoritads federalas en il tractament da software open source e da relaschadas. ++ +Sco curta introducziun en il tema stattan a disposiziun in _fegl d'infurmaziun davart l'applicaziun da l'art. 9 EMBAG_ sco er link:em002-6.pdf[Em002-6 FAQ davart la publicaziun da l'OSS (OSS-FAQ)]. + +Mesira 2: Realisar las Instrucziuns per publitgar software open source link:em002-2.pdf[Em002-2] ed ils meds che deriveschan da quellas.:: +L'utilisaziun efficienta da l'OSS en il svilup da software pretenda savens contribuziuns en furma da correcturas da sbagls e d'extensiuns funcziunalas. Cun l'EMBAG exista ultra da quai in'obligaziun da relaschar software creà sez. L'orientaziun necessaria vegn purschida da differents meds. ++ +Las glistas da controlla fan part da las instrucziuns per publitgar OSS. Ellas duain vegnir duvradas supplementarmain a las directivas correspundentas da las unitads administrativas, avant e durant il svilup. ++ +I vegn era tractà il tractament dal code existent tenor l'art. 9 EMBAG. La finamira è da chattar e da realisar soluziuns pragmaticas. ++ +Las licenzas èn spezialmain impurtantas en il rom da l'OSS. Tar la relaschada, l'acquist e l'utilisaziun da software ston las licenzas vegnir accordadas cun quai ch'è giuridicamain pussaivel e cun l'effect giavischà. La savida necessaria e las decisiuns correspundentas duain vegnir documentadas. En quest connex vegnan era mess a disposiziun ils documents supplementars necessaris sco il Contributor Licence Agreement (CLA). ++ +Per facilitar l'applicaziun da l'art. 9 EMBAG vegnan fatgas cumplettaziuns a la metoda da management da projects da la Confederaziun (HERMES). Las unitads administrativas duain chattar ils meds necessaris en il process regular. + +Mesira 3: Ils posts d'acquist construeschan savida davart l'open source e sustegnan uschia l'administraziun federala.:: +Per ils aspects d'acquist è vegnì creà il nov link:em002-7.pdf[Em002-7 Aspects strategics da l'acquist ed OSS]. ++ +Per garantir ina concurrenza ampla pretenda l'acquist che software open e closed source vegnian tractads egualmain. Las pretensiuns augmentadas en connex cun l'art. 9 EMBAG concernent ils meds da acquistar per la publicaziun da software ston vegnir resguardadas. ++ +Il Center da cumpetenza per l'acquist public da la Confederaziun (CCA) ha publitgà sut il suandant link in fegl d'infurmaziun davart l'acquist da software e l'art. 9 EMBAG [KBB-MB]: link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html]. ++ +Ulteriur sustegn stat a disposiziun en l'intranet da l'UFCL (accessibel mo ord la rait da la Confederaziun) cun la link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[directiva Open Source en l'acquist] [BBL-WL] e la link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[glista da controlla excepziun integrala art. 9 EMBAG] [BBL-CL]. + +Mesira 4: Promover il barat da savida e d'experientscha:: +Il crear e l'utilisar da software open source pretendan ina savida profunda e spezialisada. Al medem temp sa sviluppan las soluziuns open source cuntinuadamain vinavant e novs projects open source vegnan lantschads. Igl è perquai ina sfida da mantegnair ina survista cumplessiva davart las tendenzas e las tecnologias actualas. ++ +Per promover l'utilisaziun professiunala da l'open source e per facilitar il barat da savida e d'experientscha duain infurmaziuns vegnir cundivididas entaifer ina communitad d'interess ampliada ed ils collaboraturs entaifer l'administraziun federala vegnir sustegnids cumpetentamain. + +Mesira 5: Promover e communitgar ina cultura open source:: +La digitalisaziun che progredescha ha acutisà ulteriurmain il mancament da persunal qualifitgà en l'informatica. Quai grevescha era als purschiders da prestaziuns da l'administraziun federala la reclutaziun da persunal informatic qualifitgà. L'utilisaziun da software open source e la cultura da sviluppaders colliada cun quai èn sco enconuschent in argument per persunas spezialisadas da sa candidar per tals posts. ++ +Per vegnir percepì en il public sco patrun «amiaivel vers l'open source» duain las differentas mesiras e las soluziuns open source duvradas vegnir communitgadas activamain en furma d'in radar da tecnologia.footnote:[Radars da tecnologia duain vegnir duvrads uschè amplamain sco pussaivel. Quai vul dir, sche pussaivel sin il nivel da las autoritads federalas u schizunt da l'administraziun federala.] Per l'attractivitad dal patrun è ultra da quai impurtant da permetter als emploiads da la Confederaziun da contribuir a software open source existent. + +Mesira 6: Realisar l'acquist cuminaivel da prestaziuns:: +La mantenziun ed il support da software open source vegnan actualmain furnids da collaboraturs interns da l'administraziun federala, entant che furniturs externs porschan prestaziuns per tschertas soluziuns open source. Questas prestaziuns vegnan savens acquistadas independentamain dals respectivs uffizis, quai che po manar a dubladuras ed a las perditas finanzialas colliadas cun quai. ++ +L'acquist cuminaivel da prestaziuns per software open source duai augmentar la fidadadad da la mantenziun e dal support en il manaschi e simplifitgar l'utilisaziun da soluziuns open source. Sin la basa dal radar da tecnologia (vesair mesira 5) duain prestaziuns per ils sistems e las tecnologias open source ils pli derasads vegnir acquistads centralmain. Questas prestaziuns pon lura vegnir obtegnidas da tut ils uffizis tenor il basegn.footnote:[Quai pertutga il support per il software duvrà. Il support tras terzas persunas per software relaschà tenor l'EMBAG è pussaivel e po vegnir facturà. Quai vegn tractà en link:em002-4.pdf[Em002-4 Guida da communitads OSS].] + +Mesira 7: Crear ina survista dal software open source duvrà, relaschà e co-sviluppà.:: +Perquai che tar l'utilisaziun da software open source na ston vegnir cumpradas naginas licenzas, croda savens davent il process d'acquist custaivel. ++ +Quai grevescha il suandar, nua che l'administraziun federala duvra tge software open source. Uschia na po il potenzial dal software open source – sco l'utilisaziun da sinergias, la furmaziun da communitads per il barat d'experientschas etc. – betg vegnir exquirì cumplainamain. ++ +In radar da tecnologia entaifer l'administraziun federala duai dar ina survista, nua che tge software open source vegn duvrà e tgi che dispona da tge savida. + +Mesira 8: Promover la construcziun da communitads:: +La construcziun da e la participaziun a communitads per il svilup da projects èn fitg impurtantas per l'OSS. Da quai resultan sinergias considerablas. I po esser che il project exista gia e che la Confederaziun sa participescha mo, u che la Confederaziun maina il project, u ch'i sa tracta era d'ina collavuraziun. Da renunziar ad ina communitad è era ina decisiun impurtanta. Il svilup direct sin in repositori avert (senza relaschada posteriura) po purtar ulteriurs gudogns d'efficienza e promover il svilup cuminaivel. Em002-4 porscha orientaziun e motivaziun per la construcziun da communitads tras las autoritads federalas. + +Mesira 9: Examinar la pussaivladad d'ina atgna plattafurma da publicaziun; promover l'open development:: +La construcziun ed il manaschi d'ina plattafurma da publicaziun interna u svizra vegnan examinads e realisads suenter ina decisiun correspundenta. ++ +La finamira d'ina plattafurma independenta per l'administraziun federala è la mantegnida da la suveranitad e da l'independenza digitala. La collavuraziun vegn simplifitgada ed al medem temp nascha ina survista da las activitads. ++ +Ina collavuraziun federala sur tuttas autoritads da la Svizra (simil ad opencode.de) vegn examinada (p.ex. ADS u eOperations Svizra). + +== Agiuntas + +=== Midadas envers la versiun precedenta + +* Midadas e meglieraziuns redacziunalas pitschnas. +* Il fegl da fatgs Em002-5 è vegnì remplazzà tras il fegl d'infurmaziun Meds OSS. +* Nov è s'agiuntà il document «`link:em002-7.pdf[Em002-7 Acquist ed OSS]`». +* Nova grafica cun ils 4 C en il context da l'OSS (cumplettaziun cun «collaboration»). +* Novs renviaments a l'UFCL ed al CCA. + +=== Referenzas als meds OSS + +La glista da referenza suandanta renumbra ils documents da la seria link:em002.pdf[Em002 Meds per software open source] en l'administraziun federala. + +NOTE: Ils meds ed en spezial las glistas da controlla sa basan per part sin ils *documents OSS dal chantun Berna*, publitgads sut ina licenza BSD3 (link:https://github.com/kanton-bern/oss[https://github.com/kanton-bern/oss]). + +Ils documents Em002 actuals vegnan publitgads sin la pagina Meds OSS da la Chanzlia federala. https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software.html. + +Ils documents vegnan ultra da quai publitgads sin GitHub. Là po era vegnir dà in resun. {url-repo} + +include::partials/references.rm.adoc[tags=ref-em002-tools] + +Survista visuala dals meds OSS: + +include::partials/document-map.rm.adoc[] + +Illustraziun 3: Documents en connex cun l'art. 9 EMBAG + +=== Referenzas generalas + +Tuttas referenzas a la seria da documents Em002 sa chattan qua *en Em002 Directivas strategicas [Em002*]. + +include::partials/references.rm.adoc[tags=ref-em002-general] + +=== Abreviaziuns + +Questa glista d'abreviaziuns cuntegna tuttas abreviaziuns duvradas en la seria da documents OSS Em002. In glossari sa chatta en link:em002-6.pdf[Em002-6 FAQ davart la publicaziun da l'OSS]. + +[horizontal] +include::partials/abbreviations.rm.adoc[tags=abbr-em002] +endif::[] diff --git a/docs/en/Em002-2.1 Checklist OSS Preliminary Assessment.odt b/docs/en/Em002-2.1 Checklist OSS Preliminary Assessment.odt deleted file mode 100644 index 95a9d9014c7358e3572cd70ba91ed0f7d13ed403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52027 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¬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 diff --git a/docs/en/Em002-2.3 Checklist OSS Release and Publication.odt b/docs/en/Em002-2.3 Checklist OSS Release and Publication.odt deleted file mode 100644 index 223a534ad908af47cb1583e177d1ad63cf3aafb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50777 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 Ys~`>fGnW7W;6IPlpP8)~{HOK*0WS>HnE(I) diff --git a/docs/en/Em002-4.1 Checklist OSS Community.odt b/docs/en/Em002-4.1 Checklist OSS Community.odt deleted file mode 100644 index c455d3690f605f5011bcbe72ac60d4b7f3d77548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52751 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 E0J~{iMgRZ+ diff --git a/docs/en/assets/em002-1/media/image1.png b/docs/en/assets/em002-1/media/image1.png deleted file mode 100644 index 63b2b42ce0b608292abd679f11471236727ea87b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114646 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 diff --git a/docs/en/assets/em002-1/media/image2.png b/docs/en/assets/em002-1/media/image2.png deleted file mode 100644 index 44adefee563290f3e047525d0fbb9d3719f2a628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9254 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 diff --git a/docs/en/assets/em002-2/md/README_template.md b/docs/en/assets/em002-2/md/README_template.md deleted file mode 100644 index 8e51f4c..0000000 --- a/docs/en/assets/em002-2/md/README_template.md +++ /dev/null @@ -1,62 +0,0 @@ - -# Project Title - -A brief description of what this project does and who it's for - -## Features - -- Light/dark mode toggle -- Live previews -- Fullscreen mode -- Cross platform - -## Documentation - -[Documentation](https://linktodocumentation) - -## Installation - -Install my-project with npm - -```bash - npm install my-project - cd my-project -``` - -## Usage/Examples - -```javascript -import Component from 'my-project' - -function App() { - return -} -``` - -## Screenshots or Demo - -Insert gif or link to demo - -![App Screenshot](https://dummyimage.com/468x300?text=App+Screenshot+Here) - -## Support - -For support, email fake@fake.com or join our Slack channel. - -## Contributing - -Contributions are always welcome! - -See `contributing.md` for ways to get started. - -Please adhere to this project's `code of conduct`. - -## License - -[MIT](https://choosealicense.com/licenses/mit/) - -## Roadmap - -- Additional browser support - -- Add more integrations diff --git a/docs/en/assets/em002-2/media/image1.png b/docs/en/assets/em002-2/media/image1.png deleted file mode 100644 index 61ae0d4e90499d4b38518342f991b960b5c172bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7199 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 WVW#z>@8BPQke4zl(&dsSA^#6h)UoRT diff --git a/docs/en/assets/em002-2/media/image2.png b/docs/en/assets/em002-2/media/image2.png deleted file mode 100644 index 09b0183367d8a2ded9d98ee79f133fa9dac06c91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59651 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]FhQoZXMTDegXfPjRg@N*;X9BrDc7PQbNnC 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 z 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%0AAAo0+iJ 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 diff --git a/docs/en/assets/em002-3/media/image2.png b/docs/en/assets/em002-3/media/image2.png deleted file mode 100644 index a43675cd71eb6e27b1ee7948fdbc15c6ef6a7bd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27266 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 diff --git a/docs/en/assets/em002-3/media/image3.png b/docs/en/assets/em002-3/media/image3.png deleted file mode 100644 index bc534885999b7abee29e39dfac71bd117df5a258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60639 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≷IRg2 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�s_C>6C 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 t|R6KhvB@YOzw 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 diff --git a/docs/en/assets/em002-7/media/image1.png b/docs/en/assets/em002-7/media/image1.png deleted file mode 100644 index 56b66fd52f58140f2cdd301a9d406f4fa608d64e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203336 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

fq;4r~@u&Un?u2mRPz! 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
{2{rWW<@5!u=Ty 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

n?}kGT%zgn*ff=J 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 CV;G_U diff --git a/docs/en/assets/em002-7/media/image3.png b/docs/en/assets/em002-7/media/image3.png deleted file mode 100644 index a1cf1eac7eda19a7b0c4bdc110e1f5d99ff5409c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84014 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

UyaKg#S=6MTN(+I{zPH2T(z{t{tG{>p0Q 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�xRuw?8{pxdylfxpgGxDKk5JHI!z; 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

  • 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 TnB_UnAF<2EmPVx)Za(@q#9IKu diff --git a/docs/en/assets/em002-7/media/image5.png b/docs/en/assets/em002-7/media/image5.png deleted file mode 100644 index 4337614d8953f90e78215b1ca532ccad6a3c4f94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75355 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 diff --git a/docs/en/assets/em002/media/image1.png b/docs/en/assets/em002/media/image1.png deleted file mode 100644 index 748f8fd71b1d386b63fad68e7c58c26a2af030f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82251 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 diff --git a/docs/en/assets/em002/media/image2.png b/docs/en/assets/em002/media/image2.png deleted file mode 100644 index 56b66fd52f58140f2cdd301a9d406f4fa608d64e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203336 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
    fq;4r~@u&Un?u2mRPz! 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
    {2{rWW<@5!u=Ty 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 -

  • #m+&QkM-SE(S3%@fdCd9*7_Z`TL{B z^=bj(_ajel?Zu};AYnmr&z^(v0Avw0P#!6PR_m)S8}M0j-@X%rsqy^zE%#)3Fe=*DE*O zsq!X6jYCZl-6+Sn`xGB+28It#>m(P4qROw61Te@l8JGzpv$LBL_)&O$2jG%l2-77* zM>D!@Sbfzu2W91(Zh9bIU7~#}Hf>*y$C>j9=-z|DAbhvC?bm_A(#|Eld-v`ykhlYR zPHgx&u36A~H|>h8@RV@goMJOO_%>oy4I-$>AL;KWfcWRUF%byA?QjhCr+{ss1LoE& zarKVvR0zJr5dyB}e2Ry#9?f&Az%BY7+TE?JFbN{8DBg!vv-A*-Ab!lB#==FIYbAkb z1Hs3*QUzIo$SK~@v%v3F$I5fr>(S9^RD%z?wL4rmMz_%cc< zDlGgC;$OgLQFHCPRJV6`7qe$TNcRI8F-N!J(Ic)hP|ya%@a2oWxOKY*+w|wpOwVVk z$$=0#YQXn~uz0neiq&f_@WywyJ+o}*&aN(IltEa*>YY|f4bzyw+8Z}+=%A}#E%UbO|w=FsFGpVH9QMJbG?4NBDvUYH1If0*ybAR7q#++A7Eh!PP&5aS22 zt-e3Iso{6q22Io4VnZYZS66cMDdiJ|w++kt7 z6>{wiBa}KH%_6mDl=7%fxj)RxTj|oIkx)RO)a!h-vC1#GNXGtHM6XRhK~J^yT9?PJ z9gDN#Cbj(NvPBqW?BpP&PK1aDGerBH8B)a$XtlJ0-kygN?f#1vXQiE+ThK~h@!X=h zsx7&os^_*aw?eC!{0cWij!J(1SfI?N!u?94f*X4WBs?2o~){oR$_Jumis-uk)8 zPtr3aa>i?^fJ=*h-N&zhQZ7E5l>u91XXS2iHNQLsGF@4K+$O?ALYrv0PPfYW7NlG6 z6`5g^wR&Y*y1JG(RmeeUXB#O?6P42q3|w510zW@Lb?@y&0IQeBDVLGeWp=X?AG#zC z#*Cvzp-IAlq8M-(KJXmPqi{gPb)#fdcU1(bUQ4L=79K@iaUHNtOm^IJ@8sxeyhBro z0C*FH^$*G1oxtbu@K^w>K<~-X&FOIKusx;LtVKaIv#(SQ)9Sg1E1%0D>d%g37Mbz` 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 K^P(f?g8v05#0`l6 diff --git a/docs/en/assets/em002-4/media/image2.png b/docs/en/assets/em002-4/media/image2.png deleted file mode 100644 index ff7630d56e55e6d3ecc222f66217fea47fe9fc01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125751 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

    - 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: -

    -
      -
    1. The software may be used for any purpose.
    2. -
    3. The source code of the software is freely accessible.
    4. -
    5. The software may be copied and distributed without restriction.
    6. -
    7. The software may be modified and distributed in modified form under certain conditions.
    8. -
    -
    - 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: -

    -
      -
    1. The software may be used for any purpose.
    2. -
    3. The source code of the software is freely accessible.
    4. -
    5. The software may be copied and distributed without restriction.
    6. -
    7. The software may be modified and distributed in modified form under certain conditions.
    8. -
    -
    - 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 ). -
    - - -# Potential and challenges - -There is enormous potential for open source software in today\'s world of IT. At the same time, the use of open source solutions also brings challenges. These two sides are explained in more detail in the following section. The information is based on, among other things, the results of the Open Source Study Switzerland 2018, 2021 and 2024 by the University of Bern, in which respondents provided information about the recognised advantages and disadvantages of open source software. - -## Potential of open source software - -The following points describe the potential that can be realised when using and releasing open source software. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -## Challenges in dealing with OSS - -The following describes the typical challenges encountered in practice with open source software and outlines some possible solutions. We do not address general challenges that affect all software at this point (e.g. the need to check for cybersecurity and the need to secure appropriate support for critical software). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -# Constellations for using/working with OSS - -## Maturity levels for OSS in the Federal Administration - -When using and developing OSS in the Federal Administration, there are various constellations regarding the obligations related to open source licences: A typical maturity model[^21] for introducing open source into organisations can look like this: - -1. Denial -- No or unconscious use of open source software - -2. Consumption -- Passive use of open source software - -3. Participation -- Engagement with open source communities - -4. Contribution -- Pragmatic contributions to open source projects - -5. Leadership -- Strategic involvement with open source to drive - business value[^22] - -| ***Constellation*** | ***Impact*** | -| :--- | :--- | -| The mere **use** of existing open source software (without modifying the code). | There is no obligation to share the source code. | -| The **completely new development** of software that is be published under an open source licence. | **In this case, there is complete freedom regarding the licence under which the software is published.** The document Em002-3 OSS Licensing Guidelines should be used for the Confederation. The document [Em002-2 Instructions for Publishing OSS](em002-2.md) and [Em002-4 OSS Community Guidelines](em002-4.md) must be observed. | -| **Further development** (internal or external) with existing open source components (with or without copyleft effect1), as long as the software is used **exclusively within the same organisation** and not redistributed. | The OSS components can be combined with third-party components as required. There is generally no publication obligation from the licence, as long as the software is used exclusively within the same organisation and not distributed (exception: AGPL). Since it is not legally conclusive how far the concept of 'distribution within the same organisation' extends, this scenario only applies in exceptional cases for OSS components with copyleft effects. In these cases, consult your organisation's legal department. See [Em002-3 OSS Licensing Guidelines](em002-3.md) and [Em002-6 FAQ about OSS](em002-6.md) and Art.9 EMOTA. The document [Em002-2 Instructions for Publishing OSS](em002-2.md) and [Em002-4 OSS Community Guidelines](em002-4.md) must be observed. **As there is a publication obligation under Art. 9 EMOTA, the changes must be re-released. The easiest way is as change -
    - - - -# Potential and challenges - -There is enormous potential for open source software in today\'s world of IT. At the same time, the use of open source solutions also brings challenges. These two sides are explained in more detail in the following section. The information is based on, among other things, the results of the Open Source Study Switzerland 2018, 2021 and 2024 by the University of Bern, in which respondents provided information about the recognised advantages and disadvantages of open source software. - -## Potential of open source software - -The following points describe the potential that can be realised when using and releasing open source software. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -## Challenges in dealing with OSS - -The following describes the typical challenges encountered in practice with open source software and outlines some possible solutions. We do not address general challenges that affect all software at this point (e.g. the need to check for cybersecurity and the need to secure appropriate support for critical software). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -# Constellations for using/working with OSS - -## Maturity levels for OSS in the Federal Administration - -When using and developing OSS in the Federal Administration, there are various constellations regarding the obligations related to open source licences: A typical maturity model[^21] for introducing open source into organisations can look like this: - -1. Denial -- No or unconscious use of open source software - -2. Consumption -- Passive use of open source software - -3. Participation -- Engagement with open source communities - -4. Contribution -- Pragmatic contributions to open source projects - -5. Leadership -- Strategic involvement with open source to drive - business value[^22] - -| ***Constellation*** | ***Impact*** | -| :--- | :--- | -| The mere **use** of existing open source software (without modifying the code). | There is **no obligation** to share the source code. | -| The **completely new development** of software that is be published under an open source licence. | **In this case, there is complete freedom regarding the licence under which the software is published.** The document [Em002-3 OSS Licensing Guidelines](./em002-3.md) should be used for the Confederation. The document [Em002-2 Instructions for Publishing OSS](em002-2.md) and [Em002-4 OSS Community Guidelines* must be observed](em002-4.md). | -| **Further development** (internal or external) with existing open source components (with or without copyleft effect1), as long as the software is used **exclusively within the same organisation** and not redistributed. | The OSS components can be combined with third-party components as required. There is generally no publication obligation from the licence, as long as the software is used exclusively within the same organisation and not distributed (exception: AGPL). Since it is not legally conclusive how far the concept of 'distribution within the same organisation' extends, this scenario only applies in exceptional cases for OSS components with copyleft effects. In these cases, consult your organisation's legal department. See [Em002-3 OSS Licensing Guidelines](./em002-3.md) and [Em002-6 FAQ about OSS and Art.9 EMOTA](em002-6.md). The document [Em002-2 Instructions for Publishing OSS](em002.md) and [Em002-4 OSS Community Guidelines](./em002-4.md) must be observed. **As there is a publication obligation under Art. 9 EMOTA, the changes must be re-released. The easiest way is as changes to the existing open source project.** | -| **Further development** (internal or external) **exclusively with** existing open source **components without copyleft effect**, if the software is to be distributed externally (e.g. to cantons).| The OSS components can be combined with third-party components at will, and there is no publication obligation from the licences (see also [Em002-3 OSS Licensing Guidelines](em002-3.md)). **However, release is mandatory within the framework of Art. 9 EMOTA. Ideally, the release should made be via the existing project (no fork).** The document [Em002-2 Instructions for Publishing OSS](./em002-2.md) and [Em002-4 OSS Community Guidelines](em002-4.md) must be observed. | -| **Further development** (internally or externally) with existing open source components **with copyleft effect**, if the software is to be distributed externally (e.g. to cantons). | **There is an obligation to publish** due to the copyleft licence (see also [Em002-3 OSS Licensing Guidelines](./em002-3.md) regarding the copyleft effect). The document [Em002-2 Instructions for Publishing OSS](./em002-2.md) and [Em002-4 OSS Community Guidelines](em002-4.md) must be observed. | -| **Contributing** to an existing open source project. | **There is generally a publication obligation according to EMOTA. The governance and licence of the project are used.** The document [Em002-2 Instructions for Publishing OSS](./em002-2.md) and [Em002-4 OSS Community Guidelines](em002-4.md) must be observed. | -| **Joint development** of a new or existing project with a community and cost sharing. | **There is generally a publication obligation according to EMOTA.** The documents [Em002-2 Instructions for Publishing OSS](./em002-2.md), [Em002-3 OSS Licensing Guidelines](./em002-3.md) and [Em002-4 OSS Community Guidelines](em002-4.md) are used **to set up the project and its governance.** | -| **All variants of development or further development** are carried out **via a supplier or commissioned third party.** | **There is generally a publication obligation according to EMOTA.** Based on [Em002-2 Instructions for Publishing OSS](./em002-2.md), [Em002-3 OSS Licensing Guidelines](./em002-3.md) and [Em002-4 OSS Community Guidelines](em002-4.md). If possible, the prerequisites for publication should be established during the procurement process and, if necessary, the requirements for software approval should be communicated to the supplier/third party. | - - - -## Use of unmodified open source software - -When using open source software, it is generally not relevant under which open source licence it is published, as all open source licences (see Section 2 \'Definitions\') allow the unrestricted use of open source software, regardless of how many workstations, simultaneously logged-in users, number of servers and processors, etc. the software is used on. - -When using unmodified open source software, **no publication obligations** arise even for programs that are under a licence with a strict copyleft effect (exception: AGPL licence, Affero General Public Licence). - -As long as open source software is introduced and operated by internal federal service providers, this can be done **without a public procurement procedure**, because \"the OSS licence alone generally costs the procuring entity nothing and is therefore not relevant to procurement in itself.\" - -If an external service provider is commissioned for maintenance, support and other services for the open source software, the requirements of public procurement law must be observed. Different support variants are described in Section 9. It is also important to use appropriate suitability and award criteria when procuring open source software. The basis for this is explained in Section 8. - -## Development with open source components and release of source code - -With the publication obligation according to Art. 9 EMOTA, the procedure described in -2 [Em002-2 Instructions for Publishing OSS](./em002-2.md) should be followed here. -The documents [Em002-3 OSS Licensing Guidelines](./em002-3.md) and [Em002-4 OSS Community Guidelines](./em002-4.md) must also be consulted if necessary. The goal is to release the project in a controlled manner using the three checklists *[Em002-2.1](Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt), [Em002-2.2](Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt), [Em002-2.3](Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication%20.odt)*. - -## Collaboration in open projects (contribution) - -Possible considerations for the Federal Administration\'s contribution to open, already existing projects are listed in the BITKOM guide *\[BITCOM2024\]* Section 4.2.[^24] Depending on the importance of the project for the Federal Administration, it should be examined how much responsibility the respective office wants to and can assume. - -Collaboration in open projects and direct development in open projects can also take place using the documents for release. The focus is on [Em002-4 OSS Community Guidelines](./em002-4.md) and the associated checklist *[Em002-4.1](./Em002-4.1%20Checklist%20OSS%20Community.odt).* - -# Properties and selection of open source licences - -The properties and selection of open source licences are described in the document [Em002-3 OSS Licensing Guidelines](em002-3.md). - -# OSS procurement - -Strategic issues relating to procurement and OSS are dealt with in [Em002-7 Strategic aspects of procurement and open source software](./em002-7.md). - -The Competence Centre for Federal Public Procurement (CCPP) has published a new information sheet entitled *Software Procurement and Art. 9 EMOTA [KBB-MB]* as well as two documents \'Sample criteria -- EMOTA procurement and open source\' and \'Sample contract texts -- software development\'. - -Further assistance is available on the [FOBL intranet](https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html) (accessible only on the federal network) with the [*Open Source in Procurement Guidelines*](https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf) *\[[BBL-WL](https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf)\]* and the [*Checklist for Art. 9 EMOTA Blanket Exception*](https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx) *\[[BBL-CL](https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx)\]*. - -The enterprise readiness of open source can be found in the document *Selection Criteria for Enterprise-Ready Open Source Software \[Gu2024\]*[^25] or in the Bitkom guide.[^26] - -# Findability of OSS solutions - -Various platforms allow interested organisations to find and analyse open source software before use or procurement. The resulting data provide a basis for deciding on the use or procurement of open source software. - -A compilation of minimum requirements and possibly a market analysis should serve in any case. - -## OSS Catalogue - -The federal authorities are required to publish the source code of software they develop or commission for the performance of their duties. The OSS Catalogue[^27] lists all software developed by federal authorities since 1 January 2024 and released as open source. It provides an overview of available software and makes it easier to find and reuse open source solutions. - -If a new repository or organisation is created, it should be reported for inclusion in the OSS Catalogue by email to . - -OSS Catalogue: - -## OSS Directory - -The OSS Directory operated by CH Open[^28] makes it easy to find qualified providers offering professional support for open source software. - -Open source providers use success stories to show which users (customers) they have helped implement specific open source products. -The Directory also features current open source news from existing platforms, curated top news, events, communities, job listings and knowledge-sharing articles. The OSS Directory is available in German, English, French and Italian. All entries can be added and updated directly by registered users. - -OSS Directory: - -## alternativeTo - -A practical tool for finding alternatives to software is \'alternativeTo - Crowdsourced software recommendations\'.[^29] As the name suggests, the alternatives and their ratings have been created through crowdsourcing, i.e. the input of many individual users. alternativeTo distinguishes four types of software solutions, of which only the first is considered open source software in the sense of Art. 9 EMOTA: - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -## Open source repositories - -Currently, the world\'s most popular open source development platform with over 30 million users and over 100 million source code repositories is GitHub.[^30] Today, practically all IT companies, especially manufacturers of proprietary software, as well as many other types of company and organisation, have a GitHub presence. More and more public authorities -- about a dozen from Switzerland[^31] -- also publish their own open source software on \'GitHub and Government\' at . This process can also be carried out with other repositories. - -Examples of other repositories are: - -- GitLab - -- Bitbucket - -- SourceForge - -- LaunchPad - -On GitHub Insights, numerous relevant statistics of an Open Source project on GitHub can be read: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -## Open Hub - -If information is to be collected on an open source solution that is not -necessarily developed on GitHub, Open Hub by Black Duck is a good -option.[^32] A wealth of important information is clearly summarised for -around half a million open source projects: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -Open Hub also allows you to compare different open source projects.[^33] This quickly provides an overview of which project has the most active community, the longest development time or the most suitable licence. - -## Special code repositories - -Larger organisations have their own code repositories. Particularly noteworthy is, for example, the German repository for authorities opencode.de.[^34] Repositories from other public administrations are of particular interest here. - -# Support models for OSS use - -Open source software already available on the market can basically be used in three ways: - -1. Use without professional support - -2. Use with internal support - -3. Use with support from an external supplier. - -These three types of use and their advantages and disadvantages are briefly explained below. Which of these scenarios makes the most sense in a particular case must be decided on a case-by-case basis. Which support model is suitable depends on the strategic relevance of the open source software, the technical integration and the available personnel resources. - -For critical software, support must be provided professionally in any case, whether internally or externally. The planned lifecycle should also play a role in support planning. It may also be that support is obtained from multiple providers. - -## Use without professional support - -Open source software is available on the internet to download, install and use free of charge. - - - - - - - - - - - - - - - - - - - -
    - Advantages - -
      - - Low cost -
    -
      - - Rapid implementation -
    -
    - Disadvantages - -
      - - No guaranteed support -
    -
      - - No liability claims -
    -
    - 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. -
    - -## Use with internal support - -A company or public sector organisation builds up expertise and resources in specific open source solutions for long-term use. This approach is particularly common in business-critical areas. - - - - - - - - - - - - - - - - - - -
    - Advantages - -
      - - High flexibility thanks to internal know-how -
    -
      - - No supplier lock-in -
    -
    - Disadvantages - -
      - - High investment and time required to build up expertise -
    -
      - - Higher internal fixed costs for staff -
    -
    - 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. -
    - - -## Use with support from external supplier - -An external open source provider is brought in to professionally accompany the rollout and maintenance of the open source software. This approach is particularly used in business-critical areas where in-depth know-how of the software must be immediately available. This can also include parts of or the entire release. - - - - - - - - - - - - - - - - - - - -
    - Advantages - -
      - - Direct access to the know-how of open source developers -
    -
      - - Fixes and enhancements on a contract basis -
    -
      - - Selection of different open source suppliers -
    -
      - - Commitment, safeguarding against compliance risks -
    -
    - Disadvantages - -
      - - External costs through open source suppliers -
    -
      - - Know-how dependency on open source supplier -
    -
    - 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 -
    - -# Contact point - -There is no single point of contact in the Federal Administration that acts as an Open Source Programme Office. In principle, federal offices are responsible for implementation themselves. - -General enquiries about the OSS tools in the Em002 document set can be directed to the DTI Sector of the Federal Chancellery: . - -# Annexes - -## Changes from previous version - -- Section 4.1: Maturity levels added - -- Section 6: Procurement of OSS supplemented and adapted with the new FOBL documents - -- Section 7.1: New federal OSS Catalogue (opensource.admin.ch) - -- More minor editorial changes and improvements - -## References - -The references to the Em002 document set can be found in the [Em002 Strategic Guidelines](./em002.md). - -## Abbreviations -A list of abbreviations can be found in the main document Em002. -A glossary can be found in the document \'[Em002-6 Frequently Asked Questions about Publishing OSS (FAQ-OSS)](./em002-6.md)\'. - -## Business models with OSS -Open source software is not a business model per se because, unlike with proprietary software, it is not possible to sell software under an open source licence. Nevertheless, there are different possibilities for companies to operate business models based on open source software. For example, if professional external support is to be obtained for an open source solution, then the procurement of corresponding commercial services is necessary. The four most common business models for open source software are explained below. Additional aspects of these and other business models are explained in the BITKOM guidelines *\[BIT-KOM2023\]*. - -### Services and products based on OSS - -Companies can offer commercial services such as web hosting or cloud computing based on open source software, which would be much more expensive with proprietary software. As a result, most start-ups, online portals and e-commerce providers today build their platforms on open source software. Other technology companies such as telecommunications companies, streaming providers or even manufacturers of proprietary software integrate open source software into their software and hardware products as well as online services. This allows companies to continue to offer innovative solutions that would be difficult to achieve with proprietary software. - -### Services for OSS - -Open source providers provide services for selected open source software. They have experienced open source developers and can therefore offer support, maintenance, operation, development, consulting, training and other services for open source software. These can be obtained from the open source supplier as a mandate or under a contract for work and services. Such services for open source software can be publicly tendered as there is no vendor lock-in. What is important for such tenders is the consideration of appropriate criteria so that the service providers that are actually competent are selected (see Sections 0 and 8, *\[BITKOM2023\]* Section 3.3 and *\[Gu2024\]*). - -### Subscriptions - -If services for open source software are provided in a standardised, recurring form as a kind of service level agreement (SLA), these are called subscriptions. As part of such subscriptions, companies guarantee, for example, continuous security updates, support by email or telephone, compatibility with other software and hardware products through certifications, long-term maintenance services and safeguards against legal claims (copyright, patents). In return, customers pay subscriptions per workstation or CPU, similar to licence fees or usage fees for proprietary software. Unlike proprietary software, however, subscriptions for open source software are not a prerequisite for using the software, but merely a way of paying for the added value of the services provided by the open source supplier. - -### Dual licensing - -If a company owns the intellectual property of a software solution and all integrated open source components are under a permissive licence, then dual or multiple licensing can be applied. This allows the developer company to publish the software under a copyleft open source licence and also sell it under a proprietary licence. This commercial version is often called the Enterprise version and typically includes certain additional features, such as exclusive interface integrations or permission for buyers to integrate the software into their own proprietary products. Depending on the extent of the restrictions of the open source version, caution is advised when using dual-licensed software, as obtaining the Enterprise version may be unavoidable, making the vendor lock-in as high as with typical proprietary software. - -[^1]: Recommendation for Federal Administration IT in accordance with - \[P035\] *Section 4.6* - -[^2]: For definitions of the INTERNAL and CONFIDENTIAL classifications, - see the Ordinance *of 8 November 2023 on Information Security in the - Federal Administration and Armed Forces (InfoSecO; SR 128.1)* - -[^3]: See footnote 1 - -[^4]: Planning areas in accordance with the *Federal Administration IT - Strategy 2020--2023 of 3 April 2020 (SB000)* - -[^5]: [SR 172.019](https://www.fedlex.admin.ch/eli/cc/2023/682/de) - -[^6]: See: - -[^7]: See: - -[^8]: See: - -[^9]: See: - -[^10]: See: - -[^11]: See: - - -[^12]: See: - -[^13]: See: - -[^14]: See: - - -[^15]: See: - - -[^16]: We use the definition from *\[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.\' - -[^17]: Another aspect of security is that it is easier to document the - libraries used (including dependencies) than in proprietary - software. This in turn means that when vulnerabilities occur, they - can be quickly identified and fixed (see also SBOM). - -[^18]: Project or application managers are responsible for such new - features. The project determines exactly how this is done. Em002-2 - and Em002-4 help with detailed decisions. Depending on the size of - the feature, it may not make sense to go through the instructions in - full. Procurement law aspects for resources must be observed. - -[^19]: See: - -[^20]: https://alternativeto.net/ - -[^21]: Maturity model based on - https://todogroup.org/resources/guides/a-guide-to-outbound-open-source-software/#maturity-levels - -[^22]: Creation is not mentioned, as Art. 9 EMOTA directly requires - this. - -[^23]: Explanation of the term 'copyleft' in [Em002-3 OSS Licensing Guidelines](./em002-3.md) - -[^24]: See - - in, Section 4.2. - -[^25]: See *\[Gu2024\]* - -[^26]: See [Best practice recommendations for open source software \| - 2025 Guidelines \| Bitkom e. - V.](https://www.bitkom.org/Bitkom/Publikationen/Praxisempfehlungen-fuer-Open-Source-Software), - Section 3.3 - -[^27]: - -[^28]: - -[^29]: - -[^30]: - -[^31]: - -[^32]: - -[^33]: - -[^34]: \ No newline at end of file diff --git a/docs/en/em002-2.md b/docs/en/em002-2.md deleted file mode 100644 index 2ee3a78..0000000 --- a/docs/en/em002-2.md +++ /dev/null @@ -1,827 +0,0 @@ -**Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- - -# Management summary - -These instructions describe the procedure for disclosing source code of software that federal authorities develop or commission for the fulfilment of their duties in accordance with Art. 9 EMOTA.[^5] Exceptions are made if third-party rights or security-relevant grounds preclude or restrict such disclosure. Publication means that anyone may use, further develop and distribute the software. No licence fees are charged. - -These instructions are intended for individuals responsible for and implementing the publication of source code. - -![](./assets/em002-2/media/image1.png) - -The subject matter is divided into three main parts: - -- The first part (Section 3) covers **preliminary assessments** and exceptions according to EMOTA. - -- The second part (Section 4), **Analysis and preparation**, examines source code and prepares it as needed. - Furthermore, the choice of licence is made. - -- The third part (Section 5), **Publication and announcement**, describes the actual publication and further measures such as communication and building a suitable community. - -**Three checklists** accompany and document the process. - -Technical additions are listed in the annex. - -# Introduction - -When releasing open source software, a distinction must be made between **contributing source code and documentation to existing open source software** and **publishing it as an independent open source project**. - -The former typically involves bug fixes and feature enhancements. Depending on the licence type and software deployment, the source code must or can be released under the existing licence of the open source project. A release agreement may have to be followed. - -In the second case, starting a new open source project, governance and licence can generally be freely chosen. The only consideration is the licence under which any software elements integrated into the new project are published. Further details on licence selection can be found in the document [Em002-3 OSS Licensing Guidelines](em002-3.md). If value can be generated for the Federal Administration from a community or if the Federal Administration wants to create an ecosystem, [Em002-4.1 OSS Community Checklist](Em002-4.1%20Checklist%20OSS%20Community.odt) should also be completed according to [Em002-4 OSS Community Guidelines](em002-4). - -The release of open source software is more than just a technical measure. It also means establishing an appropriately open culture and getting people on board. A successful open source culture is a mixture of openness, technical excellence, strong social interaction and a shared commitment. - -The following diagram describes the instructions and different characteristics. - -![](./assets/em002-2/media/image2.png) - -Figure 1 -- Decision tree for software release - -# Preliminary assessment process - -**Objective:** Understand the advantages and possible consequences of publishing the software. -Decide whether the software can be published and if so, whether building an active community is worthwhile. NB: [Em002-2.1 OSS Preliminary Assessment Checklist](Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt) should be completed as early as possible in the project, as this can influence the way the software is developed. - -## Release under EMOTA - -According to Art. 9 of the Federal Act of 17 March 2023 [EMOTA2023] on the Use of Electronic Means to Carry Out Official Tasks (EMOTA), the Federal Administration (specifically Art. 2 para. 1) must disclose the source code of software that it develops or commissions for the fulfilment of its duties. Exceptions apply when third-party rights or security-relevant grounds preclude or restrict this. - -For custom software created on behalf of the Confederation, the General Terms and Conditions of the Confederation [BBL-AGB] generally apply. Under clause 25.1, these stipulate that ownership of source code and documentation transfers to the service procurer (the Confederation). If the software was procured jointly by several organisations or other institutions, it must be checked who has the rights to the code. For example, ownership may lie with an association founded for this purpose. - -The mere use of standard software is not covered by Art. 9 EMOTA, and release would generally not be possible anyway, as the rights to standard software often remain with the vendor (GTC Confederation for Standard Software Procurement). However, custom extensions to standard software are certainly suitable for publication. Normally, these are owned by the Confederation. Mere configuration adjustments are less suitable for publication. The topic is dealt with in [Em002-7 Strategic Aspects of Procurement and Open Source Software](em002-7.md) and the documents [KKB-MB] and [BBL-WL]. In principle, extensions are always subject to Art. 9 EMOTA. - -### Software in relation to EMOTA - -The current ISO/IEC Standard 24765 contains three definitions for software: - -1. a program or set of programs used to operate computers - -2. programs and their associated documentation - -3. programs and, where applicable, associated documentation and other data necessary for computer operation. - -Based on this definition, smaller scripts, macros or Infrastructure as Code (IaC) are also classified as software. EMOTA refers to source code in Article 9 paragraph 1. Under this interpretation, publication according to definition 1 would suffice. However, publishing without associated documentation is of little value, as the software cannot be used according to definition 2. - -To achieve synergies with third parties, definition 3 must be taken as a basis. Regarding data, this specifically means master data and basic configurations (for example, enumeration values and basic data that should also be made available as open source). - -Smaller projects, scripts or code examples may also be published together in one repository if deemed appropriate by the federal authority. In this case, these instructions and the corresponding checklists can be completed once. - -Proportionality and effort should be considered when deciding what to publish and how. - -### Type of software - -As shown in Figure 1, a distinction is made between in-house development, joint development and third-party projects. Each constellation has different implications. Regardless of how the software is developed, it falls under Art. 9 EMOTA. - -With in-house development, the Confederation creates the software itself or commissions it accordingly. It chooses the governance and retains the rights to the source code. - -In joint development, the Confederation creates the software with other organisations. The governance and rights to the software must be regulated through the chosen form of organisation. - -If the Confederation contributes directly to third-party software, this source code also falls under Art. 9 EMOTA. It must be ensured that this is done in accordance with federal authorities\' interests, that participation meets the project requirements, and that the Federal Administration adheres to the governance. - -This is done using [Em002-2.1 OSS Preliminary Assessment Checklist](em002-2.1.md) and [Em002-4.1 OSS Community Checklist](./Em002-4.1%20Checklist%20OSS%20Community.odt). - -### Legacy code - -For old software (**legacy software**), the retrospective effort for publication is higher than if release was planned from the beginning. -For legacy software, it only makes sense to make this effort if a potential user wants to use the software. Regardless, [Em002-2.1 OSS Preliminary Assessment Checklist](Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt) should be completed to document relevant decisions. - -Applications which federal authorities began to develop on or after 1 January 2024 or which are being developed on behalf of the Confederation based on a contract concluded after 1 January 2024 are not considered legacy and in, any case, fall under the publication requirement according to Art. 9 para. 1 EMOTA. - -The publication requirement under EMOTA is not dependent on the benefit to third parties. - -### Libraries, plug-ins and add-ons - -In some cases, the software may not be a standalone application but only parts thereof. EMOTA and the ordinance do not further define source code. The instructions also apply to decoupled libraries, plugins and add-ons, and these fall under EMOTA. - -**Tasks:** - -- Gather information from [Em002-5 OSS Tools information sheet](em002-5.md). This describes both general information about open source software and specific information about applying EMOTA. - -- Check whether the requirements under EMOTA are met. - -- Complete [Em002-2.1 OSS Preliminary Assessment Checklist](./Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt). As a rule, it makes sense to directly involve the contact persons from the software supplier/developer. - -- If needed, complete [Em002-4.1 OSS Community Checklist](./Em002-4.1%20Checklist%20OSS%20Community.odt). - -**Decision:** Does the software have to be published and how should this be done? - -## Exception: Third-party rights - -Publication must be avoided if doing so would violate third-party rights. If the software was developed by federal employees, the rights belong to the employer.[^6] In contracts for staff leasing and IT services, the rights are usually transferred to the Confederation and should be claimed. - -If the software was or is being developed on the basis of the General Terms and Conditions of the Swiss Confederation (as of 2024),[^7] the intellectual property rights belong to the client, unless contractually agreed otherwise. - -An application typically consists of numerous individual components and parts. With some types, it becomes problematic if they themselves are not open source or cannot be published under an open source licence as part of the application. - -**Libraries** - -Depending on the programming language, libraries are either directly compiled with the application, linked, or delivered as packages. They form an integral part of the application. - -If the application contains proprietary or licence-requiring libraries, then open sourcing becomes more difficult. In principle, the source code of the rest of the application can be published, but potential users or developers would need to purchase the relevant library before the application becomes usable or extensible. - -If ownership of the problematic library lies with the application supplier, it is worth seeking legal clarification as to whether the Confederation has transferable rights to these libraries. - -Where possible, proprietary and licence-requiring libraries should be avoided with in-house developments or replaced if possible before release. Considering the objective of Article 9 EMOTA, as much functionality as possible used by public administrations should be published. Therefore, individual libraries that prevent code publication represent a technical debt that should be documented and, where appropriate, eliminated when the opportunity arises. - -**Databases and other data storage** - -If the application uses proprietary, licence-requiring data storage such as Microsoft SQL Server, this is not an obstacle to open source -publication. - -However, it should be examined whether additional open databases such as PostgreSQL can be supported. This can save operating costs and lower the -entry barriers for potential users. - -**Application servers and operating systems** - -If the application requires licensed operating systems or application servers (e.g. Microsoft Windows Server or RedHat JBoss), this is not an obstacle to open source publication. - -We recommend asking the software vendor whether licensed third-party libraries are used as components of the application and, if so, which ones. - -If the software creation was jointly procured by multiple organisations or other institutions, ownership usually lies with an association or other legal entity established for this purpose. - -**Other intellectual property** - -Third-party rights include not only copyrights but also other intellectual property (trademarks, patents). Patents do not fundamentally prevent software from being published as open source, but they may prevent it from being used or enhanced. While patents are rather uncommon in Switzerland, it is usually worth making a brief enquiry to the software vendor about whether an examination has already taken place. - -**Acquisition of necessary rights** - -To fulfil the legal requirements of EMOTA, the federal authority has the option as the contracting authority to secure the rights to the work results. This prerequisite for publication can be defined as a criterion during procurement. Acquiring necessary rights to the software afterwards can become more complex. - -If the federal authority does not want to publish the software itself, it can delegate this task to the contractor, for example, or transfer the publication rights accordingly. In this case, it will transfer the necessary rights (and obligations) to the supplier and/or third parties and commission them with publication. This means that the right is effectively transferred to a third party under the condition of release/support of the corresponding software. - -Here too, \[KKB-MB\] contains important information. - -**Procedure** - -![](./assets/em002-2/media/image3.png) - -Figure 2 - Exception: Third-party rights (always also take into account \[KKB-MB\] and [Em002-7 Strategic Aspects of Procurement and Open Source Software](./em002-7.md)) - -**Tasks:** - -- Check whether the organisation owns the relevant protective rights to the software. - -- Check whether the rights can be acquired. - -- If necessary, obtain written permission from the rights holders. - -- Verify that the application contains no proprietary or protected parts. - -- Check that there are no obstacles due to patent protection (as far as possible and reasonable). - -- Check whether the release is to be carried out by a third party. - -- Check whether development should be based on open source software development (using the [Em002-4 OSS Community Guidelines](./em002-4.md). - -**Decision:** Can the software be published without violating third-party rights? - -## Exception: Security-relevant reasons - -Software that cannot be published on security-relevant grounds is exempt from publication. - -The actual data of software is not affected by source code publication.This data is usually sensitive and is not published. However, it may be that besides the content data, certain algorithms and procedures visible in the source code should not become public (e.g. offensive cyber capabilities, details of fraud detection). Security can relate to confidentiality, integrity, availability or traceability. - -**Recommendation:** - -Software should be deliberately developed so that no additional risk arises even when the source code is published. The assumption that non-publication protects against successful attacks is deceptive (\'security through obscurity\'). - -**Procedure:** - -![](./assets/em002-2/media/image4.png) - -Figure 3 - Exception: Security-relevant reasons - -The following grounds can be considered security-relevant for each project: - -- Publication of the software would substantially increase an information security risk.[^8] - -- For fraud prevention algorithms and similar algorithms, publication may be waived where appropriate. - -- Particularly sensitive cybersecurity technologies. - -- Core software for operating critical infrastructure. - -- When publication would violate other legal foundations. - -The following temporary grounds may still prevent publication. However, publication will be enabled later through appropriate measures. - -- Legacy code could not yet be cleaned up and may contain security-relevant issues. - -- Security audits of the code have not yet been conducted. - -- The development process is not mature enough to enable secure publication. If the development process is not sufficiently established, it is possible that parts intended not for third parties might be published. For example, code commenting guidelines and test data generation must be adapted to the new publication scenario and function reliably. - -Through the following measures, software can be published despite security-relevant grounds: - -- Separate configurations (e.g. type of encryption used) from the software. - -- Outsource technically sensitive information (e.g. processes, calculations) that is not public into configurations or settings. - -- Plan, implement and regularly practise suitable organisational, personnel and technical measures. - -- Plan and carry out appropriate quality activities during publication. See the following section \'Analysis and preparation\'. - -**Tasks:** - -- Check the software for security-relevant grounds that would prevent publication. - -- Estimate effort required to resolve temporary grounds. - -- Plan measures to separate security-relevant information from the software\'s source code. - -- Ensure that the application contains no procedures that must not become public. - -**Decision:** - -Are there compelling security-relevant grounds that make publication impossible? - -## Clarification of publication - -This step clarifies who will publish the software. If the software was created by an external vendor, the publication can also be commissioned to that vendor. In this step, it is important to determine where the source code will be published and to establish appropriate governance accordingly. - -If the software was developed internally at the Confederation and the Confederation cannot or does not wish to publish it itself, a publication order can be placed with a supplier or the rights can be assigned (transfer of obligations to a third party). - -**Minimum release and support** - -EMOTA does not specify any requirements regarding publication. A minimum release of the source code fulfils the legal requirement. No further activities are required. The question of whether and to what extent support is offered and how actively the project is maintained can be answered using [Em002-4 OSS Community Guidelines.](./em002-4.md) - -**Open source software development (OSSD)** - -With open source software development (OSSD), in addition to publishing the source code, the entire development process is conducted 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. Through this transparent working method, the entire community benefits and enables collaboration across organisational boundaries. With this approach, no further publication activity is necessary upon project completion, as this was already considered at the project\'s start. - -**Tasks** - -- Create a rough effort estimation for the analysis phase. Depending on the size and complexity of the application, the effort ranges between three days and two weeks. - -- Release resources for further steps, particularly for analysis. - -- Agree in principle to publish the application as open source. - -**Decision:** - -Basic agreement and feasibility for publishing the application as open source is given. - -## Minimising effort - -The checklists and instructions are structured to minimise the effort required for releases. Consistent advance planning of the release at project start and development designed for release minimises effort. -Some administrative effort and costs will inevitably arise \[Le2023\]. These can potentially be recovered through communities with shared development costs (see [Em002-4 OSS Community Guidelines](./em002-4.md)). - -## Choice of publication language - -The choice of language must consider both the potential target audience and the team\'s working methods. Fortunately, translations are much easier with the aid of new tools. The official languages of the Confederation[^9] and English are possible options. - -If the project is internationally relevant, English should be the target language. For subsequent publication, it naturally makes little sense to change the language. - -At minimum, the README.md should be available in multiple languages so that interested parties can immediately see if the project is relevant to them. - -Public communication should primarily consider the target audience. It should also be considered that this is public communication from the Confederation. - -**Note**: With publication, the Federal Administration enters a new channel of public communication. If this is not done carefully and professionally, the public image of the Confederation can quickly -suffer. - -# Analysis and preparation - -**Objective:** The work required for open source publication is completed. -Decisions regarding licence and type of community have been made. This is done using [Em002-2.2 Analysis and Preparation Checklist](./Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt). - -## Source code analysis - -The source code to be published and other related documents are analysed prior to publication. This analysis ensures that no confidential information is published. - -If extensive source code is planned for publication, it is recommended to use appropriate automated tools for the following activities. - -The details are defined in Section E. - -**Tasks** - -- Check how existing code quality and guidelines have been implemented - (e.g. ISO/IEC 25010:2023[^10]). - -- Ensure that no sensitive (test) data is included, e.g. data based on real people or cases. - -- Update software documentation (see annex). - -- Delete unnecessary files or outdated documents and data. - -- Check source code for secrets/credentials.[^11] - -- Conduct targeted security tests and subsequently establish a (public) bug bounty programme.[^12] - -- Check all used libraries regarding licences and that the corresponding lists (attributions) are created. If a library is available under several licences, this should be indicated accordingly in the lists. - -- Describe deployment (CI/CD pipeline) and possibly set up a demo instance. - -These activities are independent of publication but are prerequisites for good software quality and ensuring compliance. Observing these measures simplifies collaboration, increases the quality of external contributions, and enhances the image of the software or the authority. - -## Licence selection - -**Refer to [Em002-3 OSS Licensing Guidelines](em002-3.md).** - -Internationally established licence texts should be used where possible and appropriate. Liability claims by licensees should be excluded to the extent legally possible. - -**Tasks** - -- Check any dependencies on existing licences. - -- For third-party code, check terms of use for compatibility with intended licence and replace code if necessary.[^13] - -- Select appropriate licence. - -Licence compatibility can be checked using tools such as ORT Toolkit,[^14] Black Duck,[^15] FOSSA[^16] or FOSSology.[^17] -The ToDO Group[18] provides an up-to-date overview of tools. - -**Decision:** - -- Determine and document under which the licence the software will be published. - -## Open source documentation - -A minimum set of documentation is expected with publication. Several documents have become established in the open-source ecosystem. This gives visitors a quick insight into the software including licensing. - -The following documents are expected: - - -|**Document**|**Description / Content:**| -|:--|:--| -|README(.md) |Serves as an entry document and provides a quick overview of the project\'s purpose,scope, status, licence and target groups.| -|LICENSE | Description of the chosen licence in the project| -|CONTRIBUTING(.md) | Describes the process of how to contribute to the project.| -|CODE_OF_CONDUCT(.md) | The Code of Conduct establishes expected social norms within the project. | -|CHANGELOG(.md) | Maintains a list of changes in software versions.| -|THIRD-PARTY-LICENSES(.md) | Description of third-party licences or used components.| -|Getting started | Brief guide on how to install and use the software.| -|Create Gitignore | Describes documents that will not be published, e.g. configurations, test data or generated content. Protected and sensitive information should be managed outside the project in appropriate designated tools and storage.| -|publiccode.yml| Structured metadata for describing the software, based on the standard https://yml.publiccode.tools/. The defined format makes the publication easier to find and reuse. Further information in Annex F.| - - -Table 1 -- Open source documents - -Further technical details of these documents are described in the annex. - -**Tasks** - -- Create standard documentation. - -- Include copyright, licence notices, and disclaimer in all files. - -- Depending on the publication platform, additional descriptions can be made. - -**Decision:** - -- Final decision to publish the application as open source. - -# Publication and announcement - -**Objective:** The application is published as open source and easily findable by third parties. All components are ready for publication and the community is built or established. This is done using [Em002-2.3 OSS Release and Publication Checklist](Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication.odt). To a certain extent, it involves recapitulating decisions already made. - -## Choice of platform - -There are several ways to publish source code. The following table provides an overview of possible source code management (SCM) systems and platforms. - -The suitable platform must be selected prior to actual publication. Some federal authorities are already represented on GitHub.[^19] In this case, it makes sense to use platforms already established. - -**Recommendation:** - -We currently recommend setting up an organisation on GitHub per federal authority for publishing source code. Within this organisation, corresponding projects (repositories) can be created and users with appropriate permissions managed. In the future, a central federal platform should be established. To maintain optimal user management and preserve the reputation of the Swiss Confederation, it is important to use fewer, but better-managed repositories. - -| **Platform** | **Properties** | -|:--|:--| -| GitHub[^20] | Microsoft's online platform with wide distribution. A large amount of open source software is hosted on GitHub. Offers many additional tools besides SCM.Available in both Free and Enterprise versions (subscription).| -| GitLab[^21] |Online platform from the company of the same name GitLab, which is itself published under an open source licence. Offers many additional tools besides SCM. Can also be operated locally, thus providing a degree of sovereignty. Available in both Free and Enterprise versions (subscription). | -| Bitbucket[^22] | Atlassian's online platform, specifically integrated into its ecosystem. Available in both Free and Enterprise versions (subscription). | -| Internal SCM system | If own SCM platform is provided, it can also publish and make certain repo/projects available. Operation must be ensured. | -| Federal platform | There is currently no central federal platform for publishing software. A measure to this effect is proposed in [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](./em002.md). | -|Website, public FTP server, etc. | EMOTA does not define how software should be published. A minimum release[^23] can also be done on a website or other publicly accessible resources. However, this is not suitable for sustainable collaboration in the sense of open source.| - -Table 2 -- Platforms for publishing open source software - -If the software is published jointly with an external partner or organisation, care must be taken to ensure that appropriate permissions and access to the source code are available. - -**Tasks** - -- Evaluate suitable platform, including corresponding organisation/project. - -- If not yet clarified, determine project/repository naming. - -- Define and check permissions on the repo. - -- Ensure appropriate governance and any replication of source code. - -**Decision:** - -- Platform for publication has been appropriately chosen. - -## Software publication - -When the prerequisites are clarified, the software can be published. - -**Tasks** - -- Check prerequisites against the [Em002-2.3 OSS Release and Publication Checklist](Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication.odt). - -- Access to platform is available and governance clarified. - -- Publication of source code and documentation by the developer. - -## Communications - -After actual publication, further communication activities can be initiated by and within the federal authority concerned. These help with distribution and bring the desired added value from publication. - -**Tasks** - -- Description in repo hosting, security settings, etc. - -- Internal and, if applicable, external communication - -- Write a message to the community. - -- Make the application known within the organisation and in specialist committees, promote its use and contributions. - -- Create a publiccode.yml[^24] file in the repository for the Federal Administration's OSS Catalogue.[^25] - -## Community building and maintenance - -When publishing software, a community can develop that can contribute to the software through contributions (pull requests), questions, documentation suggestions, etc. To have an active community, considerable effort is required for both building and continuous maintenance. A well-functioning community minimises unwanted forks of the software. The goal here is to activate the added value of the community through targeted activities. Even with minimum publication, handling feedback and questions about the software should be defined. - -**Tasks** - -- Clarify who potential users or interested parties are. - -- Determine the appropriate form for the specific application using the [Em002-4 OSS Community Guidelines](./em002-4.md). - -- Build the community. - -- Community building activities. - -# Annex - -## Changes from previous version - -- Sections 4.3 and 5.3: Publication supplemented with publicode.yml - -- Annex F \'Public Code\' was added - -- Various minor editorial changes and improvements - -## References - -See *Em002 Strategic Guidelines for Open Source Software in the Federal Administration*. - -## Abbreviations - -See [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](./em002.md) and [Em002-6 FAQ about OSS](./em002-6.md). - -## Accompanying documentation [Em002-2.2 OSS Analysis and Preparation Checklist](em002-2.2.md) -- Documentation - -## Source code documentation - -The documentation should be part of the project\'s source code to ensure that changes to the documentation are stored in a revision-secure manner and the documentation is versioned alongside the project. This automatically ensures that the documentation, if properly maintained, -does not diverge from the project\'s development status, and documentation for older versions of the project can be retrieved at any time. - -Furthermore, this gives third parties the opportunity to easily contribute changes to the documentation. - -Markdown should be used as the markup language for the text formatting as it is easy to write, widely used, and machine-readable. Additionally, markdown documents are displayed in a well-readable target format by all common platforms. Markdown documents can be rendered into any target format independent of the platform used, using static site generators such as Jekyll, MkDocs, Gatsby, or Sphinx, for example, with the corporate identity specifications of an administration. - -## Documentation recipients and structure - -The project documentation should address both end users and technical professionals, thus not focusing solely on technology. For language selection, see Section 3.6. This supports the software\'s distribution. - -A README.md file serves as the entry document. Files with this name are recognised and displayed as the entry point to the documentation by all common platforms.[^26] - -README.md should provide a quick overview of the project\'s purpose, scope, status, licence and target groups. Specifically, README.md should include the following points: - -- Software name - -- Brief description of the software\'s purpose and function. Scope and possible limitations - -- Installation guidelines - -- How to use the software - -- Reference to any demo instance - -- Support and contact details - -- How to contribute to open source software (Contributing) - -- Licence used (Licence) - -- Project status / development status - -## Emphasising open source and licence storage - -Directly after the mission statement, it should be clearly and unambiguously stated that the project is open source software. The licence used by the project should be specified with the corresponding SPDX identifier[^27] and linked to the specific licence text in the LICENSE file. Licence templates typically include a variable part (e.g. project name, copyright year, author\'s name) that must be adapted in the LICENSE file. - -Most platforms recognise licences in a LICENSE file and offer clear information about the licence, e.g. a brief summary of the licence terms. - -It is recommended to add a minimum licence and copyright header to each source file that is created. Existing headers in existing files should not be changed. If contributing to a project that has clear standards for headers, these should be followed. - -For more details see: Producing Open Source Software: State That the roject is Free.[^28] - -## Current development status - -To quickly show the project\'s state, the current development status should be documented in README.md. It is important for readers to know whether the project is in a mature state or at the beginning of development, whether it is actively maintained, and how frequently new versions are published. - -This section can describe what type of third-party support is currently most important for the project. This could be, for example, a developer with specific technological knowledge or someone to revise the project\'s documentation. - -For further details, see Producing Open Source Software: Development Status.[^29] - -## Demo instance - -For applications, it is recommended to provide a demo instance so that the application can be tried without installation effort. Depending on the type of application, the demo instance can be the productive installation or a test stage. It is important that readers can access the corresponding instance as independently and directly as possible. - -As an alternative, many open source projects provide tools for easily starting the application. This can be done using containers, portable applications or install scripts, for example. - -## Subject matter expert and project owner - -The README.md file should name the primary subject matter expert so that other interested administrations and organisations can make contact as directly as possible. - -Personal email addresses should not be used. - -The README.md file should also briefly describe which organisation is the project owner, especially if an association has been formed for the project. - -# Installation documentation - -For applications, README.md should reference installation documentation that describes hardware and software requirements, which infrastructure components (for example, databases) are used, and how the application can be installed and operated. - -## Developer Guidelines - -The entry point for the Developer Guidelines should be stored in a markdown file CONTRIBUTING.md, which is linked in README.md. The Developer Guidelines are part of the extended documentation for developers who want to contribute to the project and primarily focus on collaboration and communication within the project rather than on technology. - -The Developer Guidelines should include the following points and reference the corresponding documents where appropriate: - -- A reference to the project\'s Code of Conduct. The Code of Conduct establishes expected social norms within the project. - -- It is recommended to choose or build upon the Contributor Covenant Code of Conduct licensed under CC-BY-4.0[^30] as the Code of Conduct.[^31] - -- A note that the project conducts code reviews in the form of GitHub pull requests, with a reference to the GitHub pull request documentation. - -Finally, reference should be made to the Developer Documentation. - -## Developer Documentation - -While the Developer Guidelines describe the collaboration and social norms of the project, the Developer Documentation focuses on the technical aspects of participating in the development of the project. It should describe at least the following points: - -- What technical dependencies the project has and which tools are necessary for project development. - -- What formal rules apply to the project\'s source code, for example regarding source code formatting. - -- How the project\'s source code is organised and how functions can be technically tested. - -- An architecture sketch with a rough description of the architecture, preferably including context demarcation and rough component view.[^32] - -- For applications: How the application can be started for development or debugging purposes and what infrastructure components are necessary for this. - -# Accompanying documentation for [Em002-2.2 OSS Analysis and Preparation Checklist](em002-2.2.md) -- Source code - -## Source code history - -A project\'s source code is usually stored in a source code management (SCM) system such as GitHub. These systems store not only the current state of the source code but also changes that have been made to the source code over time. In particular, this includes deletions from the source code, including deleted files. - -In addition, the SCM contains meta-information about changes to the source code, such as the author\'s name and email, or PGP signatures for signed commits and tags. - -## Sensitive, proprietary or confidential data - -The source code and source code history of the project may contain publicly available data, such as a postcode directory, randomly generated data or synthetic data. - -The source code and source code history must not contain any sensitive or confidential (personal) data or information as defined by the Federal Act on Data Protection (FADP) and the Information Security Act (ISA). This includes, in particular: - -- User names and passwords or other secrets such as private keys, access tokens or certificates. - -- Internal DNS names, URLs, host names, IP addresses, network structures or drive names. - -- Names, addresses, pictures or similar personal data without the consent of the person concerned - -- Anonymised or pseudonymised data (because it is possible to undo anonymisation or pseudonymisation) - -Even if the current state of the source code is free of sensitive, proprietary or confidential data or information, such data or information may still be retrieved from the SCM system history if it was ever part of the source code or SCM meta-information in the past. Cleaning up the current source code state will not completely remove this information.[^33] - -Therefore, if in doubt, it is recommended to completely remove the source history after cleaning up the source code, before publishing the source code. - -The names and email addresses of the authors of the source code are usually available directly in the source code or in the SCM metadata, for example in GitHub commits or annotated GitHub tags. From a legal point of view, this is not a problem, as the developer company is responsible for regulating the publication of such information. However, it is recommended that the developer company or internal federal employees are made aware that the names and email addresses of the source code authors may be disclosed when the software is published. - -## Removing author information - -The history of the software can be changed to hide author information. Tools[^34] can automate this step to a large extent. - -Removing author information removes attribution, traceability, and contact information. The effort involved should not be underestimated, depending on the volume of source code. For these reasons, author removal is not recommended. Names may be published if a) consent has been obtained from the persons concerned and b) there are no security-relevant reasons for not doing so. - -## Consideration of library licences - -Virtually every project uses third-party libraries (software libraries, dependencies) to access commonly used functions without having to code them. These libraries usually depend on other libraries, resulting in multi-level dependencies (transitive dependencies). Depending on the programming language, even small projects can have hundreds of dependencies. - -The results of this clarification must be considered when choosing a licence in accordance with [Em002-3 OSS Licensing Guidelines](em002-3.md) and in [Em002-2.3 OSS Release and Publication Checklist](Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication.odt). - -For each of these dependencies, ensure that its licence is compatible with the project licence. Dependencies that are not under an open source licence or which have not declared a licence or use a viral licence that does not match the project licence are particularly problematic. Some libraries are licensed under more than one licence and allow the user to choose one. - -- In all major programming languages, the dependencies of the project (including transitive dependencies) and the licences of the dependencies can be automatically listed. These include: - -- The Project Info Reports plugin for the Apache Maven package manager for Java projects, which uses the dependency report to generate an HTML output of all used libraries, including the declared licence.[^35] - -- The NPM Licence Checker for the NPM Package Manager for JavaScript projects, which can output all libraries used, including the declared licence, in various formats, e.g. CSV.[^36] - -- Pivotal\'s Licence Finder, which supports various package managers and programming languages, including Ruby Gems, Python Eggs and Godeps.[^37] - -# Use of libraries with proprietary licences - -Libraries under a proprietary licence are generally problematic in open source projects and usually cannot be used, especially if the source code has been published under a viral licence such as the AGPL. - -Please contact the vendor and the legal department of the relevant office to check whether and under what conditions the proprietary library can be used in your project. - -## Using package managers - -Virtually all popular programming languages provide package managers for managing their dependencies, such as Apache Maven for Java projects, NPM for JavaScript projects or NuGet for .NET projects. - -When using a package manager, the dependencies used by the project are no longer directly part of the project\'s source code, for example by copying the dependency\'s source code into the project or by copying the dependencies into the project in binary form. Instead, the project obtains all its dependencies via the package manager\'s declarations. - -This allows all dependencies to be listed and referenced correctly. It also prevents unintentional modification of dependency code. If changes are necessary, they must be made directly at the source of the dependency. - -## Project licence declaration in the package manager descriptor - -The project should declare its licence in the appropriate package manager descriptor, using the SPDX identifier[^38] so that the project licence can be issued by the package manager. This is particularly important for libraries so that users of the library can automatically query their licence via the package manager. - -## Attribution and copyright notices - -Many libraries are subject to a licence that requires the library user to give an original copyright notice or attribution. - -These include the following licences (excerpt): - -Apache 2.0, ASL 1.1 (Apache 1.1), BSD, BSD 3-Clause, Creative Commons \'Attribution\' (CC BY), MIT, ISC - -For others, see the list of OSI-accredited licences.[^39] - -In practice, this concerns almost all libraries used. As the number of libraries used in small projects is already very high, a legally correct copyright notice or the necessary attribution is only possible with a great deal of effort. - -It is therefore recommended to proceed as follows: - -- Make a list of the libraries used, using the Package Manager\'s mechanisms or tools such as the NPM Licence Checker or Pivotal\'s Licence Finder. - -- Prepare the list manually so that it contains the following information: official name of the library project, website of the library project, licence used for the library as SPDX identifier with a link to the licence text. - -- Place the list in the project\'s source code, e.g. in a file THIRD-PARTY-LICENSES.md. - -- For applications: Include a link pointing to THIRD-PARTY-LICENSES.md in an \'About\' or \'About this application\' dialogue. - -- The \'About\' dialogue is widely used for this purpose, for example in Google Chrome (in the \'About Chrome\' dialogue). - -- For Libraries: Refer to README.md under THIRD-PARTY-LICENSES.md. - -- As part of the code review process, ensure that changes to the libraries are added to THIRD-PARTY-LICENSES.md. - -# Example Codeblock THIRD-PARTY-LICENSES.md - - - - - -
    - This project uses open source software: -
      - * Spring Boot, http://projects.spring.io/spring-boot/ licensed under [Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0) -
    -
      - * caniuse-db, https://github.com/Fyrd/caniuse licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) -
    -
    - -## Accompanying documentation for Em002-2.3 OSS Release and Publication Checklist - -### Publication with publiccode.yml - -Publiccode.yml is a metadata standard for software repositories that contain software developed or acquired by public administrations. The aim is to make this software easier to find and reuse. The metadata standard is internationally established and publicly described at . A publiccode.yml file typically contains information such as title and description (possible in several languages), development status, contact details, licence information, etc. Country-specific extensions are planned for Switzerland. - -A yml file must be created in the main directory of the repository for each software. If the solution consists of several (auxiliary) repo, one file is sufficient, as this describes the use case of the solution. - -Using the structured data in publiccode.yml files, an [OSS Catalogue](https://www.opensource.admin.ch/) -([opensource.admin.ch](https://www.opensource.admin.ch)) is generated for the entire Federal Administration. The Catalogue provides an overview of published software and makes it easier to find and reuse existing solutions. - -If a new repository or organisation is created, it should be reported for inclusion in the OSS Catalogue by email to opensource@bk.admin.ch. - -In addition to the OSS Catalogue, a graphical editor and validator for publiccode.yml files is also available. - -OSS Catalogue and Editor: https://www.opensource.admin.ch/ - -## Further sources and licence - -The checklist, the accompanying documentation and related templates are based in part on the following sources: - -- Google Open Source Docs by Google LLC, licensed under CC-BY-4.0[^40] - -- Producing Open Source Software, How to Run a Successful Free Software Project by C-BY-SA-4.0[^41] - -- GitHub Healthy Contributions[^42] - -- Standard for Public Code[^43] - -[^1]: Recommendation for Federal Administration IT in accordance with - \[P035\] *Section 4.6* - -[^2]: For definitions of the INTERNAL and CONFIDENTIAL classifications, - see the *Ordinance of 8 November 2023 on Information Security in the - Federal Administration and Armed Forces (InfoSecO; SR 128.1)* - -[^3]: See footnote 1 - -[^4]: Planning areas in accordance with the *Federal Administration IT - Strategy 2020--2023 of 3 April 2020 (SB000)* - -[^5]: Federal Act *\[EMOTA2023\]* - -[^6]: Art. 332 CO in conjunction with. Art. 6 para. 2 FPA - -[^7]: General Terms and Conditions of the Swiss Confederation, in - particular Section 25.1 - - - -[^8]: Information Security Act, ISA. Art 6 Information security. - - -[^9]: - -[^10]: ISO/IEC 25010:2023 - Systems and software Quality Requirements - and Evaluation (SQuaRE) - -[^11]: - -[^12]: - -[^13]: See Em002-3 regarding selection of third-party code/libraries for - a technology stack and regarding compatibility of the licence. - -[^14]: - -[^15]: - -[^16]: - -[^17]: - -[^18]: - -[^19]: The website gives an overview of - organisations and authorities that are active on GitHub. - -[^20]: https://github.com/about/ - -[^21]: https://about.gitlab.com/ - -[^22]: https://bitbucket.org/product/en - -[^23]: A minimum publication only includes the publication of the source - code and other minimal artefacts. This type of publication fulfils - EMOTA requirements. However, no added value is achieved through the - publication. - -[^24]: The metadata standard describes - the software. The defined format makes the publication easier to - find and reuse. Further information in Annex F. - -[^25]: OSS Catalogue: https://www.opensource.admin.ch - -[^26]: For more information on creating a readme file: - - -[^27]: SPDX identifier - https://spdx.org/about - -[^28]: https://producingoss.com/en/getting-started.html#state-freedom - -[^29]: https://producingoss.com/en/getting-started.html#state-freedom - -[^30]: https://creativecommons.org/licenses/by/4.0/ - -[^31]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[^32]: Architecture framework MMB (Bund Modelling Method) or arc42. - http://arc42.org/ - -[^33]: One possibility to clean up a repo is offered by the tool [BFG - Repo-Cleaner:](BFG%20Repo-Cleaner:) - https://rtyley.github.io/bfg-repo-cleaner/ - -[^34]: https://www.adamdehaven.com/blog/update-commit-history-author-information-for-git-repository/ - -[^35]: Plugin info - - -[^36]: NPM Licence Checker https://github.com/davglass/license-checker - -[^37]: Licence Finder from Pivotal - - -[^38]: SPDX identifier - https://spdx.org/ - -[^39]: Open source licences are licences that comply with the Open - Source Definition -- in brief, they allow software to be freely - used, modified, and shared. https://opensource.org/licenses - -[^40]: Google Open Source Docs -- - -[^41]: Producing Open Source Software, How to run a Successful Free - Software Project - - -[^42]: [GitHub Healthy - Contributions](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions) - -[^43]: Standard for Public Code -- diff --git a/docs/en/em002-3.md b/docs/en/em002-3.md deleted file mode 100644 index ef23761..0000000 --- a/docs/en/em002-3.md +++ /dev/null @@ -1,1134 +0,0 @@ -**Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- -# Management summary - -It is recommended that one of the following two licences be strategically defined in the Federal Administration when a new project is started: - -- **AGPL licence**: Copyleft effect desired. Changed code should in any case flow back into the general public and can then also be reintegrated by the Federal Administration. It is recommended to use the latest version of the licence. - This is the best way to fulfil the principle of \'public money -- public code\'. The rights of third parties, especially in the case of further developments, can weaken this to LGPL. - -- **MIT licence**: It should be possible for third parties to develop proprietary applications based on the Federal Administration\'s code. If a non-endorsement is specifically required, BSD-3-Clause is to be preferred. - -The following decision aid can be used to select the licence: - -![](./assets/em002-3/media/image1.png) - -Figure 1: Simplified licence selection guide - -To a certain extent, these two licences form the two extremes in the spectrum of OSS licences. It can be very useful to select a more suitable licence for a specific project. This guide is intended to -provide concrete assistance. - -If the analysis of the software libraries reveals that a different licence must be used, the developers will draw the project management\'s attention to this. The analysis is set out in [Em002-2 Instructions for Publishing Open Source Software.](./em002-2.md) - -When working on existing projects, all OSI-compatible licences are generally acceptable. - -# Introduction - -Article 9 of the Federal Act of 17 March 2023[^5] on the Use of Electronic Means to Carry Out Official Tasks (EMOTA) stipulates that the federal authorities must publish and license software that they develop or commission as open source software. - -This document has the following objectives: - -- Introduction to the topics of software copyright and OSS licences. - -- A presentation of which OSS licences are unproblematic for use in the Federal Administration. - Licences not mentioned in this document and software under such licences may not be used without an additional review of the contractual provisions by the responsible legal service. - -- Assistance in selecting a licence for the development or procurement of a project under Art. 9 EMOTA. - -# Copyright and licences: Fundamentals - -Copyright law establishes both moral rights and economic rights (exploitation rights). The moral rights include, for example, the right to recognise authorship or the right to determine whether and when the work is published. Exploitation rights include, for example, the right to make or distribute copies of the work. - -The Federal Act of 9 October 1992[^6] on Copyright and Neighbouring Rights (CopA) provides for a number of other moral rights and exploitation rights (see Art. 8 ff. CopA). These rights accrue directly to the author at the same time as the work is created. - -Art. 2 CopA sets out the conditions under which copyright protection is granted. A protected work within the meaning of the law only exists if these requirements are met. - -The prerequisites are: - -- The work must have been created; simply finding the work is not sufficient. Research data, for example, i.e. the results of experiments, cannot be classified as works. - -- The creation must be \'intellectual\', i.e. originate from a human being. - -- The work must have been realised in a perceptible manner. The mere idea behind a work is not protected, only its external form, e.g. a printout of a text on paper or a performance of a piece of music. - -- Individuality: Finally, the work must have a certain minimum degree of individuality. A work that everyone would design in the same way is not protected. - -A wide variety of works can be protected, such as literary or scientific texts, musical works, photographic, cinematographic and other visual or audiovisual works. - -According to Art. 2 para. 3 CopA, computer programs are also works if the aforementioned requirements are met. - -The author alone is entitled to the copyrights upon their creation. Only the author can prohibit someone else from carrying out the corresponding actions. However, the author can exercise their rights not only themselves: - -- They may transfer their rights to third parties (e.g. by selling them). The new rights holder can then assert these rights in the same way as if they were the author. - -- Alternatively, the author may also license their rights to third parties. Simply put, a licence is a contract under which the rights holder allows a third party to use the work. The author retains the rights, but waives their enforcement vis-à-vis the licensee. - -If a computer program is created in an employment relationship, the employer receives an exclusive licence for its use (Art. 17 CopA). Employees are thus essentially left with only the moral rights to the software (or, depending on the legal opinion, only a core part thereof). -This is the same legal situation as under the Federal Personnel Act. - -# OSS licences - -## Fundamentals - -OSS is essentially characterised by the following features (based on a definition of the Open Source Initiative *\[OSI\]*[^7]): - -- Unlimited and free redistribution of the software is permitted; - -- The software is available in source code form; - -- Modifications to the software and their redistribution under the same licence are generally permitted; - -- No individuals or groups of people may be excluded from using the software, and no areas of application may be excluded (especially not commercial use); and - -- The distribution of the software together with other software (such as closed source software) must not be restricted. - -The most common motives for using OSS are initially the cost savings through the use of the already substantial pool of freely usable software. Companies that frequently use OSS are often able to save considerable portions of their IT budget through the use of OSS. - -Freely available code can also be easily adapted to one\'s own needs. Moreover, choosing OSS avoids vendor lock-in.[^8] - -## Open source licences - -Open source licences are, first and foremost, normal licence agreements for computer programs. - -In contrast to normal licence agreements, however, OSS licence agreements come into effect without further ado when only one of the free forms of use described in the licence is exercised (for example, by copying, redistributing or modifying software). - -## Copyleft versus permissive - -### General - -An open source licence according to the OSI may contain a \'copyleft\' provision. Changes to software licensed accordingly must be offered again under the same conditions as those that existed for the original software. Anyone who makes such changes must, when distributing the open source software in the form of machine-readable object code, also offer the source code to recipients. - -Expressed as defined by the Free Software Foundation, the copyleft effect protects developers\' freedom and thus ensures that once free software always remains free. - -With copyleft licences, a kind of exchange takes place between the community and the companies using it. The users, who are obliged to put their own developments back under the respective licence in return for the benefits from the existing software pool, thus contribute to the further development of the software pool. As a result, both sides stand to benefit. - -The copyleft provision has a certain \'contagion effect\': if copyleft-licensed software is integrated into previously proprietary software, the originally proprietary software must be disclosed under a -compatible open source licence. - -Accordingly, when using copyleft-licensed source code, care must be taken to integrate it only where the resulting software can and should be published under an open source licence. - -If an open source licence does not contain a copyleft provision (permissive open source licence), the licence for revised versions of the code can be freely chosen. In particular, it is also possible to put modifications back under a proprietary software licence and integrate the corresponding source code into proprietary software. - -Essentially, open source licences can be divided into **the following categories**: - -1. open source licences with **strong copyleft**; -2. open source licences with **weak copyleft**; and -3. **permissive** or **non-copyleft** open source licences. - -### Open source licences with strong copyleft - -When using an open source licence with strong copyleft, new versions derived from the original software, if passed on to third parties, must be placed under the conditions of the original licence and made available to these third parties as source code. - -The following two licences are considered the relevant open source licences with strong copyleft in the market: - -• GNU General Public Licence (GPL); a large proportion of OSS is licensed under this today - -• GNU Affero General Public Licence (AGPL) - -The main difference between GPL and AGPL relates to the type of use that triggers copyleft. With GPL software, the modified source code only needs to be offered if the new software version is offered to third parties as an executable program (e.g. as a mobile app). If the software is only made available via the internet (from one\'s own cloud from one\'s own servers), for example in the form of Software as a Service\' (SaaS) or an application programming interface (API), this does not trigger copyleft. - -If the software is under the AGPL, the modified source code must also be supplied when the functionality of the software is offered via a website or programming interface. The AGPL is thus even stricter than the GPL. - -With strong copyleft licences, copyleft affects not only the respective software module (library) but the entire software program into which a copyleft-licensed software module may be embedded. The aforementioned \'contagion effect\' thus takes hold. - -### Open source licences with weak copyleft - -Licences with weak copyleft also require that changes to their source code be released to third-party recipients under the original open source licence. - -In contrast to licences with strong copyleft, however, they do not have the effect of \'infecting\' other delimitable software components (other libraries or the main program itself) with their licence. This allows the integration of open source software with weak copyleft into proprietary software or into software with other OSS licences without having to be released under the original licence. - -These are the most commonly used open source licences with weak copyleft: - -• GNU Lesser General Public Licence (LGPL) - -• Mozilla Public Licence 2.0 (MPL) - -• Common Development and Distribution Licence (CDDL) - -• Eclipse Public Licence (EPL)[^9] - -• Microsoft Reciprocal Licence (Ms-RL) - -• European Union Public Licence (EUPL)[^10] - -### Permissive open source licences - -Licences without copyleft effect are characterised by the fact that they do not impose any requirements on the licensee regarding the licensing of their derived software, and therefore neither their new source code nor changes to the open source software need to be disclosed to third-party recipients. -This enables the development of proprietary software products through the integration of software under permissive open source licences. - -Examples of permissive licences are: - -- MIT Licence - -- Apache Licence 2.0 - -- Berkeley Software Distribution (BSD) Licence (BSD 2-Clause and BSD 3-Clause) - -- Microsoft Public Licence (Ms-PL) - -## Compatibility of open source licences - -Programs usually consist of a variety of software components and modules that can be connected to each other in different ways. In software development, existing open source components are often integrated into proprietary, internal applications and solutions. As soon as these become accessible from outside via a website, APIs, software distribution or by another means, attention must be paid to the compatibility of the respective open source licences, because then copyleft can take effect. - -If derivative works that are under a certain licence may only be distributed under the same licence conditions, this has the consequence that other open source licences with other or contradictory licence obligations for derivative works cannot be used. - -Some open source licences contain so-called opening clauses, which allow the use of code licensed under them in projects that are under other licences. For example, the LGPL, Version 2.1, also allows the use of the code under the GPL. The GPLv3 contains, among other things, a compatibility clause for the AGPL and the Apache License 2.0. The EUPL is designed very openly and contains a long list of compatible licences in the annex, especially those with weak copyleft, such as the LGPL. This has the consequence that the strong copyleft protection actually specified in the licence is indirectly weakened. - -The following diagram depicts the dependencies of the most important open source licences (Goldstein 2018). The representation is based on the visualisation by David A. Wheeler, who analysed the compatibilities of the various licences and their version numbers (Wheeler 2007) and has been further developed together with information from [^11]. - -The diagram should be read as follows: code according to a licence listed earlier in the chain can be incorporated into software that is published under a licence listed later in the chain. For example, code licensed under the modified BSD can be placed under an LGPL or GPL licence variant, but not vice versa. Public domain means that the work is not subject to any copyright restrictions. - -![](./assets/em002-3/media/image2.png) -Figure 2: Compatibility of open source licences (based on diagram by David A. Wheeler, 2007 and https://www.gnu.org/licenses/license-list.en.html) - -Important: As licence compatibilities are always relevant, the development teams/service providers should check the development stacks with libraries for possible compatibility problems in advance. This means that before the use of a library is waved through, it should be checked whether the library\'s licence is compatible with the relevant licences preferred by the Federal Administration, in addition to considering security and homogeneity in the development stack. - -# Licences for pure usage - -This section deals with the situation where software under an OSS licence is to be used, but this software should not be modified, or modifications are only to be used internally. - -The following licences are generally unproblematic when software is used by federal authorities. However, the corresponding conditions, notably copyleft where applicable, must be adhered to. - -Under certain circumstances, the licence of a pre-existing software module determines the possible licences for the overall product (see Section 4.4). - - -Some licences are incompatible in combination (see Figure 2). - -| Licence| Copyleft | Special features| -|:--- | :--- | :--- | -|**MIT** | No| Preferred licence of the Federal Administration if further distribution is sought and third parties are to be allowed to develop proprietary software from it again. | -| **Apache 2.0**| No |Apache is a very widely used licence known for the projects that are under the Apache Foundation. Use of licensors' trademarks excluded, except for describing the work.| -| **GPL v3**|Yes |This is THE classic copyleft licence.
    Copyleft also applies when GPL-licensed parts are incorporated into an entire program. Prohibition of digital rights management. Special compatibility rules.| -| **LGPLv3** | Weak| Reduced copyleft licence developed specifically for software libraries.
    In contrast to GPL, LGPL allows closed (i.e. proprietary) code to be combined with LGPL code under certain conditions.
    Examples include standard libraries such as glibc. LGPL allows the program, as part of which the library is distributed, to be placed under the GPL.| -| **Affero GPLv3 (AGPL)**| Yes | SaaS use also triggers copyleft. Otherwise analogous to GPLv3.
    This licence closes the loophole in the GPL, which meant that no release was required when used for SaaS offerings.
    With this licence, the Federal Administration can guarantee that enhancements to the code also benefit the general public in the case of SaaS, and best supports the principle of **public money – public code'.**| -|**BSD-3** |No |General, liberal licence.
    Names of authors may not be used to promote derivative works (advertising clause) | -|**European Union Public Licence (EUPL)** |Weak |Special licence used for the EU.
    Particularly useful as a basis for European projects.

    Licence considering European law.Release under certain compatible licences explicitly allowed. | - -Table 1: Licences unproblematic for the federal authorities (according to *\[Sc2024*\]) - -Other licences may be used. In these cases, it may be necessary to consult the legal department of the respective office. - -# Licence for own projects or creation and for contributions - -This section concerns the following cases: - -- Further development / contribution - - - where federal authorities further develop existing software; or - - - develop new software, but rely on existing OSS software libraries; and - - - make the corresponding software available to third parties. Third parties also include organisations of the decentralised Federal Administration, provided they have their own legal personality. If the further developments are only used internally and not made available to third parties, only [Licences for pure usage](em002-3.md#licences-for-pure-usage) applies. - -- Own projects / creation / publication - This section concerns cases in which the federal authorities develop new software. This is likely to be rare, as most developments rely on existing open source software libraries. - - For completely new developments, a licence type should be chosen that enables a broad and sustainable basis for further developments. For this, it is important that the licence in question should be widely accepted in the relevant developer community. - -The compatibility check is carried out according to [Em002-2 Instructions for Publishing OSS](./em002-2.md), Section 7.4. The compatibility of the licences is shown in Figure 2. - -The following dimensions should be considered: - -- Use case - -- Desired checking [Em002-2.1 OSS Preliminary Assessment Checklist](./Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt) - -- Ease of building a community [Em002-4 OSS Community Guidelines](./em002-4.md) - -- Ease of application - -- Legal certainty - -- Distribution - -Licences according to Section [Licences for pure usage](em002-3.md#licences-for-pure-usage) are preferred. - -The following **copyleft licences** should be used as a priority by federal authorities, especially if sustainable open development is sought and the copyleft effect of inheritance should apply. This ensures that software paid for by the public and all derivatives thereof remain open. This best fulfils the principle of \'**public money -- public code**\' and is **the preferred recommendation for the Federal Administration.** - -Recommended licences in descending order: - -- **AGPL v3** - -- GPL v3 - -- LGPL 3.0 - -- European Union Public Licence (EUPL) - -The following licences should be used by federal authorities when **no copyleft is desired** or required (in descending order): - -- **MIT** - -- Apache Licence 2.0 - -- BSD v3 - -When collaborating on existing projects, the following licences can also be used without problems: - -- Mozilla Public Licence - -- Microsoft Public Licence - -If another licence is to be used, it is recommended to briefly justify this in [Em002-2.3 OSS Release and Publication Checklist](./Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication%20.odt). - -**According to Art. 9 para. 4 EMOTA, internationally established licences should be used in all cases.** - -Additional tools for checking licence compatibilities include: - -- ORT Toolkit (https://oss-review-toolkit.org/) - -- Black Duck (www.blackducksoftware.com), - -- FOSSA ([www.fossa.com](http://www.fossa.com)), - -- the Open Source Licence Comparison Grid () - -- FOSSology (). - -- OpenCode process: [https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses](https://opencode.de/en/knowledge/general-conditions/standardised-open-source-licenses#4.-Lizenzierungsleitfragen) - -# Use cases and suitable licences - -The following table and diagram show how appropriate licences can be selected for open source software based on different use cases. - -| **Use case** | **Licence(s)**| **Justification** | -| :--- | :---|:--- | -| Use and contribute to existing project| **Licence as specified by the project** |Necessary for legal reasons.| -| Licence is forced by the use of existing parts (licences with copyleft)| **Use licence compatible with the parts.** |Necessary for legal reasons.

    NB: A number of libraries are available under several licences.
    Only one of the licences has to correspond One of the purposes of multiple licensing is to ensure that libraries can be used both with and without copyleft.| -| Existing ecosystem with preferred licence (e.g. it is a plugin for software released under MIT licence. Then using an MIT licence would be most purposeful, as all other users expect this and the software integrates into the ecosystem)|**Use licence if it is on the list, otherwise use the same licence as much as possible** |Acceptance in the community is central. | -|The goal is the widest possible distribution, e.g. for a reference implementation[^12] (e.g. for software also to be used in commercial solutions).| **MIT**
    BSD v3
    Apache Licence 2.0
    LGPL v3| In this case, no copyleft should be used.| -|Modifications to the code should flow back to the federal authorities|**AGPL v.3**
    GNU GPL v.3
    EUPL |AGPL also enforces release by third parties when used in the cloud, GPL and EUPL do not. | -| SaaS solutions should not be exempt from the backflow of code changes| **AGPL v.3** | AGPL also enforces release by third parties when used in the cloud.| -| Easy collaboration with the community is important.|**AGPL v.3**
    GNU GPL v3
    Apache Licence 2.0 |GPL preferred to keep the software free.

    Apache contains rules for community governance, additional rules for contributions (you may not specify a licence other than Apache; the contribution as such is not regulated in more detail, so if a CLA exists, that should take precedence), a patent licence, rules for patent licensing. Especially also that anyone who asserts patents against another contributor loses their patent licence under the Apache licence.
    The rules that the Apache Foundation sets for contributions are decisive. Apache therefore makes sense if the project governance is to be built primarily according to Apache. | -| Small, universally usable component (library) or small piece of software where sustainability or maintenance by a community is not important | **MIT**
    Apache Licence 2.0
    BSD v3
    LGPL v3 |LGPL stipulates a copyleft only for the component itself, but not for the entire project into which the component is inserted.

    The other licences are permissive.| -| It must be simply and permissive; control is not important| **MIT**
    Apache Licence 2.0
    BSD v3|Maximally permissive | -| It is important for the federal authorities what happens to the code and they want to receive as many improvements as possible.|**AGPL v.3**
    GNU GPLv3 |Copyleft | -| It should be prevented that the software becomes proprietary and is positioned as a competitive product on the market|**AGPL v.3**
    GNU GPLv3 |Copyleft | -|It should be prevented that the federal authorities become dependent on individual suppliers ('vendor lock-in') |**AGPL v.3**
    GNU GPLv3 |The copyleft prevents a supplier from gaining a unique position over time by using the Confederation's software in a proprietary product, which could again lead to a dependency for the Confederation on this supplier.| - -Table 2: Licence to be used depending on the use case for the release of new software in accordance with Art. 9 EMOTA **(bold = recommended where no grounds exist to the contrary**) - -![](./assets/em002-3/media/image3.png) - -Figure 3: Extended decision tree for licence selection in the Federal Administration (if not AGPL or MIT) - -The bill of materials in Figure 3 is the software bill of materials (SBOM) of all pre-existing software libraries and sub-programs that have been incorporated into the overall solution. Each library has its own licence. Depending on how this is compatible with others (see Section 4.4), the possible selection of licences for the publication is limited. - -One last point can also influence the decision: **changing from a more restrictive licence to a less restrictive one is easier afterwards**. In the opposite case, a fork[^13] is almost unavoidable. - -# Special legal topics - - -## International aspects - -The essential legal issues of OSS in practice are mainly of a licence contract nature. - -Regarding licence law issues, the law chosen by the parties applies first (for example, the Mozilla Public License MPL contains a choice of law for the defendant\'s law in Section 8). - -If there is no choice of law, which is the case with all other licences presented here, the law of the licensor\'s state generally applies. So when federal authorities license software from foreign licensors, the law of the respective country applies. If multiple contributors are involved, this can lead to complex situations. Conversely, Swiss law applies in the event of any disputes between foreign licence holders and the federal authorities as licensor. - -The question of which aspects are contractual in nature and which are copyright in nature cannot be answered generally and may be quite complex in individual cases. -The transferability of copyright or parts of copyright, or the scope of permissible rights granted, for example, belongs to copyright law. Here, the law of the respective country of protection must be applied. A deviating choice of law is not possible (for the entirety, see Jaeger/Metzger, 449 ff.). - -## Exclusion of liability and warranty - -Open source licences regularly exclude any warranty and liability to the extent legally permissible. In practice, there are rarely any liability or warranty issues; the risks involved are therefore low. - -It can be assumed that with correct licensing, the liability exclusion clauses present in all licences discussed here will take effect, so that only liability for gross negligence and intent, possibly personal injury, remains. - -Rules of general terms and conditions may be reserved, e.g. as in Germany; however, insofar as the federal authorities are the subject of liability as a licensor, Swiss law applies (see 8.1 above), which permits the aforementioned exclusions of liability and warranty in B2B transactions. - -Conversely, however, this also means that in the event of program errors, claiming against the authors of included OSS code is usually difficult. - -The usual procedure when using OSS is therefore regularly to protect against errors through the usual IT security measures and to ensure the correction of errors through maintenance contracts. There is no recourse to OSS contributors. - -## Copyleft and licensing between Federal Administration bodies - -Copyleft applies when passing between different legal entities (for example, within a group or between agencies of the decentralised Federal Administration with their own legal personality). - -Copyleft does not apply when passing between agencies of the same legal entity (for example, within the central Federal Administration). - -## Licensing of patents - -Software patents are only possible within narrow limits according to European legal opinion. The decisive factor is that the software makes a technical contribution, i.e. solves a concrete technical problem outside the computer on which it runs. Examples would be engine control in cars or the control of a robot. Software as such that only runs on a computer but has no such external effect is generally not patentable in Europe. Thus most software programs do not fall within the scope of patent law. - -In other parts of the world, particularly the USA, software patents are granted somewhat more liberally. However, even in the USA, an abstract idea or business model does not become a patentable invention simply by being implemented in computer software. - -With some licences, any patents of the licensor are not co-licensed. These are the GPL2, the BSD licences, and the MIT licence. - -For projects that could also be used outside Europe, or which exhibit the aforementioned form of external impact, it is advisable to clarify the patent law aspects on a case-by-case basis. - -## Dual licensing - -The author can license software under different licences simultaneously. This is called dual licensing. - -An interesting form of dual licensing is where the copyright holder licenses the software as OSS with a strong copyleft (which prevents it from being integrated into proprietary software) and also offers interested licensees a *paid* licence that allows them to integrate the software into their proprietary software. - -Because interested licensees can thus avoid releasing their proprietary software as OSS, they are willing to pay for the licence. See also the annex to [Em002-1 Practical Guidelines for Open Source Software in the Federal Administration.](./em002-1.md) - -For the federal authorities themselves, dual licensing is likely to be uninteresting in most cases. As long as the copyrights lie with the federal authorities (which is regulated, for example, according to the Federal Administration\'s general terms and conditions), the federal authorities alone can decide on any dual licensing. - -If maintenance and (further) development are outsourced to third parties, this may be different. If the rights exceptionally lie with them, and if the federal authorities have only reserved the right to -grant an OSS licence with copyleft, the third party might be tempted to perform dual licensing. If this is to be prevented, it should be contractually excluded. - -## Subsequent change of licences - -First, it should be noted that OSS licences are generally unchangeable and irrevocable. Licensees who concluded the licence agreement *before* any change can continue to use, modify, and pass on the code to third parties based on the old licence. - -In practice, changing licences often leads to a fork of a new version of the software under the old licence, which is further developed independently by the previous licensees. - -The introduction of a new licence for software is only possible if all copyright holders of the software agree. Changes have occurred in practice, for example, when switching from a permissive to a copyleft licence. - -## Naming of contributors (employees and third parties) - -If a computer program is created in an employment relationship, the employer receives an exclusive licence for its use (Art. 17 CopA). Employees are thus essentially left with only the moral rights to the software (or, depending on the legal opinion, only a core part thereof). The same applies to third parties who develop software for the federal authorities, provided that the corresponding GTC[^14] of the Confederation apply, which transfer the resulting rights to the federal authorities. - -Nevertheless, the question arises as to whether contributors (employees, third parties) should have the right or obligation to identify themselves as authors of contributions in open source repositories. - -One argument for the federal authorities to use OSS is to offer attractive employment: OSS offers contributors the opportunity to publicly demonstrate their knowledge and thus build a reputation. Their abilities become verifiable, are attested by peers, and those who have gained influence in an OSS project can use this as leverage in job searching. - -Another argument could be the moral rights, the core of which cannot be taken away from the original author either by contract or by law. However, this core area is small for computer programs; demanding that the developer of a computer program should also have a right to be named would probably be going too far. - -In addition, an exchange between experts in the community presupposes that they can be approached individually by others. - -Depending on the project, it may therefore make sense to give contributors the opportunity to identify themselves as contributors in the community. - -From a data protection point of view, compulsion to do so should be avoided, although exchange in the community does not presuppose disclosure of names -- pseudonyms are the rule rather than the exception. If contributors do not wish to disclose their names, they should therefore be given the opportunity to appear under a pseudonym. - -**It is recommended that the names of the developers be mentioned in the commits if the project does not object to this.** - -**In any case, the federal authorities should act as rights holders.** - -## Copyright, licences for generative AI for code creation - -Here, we are referring only to code that has been created using generative AI. Further information on this topic can be found in [Em002-6 FAQ about OSS* in Section 2.2](./em002-6.md). Code created by an LLM is not itself protected by copyright. However, the training data used by the LLM may be protected by copyright. If the code corresponds 1:1, then the licence should also be adopted. If the code was created piecemeal and then modified by the developers, there is little risk that this will be considered derived software. It should be noted that certain LLMs require the code to be labelled accordingly; any contractual agreements in this regard must be observed. - -## Contributor Licence Agreements (CLA) and Developer Certificate of Origin (DCO) - -When multiple authors work on the code of an open source project, they receive joint rights to the resulting code. - -The licensing of the code to third parties is done via the OSS licence, whereby a separate licence agreement is created between each user and each author (bundle of licences). This constellation can lead to a confusing legal situation, for example in international relations (see 8.1 above). When companies decide to put their software under an OSS licence and accept contributions from third parties, they sometimes have the need to retain some control over the code. - -For example, it may be interesting to keep open the possibility of putting the project under a new licence , or one might want to subject code licensed under copyleft to dual licensing and for this purpose needs more rights than one would get from one\'s contributors via a simple OSS licence (see 8.5 above). Contributor Licence Agreements (sometimes also Copyright Transfer Agreements) are intended to solve such problems. - -A **Contributor Licence Agreement (CLA)** is a **legally binding agreement** that defines the **conditions for project contributions**. - -Contributors are obliged to agree to this agreement before content can be contributed to the project. Essentially, the contributors grant the project and its users the right to **use, modify and redistribute** the contributions made. Furthermore, it is confirmed that the contributions **were written independently or legitimised by third parties**. - -The **Developer Certificate of Origin (DCO)** is a **verification system introduced** by the Linux Foundation in 2004, which is similar in purpose to the Contributor Licence Agreement (CLA) and represents a suitable alternative instrument. The contributors confirm for each project contribution that **(a) they are authorised to make the contribution, (b) the contribution is covered by a licence compatible with the project and (c) they agree to the distribution and use of the contribution as open source**. - -The main instrument of CLAs is either the assignment of copyrights from the contributors to the main developer or the supporting organisation (in the case of Copyright Transfer Agreements), or the granting of the most extensive, usually irrevocable licence possible by the contributors to the main developer (e.g. Apache has defined a CLA). Contributions to closed projects are also often subject to a CLA. - -CLAs are controversial in the OSS community[^15] because, among other reasons, they can open gaps in copyleft. Therefore, there are now also CLAs that restrict the main developer in terms of granting a new licence for the project\'s code. - -![](./assets/em002-3/media/image4.png) -Figure 4: Transfer source code and rights in different constellations - -There are no problems for **own developments** (creation): According to Art. 17 CopA, the federal authority is the holder of the usage rights to software created by its own employees. For **third-party developers**, the federal authorities should secure the rights (for example, by using the corresponding GTCs of the Confederation). This means that no CLA or DCO is necessary here. - -Where federal authorities are the main developers and accept contributions and collaborations, the use of a CLA should be avoided.Digital Certificates of Origin (explained with an example in [Em002-4 OSS Community Guidelines](./em002-4.md), Section 3.3) may be used instead. In principle, contributions to federal authority projects should build on the OSS licence so as not to raise the barrier to contribution any further. - -Should a need for a CLA nonetheless be identified in a specific case following appropriate review, the federal authority should use the Apache CLA.[^16] In that event, this decision and the CLA should be noted in the concluding remarks of both [Em002-2.1 Preliminary Assessment Checklist](./Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt) and [Em002-4.1 OSS Community Checklist](./Em002-4.1%20Checklist%20OSS%20Community.odt). - -Where federal authorities contribute to third-party software that requires a CLA, the legal service must examine on a case-by-case basis whether the federal authority can accept the existing CLA.[^17] The following points must be determined: - -- Has another federal authority already signed the CLA? - -- Who reviews the CLA? - -- Who signs it? (The signatory must be authorised to sign on behalf of the Confederation vis-à-vis third parties) - -- Where is it filed? - -- How is the CLA or DCO documented in the project? - -- How is it ensured that the code that has been released remains published? (This remains the responsibility of the federal authority under Art. 9 EMOTA, see \[KKB-MB\].) - -Possible criteria for the review are: - -- Compatibility with Art. 9 EMOTA: does the code remain open? - -- Does the federal authority see any risks for itself? - -- Does the federal authority see a benefit for itself (e.g. the code does not have to be maintained or developed further alone) or for others (within Switzerland\'s federal system or across Europe, broader impact can be achieved without additional effort)? - -- Are the rights assigned reasonable? - -- Are no (unnecessary) obligations imposed on the federal authority? - -- Is the CLA substantially equivalent to the Apache CLA? - -## Problems with (L) GPL-3.0 and IoT 7.4.4 - -*\[BITKOM2023\]* points out a problem with the use of (L)GPL-3.0 licences in connection with device-related software: such devices would have to allow the installation of own/new software versions. This may not be desirable for security reasons. - -## Legal status of documentation - -According to Art. 5 CopA, \"decisions, minutes and reports issued by authorities and public administrations\" are not protected by copyright. - -This goes further than CC-0 because the rights holder cannot dedicate the work to the public domain by waiving all copyright and neighbouring rights worldwide. It is already in the public domain by law. The dispatch on Art. 5 CopA says: \"The provision still allows copyright protection for a whole number of works that have arisen from official activity or in connection with it. - -Documents from internal administrative study committees and working groups, expert reports or journals of federal offices, for example, do not fall under the norm. There is no overriding interest in their free distribution because they do not influence the legal position of the citizen.\" - -It can thus be argued that for many of the relevant documents and the documentation published by federal authorities in connection with open source software, no copyright protection exists. The criterion is whether or not the document affects the legal status of the citizen and is thus exempt from copyright protection. If not, then a suitable licence (CC-0[^18], CC-BY, CC-BY-SA or possibly LGPL) should be used for documentation. - -Nevertheless, especially with international use of the documentation, many users would be unclear about the situation. - -We therefore consider it expedient if, as with this document here, a corresponding release is also listed for safety\'s sake. - -# Further information on legal issues - -Further information on open source software, specific licence characteristics and in-depth legal aspects can be found in numerous publications, which are presented below (see also the references at the end of the document). - -- The text *\'Open Source Software im EMOTA, Analyse des neuen Art. 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben\'* by Rika Koch and Simon Schlauri, in the proceedings of the IT Procurement Conference 2023 in Bern, offers additional guidance on the implementation of Art. 9 EMOTA. - -- The German BITKOM\'s *Open Source Software 2.0 Guidelines* addresses legal issues related to open source in detail *\[BITKOM2023\].* However, it is based on the legal situation in Germany. - -- Wolfgang Straub, in his book *Softwareschutz: Copyright Law, Patent Law, Open Source*, examines the legal details of copyleft in relation to Swiss copyright law and explores the compatibility of open source licences \[St2011\]. The section on open source software (as well as German translations of various open source licences considering Swiss legal terminology) are freely available at *www.it-recht.ch.* - -- Till Jaeger and Axel Metzger provide in-depth answers to numerous legal questions related to open source software in their comprehensive book *Open Source Software - Rechtliche Rahmenbedingungen der Freien Software \[JaAx2016\]*. However, they base their analysis on the legal situation in Germany. - -- Kropp Jonathan/Bauer Alexander, Open Source Compliance and Litigation, CB 2019 pp. 285 ff., 285. - -- Reymond Michel José, Questions de responsabilité civile et contractuelle soulevées par la distribution de \'logiciels libres\' (open source), SZW 2022 p. 69 ff. - -In addition, various online portals provide detailed information on the characteristics and issues of specific open source licences. - -- On the GitHub platform , the desired goals for an open source project can be selected and the appropriate open source licence is suggested. - -- At GitHub provides an online guide that addresses specific legal issues. - -- At you will find brief comments on various licences with information on compatibility, in particular the GPL. - -- At the Open Source Initiative addresses numerous questions and answers on the legal aspects of open source licences. - -- At you will find a detailed guide explaining the details of copyleft. - -- At the most important open source licences are summarised according to what the respective licence permits (\'can\'), what it prohibits (\'cannot\') and what it prescribes (\'must\'). - -- At articles on current licence issues are published on an ongoing basis. - -- At the private Institute for Legal Issues of Free and Open Source Software\' in Berlin (ifrOSS) has published numerous answers to frequently asked legal questions. - -Today, compliance with open source licences is primarily implemented using software tools (for further information on open source compliance, see also Fröhlich-Bleuler *\[Fr2012\]* and Kuhn, Williamson and Sandler *\[KuWiSa2008\]* ). For example, various open source tools from the Linux Foundation are documented and published under the term \'fossology\' at . Also, commercial supplier such as Black Duck[^19] or FOSSA[^20] offer various proprietary solutions that can be used to check the compatibility of the open source licences used. - -# Annex - -## Changes from previous version - -- Management Summary added. - -- AGPL and MIT licences are now recommended as preferable. - -- New in Section 8.8: Copyright for code generated with AI. - -- Section 8.9 CLA and CDO greatly expanded. - -- Various editorial improvements and clarifications. - -- More examples given. - -## References - -See [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](./em002.md). - -## Abbreviations - -See [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](em002.md) and [Em002-6 FAQ about OSS.](./em002-6.md) - -## Examples of releases and their licence - -In future, this list will be replaced by a collection of metadata via publiccode.yml. - -## D.1 Loom - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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 - - - -
    - - -## D.2 trustbroker.swiss - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -## D.3 Geocat.ch - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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 - - - -
    - -## D.4 GWEN / ampycloud / c4dl-multi / dvas /… - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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 - - - -
    - -## D.5 EMSG application (asset management in settlement areas) - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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 - - - -
    - -## D.6 Covid certificate application - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -## D.7 GovCert website - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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 - - - -
    - -## D.8 Various libraries on open data (e.g. linked data) - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -## D.9 Apache FOP customised for archivable PDF - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -## D.10 Legally compliant electronic input with eKomm - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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). -
    - -[^1]: Recommendation for Federal Administration IT in accordance with - \[P035\] *Section 4.6* - -[^2]: For definitions of the INTERNAL and CONFIDENTIAL classifications, - see the *Ordinance of 8 November 2023 on Information Security in the - Federal Administration and Armed Forces (InfoSecO; SR 128.1)* - -[^3]: See footnote 1 - -[^4]: Planning areas in accordance with the *Federal Administration IT - Strategy 2020--2023 of 3 April 2020 (SB000)* - -[^5]: SR 172.019 - -[^6]: SR 231.1 - -[^7]: - -[^8]: - -[^9]: In addition to the Eclipse Publice Licence (EPL-1.0), there is - also the Eclipse Distribution Licence (EDL-1.0).\ - While EDL corresponds to the BSD 3 clause, EPL is a weak copyleft - licence. - -[^10]: The EUPL itself has a strong copyleft, but due to the opening - clause, a transfer to licences with a weak copyleft is possible, so - that the protection is limited. - -[^11]: Another, extended representation has been used by GEANT in their - confluence: [Software Licence Selection and Management in GÉANT - - GEANT Software Development Support - GÉANT federated - confluence](https://wiki.geant.org/pages/viewpage.action?pageId=1032978710). - You will find a few additional licences there. - -[^12]: For example, to make a law easier to implement, a reference - implementation can be commissioned by the federal authorities. See - e.g. - -[^13]: For definition see [Em002-1 Practical Guidelines for Open Source Software in the Federal Administration](./em002-1.md). - -[^14]: - -[^15]: For example: - - -[^16]: - -[^17]: For any given recipient, the federal administration would only - need to review the signing of a CLA once. In other organisations, - this is therefore treated as a high-level matter, with signed CLAs - kept on file in the contracts repository. CLAs must not undermine - the federal authority\'s obligations under Art. 9 EMOTA. - -[^18]: - -[^19]: - -[^20]: diff --git a/docs/en/em002-4.md b/docs/en/em002-4.md deleted file mode 100644 index 781a2c0..0000000 --- a/docs/en/em002-4.md +++ /dev/null @@ -1,1585 +0,0 @@ -**Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- - -# Main points at a glance - -The most important points of the document are listed below. - -- The establishment or maintenance of an OSS community is **not required** under Art. 9 EMOTA. - -- A community is relevant if a user group makes sense and **synergies** with other users of the software are to be created. - -- A community is not limited to the software itself, but can also include the processes in the environment and the standardisation of data. - -- An **initial effort** must always be made to build a community. This usually continues. In many cases, it makes sense for the lead office to also bear the coordination costs. - -- Communities should fulfil a **purpose**. There need to be interested parties and participants. - -- A community can emerge and then be formalised. - -- The goal of the community is to increase the **benefit for everyone**. - General principle: \'You get back at least as much as you put in\'. - -- The community should be **structured as simply as possible**. - -- In a first step, the community should be briefly reviewed using the checklist [Em002-4.1](./Em002-4.1%20Checklist%20OSS%20Community.odt). Only if it makes sense should it be further developed. - -- Formalisation takes place via a **community concept**. As much as possible should be taken from existing sources. - General principle: \'Don\'t reinvent the wheel\'. - -- If collaboration is the aim, this must be taken into account at the very beginning of the project, as potential partners should already be picked up during the requirements analysis. This also needs to be well planned from the outset in terms of legal and procurement law. - -- The options for joining an existing collaboration in regard to legal and procurement law must be examined. - -- No community needs to be set up for contributions. However, if required by the project, the corresponding **Contributor Licence Agreement (CLA)** must be signed or the developers must be uthorised by the project to submit the software under a Developer Certificate of Origin (DCO). - -# Introduction - -These guidelines are intended for ICT professionals who are responsible for an application and want to offer it as open source or contribute to such an application. - -This must be organised either formally or informally. - -This document provides important information for organising and building a community[^5] and also for open development directly as an open source project. - -As a second element, to promote standardisation, a directory of existing community concepts is maintained as part of this document. The idea is that new communities can be built with minimum effort based on successful solutions. - -This document does not include direct recommendations for organising communities for software libraries (parts of software that fulfil partial functions, e.g. PDF generation). Normally, no separate concept is developed for these; instead, they use the simple template defined in the repository\'s storage template. - -The document [Em002-01 Practical Guidelines for Open Source Software in the Federal Administration](./em002-1.md) contains in Section 4 fundamental forms of collaboration, in Section 8 the various support models, and in the Annex information on market behaviour of open source. - -# Type, aim and purpose of a community - -A community can pursue the following purposes: - -- Survey of additional requirements - -- Dissemination of knowledge about the application - -- Better feedback from users - -- Promoting translations, documentation and training - -- Spreading standardisation - -- Generally improved interaction with users - -- Expansion of cooperation to include other parties - -- Promotion of further software based on the software - -The type of community best suited for an application depends heavily on the professional environment, potential users, and the strategy of the publishing institution. There are many different ways to build communities. Ideally, for a suitable project, it may be possible to join an existing community. Alternatively, a community can be built with one or more equal partners. - -It is important that a **governance structure** should be established and the relevant points documented in a **community concept** (see also *\[BITKOM2023\]* Section 4.1 and *\[IZqCab2023\]*. - -It should be noted that communities for software can also be combined with those for data, standardisation and business topics. The community can then encompass processes, standardisation, software and data. Existing frameworks such as eOperations, DVS and eCH can also be used where appropriate. - -An important aspect of a functioning community is that participants receive more than they invest. - -The following constellations exist: - -- **Community around a federal OSS**: Governance and community concept must be created. In this context, it is also necessary to regulate how third parties can make contributions. - -- **New collaboration to solve a problem**: In addition to governance and the community concept, the entire legal structure of the collaboration must be established. - -- **Joining a collaboration**: The Federal Administration must examine whether and how it can do this. - -- **Contribution to a third-party project**: The point to be checked is the project\'s policy for contribution (Contributor Licence Agreement, Developer Certificate of Origin, etc.). - -Procurement law issues are dealt with in [Em002-7 Strategic Aspects of Procurement and Open Source Software](em002-7.md). - -## Special case: New collaboration for the development, maintenance and support of open source software - -The collective costs of open source software decrease when it is developed and further maintained collaboratively. This can occur without formal cooperation arrangements, or with no more than joint planning. - -Where a more formal collaboration is sought, a market assessment should be carried out to ensure that collaboration is the most appropriate form of cooperation. Collaborations are more cost-effective than individual development by each party (see [Em002-4.1](./Em002-4.1%20Checklist%20OSS%20Community.odt)). - -It should be noted that, for collaborations, it makes sense to initiate the collaboration at a very early stage in the HERMES[^6] project methodology --- specifically during the situation analysis and -requirements phases. - -Collaboration is generally permitted in Switzerland under Article 4 EMOTA. - -In addition to all other considerations, collaborations have both a legal and a procurement law dimension. At present, each case is assessed individually. Over time, standardised templates will become established. - -### Legal dimension - -Association memberships are feasible, though these are generally assessed on a case-by-case basis: who is behind the association, and what obligations are being entered into. -Delegation of memberships to eOperations or similar organisations would be possible. - -As long as no money changes hands and no formal obligations need to be entered into, a Memorandum of Understanding at the level of the federal office or the Federal Chancellery is possible. - -A situation requiring the conclusion of an international treaty should be avoided. - -There are also two special cases[^7] in which a collaboration would already be covered: - -- Contracts awarded under an international agreement concerning the joint implementation of a project by signatory states. - -- Contracts awarded in accordance with the special procedures or conditions of an international organisation. - -### Procurement law dimension - -In many cases, collaboration will take place between public sector organisations. In such cases, procurement is unproblematic where the arrangement is \'in-state\' (see [Em002-7 Strategic Aspects of Procurement and Open Source Software](em002-7.md)). - -Contracts with foreign companies not domiciled in Switzerland are possible, provided procurement law requirements are met. - -The procurement of an organisation\'s own resources takes place within the framework of a standard procurement process, or has already been completed. - -## Special case: Joining an existing collaboration - -This requires both a legal basis and compliance with procurement law. - -The simplest approach is to participate on a \'each party bears its own costs\' basis. This can also cover overhead costs, provided that either internal resources or correctly tendered external resources are used. - -Direct participation in foreign collaborations is more difficult. A simple association via a Memorandum of Understanding is the easiest option to achieve. - -## Special case: Contributing code to third-party OSS projects - -Where the Federal Administration makes modifications to the code of an existing OSS project, it makes sense to contribute these changes directly upstream to the original project. This means that ongoing maintenance no longer needs to be carried out by the Federal Administration. - -Under Article 9 EMOTA, such contributions are in fact encouraged. From a procurement law perspective, this is unproblematic. - -It is important that the rights holder makes the contribution. This means that the Federal Administration assumes responsibility for doing so on behalf of its staff and contractors. Specifically, any Contributor Licence Agreement for the project must be signed, or a Developer Certificate of Origin must be included with the pull request. - -A **Developer Certificate of Origin**[^8] **(DCO)** for the Federal Administration could read: - - - - - -
    - 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. -
    - -The structure of a Contributor Licence Agreement is described in [Em002-3 OSS Licensing Guidelines](em002-3.md), Section 8.9. - -The effective transfer of code takes place in accordance with the guidelines of the respective project. - -# Community concept - -A community\'s core is ultimately its structure and governance. These are recorded in a community concept. - -The community concept to be created by the project or application manager (or commissioned from third parties) should follow this section structure. Depending on the nature of specific community, not all sub-sections are necessary. Ideally, many sections will refer to already standardised documents or use standard processes of the corresponding repositories. The community concept can also be applied to existing projects led by others, especially if the effective governance is not yet documented in writing. - -By formalising the community, all participants are brought together and the onboarding of new participants is simplified. - -Structural draft of a community concept: - -1. Overview table - (name, repository, contact address, licence, depth of support, existing/new) - -2. Objectives - - a. of the application - - b. of the community - -3. Organisation - - a. Owner of the code - - b. Organisational form / committees - - c. Voting rights - - d. Project management - - e. Procurement issues (if applicable) - - f. Other governance aspects - -4. Roadmap and change process - -5. Development process - - a. Open development - - b. Committer rights - - c. Review process - - d. Task distribution and name citations - - e. Backups - -6. Financing of the community - -7. Marketing - -8. Handling external contributions - - a. Handling reported errors - - b. Handling enquiries - - c. Handling pull requests - - d. Handling forks - - e. CLA, DCO and assignment of rights/intellectual property - -9. Operation of the application - -In principle, each federal authority is responsible for creating the community concepts. DTI can publish existing patterns/examples and accepts corresponding examples for publication. -It also makes sense for community managers to exchange information with each other. - -A possible source for parts is also the documentation of the Eclipse Foundation,[^9] although appropriate tailoring should be carried out here in the sense of \'only doing what is necessary\'. - -# Fundamental decisions when building a community - -The principles of the community, or lack thereof, are determined using [Em002-4.1](./Em002-4.1%20Checklist%20OSS%20Community.odt). The relevant fundamental questions can be found in the morphological box in Figure 1. - -![](./assets/em002-4/media/image1.png) - -Figure 1 Morphological box OSS community - -It is advisable to **focus primarily on the near future** when designing the community; for example, if there are not yet any concrete interested parties for the application, it usually makes little sense to define a community with a simple company, its own association and complex processes for developing the roadmap.[^10] [^11] - -## Product management - -Depending on the type of application, its strategic importance and its status in the life cycle, there are different variants for mapping product management. -For organisations within federal authorities, this always concerns the application managers. The definition of the technical and technological roadmap and the release processes are particularly relevant for the community concept. - -Possibilities: - -a) **Organisations within the Confederation**: The Confederation wants to retain control; it alone defines the roadmap. - -b) **Joint organisation**: Together with other users or suppliers. - -c) **Open organisation**: Loose connections, no active roadmap. - -d) **Third parties**: Either the product already exists or the work is to be outsourced. - -### Organisations within the Confederation: - -If the application is of high strategic importance or the Confederation depends on being able to implement its changes quickly, then it can make sense to retain control. - -The federal authority alone decides, through the requirements manager, what is incorporated in the software and when. - -For potential other users of the application, this means that they are practically forced to use their own version (fork) of the application. - -Otherwise, they have hardly any opportunity to implement adjustments and extensions that may be important to them. This does not argue against publishing as open source: the code management tools[^12] offer extensive support for such scenarios, and adjustments and error corrections can be selectively adopted in both directions. - -Sharing the costs is typically difficult with this model. - -### Joint (Confederation has the lead or equal partners) - -Decisions regarding the roadmap and priorities should be coordinated and made jointly with the other members of the community. The Confederation participates as a member of the community but is not the lead organisation. - -For joint decision-making to work, structures and rules must be determined in advance. This also defines how the costs for implementing the jointly decided adjustments are divided among each other. - -With this model, a single version of the application is created, which is then used by all members. As a result, the total costs are significantly lower compared to the other variants. However, the flexibility of individual users is also lower, and they must coordinate their adjustment requests in advance with all others. Decision-making is slower and more time-consuming. - -This model is best suited for applications that are to be further developed jointly with clearly defined other organisations (e.g. cantons). - -### Open organisation - -In this model, the processes and structures are only loosely defined. The Confederation formally retains control but is open to contributions and adjustments. - -No roadmap or only a very rough one is defined; consensus is reached informally and in discussions directly on the publication platform. The community itself tends to be dynamic; members can be very active for a while and then withdraw again. - -This model is also suitable for smaller applications that are already in productive use and are \'finished\'. -This is also usually the best form for technically orientated applications or components that potentially appeal to a broader target group which cannot be precisely defined in advance. - -### Third party - -In this model, the processes and structures are defined by a third party and the federal authority is a member of the community but does not have the lead. This may have happened because, for example, the project was defined by another state or canton. Or it may be that the Confederation is not interested in continuing the program itself and transfer this task. - -## Integration of suppliers - -There are basically the following possibilities for integrating suppliers: - -a) **Supplier as contractor**: They are generally considered replaceable in the medium term. The supplier should develop the application cost-effectively and to a high quality based on orders from product management (or the community), but has at most advisory influence on the roadmap and prioritisation. - -b) **Long-term partners with co-determination**: They should be able to actively co-determine the development. This strengthens their role and they are potentially willing to invest in the application themselves. Typically, in this model, the suppliers then distribute the software and actively look for new customers. - -c) **Independent:** The suppliers define for themselves whether and how they want to work on the project. This can occur, for example, if several suppliers want to generate their own business based on the software. Liberal licences can potentially promote this. It can also occur if the Confederation\'s strategy differs from that of the supplier. -In this scenario, it is likely that the supplier will create a fork. - -d) **Lead**: If the supplier takes over product management, then they have the lead. The development is then determined by them. On the other hand, this can also mean that the Federal Administration has to take very little responsibility. With a minimum release, it is possible for the supplier to take on this role on their own. - -If the supplier takes on a strong role, this brings advantages for the Federal Administration: by actively marketing the application, there is a chance that the community will grow faster and stronger, thus reducing the costs per member more quickly. - -If a model with strong supplier co-determination is chosen, care must be taken that this does not result in a deviation from procurement law regulations. It is usually advisable to involve at least two suppliers to avoid creating too strong a dependency on a single supplier. There should also be the possibility for other suppliers to join the community. - -## Cost distribution - -The following options are available for splitting the costs of maintenance, further development and new functions: - -a) **Organisations within the Confederation***:* Especially when building ecosystems or if the federal authority will retain full control, the federal authority must also bear the costs. - -b) **Each their own**: Everyone pays for the changes they want themselves. - If necessary, it is decided on a case-by-case basis to pay for certain extensions jointly. - Recurring costs are billed according to a distribution key or on demand. - -c) **Originator pays principle**: Those who actually need the services or features pay for them. Standardised hourly rates may be applied. - -d) **Distribution key**: The costs are divided within the community according to a defined key. This only differs for specific expansions. These should be paid for directly by the users concerned. - The cost divider can be, for example, the size of the canton concerned or the number of users. Regarding the distribution key, see also Section **Fehler! Verweisquelle konnte nicht gefunden werden.**. - -e) **Contribution**: If the federal authority only contributes personnel to an existing project. - -Basically, variant b (cost sharing) usually only makes sense if there is also joint product management as in variant b (joint). Only those who can have a say will be willing to bear the follow-up costs of the decisions. - -## Support - -Within the cost distribution and effort, it is important to clarify who provides what support. According to Art. 9 EMOTA, a pure minimum release is possible. This variant may not deliver the desired effect and does not in itself build a community in which the federal authority has influence. - -a) **Minimum release**: No support (i.e. release generally occurs without organised support and participation of the federal authority). - -b) **Support by the Confederation**: The federal authority (or its service provider) provides defined support. - -c) **Support by third parties**: The federal authority or the community defines a support organisation. - -The effect to be achieved, e.g. on the Swiss ecosystem or initial funding of a community, can lead to the Confederation providing support.The level of support must of course be defined. In principle, a fee may also be charged. Due to the mechanisms of the Confederation, service providers or suppliers are then more likely to be able to offer commercial support. - -Offices may offer paid support in accordance with EMOTA (possibly also via service providers and third parties). To do this, they must publish the corresponding fees on their website, as the necessary legal basis is in place. The connection to the payment system can be discussed with the FDF. - -Examples of support and fees can be found in Annex G. - -## Development - -The basic methodology of development can also have an influence on the type of community. - -a) **Internal**: The use of internal repositories means that third parties cannot work directly. The stricter the separation, the more integration effort the Confederation has to make if it wants to incorporate third-party extensions. The release process is also more complex. - -b) **Third parties**: Either a supplier works on their own or the product already started/led by a third party is developed according to defined rules. - -c) **Open**: Software development takes place directly in a public repository. - The release according to EMOTA is therefore largely guaranteed. The expenses are to be paid during development. In this scenario, collaboration with third parties can also take place earlier (and more easily). - -# Detailed content for the community concept - -This section provides guidance on writing the community concept based on the fundamental decisions made (as per Section 5). - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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 - -
    - -The community concept should be a dynamic document that can be adapted in consultation with the community. The concept should reflect the current situation and propose future development options. If more members join the community later, the organisation and processes can be further elaborated, and more complex mechanisms can be introduced. The following sub-sections directly follow the proposed structure of the community concept (see Section 4). - -If product management lies with third parties, they will define the concepts for the community. - -## Key information - -The following key information should be drawn up and published for each community so that potential interested parties can register for the software and the community: -- Software name - -- Repository - -- Owner - -- Responsible organisational unit/office - -- Contact address - -- Licence used - -- Support level - -- Existing project - -This information can all be displayed with publiccode.yml.[^13] - -## Objectives - -The objective should contain the actual purpose or \'vision\' of the application. This vision should also be included in the **README.md** file in the repository (see [Em002-2.2 Analysis and Preparation Checklist](./Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt)). - -At the same time, it should also describe what the community is aiming for: - -- Who should join? - -- Who are the potential interested parties? - -- Should new members be actively sought? - -- What are the main goals pursued by publishing as open source? - -## Organisation and governance - -In principle, for new developments, the aim is for the Confederation to be the owner of the master rights to the source code. - -The type of project management depends on which organisation had the lead (SAFe, HERMES) in the case of the Confederation. The organisational form should always seek minimum overhead (existing rather than new; simple partnership rather than an association). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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:
    -
      - • Management Board: Defines the strategy and prioritisation. -
    -
      - • Expert group: Develops requirements and specific content at the expert level. Depending on the scope, a separate expert group can also be established for each topic. -
    - -The owner of the code is the office that published it. - -If the structures become more complex or more than five users or additional members are involved, it may be worth considering whether the community should be better organised as an association. Compare the explanations in the variant directly below. -
    - 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: -
      - • No direct integration: External parties can only submit suggestions and contributions (as pull requests). -
    -
      - • Involvement as contributors: External parties who make frequent and good contributions are directly involved. -
    -
      - • Handover to external parties possible: If, after publication, external parties contribute more to further development than the publishing organisation, the application can also be transferred to them. -
    - -The publishing organisation retains ownership. -This variant corresponds to the organisation of 'classic' open source projects; see for example https://opensource.guide/leadership-and-governance/ for further information. -
    - 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: -
      - • No direct integration: External parties can only submit suggestions and contributions (as pull requests). -
    -
      - • Involvement as contributors: External parties who make frequent and good contributions are directly involved. -
    -
      - • Handover to external parties possible: If, after publication, external parties contribute more to further development than the publishing organisation, the application can also be transferred to them. -
    -The publishing organisation retains ownership.
    -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: -
      - • No direct integration: External parties can only submit suggestions and contributions (as pull requests). -
    -
      - • Involvement as contributors: External parties who make frequent and good contributions are directly involved. -
    -
      - • Handover to external parties possible: If, after publication, external parties contribute more to further development than the publishing organisation, the application can also be transferred to them. -
    - -The publishing organisation retains ownership. - This variant corresponds to the organisation of 'classic' open source projects; see for example https://opensource.guide/leadership-and-governance/ for further information. -
    - - -With regard to governance, *\[BITKOM2023\]* Section 4.1, *\[IzCab2023\]* or can also be consulted. - -Examples of articles of association can be found in Annex E. - -NB: As the release must be guaranteed in accordance with Art. 9 EMOTA, the Federal Administration must ensure that the publication cannot be suddenly withdrawn (see the \'Open Source in Procurement Guidelines -- Software purchasing under Art. 9 EMOTA\' *\[BBL-WL\]*, paragraph V.2). - -## Roadmap and change process - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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). -
    - -## Development process - -If open development comes into play, it should be defined here. Task distribution and naming of central positions in the community concept are important. Also, how the security of the repository content is ensured. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -## Cost sharing and suppliers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. - -
    - -## Marketing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -## Handling external contributions - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -In general, it should be noted that contributions can range from supporting other users to taking responsibility for entire parts of a project (see *\[BITKOM2023\]* Section 4.2). - -## Operation of the application - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - - -Support levels and support contacts should also be specified in this section. - -# Important information for community managers - -## It takes time - -Building communities is something that should be planned for the long term. Perseverance and consistency are two important qualities needed for a successful community. - -## Further suggestions for community building - -Further suggestions for good community management can be found at https://opensource.guide/code-of-conduct/ and https://opensource.guide/best-practices/. - -## Communications - -Publishing software and documentation opens a new communication channel for the Federal Administration. If this is not done carefully and professionally, the public image of the Confederation can suffer. - -OSS communities in the Federal Administration are faced with conflicting demands regarding communication: on the one hand, the general **guidelines for communication** apply; on the other hand, the community should facilitate **simple formal and informal collaboration** across organisational boundaries, preferably without formal quality controls and releases. - -The use of public repositories and potentially public issue tracking and wikis means that individual project staff members\' statements are visible to the public unfiltered. This requires project staff to maintain a professional demeanour and adhere to quality standards for publications in such settings. - -In OSS projects, this is normally regulated through the **Code of Conduct**. The Federal Administration\'s own Code of Conduct[^14] is very general, but the core principle is applicable here: -\"Staff carry out their duties with a sense of responsibility, integrity and loyalty. In their private lives they also take care not to tarnish the reputation, the credibility and the image of the Confederation\" - -## Open development - -If software development is planned in an open repository from the start, release happens automatically. The relevant checklists according to the instructions [Em002-2](em002-2.md) must be completed at the beginning, and the development processes of the service provider/supplier must allow this. The advantage is that the community can be built from the very beginning. Multiple organisations can also collaborate on the development. - -Closed repositories are an intermediate form, but are used for other partners in a collaboration. - -## User management - -The project (or the support organisation) determines whether developers and other project staff work on the project under their own name or anonymously. If people are not working anonymously and already have logins on the platforms, it is easiest to use these (whether business or private). - -The platform should generally allow the inclusion of third parties, as otherwise no developers from outside the Confederation will be able to collaborate. - -When leaving the project, the corresponding rights on the project must be deleted. Product management is responsible for this. - -## Merging communities - -Where possible, the number of communities should be kept small. This means: - -- If a community already exists where a similar structure is envisaged for similar problems involving the same people, a single community should be used. - -- Multiple projects that are related and address the same target audience can be consolidated into one community. - -- No fundamentally different community structures should be created unnecessarily where existing ones are already in place. - -## Handling third-party contributions - -The contribution of software to other projects is addressed in Section 3.3. The same principles apply in reverse. - -The following points are important: - -- A suitable Contributor Licence Agreement must be used to ensure that the source code subsequently belongs to the Confederation (see also [Em002-3 OSS Licensing Guidelines](em002-3.md), section on Contributor Licence Agreements). This must be signed by the owner of the contribution. - -- Confirmations must be filed. - -- Contributions must be reviewed before being integrated into the codebase. - -- Submissions should be responded to in a timely manner (issues, requests, pull requests) and handled as constructively as possible. - -- All channels and governance arrangements should be listed in the community concept, on the website and in the repository. - -## Security-relevant reports - -In addition to standard bug reports, provision must be made -- where the nature of the project requires it -- for security-related vulnerabilities to be reported confidentially, as is the case with a bug bounty programme, for example. - -The documents from trustbroker.swiss can serve as an example: - -- - -## Avoiding forks - -While forks are natural in the open source world, reintegrating source code, features and so on from forks is far from straightforward. It may be worth reaching out to the individuals or organisations considering a fork and trying to keep them engaged with the main project. Striking a balance between competing interests is often necessary in such cases. - -## Cost allocation - -It makes sense to agree on general distribution keys between the main partners. These can be adjusted every few years or when the situation fundamentally changes. For efficient work on the software, the large partners should tend to take on slightly larger shares than they actually have to (if necessary, also the overall coordination). The organisation should work and not argue about finances. If the collaboration covers several projects (for example, the industry solutions in the field of standard gauge railways), a standardised distribution key should be used for all projects. -From the perspective of federal authorities, it is an improvement if the costs do not have to be borne alone. - -Possible criteria for distribution keys: - -- Estimation of benefit distribution (e.g. between federal authority and a supplier hoping for other customers) - -- Number of inhabitants/users (e.g. between offices, communes, cities) - -- Financial strength (e.g. cantons) - -- Gross national product (e.g. between cantons) - -- Who wants more control - -To avoid discussions, the distribution key should not simply be attached to the annual budget. A clause along the lines of the originator pays principle may allow faster adjustments for some partners if they are willing to pay extra. - -The distribution key should also apply to overheads, maintenance/support, and a minimum of further development. These parts should be solved in the long term if possible. - -It should be borne in mind that when third-party funding is involved, those parties will typically want a greater say. Community management needs to be equipped to handle this. - -## Supplementary services according to Art. 9 paras 5 and 6 EMOTA - -The federal authorities can (themselves, through service providers or suppliers) provide supplementary services, particularly for integration, maintenance, ensuring information security, and support. - -The limitation is that they should serve the authorities\' tasks and can be provided with proportionate effort. - -It follows that the federal authority cannot be the development company for third parties. It fixes bugs, can handle security-relevant aspects, can provide some support and integration assistance (all activities that help to build a community). New developments and additional features for third parties should primarily focus on the normal work purpose of the authority. Of course, it may be that providing the software is part of the task, in which case developments can be made at any time. It is also stated that software development is not the core task of the federal authority. - -This means that if features are substantially developed exclusively for third parties, they are to be integrated in partnership or through the supplier. - -To avoid procurement law problems, care should be taken in procuring software and services to ensure that features can be provided to third parties (possibly only governmental third parties) by suppliers. - -The setting of fees has already been touched upon in the \'Support\' section. EMOTA is already the legal basis for such fees. These must be communicated on the website of the respective federal authority. Examples are listed in Annex G. - -Art. 9 para. 6 states that normally the private sector should not be competed with. This means that the fees should not be set too low and should at least cover costs. In case of doubt, it is better to set hourly rates too high rather than too low. - -Generally, it is recommended to work with one to three different standard hourly rates. - -If a federal department wishes to define exceptions to para. 6, this must not compete with the private sector. Under certain circumstances, it may be easiest to set the fees and increase them if there is opposition from private sector companies that can actually offer the service. - -## Digital sovereignty - -As long as the Confederation does not have its own repository, to ensure digital sovereignty, it is recommended to regularly make copies from public repositories. - -It should be noted that not only the source code but also other information such as issue tracking, wiki, configurations, etc. is copied. - -Furthermore, user management needs to be resolved to ensure control over the published source code. The overarching goal is to ensure development independent of the respective platform and to enable the community to switch.[^15] - -# Annex - -## Changes from previous version - -- Section 1 \'Main points at a glance\' added - -- Community purpose added to Section 3 - -- Sections 3.1 to 3.3 on Collaboration added - -- New Section 7.7 Handling third-party contributions - -- Noted that suppliers should not publish entirely on their own (in accordance with *\[BBL-WL\]*, V.2) - -- Publicode.yml mentioned - -- Alignment with new [Em002-7](./em002-7.md) - -- Further editorial changes and improvements - -## References - -See *Em002 Strategic Guidelines for Open Source Software in the Federal Administration*. - -## Abbreviations - -See [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](./em002.md) and [Em002-6 FAQ about OSS](./em002-6.md). - -## Examples of existing community concepts - -In the spirit of collecting best practices, the following are community concepts and comparable documents that have already been developed. These are not necessarily just concepts from federal authorities, but also from other organisations. - -- GERES Community ([[http://geres-community.ch]{.underline}](http://geres-community.ch)) - - Classification: - -- Product management a) Joint development - -- Supplier rather a) Contractor - -- Cost distribution: b) Cost sharing - - NB: The commune register GERES is not open source, but many aspects of the organisation can also be relevant for open source applications. - Documents: Statutes (public) and Rules of Procedure (on request). - -- [iGov Portal](https://www.igovportal.ch) - -[This section currently contains concepts from the Canton of Bern and will be supplemented as soon as federal examples are available.]{.mark} - -## Examples of collaborations - -The following examples illustrate how collaborations have been structured. - -## Collaboration: ZenDiS[^16] in Germany - -ZenDiS is an organisation whose aim is to reduce dependency in public administration (primarily in Germany) by promoting open source software. - -![](./assets/em002-4/media/image2.png) - -Figure 2: Goals and approaches to strengthening digital sovereignty (ZenDiS) - -ZenDiS works with strategic partners to this end. - -Cooperation between the Federal Administration and ZenDiS is therefore unlikely to be unrestricted, and coordination would not be binding. This may change in due course. - -In concrete terms, the Federal Administration would need to establish its own organisation for Switzerland and coordinate informally with ZenDiS. This could potentially be done via eOperations, though eOperations only becomes active when a specific requirement is raised and a budget is made available. A justification for such a parallel organisation could be found in the context of eGovernment or EMOTA. - -NB: ZenDiS is subject to EU/German procurement law. There are significant differences compared to Switzerland. ZenDiS therefore cannot be replicated on a one-to-one basis in Switzerland, and cooperation with ZenDiS is not straightforward. - -## Collaboration: Open Trip Planner (OTP) - -Open Trip Planner[^17] is an open source travel planning application. It is organised as a project of the Software Freedom Conservancy in New York. Individual developers are employed by transport companies and suppliers. A notable feature is that a public sector actor -- specifically ENTUR[^18] -- has taken on one of the leading roles. ENTUR develops primarily for its own needs but also has a collaborative focus, particularly for the Nordic countries. ENTUR is organised as a company owned by the Norwegian Ministry of Transport and Communications. As the largest actor, ENTUR also absorbs a significant share of the coordination costs. Anyone can submit feature requests; these are discussed in coordination meetings and developed if someone funds them. Funding is provided primarily on a per-feature basis by the interested party or parties. In essence, each party bears its own costs. Support services would also need to be put out to tender separately in Switzerland. - -## New collaboration initiated by the Confederation: Swiss Trust Broker[^19] - -The Trust Broker is a piece of Confederation software for eIAM, available as open source. Development is carried out by the Confederation. Several cantons have decided to deploy it either directly as SaaS or with their own instances. As it is available under the AGPL licence, any extensions made will benefit the Confederation in turn. Given its security-critical nature, development for the Federal Administration is carried out exclusively by the Confederation. Other -organisations may submit requirements, which will be implemented if the project team considers them appropriate. - -## New collaboration initiated by the cantons: inosca {#e.4-new-collaboration-initiated-by-the-cantons-inosca .unnumbered} - -Through inosca,[^20] a number of cantons have established a development community focused on electronic permits, originating with the eBau project.[^21] -eBau also includes Caluma,[^22] a framework for collaborative editing -- an example of a component extracted from a broader solution and developed into a standalone, widely applicable framework. This can also be used in other projects, even where some parts are subject to exception conditions, thereby allowing the maximum number of other bodies to benefit from the code. - -The community meets at least once a month (optionally twice) to exchange views on technical topics and plan the shared roadmap. All participants may raise topics. Where a topic is deemed relevant to the community, interested cantons come forward and organise themselves into a working group. Outcomes are feedback continuously to the community. inosca operates on a fundamental principle: those who design, fund. That is, all cantons participating in a working group share the cost of the new feature. The feature is put out to tender and costs are divided among the community according to a predefined cost-sharing formula. Once a feature is completed and deployed, it immediately becomes freely available to all other cantons. - -The community has additionally decided to set aside a modest fixed annual amount to cover the administrative costs of running the community. This budget is allocated each year to the parties taking on an organisational role. - -## SNOWPACK by WSL -- direct contributions from developers - -SNOWPACK[^23] is an open source project developed by WSL for modelling snowpack formation. It is a highly specialised model, and the community has accordingly been integrated into the existing specialist community. Some issues have already been earmarked as potential contributions. The working model here is that each party bears its own costs and contributes features. Coding style and release process guidelines are also documented in this context. - -## Inspiration for association statutes - -The statutes should be kept as simple as possible. - -The following statutes can serve as inspiration. - -- eCH: - -- Stop Piracy: - -[Further examples of statutes will be added as soon as they are available.]{.mark} - -## Examples of support and fees - -- Fees for statistical services: [https://www.fedlex.admin.ch/eli/cc/2003/326/de](https://www.fedlex.admin.ch/eli/cc/2003/326/en) - -- FDPIC fees: - -- Free services from IPI for courses in the field of intellectual property (not software, but as an example): - -Examples will be added as soon as they are available. - -[^1]: Recommendation for Federal Administration IT in accordance with - \[P035\] *Section 4.6* - -[^2]: For definitions of the INTERNAL and CONFIDENTIAL classifications, - see the *Ordinance of 8 November 2023 on Information Security in the - Federal Administration and Armed Forces (InfoSecO; SR 128.1)* - -[^3]: See footnote 1 - -[^4]: Planning areas in accordance with the *Federal Administration IT - Strategy 2020--2023 of 3 April 2020 (SB000)* - -[^5]: The community of an open source project typically represents a - pyramid.\ - The foundation of this pyramid is the users of the software, - especially the committed ones who actively participate in the - community, for example in the form of bug reports and feature - requests or through contributions to mailing lists.\ - Directly above in the pyramid are contributors. These are parts of - the community that propose their own code contributions. They - typically do not have write access to the repository. Their - contributions are reviewed by maintainers of the project and - incorporated into the repository after reaching the project-typical - quality.\ - At the top of the pyramid are the maintainers or committers of a - project. In this role, a developer has a higher responsibility. This - is expressed, for example, in the ability to accept contributions. - This right is often manifested through write access to the - repository. At this level, control over the software, its quality, - and range of functions takes place. In more complex projects, this - level can be further subdivided. For example, the Linux kernel is - known to have subsystem maintainers at multiple levels, and - ultimately only a single developer, Linus Torvalds, incorporates the - patches into the project repository. Another example is projects of - the Eclipse Foundation, which typically have a project lead with - additional rights in the context of the Eclipse Foundation - development process, such as initiating the release process or - formal election of committers or project leads *\[BITKOM2023\]*. - -[^6]: - -[^7]: - -[^8]: - -[^9]: See - -[^10]: With an association (or foundation), a separate legal entity is - created to look after the software and the product. This only pays - off from a certain level of importance, complexity and the existence - of several (equal) partners. A roadmap is used to show the wider - public and potential additional users of the software what is - planned. - -[^11]: It may also be possible, especially for projects that involve - several state actors from the outset, to approach existing - foundations and see whether the projects and governance can be - managed under their umbrella, analogous to https://finos.org or - or https://www.eclipse.org/collaborations/ - or https://iot.eclipse.org or - https://outreach.eclipse.foundation/open-regulatory-compliance. - -[^12]: e.g. GitHub - -[^13]: - -[^14]: https://www.epa.admin.ch/dam/epa/fr/dokumente/aktuell/medienservice/120_verhaltenskodex_e.pdf.download.pdf/120_verhaltenskodex_e.pdf - -[^15]: See also - - -[^16]: [ZenDiS home page: Co-creating Digital - Sovereignty](https://www.zendis.de/en) - -[^17]: [OpenTripPlanner](https://www.opentripplanner.org/) - -[^18]: - -[^19]: [GitHub - trustbroker-swiss/trustbroker.swiss: Documentation of - the trustbroker.swiss - service](https://github.com/trustbroker-swiss/trustbroker.swiss) - -[^20]: - -[^21]: - -[^22]: - -[^23]: diff --git a/docs/en/em002-5.md b/docs/en/em002-5.md deleted file mode 100644 index b42757a..0000000 --- a/docs/en/em002-5.md +++ /dev/null @@ -1,343 +0,0 @@ -**Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- - - # Information sheet: Application of OSS Article 9 EMOTA - -The new [Federal Act on the Use of Electronic Means to Carry Out -Official Tasks (EMOTA)](https://www.fedlex.admin.ch/eli/cc/2023/682/en#art_9) came intov force on 1 January 2024. It stipulates that federal authorities must publish the source code of software they develop or commission. Exceptions are made where third-party rights or security-relevant reasons preclude or restrict publication. - -![](./assets/em002-5/media/image1.png) -This document provides guidance for project managers or other persons responsible for the procurement of software. - -# Introductory questions: - -Does the federal authority procure or use standard software without customisation? -If yes, see a) - -or - -Does a software application or component have to be developed specifically for the federal government (customised software = make)? -If yes, see b) - -## a) Procurement and use of standard software - -Where the Confederation purchases software without customisation, Article 9 EMOTA does not apply. Every federal authority is free to decide whether to procure and use open source or other software. -Assistance with the procurement of software can be found on the website of the [Federal Office for Buildings and Logistics (FOBL)](https://www.beschaffung.admin.ch/bpl/de/home/fachstellen/kompetenzzentrum-beschaffungswesen-bund-kbb.html) and the [Information sheet on software procurement and Art. 9 EMOTA](https://perimap.admin.ch/goto_perimap_file_46835_download.html) from the CCPP. If necessary, [Em002-7 Strategic Aspects of Procurement and OSS](em002-7.md) can also be consulted. - -## b) Creation or further development of software - -If a federal authority develops software itself or through third parties, OSS Article 9 EMOTA must be applied. This also includes software that is further developed as part of a contribution in existing OSS projects. Publication of source code can only be avoided in relation to third-party rights or for security-relevant reasons. Please complete the [Em002-2.1 OSS Preliminary Assessment Checklist](Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt). - -**Note**: This checklist also serves as a justification for why software does not have to be published. It should therefore be consulted as early as possible in the project. The guide [Em002-2](em002-2.md) describes the entire process. - -Further questions to be clarified are: - -## Under which open source licence is it published? - -The fundamental question of whether the software is published under a copyleft licence (in which case AGPL V3 is a good choice, for example) or [permissively]{.underline} (in which case under an MIT licence, for example) must be answered. With regard to licence selection, the [Em002-3 OSS Licensing Guidelines](em002-3.md) provides detailed information. Please complete the [Em002-2.2 OSS Analysis and Preparation Checklist](Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt). - -**Note**: Ideally, this should be completed by the (technical) project manager or IT architect. - -## Where and how should the software and associated artefacts be published? - -Please complete the [Em002-2.3 OSS Release and Publication Checklist](Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication.odt) - -**Note**: This is a collective record of where and how software is published. It may be necessary to involve other organisations. - -## Should an OSS community be established? - -[Em002-4 OSS Community Guidelines](em002-4.md) describe the advantages and tasks involved in setting up an OSS community on the basis of a concept. - -If yes: Fill in the [Em002-4.1 OSS Community Checklist](Em002-4.1%20Checklist%20OSS%20Community.odt) which provides information about the desired type and platform for the community. - -**Note**: The project team has a great deal of leeway here as to whether and what type of community should be created. It may be necessary to involve other units. - -Answer these questions and check regularly (approx. once a year) whether there have been any significant changes. - -Each federal authority (e.g. office, administrative unit) that develops or commissions software is independently responsible for the entire publication process. - -# Overview of tools and resources - -![](./assets/em002-5/media/image2.png) - -The tools and resources are available on the Federal Chancellery website -under [OSS tools](https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software/hilfsmittel_oss.html). They are also [published in English on GitHub](https://github.com/swiss/opensource-guidelines/tree/main/docs/en) where you can give feedback directly. The OSS Catalogue (opensource.admin.ch) provides an overview of software published by the federal authorities. For enquiries please contact: . - -# Target groups of the various OSS tools - -The OSS tools and resources are aimed at different target groups. The following table provides a recommendation as to which documents are relevant for each target group. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    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
    -Annex B

    (X)
    Em002-1 Practical GuidelinesXXXXX
    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)XXXXXXXXX
    Em002-6 FAQ about OSS (e)(X)(X)(X)XX(X)(X)(X)
    Em002-7 Strategic Aspects of Procurement and OSS(X)(X)(X)XX
    CCPP information sheetXXXX(X)XX
    FOBL Guidelines(X)(X)X
    FOBL Checklist for blanket exception(X)(X)(X)X
    - -Glossary: - -- X -- Target group, (X) -- If interested/needed, at least management - summary - -- \(a\) person responsible for Art. 9 EMOTA in the OU. Can be IT management or delegated - -- \(b\) fill in - -- \(c\) authorise - -- \(d\) to consult - -- \(e\) Primarily for information and reference - -- Bold = Proposal of the responsible body in an OU (may be regulated differently) - -- Numbers and capital letters: relevant sections and annexes. If none are specified, the entire document is relevant. - -- Responsibility for the documents: FCh/DTI (yellow), CCPP and FOBL (blue) diff --git a/docs/en/em002-6.md b/docs/en/em002-6.md deleted file mode 100644 index 3685c28..0000000 --- a/docs/en/em002-6.md +++ /dev/null @@ -1,511 +0,0 @@ -**Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- - -# Background and purpose - -## Background and purpose of the FAQs - -A number of questions frequently arise in connection with the tools available for publishing OSS. The following compilation answers the most common questions and aims to provide a better understanding of individual topics and aspects. - -## Structure and organisation - -The FAQs are organised by subject, as follows: - -2. Terms and definitions - -3. Roles and responsibilities - -4. Process - -5. Tools - -6. Legal matters - -7. General - -Each section is structured as follows: - - |Q | Question| - |:--|:--| - |A | Answer| - - -# Terms and definitions - -## Open source software - - - | Q | **What is meant by open source software?**| - |:--|:--| - | A | This is defined in [Em002-1 Practical Guidelines for Open Source Software in the Federal Administration ](./em002-1.md)| - - -## Software and licences - - -| Q | **What is meant by software?**| -|:--|:--| -| A | This is defined in [Em002-1 Practical Guidelines for Open Source Software in the Federal Administration ](./em002-1.md).

    For licences, see [Em002-3 OSS Licensing Guidelines](./em002-3.md).| - -| Q | **What is meant by licences?**| -|:--|:--| -| A | Here we are referring to software licences. Further information can be found in [Em002-3 OSS Licensing Guidelines](./em002-3.md).| - - -| Q | Should custom-built AI models be considered as software and thus subject to the legal requirements of a? What about the training data? | -|:--|:--| -| A | Open source refers to software whose source code is freely accessible and modifiable under minimum conditions. This also includes custom-trained AI models (including the algorithm, training procedure, and code).

    AI models are trained on the basis of data, possibly Open (Government) Data*. Open Data refers to datasets that are free to use, share and process. AI models with underlying training data based on Open (Government) Data are considered software subject to EMOTA and therefore must also be published.

    However, if the training data contains (sensitive) personal data or classified information, publication can be waived on security-relevant grounds. When open-sourcing an AI model, the training data does not necessarily have to be published; however, this is in keeping with the open source ethos and is strongly encouraged by the open source community. For further information regarding AI, we refer to the Competence Network for Artificial Intelligence (CNAI).[^5]| - -| Q |Must tools with generative AI capabilities (e.g. GitHub Copilot) be checked before use to ensure that no intellectual property belonging to third parties or the federal government is violated?| -|:--|:--| -| A | Content generated by an AI model itself cannot be protected by copyright because there is no creative activity behind it. However, AI-generated content that draws on copyrighted works of third parties may infringe the rights of these third parties. Also, given that AI outputs are notoriously unreliable, they should only be used after careful examination in each case. 

    Furthermore, the operators of AI systems may reserve the right in their terms and conditions to use inputs to train the system. This, in turn, can lead to inputs or parts thereof being displayed to third parties. Where this cannot be ruled out, it must be ensured that inputs do not violate the rights of the Confederation or third parties.

    It is recommended to examine and approve the use of AI tools individually. Unapproved tools may not be used, but employees can apply for approval of a tool. Often it makes sense to resolve such issues by contract with the supplier, or some suppliers may offer special subscriptions by which they respect third-party rights, e.g. DeepL. | - - -## Legal basis in EMOTA[^6] - -| Q | **What is the legal basis for the publication of OSS?** | -|:--|:--| -| A |According to Art. 9 EMOTA, federal authorities of the central Federal Administration must disclose the source code of software they develop or commission. Any person is allowed to use, further develop or modify the software without being charged fees of any kind.

    Publication of source code can only be avoided in relation to third-party rights or for security-relevant reasons.

    More information can be found in [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md).| - - |Q | **What is meant by security-relevant reasons?**| - |:--|:--| - | A| The security-relevant reasons permitted under Art. 9 EMOTA and how to deal with them are defined in Section 3.2 of [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md).| - - | Q | **What are third-party rights?** | - |:--|:--| - | A | Third-party rights under Art. 9 EMOTA and how to deal with them are defined in Section 3.3 of [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md).| - -| Q | **Is it possible for exceptions to be time-limited?**| -|:--|:--| -| A | The grounds for an exception under Art. 9 EMOTA (third-party rights and security-relevant reasons) may cease to apply over time.

    If that happens, the source code of the software must be released.| - -|Q|What legal consequences should be considered in case of a violation of Art. 9 EMOTA?| -|:--|:--| -| A|There are two types of violations:

    1. Third-party rights are violated

    2. A federal authority refuses to publish OSS (e.g. citing security-relevant reasons that are not valid)

    Answer to 1:

    This will regularly be a breach of contract and claims for damages may be asserted in accordance with the Swiss Code of Obligations.

    Answer to 2:

    This has no direct consequence. If a third party wants to be able to use the source code of a federal authority, they have to submit a request under the Freedom of Information Act (FoIA; SR 152.3) to the responsible authority.

    If there is a high level of interest, it may make sense to consider publication in the interest of both parties. There is no obligation to publish retroactively, although this can be done voluntarily. - -|Q | Can liability claims be asserted in the case of damage caused by OSS?| -|:--|:--| -|A | In principle, liability claims should be excluded in the contracts. However, it is not possible to exclude liability for gross negligence or culpable negligence. In such cases, a federal authority could be held liable under the Government Liability Act (GLA; SR 170.32).| - -| Q | **From which date must software be published?**| -|:--|:--| -| A | According to Art. 9 para. 1 EMOTA, software that is or has been developed after 1 January 2024 must be published.

    For software developed before 1 January 2024, release should be considered when major changes are pending.

    If there is considerable interest from third parties, existing software may also be released voluntarily (possibly with cost sharing). In this case, a community (see [Em002-4]) should also be considered.

    For smaller scripts, publication is usually not the best option. There may be repositories for tools that then go through the release process at the same time.

    For administrative units of the decentralised Federal Administration that are subject to EMOTA, the publication requirement has applied since 1 May 2025. Exceptions to the publication requirement exist for software developed without federal funding and research software (Art. 3 para. 1 DigiO).| - -| Q | Is it possible to demand retroactive publication for software developed before 1 January 2024?| -|:--|:--| -| A | The law does not provide for retroactive publication.

    Furthermore, contracts concluded before 1 January 2024 may contain third-party rights that preclude publication.

    If a new major version is pending (major according to Semantic Versioning[^7]), a release of the entire software should be considered. Otherwise, the source code of the new functionalities would at least have to be released. | - -| Q | On what basis would a third party have to request the release of source code | -|:--|:--| -| A | A third party would have to submit a request under the FoIA to the competent authority.| - - -# Roles and responsibilities - -## Role of the Federal Chancellery - -| Q | **Who makes the basic implementation tools available?**| -|:--|:--| -| A | The DTI Sector of the Federal Chancellery provides tools for the federal authorities as a document set accompanying Em002. This includes the strategic guidelines and other practical guidelines including FAQs, as well as checklists to ensure legally compliant implementation.

    The OSS tools are updated by DTI.| - -| Q | Is the Federal Chancellery responsible for granting exemptions (e.g. for security-relevant reasons)?| -|:--|:--| -| A | There is no central body that rules on exemptions to the publication obligation under Art. 9 EMOTA. Each federal authority is responsible for its own legally compliant implementation.

    The federal departments may establish regulations.

    The Checklist for Art. 9 EMOTA Blanket Exception [BBL-CL] from the FOBL should be completed.| - -## Role of administrative units - - -| Q | **Who is responsible for operational implementation of OSS releases?** | -|:--|:--| -| A | Each federal authority (e.g. office, administrative unit) that develops or commissions software is independently responsible for the entire publication process.

    The federal departments may establish binding regulations and control mechanisms within their area of responsibility, e.g. to prevent reputational damage.

    It is recommended to appoint a person responsible for OSS per federal office, e.g. IT Manager (IM), Enterprise Architect, ISBO or DSBO, to ensure uniform and efficient processes. If this is not specified, the federal office management is generally responsible for compliant implementation.

    This officer could then also be consulted for granting exemptions to the publication obligation. | - - -## Collaborations with third-party providers -| Q | **How should a federal authority\'s in-house developments be published?**| -|:--|:--| -| A | Copyright arises with the respective natural persons who developed the source code, although this is usually transferred to the employer by way of the employment contract.

    In contracts with external service providers, it is important to clearly delineate new developments and to agree on the contractual assignment/transfer of copyright.

    Ultimately, for joint in-house developments, the parties involved must agree on the open source licence for the source code under which the software is published as an independent open source project. Publication under an open source licence does not mean waiving copyright: this remains with the respective rights holders. Only on the basis of their copyright can they legally defend against licence violations or grant more extensive licences in parallel to OSS licences.| - - -## Disclosure of personal data - -| Q|Under what conditions may personal data, such as that of developers, be published as part of OSS?| -|:--|:--| -|A| There is no general rule for this. The decision lies with the project.

    In any case, the applicable data protection regulations must be complied with. According to Article 36 para. 1 FADP, federal bodies may only disclose personal data if they have a legal basis for doing so.

    Article 36 para. 2 FADP specifies the following exceptions, among others:

    b. The data subject has consented to the disclosure.

    e. The data subject has made their data generally accessible and has not explicitly prohibited processing.

    In most cases, it is advisable to obtain the consent of the persons concerned in advance, as they usually also have an interest in their work being publicly visible. If consent is not given, or if there are other reasons against publication, the source code should be published without personal data, referring only to the federal authority concerned.

    This consent should be obtained from suppliers and employees as part of the procurement and hiring processes. - -## Procurement - -| Q | **Where can I find the documentation for OSS procurement?** | -|:--|:--| -| A |With Version 2.0, a tool [Em002-7 Strategic Aspects of Procurement and Open Source Software](./em002-7.md) was made available.

    The Competence Centre for Federal Public Procurement (CCPP) has published a new information sheet entitled Software Procurement and Art. 9 EMOTA [KBB-MB] as well as two documents 'Sample criteria – EMOTA procurement and open source.docx' and 'Sample contract texts – software development.docx.

    Further resources can be found on the public procurement learning and template platform (www.perimap.admin.ch).

    Further assistance is available on the FOBL intranet (accessible only on the federal network) with the Open Source in Procurement Guidelines [BBL-WL] and the Checklist for Art. 9 EMOTA Blanket Exception [BBL-CL].

    The relevant information can be found on the FOBL intranet pages (only available within the Confederation).

    Links: FOBL IT procurement toolbox | - -# Process - -## Guidance - - -| Q | **Is there central guidance on how OSS is handled in the Federal Administration?**| -|:--|:--| -| A |Yes, the DTI Section of the Federal Chancellery provides comprehensive materials for this purpose.

    Note that these tools are an ICT recommendation and not a binding requirement.

    Link to OSS tools| - -| Q | **How should a federal authority\'s in-house developments that were created in collaborations be published? How should existing rights be handled?**| -|:--|:--| -| A | When developing software, copyright arises with the respective natural persons who developed the source code.

    If the developer is in an employment relationship, the developments belong to the employer (Art. 332 CO).

    For contracts with external service providers, it is therefore important to clearly delineate new developments and to agree on the contractual assignment/transfer of copyright. Ultimately, for joint in-house developments, the parties involved must agree on the open source licence for the source code under which the software is published as an independent open source project.

    Publication under an open source licence does not mean waiving copyright: this remains with the respective rights holders.

    Only on the basis of their copyright can they legally defend against licence violations or grant more extensive licences in parallel to OSS licences.

    The original rights should therefore always lie with the federal government for new or further developments, if possible. Contributor Licence Agreements (CLA) or Developer Certificate of Origin (DCO) should be used for other participants. Instructions for this can be found in [Em002-3 OSS Licensing Guidelines](./em002-3.md), [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md) and [Em002-4 OSS Community Guidelines](./em002-4.md).| - -| Q | **Do changes have to be published?** | -|:--|:--| -| A | According to Art. 9 EMOTA: yes, if they were developed after 1 January 2024.

    However, this should be done in a way that also provides benefit. The document [Em002-2 Instructions for Publishing Open Source Software](./em002-2.md) provides information on the process. | - -| Q | **When is the publication \'sufficient\' according to EMOTA?** | -|:--|:--| -| A |Art. 9 EMOTA is not specific in this regard and there is a great deal of room for manoeuvre. The source code must be publicly accessible.

    For example, the requirements of the law are satisfied by simply publishing the source code in a zip file on a website.

    In order to achieve a benefit, including through the publication of documentation etc., this should be done on a code repository according to best practices. Information on this can be found in [Em002-2 Instructions for Publishing Open Source Software](./em002-2.md).| - -| Q | **In the future, will service procurers be telling service providers how the software should be published and how to ensure quality?**| -|:--|:--| -| A | The rules of the individual federal authority apply to both service providers and service procurers.

    However, it makes sense to include the corresponding tools at suitable points in the existing processes and quality gates.

    Based on its development experience, the service provider can make suggestions for its service procurer here and treat this uniformly (just as the development process is treated uniformly).| - - -## Licence selection - -| Q | **Under which open source licence should software be developed?** | -|:--|:--| -| A | There are no strict requirements regarding the choice of licence as long as the licence terms of the software components used in the software to be developed are adhered to.

    For completely new developments, a licence type should be chosen that enables a broad and sustainable basis for further developments.

    For this, it is important that the licence in question should be widely accepted in the relevant developer community.

    **The use of AGPL (with copyleft) and MIT is therefore recommended.**

    These two licences represent the two extremes of the licence spectrum, so to speak.

    AGPL with a very strong copyleft permanently enforces the principle of 'public money – public code'. In the case of further developments, namely proprietary solutions, this will weaken towards LGPL.

    MIT, on the other hand, is a very liberal licence where almost anything is possible.

    The two licences cover the entire spectrum. If particular importance is attached to not naming the federal government in the case of permissive licences, BSD-3 is to be preferred over MIT.

    For a more detailed selection of licences, please refer to [Em002-3 OSS Licensing Guidelines](em002-3.md).| - - -## Quality criteria for OSS - - -| Q | **Does open source software have to meet certain quality criteria?** | -|:--|:--| -| A | As a rule, all quality criteria for any other software also applies. Open source primarily makes everything more transparent. To comply with the licence, the criteria for a 'good' release, and any community rules in place, some additional points are necessary. These are outlined in [Em002-2.2 OSS Analysis and Preparation Checklist](Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt) and [Em002-4.1 OSS Community Checklist](Em002-4.1%20Checklist%20OSS%20Community.odt). | - -| Q | **What are the requirements planned for quality gates?** | -|:--|:--| -| A | No central requirements are planned. The rules of the federal authority (administrative units) developing the software are applicable.

    Apart from the general requirements, there are no special requirements for OSS quality. However, Hermes will be updated to incorporate Art. 9 EMOTA.

    Publication is the Federal Administration's way of going public. If this is not done carefully and professionally, the public image of a federal authority can quickly suffer. | - -| Q | **How are development guidelines regulated?**| -|:--|:--| -| A | Apart from the general requirements set out in the tools, there are no special requirements regarding the development of open source software. Guidance is provided in [Em002-2.2 OSS Analysis and Preparation Checklist](Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt) and [Em002-4 OSS Community Guidelines](./em002-4.md).| - -| Q | **Does OSS have to be published in a specific location?** | -|:--|:--| -| A | The Confederation does not currently operate its own central repository. The federal authorities are therefore basically free in their publication. As many federal authorities already use GitHub, this platform is currently the preferred choice. There is also a central GitHub account (swiss) that can be used.

    GitHub - swiss/index: An overview of current repository organisations.

    This is especially the case if a federal authority does not yet have a GitHub account ('organisation') or does not use another platform such as GitLab or BitBucket.

    Please contact the responsible unit in the DTI (opensource@bk.admin.ch) to check whether publication via the central GitHub account (swiss) is appropriate and possible.

    Federal authorities should in all cases maintain a local copy of the code. It is also advisable for each federal authority to have a corresponding strategy. It is also advisable for each federal authority to have corresponding internal rules in place.

    Further recommendations are given in [Em002-2 Instructions for Publishing Open Source Software](./em002-2.md).| - - -## Documentation - - -| Q | **What are the documentation requirements for OSS publication?** | -|:--|:--| -| A |The tools made available by the Federal Chancellery's DTI Sector provide information on the legal requirements; see OSS tools.

    It is recommended that the OSS checklists be completed and stored centrally in each federal authority (administrative unit).| - -## Contributions to projects by the Federal Administration - - -| Q | **Can and should an administrative unit contribute code to an \'upstream\' project and does it thereby meet the requirements of Art. 9 EMOTA?**| -|:--|:--| -| A |• If the projects are open source, then Art. 9 EMOTA is fulfilled. However, the projects must also remain open source. If they fail to do so, the code must be published again. 

    • Upstream contributions have the advantage that maintenance takes place within the upstream project and the benefit for the community is maximised.

    The following disadvantages exist: less control and influence, a CLA may have to be signed or a DCO (see [Em002-4](em002-4.md) Section 3.3).

    The contributions also do not appear in the publiccode.yml and the federal directories. A completely different advantage is that with such contributions, the developers continue to develop within the ecosystem.

    • As long as the risks and effort remain manageable (CLA content, collection of the code), upstream contributions are to be welcomed.

    • The licence of the upstream project then applies to the contribution. This corresponds to the procedure in [Em002-3](em002-3.md).

    • Forking of upstream projects should be avoided: The entire maintenance and update burden then falls to the federal authority. Inadequate maintenance of the fork also represents a security risk. There is hardly any benefit for the community.

    • Contributions to upstream projects should generally be viewed positively and actively discussed by the federal authorities' project managers. 

    • If the upstream project belongs to the Federal Administration and involves third-party contributions, [Em002-7](em002-7.md) Section 9 will help.| - -## Support - - -|Q | **Is the federal authority required to provide support for published software?**| -|:--|:--| -|A | No, but it can if it so wishes.

    According to Art. 9 paras 5 and 6 EMOTA, it may also charge fees for support.| - -| Q | **How should an authority proceed if it wishes to charge for support?**| -|:--|:--| -| A | For resource reasons, this is not part of the current project to provide tools. If required, this could be included in the tools in a subsequent stage. For the time being, each federal authority regulates this itself.

    (See also [Em002-4 OSS Community Guidelines](em002-4.md) | - - -# Tools - -## Guidance - - -| Q |Is there any central guidance on working with open source software in the Federal Administration? | -|:--|:--| -| A |Yes, the DTI Sector of the Federal Chancellery provides comprehensive materials for this as part of [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](em002.md).

    OSS is discussed in general terms in [Em002-1 Practical Guidelines for Open Source Software in the Federal Administration](./em002-1.md). Release under Art. 9 EMOTA is addressed in [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md). | - -## Checklists - -| Q | **Do the tools also include checklists for releasing open source software?**| -|:--|:--| -| A |Yes, the DTI Sector of the Federal Chancellery provides the following checklists for free use:.

    • [Em002-2.1 OSS Preliminary Assessment Checklist](Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt).
    • [Em002-2.2 OSS Analysis and Preparation Checklist](Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt)
    • [Em002-2.3 OSS Release and Publication Checklist](Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication.odt).
    • [Em002-4.1 OSS Community Checklist](Em002-4.1%20Checklist%20OSS%20Community.odt).

    See the *Checklist for Art. 9 EMOTA Blanket Exception* [BBL-CL] from the FOBL.| - -## Security matters - -| Q | **Are there special OSS security risks?**| -|:--|:--| -| A |In this context, supply chain attacks, zero-day vulnerabilities and typosquatting attacks are mentioned, for example.

    Such security issues must be taken into account in OSS and in its procurement, but also generally in the development of software and in the procurement of commercial software. At best, they can be somewhat amplified if the OSS project used was careless when integrating libraries and containers.

    In the medium term, a general strategy is needed to mitigate these risks (through the NCSC/SEPOS). If necessary, secure sources for containers and libraries must be made available.

    In general, all those responsible in the IT environment must be aware of these possible attack vectors. Possible attempts include:

    • Supply chain attacks:
    XZ_Utils_backdoor (https://en.wikipedia.org/wiki/XZ_Utils_backdoor),
    Codecov (https://blog.gitguardian.com/codecov-supply-chain-breach/ )
    • Zero-day vulnerabilities:
    Log4Shell (https://www.ibm.com/de-de/think/topics/log4j )
    • Typosquatting: https://en.wikipedia.org/wiki/Typosquatting | - -| Q | **Does publishing source code increase the risk of a malicious copy of an app? (e.g. a phishing or fake app)**| -|:--|:--| -| A | No. Withholding source code offers no effective protection against fake apps and is moreover incompatible with Article 9 EMOTA, which establishes the open source principle for the Federal Administration.

    The risk of a third party building a visually identical app to harvest data exists regardless of whether the source code is published. Since the Confederation's design systems are publicly available, the look and feel of an app can be replicated by an attacker without access to the source code. Apps can also be decompiled to extract assets such as logos from the published version.

    Security and trust are therefore ensured not through obscurity, but through verification and cryptographic security:

    • Digital signatures: Official apps must be cryptographically signed, providing technical assurance that an app is an unmodified original from the Confederation. The smartphone operating system verifies this signature.
    •App store verification: The Apple and Google app stores offer processes to verify publishers as official government bodies. Google, for example, explicitly labels Federal Chancellery (FCh) apps as government apps, giving users confidence in their authenticity.
    • Reproducible builds: Through independent, reproducible builds, it can be technically demonstrated that the published source code corresponds exactly to the app available in the store.

    A blanket exemption for security-related reasons under Article 9 of EMOTA is therefore not applicable to apps.

    Recommendation:
    Rather than withholding source code, the focus should be on app store processes and monitoring. Official channels must be kept up to date and fake apps reported promptly for removal by the platform operators (Apple and Google).| - -| Q | **Does it make sense for requisitioners within the Federal Administration to join forces to procure OSS?**| -|:--|:--| -| A |Yes, definitely. This can be done directly and informally between administrative units.

    The problem is rather that the administrative units do not know much about each other's needs.

    One solution could be for administrative units to keep a 'most wanted' list of OSS tools (or libraries) to be developed or made available and to share this list.

    Such a centrally managed list could also help to better analyse the need for OSS components and better assess the maturity level of the administrative unit. Ultimately, an artifact repository would make sense.

    Maintaining such a list would then be the task of an OSPO, should one be introduced. At best, this could also be done via Digital Public Services Switzerland for the entire federal structure.| - -# Legal matters - -## Use of English - - -| Q | **Is the Confederation allowed to use licences in the original language English?**| -|:--|:--| -| A |According to Art. 9 para. 4 EMOTA, internationally established licence texts should be used wherever possible and practical.

    Insisting on German-language OSS licences would largely negate the purpose of Art. 9 para. 4 EMOTA as there are very few internationally established licence texts where a version in one of Switzerland's official languages (German, French and Italian as specified in Art. 70 para. 1 Cst.) is recognised as authoritative for interpretation.

    This situation parallels English-language courses at higher education institutions such as ETH, where English as the teaching language is permitted – subject to the three conditions under Article 36 of the Federal Constitution (St Gallen Commentary on the Federal Constitution, 4th ed. 2023, Art. 70 N 29; namely a legal basis, public interest, and proportionality must exist for English to be permitted).

    Based on the above, Art. 9 para. 4 EMOTA should be interpreted as providing the legal basis for using English-language licences, since international licences are predominantly in English. The provision must therefore refer to these.

    The public interest in Art. 9 EMOTA lies, among other things, in the exchange with the respective developer communities.[^8] In the computing industry, these communities are typically international and use English as their working language. Restricting licences to German-language ones would at the very least make cooperation with international communities difficult, if not impossible, because software licensed in this way would hardly be used internationally. This would also conflict with the intended purpose of Article 9 EMOTA.

    Moreover, internationally established OSS licences are, by definition, valid worldwide. The legislator evidently intended to enable international use of the released software. Restricting OSS releases to German-language licences would severely limit the international usability of the released software.

    Additionally, English is firmly established as the standard language in the computing industry's commercial sphere, which includes OSS releases. Using English-language licences therefore represents a reasonable and proportionate limitation on the contractual partners' rights. Moreover, English-language licences are both appropriate and necessary to achieve the intended objectives.| - -## Liability disclaimer - -| Q | **Most OSS licences include liability disclaimers. Is this adequate, or are additional measures needed? What is the position regarding defective software? (including consideration of the Government Liability Act)**| -|:--|:--| -| A | The applicable licences exclude liability for slight negligence. **Liability cannot be excluded for gross negligence or intentional acts**. However, the practical liability risks are minimal.

    Distributing modified software under a licence incompatible with the original software's licence (for instance, using an MIT licence without copyleft where the code originally used was under a GPL licence with copyleft) breaches the original licence. Due to the absence of good faith protection in intellectual property law, this neither allows other users to suddenly use the original software under the new licence, nor creates an enforceable obligation to offer the new licence under the original software's licence terms. The sole consequence is breach of the original licence, potentially resulting in damages claims (licence analogy) against a federal authority.

    However, this risk can be managed through systematic checking according to the guidelines, as is now standard practice in the software industry. Specifically, licensing requires creating a bill of materials listing all pre-existing software incorporated into the new software, which must be strictly adhered to during licensing.

    Where third-party rights exist, Art. 9 para. 1 EMOTA anyway does not require publication of the software in any case (or potentially only its newly written portions; this should be clarified in the guidelines).

    Under Article 11 of the Government Liability Act, the Confederation's liability is governed by civil law when it acts as a civil law entity. This is the case under Art. 9 para. 2 EMOTA; consequently, additional liability under the Government Liability Act is excluded. | - -## Permissive software -| Q | **If software is based on a library/program component published under a permissive licence, can the main software (excluding the library) be published under a non-permissive licence?**| -|:--|:--| -| A | Yes, this is unproblematic. See the information provided in the guidelines [Em002-3](em002-3.md).| - - -## Licence provisions - -| Q | **Can software be used by several different offices? What licence provisions apply within the Federal Administration? Is the Federal Administration considered a corporate group? (This applies to unmodified open source software from third parties.)** | -|:--|:--| -| A | Distributing software under permissive licences is generally straightforward.

    However, with copyleft licences, the question arises whether distribution within the central or decentralised Federal Administration triggers copyleft obligations and thus risks compromising the confidentiality of the Confederation's own developments. When distributing to institutions of the decentralised Federal Administration that have their own legal personality, this is indeed the case, whereas it does not apply within the central Federal Administration, as all departments operate under the same legal entity.

    Corporate group companies are legally independent but remain under the economic control of the parent company. Legal literature considers the distribution of copyleft-licensed code to a group company as triggering copyleft obligations. Since group companies often receive open-source software during software development, they require their own right of use, meaning that distribution to a group company triggers copyleft obligations.

    In contrast, distribution within the central Federal Administration does not trigger copyleft obligations. However, for the decentralised Federal Administration, where separate legal entities exist, the above applies: distribution triggers copyleft obligations, and the software must be offered in source code form under the same licence terms as the original software. An instruction not to distribute the software to third parties would violate the licence and could also breach Art. 9 EMOTA. | - -## Relationship between the FoIA and EMOTA - -| Q | **How do the Freedom of Information Act (FoIA) and EMOTA relate to each other?**| -|:--|:--| -| A |According to Art. 6 FoIA, official documents must be issued. An official document under Art. 5 para. 1 FoIA is defined as any information recorded on any medium that is in the possession of an authority and relates to the performance of a public task. OSS fundamentally falls under the FoIA. The FoIA applies when an individual requests source code from a department or office for their own use. The office must disclose the source code to the person concerned unless exceptions under Article 7 FoIA apply. If the office refuses to disclose the source code, the FoIA procedure applies. A different case arises when someone demands that the office publish the source code on its website. Then the procedure would not follow the FoIA but EMOTA. Since EMOTA itself does not specify a procedure, general administrative law must suffice. This provides either the option of an administrative decision, a real act, or a general declaratory decision from the office concerned. This decision can then be appealed to the Federal Administrative Court.

    While disclosure obligations for software developed by a federal authority under the FoIA are conceivable (if the relevant conditions are met), it should be noted that disclosure of software under the FoIA does not automatically grant an OSS licence. The use of software disclosed under the FoIA is thus limited to the purposes set by the FoIA, such as viewing the code or executing it for observation purposes. However, FoIA disclosure does not include a licence for regular use of the software or as a basis for further software development (details in T. Poledna/S. Schlauri/S. Schweizer, Rechtliche Voraussetzungen der Nutzung von Open-Source-Software in der öffentlichen Verwaltung, insbesondere des Kantons Bern [tr: Legal Requirements for the Use of Open Source Software in Public Administration, particularly in the Canton of Bern], Zurich 2017, https://carlgrossmann.com/?ddownload=11748, N 393 ff.).

    The decision to license software as OSS, even if it falls under the FoIA, continues to follow EMOTA; there remains no entitlement to the granting of a licence.

    Importantly, software developed before 1 January 2024, while not subject to EMOTA, must still be released according to the FoIA. | - -## OSS and data protection - - -| Q | **Can developers\' personal data be published without further consideration? What data protection aspects need to be considered?**| -|:--|:--| -| A | From a data protection perspective, publishing personal data (e.g. names or email addresses) is problematic unless employees have given prior consent. This is because the disclosure of personal data can, in principle, be avoided through pseudonymisation or anonymisation of repository entries, which would be required according to the principle of data minimisation and proportionality (Art. 6 para. 2 FADP).

    However, such consent should generally be easy to obtain, as employees often have an interest in publicly demonstrating their capabilities (at noted in Poledna/Schlauri/Schweizer, N 68, with references). Consent may also be implied through the use of names in the repository, at least where no employer directive exists to the contrary.

    Nevertheless, it is advisable to address the provider's responsibility for their employees' personal data in the contracts. | - -# General - -| Q | **Does it matter whether OSS is used commercially or non-commercially?**| -|:--|:--| -| A | Open source licences generally do not distinguish between commercial and non-commercial use. Therefore, OSS can be used for any purpose, including commercial applications. Commercial suppliers often try to integrate OSS components into proprietary products. This is only permissible if the OSS components are not under a licence with copyleft effects (see also [Em002-3 OSS Licensing Guidelines](em002-3.md)).| - -| Q | **Are there restrictions on which organisations are permitted for communities?**| -|:--|:--| -| A | Ultimately, each case must always be considered individually: who is behind it, and what commitments are being made?

    As long as no money changes hands and no formal commitments are made, the situation is relatively straightforward and unproblematic.

    Association memberships are possible, as is informal collaboration.

    It is possible to delegate memberships to eOperations or similar organisations.

    See also [Em002-4 OSS Community Guidelines](./em002-4.md), Section 3.1 | - - - - - - - - - - - -
    - 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: -
      - 3.1 Programme foundation - -
    -
      - 3.2 Relevant tasks defined and supported - -
    -
      3.3 Open source content review and approval - - -
    -
      - 3.4 Compliance artifact creation and delivery - -
        - • Implementation is not described in further detail and takes place within the federal departments or offices. -
      -
    -
      3.5 Understanding open source community engagements -
        - • The resource ' Em002-4 OSS Community Guidelines' describes how to set up and maintain a community. A concept must be defined and implemented for each project. -
      -
    -
      3.6 Adherence to the specification requirements -
        - • The final chapter sets out requirements for organisations or projects wishing to explicitly confirm compliance with the OpenChain requirements. -
      -
    -The ISO standard outlines further areas of responsibility for an Open Source Programme Office (OSPO) which are not covered by the guidance documents. -
    - -# Annex - -## Abbreviations - - - |Abbreviation | Meaning| - |:--|:--| - | AI |Artificial intelligence| - | AO | Application owner | - | CCPP | Competence Centre for Federal Public Procurement | - | CLA | Contributor Licence Agreement | - | DCO | Developer Certificate of Origin | - | DPSS | Digital Public Services Switzerland (www.digital-public-services-switzerland.ch/strategy)| - | EMOTA | Federal Act on the Use of Electronic Means to Carry Out Official Tasks | - | FITSU | Federal IT Steering Unit (until 2021) | - | FOBL | Federal Office for Buildings and Logistics| - | FoIA | Freedom of Information Act | - | FSF | Free Software Foundation | - | HERMES | *Handbuch der Elektronischen Rechenzentren des Bundes*, a method for system development (www.hermes.admin.ch) | - | OSI | Open Source Initiative | - | OSPO | Open Source Programme Office | - | OSS | Open source software | - | OSSD | open source software development | - | OU | Organisational unit (usually a federal office) | - | SPc | Service procurer | - | SPDX | Software Package Data Exchange | - | SPv | Service provider | - - -## Glossary - - -Further terms can be found in TERMDAT, the Federal Administration\'s [terminology database](https://www.bk.admin.ch/bk/en/home/dokumentation/languages/termdat.html). - -
    -
    - Application area -
    -
    - This refers to the categories of office automation (OA) software as defined in [A029] and other classifications. -
    -
    - -
    -
    - Branch -
    -
    - A development branch of an OSS -
    -
    -
    -
    - Collaboration -
    -
    - The term ‘collaboration’ derives from the Latin word ‘collaborare’, which 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.' -
    -
    -
    -
    - 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). -
    -
    -
    -
    - Core developer -
    -
    - Developer of an OSS project who has committer access rights to the repository. -
    -
    -
    -
    - 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. (seehttps://perimap.admin.ch/goto_perimap_file_38221_download.html ). Possible sources of OSS software can be found in Em002-1 Practical Guidelines for OSS in Section 7. -
    -
    -
    -
    - OSS -
    -
    - Open source software -
    -
    -
    -
    - 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 stand- -ardisation -
    -
    - In this document, standardisation primarily refers to SD120, the ICT standard service for office automation, and other standardisations by DTI. -
    -
    -
    -
    - 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. -
    -
    - -[^1]: Recommendation for Federal Administration IT in accordance with - \[P035\] *Section 4.6* - -[^2]: For definitions of the INTERNAL and CONFIDENTIAL classifications, - see the *Ordinance of 8 November 2023 on Information Security in the - Federal Administration and Armed Forces (InfoSecO; SR 128.1)* - -[^3]: See footnote 1 - -[^4]: Planning areas in accordance with the *Federal Administration IT - Strategy 2020--2023 of 3 April 2020 (SB000)* - -[^5]: See: and also Art. 10 EMOTA - -[^6]: SR 172.019 - -[^7]: See: - -[^8]: BBl 2022 804, p. 66 diff --git a/docs/en/em002-7.md b/docs/en/em002-7.md deleted file mode 100644 index 037fa1c..0000000 --- a/docs/en/em002-7.md +++ /dev/null @@ -1,1213 +0,0 @@ -**Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- - -# Main points at a glance - -This document supplements the Em002 set of OSS tools with aspects concerning procurement. It builds on the *Information Sheet on Software Procurement and Art. 9 EMOTA* published by the Federal Procurement Competence Centre (CCPP)[^7] *[KBB-MB]*, and summarises the content of FOBL[^8] documents such as the *Open Source in Procurement Guidelines* [BBL-WL], which are available on the intranet only.[^9] The document also addresses digital sovereignty as a procurement criterion. - -The use of open source software can be divided into four aspects: - -- Consumption: The use of pre-existing OSS - -- Creation: The development of new OSS - -- Contribution Contributing in-house modifications to an existing OSS project - -- Collaboration: The joint further development of OSS with third parties. - -In all these situations, a public contracting authority must comply with the relevant procurement legislation. - -**Consumption:** - -- Procurement law applies when services are purchased on the market for payment (Art. 8 PPA). - -In other words: - -- The use of OSS that is available free of charge (without licence fees, support or maintenance contracts, etc.) does not generally constitute procurement. - -- Value-added services purchased for the use of OSS (support, warranty, maintenance, and further development) must be procured in accordance with procurement law. - -- When procuring software, it is generally permissible to specify OSS as a requirement, e.g. where the administrative unit (AU) expects to derive specific benefits, such as greater data sovereignty or simplified compliance with Art. 9 EMOTA in the event of foreseeable bespoke adaptations. However, the market must not be unduly restricted. - -**Creation and contribution:** - -- When developing software or software components, including with a view to subsequent contribution to an OSS project, Art. 9 EMOTA must always be taken into account. Where third-party services are purchased for this purpose, procurement law applies. - -- When contributing to OSS projects, the AU passes on its own work to third parties; this process is therefore not subject to procurement law. - -- The acceptance of third-party contributions to a federal OSS project is likewise unproblematic from a procurement law perspective, provided no payment is made. - -**Collaboration:** - -- Collaboration between various public contracting authorities on an OSS project gives rise to a broad range of legal requirements. From a procurement law perspective, those arrangements involving the provision of services for payment require careful examination. - -- In an informal collaboration, each participating party may procure or provide development services independently and then make them available free of charge. Coordination services may likewise be provided or procured. - -- In a formalised collaboration, e.g. through an association of public-sector actors, the central body may also be able to provide or procure development services, provided it is itself subject to procurement law. - -- Joint procurement by contracting authorities from different countries is not, however, straightforwardly permissible. - -For the sustainable use of open source software, it is important that OSS is not merely consumed, but that as many stakeholders as possible also contribute to the ecosystem. There are many ways to do this: from regular code contributions and creating documentation to funding developers, and much more. - -# Objective and purpose - -The Federal Act on the Use of Electronic Means to Carry Out Official Tasks (EMOTA)[^10] requires that additional considerations be taken into account when procuring newly developed software and software development services. - -To support compliance with Art. 9 EMOTA, DTI has developed tools and resources as part of [Em002 Strategic Guidelines for Open Source Software in the Federal Administration](em002.md) and [Em002-1 Practical Guidelines for Open Source Software in the Federal Administration](em002-1.md) - -![](./assets/em002-7/media/image1.png) - -Figure 1: Overview of OSS tools - -This document goes beyond the core of Article 9 EMOTA and also sets out how open source should generally be handled in the context of procurement. - -
    -
    - Section 3 -
    -
    - The importance of digital sovereignty in the context of open source and procurement -
    -
    -
    -
    - Section 4 -
    -
    - Relevant procurement use cases in connection with software and open source software -
    -
    -
    -
    - Section 5 -
    -
    - Creation: Tendering for software and services in connection with Art. 9 EMOTA -
    -
    -
    -
    - Section 6 -
    -
    - Consumption: Software procurement: equal treatment of open source software -
    -
    -
    -
    - Section 7 -
    -
    - Consumption: Procurement of additional services (support/maintenance/further development) for OSS -
    -
    -
    -
    - Section 8 -
    -
    - Collaboration: Procurement law aspects of collaborations for the creation, maintenance and support of OSS -
    -
    -
    -
    - Section 9 -
    -
    - Contribution Contributing to OSS projects -
    -
    - - -# Digital sovereignty and procurement - -## Introduction to digital sovereignty and OSS - -Through Art. 9 EMOTA, the Federal Administration is making an important contribution to digital sustainability and sovereignty by publishing its software as OSS. - -Digital sovereignty is not an end in itself, but a prerequisite for an effective, democratic and future-oriented administration. It is a multi-faceted concept encompassing technological, organisational and political dimensions. - - - - -
    - 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. -
    - -When procuring software in particular, consideration should be given to the implications for the digital sovereignty of the Federal Administration. - -In its **roles as user, operator and contracting authority** in the field of ICT and software, the Federal Administration can consciously fulfil its responsibilities in this area. - -There are three strategic objectives in the area of software: - -**Interchangeability**: As a user, the public administration seeks to be able to choose freely and flexibly between providers, IT solutions and technologies. This requires the availability -of capable and proven alternatives, and IT architectures, procurement channels and staffing that are designed to facilitate switching. - -**Design capability**: As an IT operator , the public administration has the ability to shape and co-design its IT systems. To this end, it has the necessary expertise and appropriate cooperative structures to understand and evaluate IT solutions and, where necessary, ensure their development, further development and operation. - -**Influence**: As a contracting authority, the public administration can articulate and enforce its requirements and needs vis-à-vis technology providers. This applies to product features (functions, operating options, availability, information security and data protection, etc.) as well as to contract design and licensing models. - -**Open standards** and **open source software** best support these goals through **open source principles**. - -OSS supports digital sovereignty in the following ways: - -- IT security for public administration, critical infrastructure and security-sensitive applications can be assured at all times through full access to the source code. - -- OSS enables public bodies to build, operate, control and adapt their own IT infrastructure without restrictive licence conditions. - -- OSS provides full control over updates, features and security patches, in terms of both content and timing. - -- OSS can prevent dependence on individual vendors or licensing models and supports interchangeability. - -- OSS allows the entire software supply chain to be displayed and traced transparently. - -- OSS can be customised and expanded -- well suited to the specific requirements of public authorities and educational institutions, though this requires in-depth knowledge on the part of an organisation\'s own employees. - -- Investment in OSS also benefits local businesses and communities (local value creation), increasing the resilience of the Swiss economy. - -- OSS is based on collaboration and open interfaces, facilitating interoperability between systems and promoting open standards -- even across national borders. - -- OSS improves IT security and data security through transparency and adaptability. - -- OSS software licensed under OSI licences guarantees clear legal conditions and continuity, along with the fundamental freedoms of OSS, protecting developers and users alike. - -**Open standards:** To support software interchangeability, public procurement tenders should require compliance with open standards,[^11] thereby minimising lock-in. -**Open interfaces:** Interfaces should likewise be disclosed to enable interoperability. - -Federal authorities are generally required to comply with the eCH standards.[^12] - -The Bern University of Applied Sciences set out the relevant considerations in the study *Technological Perspectives of Digital Sovereignty* \[Stü2024\], commissioned by the FDFA, using the \'sovereignty house\' model, in which software is presented as a key pillar. - -![](./assets/em002-7/media/image2.png) - -*Figure 2: Schematic representation of the aspects of digital sovereignty enabling the provision of innovative products and services \[Stü2024\]* - -## Measuring digital sovereignty - -Aspects of digital sovereignty may be required in a public tender, but any such requirements must be objectively justified. There is no general preference for OSS. - -**How, then, can the degree of digital sovereignty be measured for a given technology, product or service?** - -This operationalisation must be made as objective and transparent as possible. - -Various initiatives are attempting to do this. The OSBA, for example, has developed a **sovereignty index**[^13] *\[OSBA-VK\]. Nextcloud* has published a Digital Sovereignty Index (DSI),[^14] which compares entire countries but can also provide useful criteria. -The European Union has published a Cloud Sovereignty Framework[^15] for the cloud. -The *Centre for Digital Sovereignty ZenDiS* is working on a sovereignty check designed to evaluate IT solutions and organisations against transparent sovereignty criteria. - -The Federal Administration is also involved in developing a **digital sovereignty framework** that will, among other things, enable the degree of fulfilment to be determined across a range of perspectives. - -Possible perspectives include: - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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? -
    - -For each of these perspectives, the degree of digital sovereignty can be determined against a scale to be defined: - -![](./assets/em002-7/media/image3.png) -Figure 3: Degree of digital sovereignty. - -These two dimensions produce the following matrix: - -![](./assets/em002-7/media/image4.png) - -Figure 4: Matrix Digital Sovereignty. - -Specific criteria can be described in the individual intersections (grey fields) to make the classification as objective as possible. - -Such a framework is currently being developed as part of Priority 4, 'Strengthening digital sovereignty', of the 'Digital Federal Administration Strategy'.[^16] - -The Federal Council brought the umbrella directive Digital Sovereignty in the Federal Administration[^17] into force on 1 January 2026. Projects must incorporate the various aspects into the definition of the procurement object and, where necessary, into a tender, on the basis of the specific sovereignty requirement -- for example from a risk perspective in the context of business continuity management. - -# Use cases for software procurement - -Information and communication technology (ICT) and software are not an end in themselves in the Federal Administration, but always serve to fulfil a legal mandate. Given advancing digitalisation and the Federal Administration\'s central role in Switzerland, information technology must be a core competence of the administration. - -The following **factors** therefore have a direct bearing on procurement: - -- **Digitalisation**: The digital strategy[^18] calls for the digitalisation of processes. - -- **Process optimisation**: Processes within the Federal Administration and in its external relations can and should be optimised. - -- **Digital sovereignty**: The importance of digital sovereignty is growing steadily; see *\[Stü2024\].* - -- The principle of **public money, public goods** and compliance with Art. 9 EMOTA. - -- **Economic freedom**: Measures should not unnecessarily restrict economic freedom. - -- General **security** considerations: The security of information processing systems is of increasing importance. - -- Crisis and disaster management (**resilience**): Given the current global situation, the administration must consider how it can continue to provide the necessary working tools under critical circumstances. - -- Strategic independence and **supply chain** considerations: These follow from digital sovereignty and resilience. - -- Avoiding/minimising **vendor lock-in**: Dependencies are almost impossible to avoid in IT, but reliance on a single vendor should be reduced wherever possible. - -- **Empowering** the Federal Administration[^19] (including management) in ICT matters: Controlling, developing and operating information technology requires appropriate skills across the workforce. - -This document distinguishes between **software types** as follows: - -- **Commodity -- Specialised applications/Industry -- Specialised applications/Federal authority**: - - - Standard application (commodity software) without special business logic. - - - Specialised application: Specific requirement of the industry/all federal levels or specific requirement of the federal authority - -- **Targeted -- strategic -- essential**: - - - Targeted application - - - Strategic application with significant importance for a federal authority or the Federal Administration as a whole - - - Essential and business-critical -- must remain functional in all circumstances (e.g. air traffic control) - -Applications may be used across one or more **fields of application**. - -What matters here is the **standardisation** of applications by product within each area: - -- No strategy - -- Single-product strategy - -- Multi-product strategy - -In addition to product standardisation, which must be examined carefully, there is also standardisation for interoperability (data formats, API, business elements).[^20] -Standardisation *is permissible* provided it is proportionate and does not unduly restrict competition (e.g. Art. 30 para. 3 PPA). It may reduce operating and maintenance costs and generate synergy effects, particularly where all federal levels are involved. On the other hand, it increases lock-in, dependency and, in some cases, security risks (cluster risk). - -Total costs of ownership (TCO) -- covering operation, maintenance and further development -- should always be considered in procurement. Long-term cost implications must not be overlooked. Open source business models differ in certain respects from those of proprietary providers. - -The following sections focus increasingly on open source, discussing the relevant procurement approach and how it should be implemented. - -The choice between consumption, contribution, collaboration and creation is made *on a project-specific basis* according to economic efficiency and the legal situation, with costs distributed as broadly as possible. From this perspective, the four Cs as defined in [Em002 OSS Strategic Guidelines](em002.md), Section 3, are ranked in descending order of importance: - - ![](./assets/em002-7/media/image5.png) - -1. Consumption - -2. Contribution - -3. Collaboration - -4. Creation - -With simple **consumption**, costs are spread across a large number of other users, but the federal authority has no control over further development. Creation is the inverse: full control, but full cost. - -With **contribution**, financial outlay is limited to the element developed, which is then handed over to another organisation for maintenance. - -**Collaboration** is the most complex scenario, as arrangements can vary considerably. In the best-case scenario, costs are shared and the federal authority has sufficient influence to implement its requirements without compromise (see Section 8). - -Ideally, **creation** accounts for the smallest share. Software may be developed in-house, through services, or via a contract for work. - -Pure consumption will only be feasible for standard applications. - -## Software requires additional services such as maintenance, support and further development. - -Although open source applications can be used free of charge, their strategic deployment across thousands of instances requires maintenance, support and, where necessary, further development. - -Federal authorities have an interest in long-term support for deployed versions (see Section 3.2.3 in *\[BITKOM2024\]*). - -Art. 9 EMOTA itself covers only the in-house development or further development of software and is not relevant to any other open source considerations -- digital sovereignty and other factors apply instead. However, restrictions under Art. 9 EMOTA on individual development components may have repercussions for the overall project where proprietary or additional developments are foreseeable. Collaboration can then be used to exploit synergy effects and, where possible, reduce costs across the Federal Administration as a whole. - -## Publication requirement for software procurement - -Where requirements indicate a need to adapt software, or a potential need for later adaptation, Art. 9 EMOTA is relevant and publication is mandatory for those parts, unless one of the two exceptions applies. When procuring an open source solution, such publication would already be addressed through a contribution to the open source project. Even where procurement involves only the licensing of standard software or ICT procurement falling under an exemption, any additional developments must in principle be published, and this must be reflected in the procurement documents and draft contract. - -**The publication requirement under Art. 9 EMOTA is therefore relevant to any procurement where in-house development or further development is likely** (see also *\[KBB-MB\]*). - -# **Creation: Tenders for software and services involving Article 9 EMOTA** - -This section addresses the implications of Art. 9 EMOTA for tenders for software and services that may involve the creation or modification of software. - -It applies to both centralised and decentralised Federal Administration. Exceptions to this requirement are set out in the Digitalisation Ordinance *\[DigiO\]*. - -## **Relevance of Article 9 EMOTA for software creation** - -A transaction falls within the scope of Art. 9 EMOTA if it falls within the relevant category of Table 1. The make-or-buy decision remains central to procurement. Analysis of the various use cases shows that, in principle, Art. 9 EMOTA is relevant in principle in all cases, except where pre-existing software is being procured (e.g. pure licences). Section II.4 of the *Open Source in Procurement Guidelines \[BBL-WL\]* sets out the strategic approach, and Annex VII.A describes in detail what constitutes software. A detailed breakdown of the strategic decision is provided in Table 1. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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 -
    - -Table 1 Classification of publication requirement and make-or-buy decision (based on a table by Rika Koch, BFH) - -NB: Art. 9 EMOTA must also be taken into account for existing software and SaaS where the software is to be further developed or adapted for the federal government. Even where the likelihood of this is low, it should be addressed in the procurement process. - -Where clarification is needed, the recommended reference is [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md). The checklists should be **completed provisionally as early as possible** for potentially relevant projects. The *Checklist for Art. 9 EMOTA Blanket Exception \[BBL-CL\]* may also be used for this purpose. - -## **Preparing a procurement under Article 9 EMOTA** - -In addition to the usual preparatory steps, the following two documents should be consulted whenever a procurement involves software components: - -- *Information sheet on software procurement and Art. 9 EMOTA \[KBB-MB\] and* - -- *Open Source in Procurement Guidelines \[BBL-WL\]*. - -Where Art. 9 EMOTA is clearly relevant, the administrative unit should have: - -- provisionally completed the checklists [Em002-2.1 OSS Preliminary Assessment Checklist](Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt) through to [Em002-2.3 OSS Release and Publication Checklist](Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication.odt); - -- taken a basic decision on whether to use a copyleft or permissive licence;[^21] - -- searched for possible open source alternatives (or potential base projects for contributions/collaboration) in accordance with [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md), using the tools specified therein for market research/market analysis;[^22] - -- clarified the structure of any relevant community ([Em002-4 OSS Community Guidelines](em002-4.md) and [Em002-4.1 OSS Community Checklist](Em002-4.1%20Checklist%20OSS%20Community.odt)). - -Where an existing OSS project is to be used, supported or built upon through collaboration, Sections 5, 0, 8 and 9 of this document must be read. - -## **Creation via existing service contracts** - -Where creation is handled via existing partner agreements, OSS publication must be ensured at the mini-tender stage, unless one of the two exceptions applies. - -New service tenders should always include a requirement for publication in accordance with Art. 9 EMOTA (see *\[BBL-WL\] and* *\[KBB-MB\])*. - -## **Building a community** - -Building and maintaining a community maximises the benefits of open source software, but also involves considerable effort. - -Where a community and collaboration make sense, this has implications for procurement from the outset. [Em002-4.1 OSS Community ](Em002-4.1%20%20OSS%20Community.odt) should therefore be completed on the basis of the [Em002-4 OSS Community Guidelines](em002-4.md). - -Where the federal authority is to take on a significant role in the community (e.g. a governance role) or where collaboration is planned (see Section 8), it may be necessary to procure additional services: community building, consolidation of requirements, management of further development. - -## **Sample criteria and contract elements for IT procurement** - -The CCPP maintains a template of possible procurement criteria and a framework agreement chapter template for software-related tenders *\[KBB-KV\]*. - -The CCPP has published two template documents on Perimap.admin.ch showing how the minimum requirements for a procurement-compliant acquisition under Art. 9 EMOTA can be met. \[KBB-KV\] - -1\. [Sample criteria -- Procurement EMOTA and Open Source](https://perimap.admin.ch/goto_perimap_file_47064_download.html) -2\. [Sample contract texts -- Software development](https://perimap.admin.ch/goto_perimap_file_47059_download.html) - -# **Consumption: Software procurement: Equal treatment of open source software** - -This section addresses the procurement and use (consumption) of open source software, highlighting key strategic aspects. -Reference is also made to *\[BBL-WL\] and* *\[KBB-MB*\]. - -**There is currently no legally prescribed preference for open source software in procurement.** - -When tendering for IT applications, all licence types and business models are considered. To meet the stated requirements, providers may offer software solutions based on unmodified open source, closed source or proprietary software, or on combinations of licence models and value-added services or subscriptions. - -The following points[^23] should be taken into account by federal authorities: - -- Regardless of its solution and licensing model, the service provider must specify in its tender **which licence conditions the service procurer must comply with when using the service**. - -- The service provider is **free to choose the solution** with which it intends to meet the advertised requirements and the form of remuneration it wishes to receive (licence, maintenance or subscription fees), provided this is technically feasible and economically reasonable. - -- The full **lifecycle** should be taken into account in the specifications and pricing. - -This enables the Federal Administration to assert its interests regarding intellectual property, warranty and liability -- independently of the software or licence model -- at the level of the applicable general terms and conditions, and to enshrine these in the contract. - -Where **software adaptations** are made on behalf of or in fulfilment of a contract with the federal authority, Art. 9 EMOTA applies. -As a precaution, publication approval should be requested in the tender, since experience shows that adaptations are usually required sooner or later, even if not foreseeable at the time of tendering. - -Where the service procurer procures **value-added services** from a provider in addition to the software, OSS suppliers often offer a subscription model that provides a local contact with warranty and liability commitments, alongside the direct relationship with the intellectual property holders of the OSS components (who are often based abroad and sometimes unknown). - -## **OSS as a strategic procurement criterion** - -Where a federal authority wishes to procure open source software for strategic reasons, several scenarios are possible: - -- Functional invitation to tender without OSS-specific criteria. - As this involves no restrictions, no special justification is required. - -- Functional invitation to tender with eligibility criterion, technical criteria and award criteria requiring open source, full access to source code, or demonstrable experience in open source publication. - - **Any preference for open source is permissible under procurement law where it allows the specific needs of the awarding office to be (better) met**.[^24] - - A further reason for favouring OSS -- beyond digital sovereignty -- is that where the administration requires significant software adaptations, these must be published under Art. 9 EMOTA. - Publication is most straightforward when the entire product has always been open source, and adaptations can in some cases be made directly within the product. Otherwise, an exception must be defined and, where necessary, parts of the code must be isolated and still released. - -## The use of OSS without payment is not subject to procurement law. - -OSS can often be downloaded and used directly. Procurement law applies only where services are obtained from third parties in return for payment (including non-monetary consideration). - -Downloading and using OSS free of charge does not in itself constitute procurement. - -It is also possible to procure the necessary services for downloaded OSS at a later stage, provided this is not done abusively.[^25] - -Maintenance, support and further development services for the product are then tendered separately in accordance with procurement law. - -There are already examples of OSS being used free of charge on the Federal Administration\'s standard workstations and therefore not procured.[^26] - -## Coordinating requirements with other stakeholders - -A specialised application always requires a requirement owner (usually a federal office). It generally makes sense for the body with the need to harmonise its requirements with those of other government agencies --- either internally or through collaboration (see Section 8) --- to the extent that an available market product or a collaborative development is conducive to development and rollout. - -Where many stakeholders have the same or similar requirements, it may be worth meeting those needs on a common basis. This applies to all forms of software. - -Two aspects should be noted: where adaptations are subsequently made by a federal authority at the request of third parties, Art. 9 EMOTA applies again -- though this is unproblematic where open source software is used. - -With OSS, requirements may need to be aligned more actively by the federal authority, since there may be no driving force such as a commercial vendor seeking to steer and develop its own product. - -## Considering other potential public actors in procurement - -The ZenDiS[^27] example shows that it can be both feasible and worthwhile to issue a tender covering all federal levels simultaneously. - -**Fair competition must always be maintained.** When issuing tenders, consideration should always be given to whether the solution might usefully be procured for other bodies as well. - -Where this is the case, those potential additional clients should be contacted and their needs reflected in the tender documents, particularly the requirements. A degree of flexibility in the requirements is important in such cases. - -Example: eOperations Switzerland Ltd ([www.eoperations.ch](http://www.eoperations.ch)) can be used for such collaborations. eOperations consolidates requirements from various agencies and conducts procurement itself, without necessarily using the product itself. This may also be a useful model for OSS procurement. - -# **Consumption: Procurement of support and maintenance for OSS** - -Public administration can use open source software in various ways, from simple download and installation through to formal procurement (see Section 6.2). - -Where OSS is deployed in critical areas, consistently high standards of security,[^28] maintenance and further development are required. In regular software procurement, this is usually covered by the tender. The requirements apply to both the software itself and to the relevant libraries and frameworks used. Support and maintenance warrant particular attention, since further development is often covered under the same contract and in any case constitutes creation and therefore falls within the scope of Art. 9 EMOTA. - -These labour-intensive services almost always exceed the threshold value under the Public Procurement Act (PPA) when calculated over the application lifecycle. Where they are purchased from third parties, procurement law must be complied with. Exceptions may apply, such as in-state procurement from another public contracting authority,[^29] or in exceptional cases direct procurement of specialist services.[^30] - -The following table sets out the case distinctions for the procurement of services such as support. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    BackgroundResults
    Lifecycle costs
    → WTO threshold?[^31]
    In-state?[^32]WTO tender required?[^33]Comments
    NoNoNo [^34] - Rarely a complete software package with support – mostly minor support and individual features. -
    NoYesNo
    YesNoYesOnly the volume to third parties is relevant.
    YesYesNoThe tender was issued by the other public body.
    - -Table 2 Case distinction -- procurement of support - -## Support and maintenance are always part of software - -Support and maintenance are essential for the sustainable operation of software in a public authority environment. In a world of zero-day exploits,[^35] rapid and professional patch deployment is critical. This \'infrastructure\' must be funded -- particularly since the administration has higher requirements than a private consumer. - -**The question is therefore not IF support and maintenance will be required, but HOW they are to be provided.** - -The federal authority must determine what level of support, maintenance, warranty and liability it requires based on its quality of service requirements. - -It is important that any service provider for maintenance and support can demonstrate sufficient experience with the product or the relevant open source community -- only then will it be able to fulfil these tasks effectively (see also *\[KBB-MB\]*, II.5).[^36] - -Support and maintenance must also be funded at the product level. Where no one contributes (the free-rider[^37] problem), the project\'s future is jeopardised, and with it its use within the Federal Administration. Given its scale, the Federal Administration can reasonably be expected to contribute to the costs of software it deploys strategically. - -## Organisations that can provide support - -The quality of support has a direct impact on end-user satisfaction and productivity. A structured support system with fast response times and genuine technical expertise ensures that users and administrators receive effective solutions to their issues, saving the contracting authority\'s working time and promoting acceptance of the software solution. - -To meet contractually agreed response times under service level agreements (SLAs), the provider must have qualified staff with the necessary expertise. - -Possible sources of support include: - -**In-house**: -- Federal offices -- Service providers - -**In-state**: -- Other public contracting authorities in Switzerland -- Services procured by other public contracting authorities in Switzerland - -**Third parties**: -- Procured service - -## Further development for specific features - -Where a federal authority requires only a limited number of specific enhancements to a piece of open source software, this can be done using internal resources or procured services. - -Such further developments should aim to be offered back to and integrated into the original project. This not only benefits the project ecosystem but ensures the enhancements are maintained within the project going forward. Without this, each new release of the original project may require the bespoke development to be updated manually (see also Section 8). - -## Subscription - -Many companies and projects in the open source environment offer free support within certain limits, provided voluntarily by any user, mainly through open channels such as forums and public ticket systems. This free offering is not designed for professional users with specific SLA requirements. - -For professional users such as federal authorities, OSS subscriptions that include warranty, maintenance and support are often available. - -Some providers also offer special \'enterprise versions\' that no longer meet the OSI\'s open source criteria. - -Examples of subscriptions: OpenShift from Red Hat, openDesk from ZenDiS - -## Certifications in the open source sector and OpenChain - -As with proprietary software, various certifications exist in the open source sector. It may be worthwhile for the administration to check for potentially relevant certifications in the area covered by the tender before issuing it. - -**OpenChain** is an ISO standard addressing open source development and licence compatibility (see below). - -Where relevant certifications exist and are pertinent to the service, they should be taken into account in the assessment of providers. It is important that the certification itself is considered meaningful, and that providers can demonstrate they are able to deliver the service even without certification. - -Given the complexity involved, requiring certifications as an eligibility criterion is inadvisable. As an award criterion -- with the possibility of demonstrating compliance with certification content through references -- they may be appropriate depending on the OSS product, provided it is permissible to use references to demonstrate that certification criteria are being met.[^38] - -Self-certification under OpenChain may at best serve as a substitute where no other certification exists. References addressing the relevant criteria can also stand in for missing certifications. - -**Certification of partner companies** - -Some open source developers and projects[^39] certify partner companies with which they collaborate. Such certifications can demonstrate an existing relationship between the provider and the software developer. Note that many OSS projects do not offer such certifications. Proven collaboration in reference projects is an equally valid -- and less restrictive -- indicator of the desired quality. - -**Certification of employees** - -Some open source manufacturers or communities[^40] certify individuals with specialist expertise in the relevant software. Where a service provider employs certified staff, this can demonstrate expertise in upstream publication of adaptations and patches, and in providing high-quality third-level support -- particularly where several staff members work with the product. This also depends on the structure of the OSS project\'s ecosystem. - -As an alternative to certifications, demonstrable project experience in references relating to the procurement subject can also serve as a differentiating criterion. - -**OpenChain standard** - -The OpenChain standard represents both best practice in licence compatibility and a certification of interest to procuring authorities. - -ISO/IEC 5230 \'OpenChain\' focuses on software supply chains, streamlined procurement and licence compliance. The OpenChain standard can be awarded by an accredited certification body or obtained through self-certification. This certification is suitable for demonstrating in general terms that a provider has already dealt extensively with open source licence requirements and the specifics of the open source ecosystem. -Since the creation of a Software Bill of Materials (SBOM) is part of the standard, this certification also evidences a supplier\'s commitment to supply chain security through support of foundational components. - -## Further options for procuring maintenance, support or further development services - -It makes sense to handle further development services under the same contract as support and maintenance, since the distinction is not always straightforward and is often not practical in the context of open source software. Further developments funded by a federal authority fall within the scope of Art. 9 EMOTA. - -The following options are currently available[^41] for procuring support, maintenance and/or further development services for OSS: - -- In-house, with competence building: Deploy own development resources - -- Procurement: According to volume and in compliance with the PPA. This may also be done via service contracts already put out to tender. To ensure that strategic partners can provide experienced core developers for OSS projects central to the Federal Administration, it may be worth permitting subcontracting or requiring the relevant expertise in certain tenders. - -- Cooperation agreements with third parties for maintenance, support or further development: unproblematic as long as each party bears its own costs. - -- Federal participation in organisations: unproblematic as long as each party bears its own costs. - -# **Collaboration: Procurement law aspects of collaborative creation, maintenance and support of OSS** - -The costs of open source software decrease when it is developed collaboratively, whether informally or through a structured arrangement. [Em002-4 OSS Community Guidelines](em002-4.md) sets out the relevant approaches. - -Collaboration with other public contracting authorities or third parties is unproblematic under procurement law as long as each party bears its own costs. Difficulties arise where the collaboration does not result in OSS, since the Federal Administration is bound by Art. 9 EMOTA. - -Such cooperation is permitted under Art. 4 EMOTA. - -The question of how to handle overheads or a centralised structure must be addressed: the structure needs sufficient funding to sustain the project through difficult periods. An alternative is a single managing partner (e.g. if one participant is large enough to take on the coordination role). Where the federal authority assumes this role, the relevant services must be provided in-house or tendered in the normal way if third parties are to be engaged. - -At the contractual level, the following applies to collaborations: - -- Where no money changes hands and no formal obligations are required, a Memorandum of Understanding at the level of the federal office or Federal Chancellery is possible. - -- The establishment of a joint structure -- such as an association or public-law corporation -- is possible in principle but must be assessed on a case-by-case basis. Where the joint structure is itself to procure services from third parties, the application of procurement law must be regulated. - -Membership may in some cases be exercised through other organisations such as eOperations or eCH. - -**Cooperation with foreign countries** - -Cooperation with foreign authorities is unproblematic as long as no money changes hands and no obligations of any kind are entered into. - -Cooperation agreements at the appropriate level are possible in principle but must be assessed case by case. -International treaties should be avoided given the high hurdles involved, though they would in principle also be possible. - -Two special cases[^42] exist where collaboration would already be covered: - -- Contracts awarded under an international agreement for the joint implementation of a project by signatory states. - -- Contracts awarded in accordance with the special procedures or conditions of an international organisation. - -# **Contribution: Contributing to OSS projects** - -Most of the characteristics and legal considerations relating to contributions are covered in [Em002-4 OSS Community Guidelines](em002-4.md). - -From a procurement law perspective, contributions are generally unproblematic, since the services are provided to develop code for a project that is either of direct relevance to the authority or has already been addressed from a procurement law standpoint. - -**Contributions from third parties to OSS projects run by federal authorities are also unproblematic under procurement law, as long as no money changes hands.** - -Note: Since the federal authority is obliged to publish software it develops, it must also ensure that it remains published. If an OSS project is taken down by its operators, the federal authority may in the worst case need to republish it independently. In practice, the source code typically remains available (e.g. as an archive), the project continues as a fork, or the project -- and with it the source code -- has simply become irrelevant. - -# Annex A: References: - -A significant portion of the references are *already mentioned in Em002 Strategic Guidelines for Open Source Software in the Federal Administration*. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - [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 -
    - - -# Annex B: Glossary - -This glossary covers specific terms related to procurement topics. - -The general glossary for the Em002 document set can be found in Em002-6 OSS-FAQ. - -Further terms can be found in the terminology database TERMDAT [terminology database of the Federal Administration](https://www.bk.admin.ch/bk/en/home/dokumentation/languages/termdat.html). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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. -
    - -[^1]: Recommendation for Federal Administration IT in accordance with - \[P035\] *Section 4.6* - -[^2]: Online: - https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html - -[^3]: - -[^4]: For definitions of the INTERNAL and CONFIDENTIAL classifications, - see the *Ordinance of 8 November 2023 on Information Security in the - Federal Administration and Armed Forces (InfoSecO; SR 128.1)* - -[^5]: See footnote 1 - -[^6]: Planning areas in accordance with the *Federal Administration IT - Strategy 2020--2023 of 3 April 2020 (SB000)* - -[^7]: The Competence Centre for Federal Public Procurement (CCPP) - advises procurement and requesting offices on matters relating to - procurement law in accordance with Art. 37 OPPO. Central email - address for enquiries:  - -[^8]: The Federal Office for Buildings and Logistics (FOBL) is the - central procurement office of the Swiss Confederation (Arts 5--7 - OPPO). It carries out procurement within its area of responsibility, - consolidates where appropriate and may conclude framework - agreements. - -[^9]: - -[^10]: - -[^11]: For example, open standards such as eCH, ODF; see also [Open - standard -- Wikipedia](https://en.wikipedia.org/wiki/Open_standard) - -[^12]: [www.ech.ch](https://www.ech.ch/) - -[^13]: [An index for digital sovereignty \| OSBA -- Open Source Business - Alliance](https://osb-alliance.de/featured/ein-index-fuer-digitale-souveraenitaet) - -[^14]: [dsi.nextcloud.com](https://dsi.nextcloud.com/) - -[^15]: [commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf](https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf) - -[^16]: [[https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html](https://www.bk.admin.ch/bk/de/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html)](https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/digitale-bundesverwaltung.html) - -[^17]: W012 - Directives for Digital Sovereignty in the Federal - Administration - -[^18]: - -[^19]: Not only among managers, project managers and ICT architects, but - across all staff. - -[^20]: E.g. via eCH - -[^21]: A more detailed analysis can be carried out later using *Em002-3 - OSS Licensing Guidelines* if needed). - -[^22]: See also [Em002-1 Practical Guidelines for Open Source Software in the Federal Administration](em002-1.md), Section 7. - -[^23]: The primary procurement reference documents are those published - by the FOBL and CCPP on the relevant platforms. - -[^24]: See \[BBL-WL\], \[BBL-CL\], \[KKB-MB\], \[KBB-KV\] - -[^25]: Analogy: A commune may use its own timber and commission - construction of a maintenance depot using that timber -- it is not - required to procure the timber itself. - -[^26]: Examples of OSS with standardisation potential: Gimp, FileZilla, - VLC Media Player and 7-zip as Shell 2 products (according to - *\[A029\]*), which can be used because installation is free of - charge. - - In 2024, BIT designated Red Hat OpenShift as a strategic product for - certain application areas on the basis of its unique technical - features. OpenShift is currently the strategic platform for - containers and operating systems. - -[^27]: [https://www.zendis.de/](https://www.zendis.de/en) ZenDiS\'s - stated mission is to enable the administration to break free from - critical dependencies on individual technology providers. - -[^28]: See also [Em002-6 FAQ-OSS](em002-6.md), Section 5.3 - -[^29]: Art. 10 para. 3 let. b PPA. - -[^30]: Art. 21 para. 2 let. c PPA. - -[^31]: Internal costs may be excluded. Full life cycle must be - considered. - -[^32]: In-state procurement is not subject to tendering: state - sponsorship required, no market participation. Applies only within - the Swiss public sector. - -[^33]: Federal procurement guidelines always apply where any payment is - made. - -[^34]: Software with support generally exceeds the PPA threshold; \'no\' - will only apply in rare cases (e.g. financing a single feature for - an existing OSS project). - -[^35]: A zero-day exploit refers to the exploitation of a security - vulnerability for which no patch is yet available from the component - developer. - -[^36]: The service contract may also need to cover the potential - transfer of knowledge to a successor organisation. - -[^37]: - -[^38]: NB: Requiring a certification that is excessive or ill-suited to - the subject of the tender will inevitably produce less competitive - bids. - -[^39]: such as Nextcloud or Univention - -[^40]: such as LibreOffice or RedHat - -[^41]: Other, more niche options may also exist. - -[^42]: diff --git a/docs/en/em002.md b/docs/en/em002.md deleted file mode 100644 index b8343bc..0000000 --- a/docs/en/em002.md +++ /dev/null @@ -1,797 +0,0 @@ -**Disclaimer:** This document is an evolving draft and part of the guidelines and tools designed to support the Federal Administration in publishing open source code. For more information, see the main [README](https://github.com/swiss/opensource-guidelines/tree/main). - ---- - -# Introduction - -## Objective and purpose - -Under Article 9 paragraph 1 of the Federal Act of 17 March 2023[^5] on the Use of Electronic Means to Carry Out Official Tasks (EMOTA), public authorities must disclose the source code of software they develop or commission to perform their duties, unless third-party rights or security-relevant reasons preclude or restrict this. This eliminates legal uncertainty regarding the publication of software by federal authorities. - -In recent years, it has become clear that the importance of open source software (OSS) in the Federal Administration has generally continued to increase. - -These strategic guidelines describe the fundamentals of open source software and how this is handled in the Federal Administration. The document sets out six objectives and proposes nine measures to fulfil these. - -It also gives references to other relevant public sector strategies regarding open source. - -## Background - -In 2005, the Federal IT Strategy Unit (FITSU) published the first version of an OSS strategy for the Federal Administration. At that time, the most important principle was defined as the equal treatment of OSS with closed source software in procurement. - -Since publication in 2005, the prevalence of open source software has steadily increased. Today, according to the Open Source Study Switzerland 2024 report, a clear majority of companies and authorities use open source software in many different areas. In the software industry, very few companies do not work with open source tools and components. - -On 1 February 2019, these Strategic Guidelines for Open Source Software in the Federal Administration and the practical guidelines came into force as Version 1.0. With the enactment of EMOTA and the new obligations under Article 9, it became necessary to align both sets of guidelines with the new status and create additional tools for the federal authorities. - -## Procedure -The federal offices are responsible for implementing EMOTA themselves. However, given the growing importance of open source, it was decided to revise the practical guidelines *[Em002-1](em002-1.md)* together with all stakeholders. Furthermore, additional tools for implementing EMOTA were added. - -The practical guidelines define the necessary concepts, set out the constellations for using open source software, where and how alternatives to existing commercial software can be found, how open source should be procured, what business models exist for open source and what support models are possible when using open source. The other tools provide answers to frequently asked questions and guidance on releasing open source software in accordance with EMOTA. They explore all issues surrounding OSS licences and show how a community can be built around software. Several checklists for guidance and documentation are also made available to federal authorities. - -Documents relating to procurement were also amended, and an additional information sheet [KBB-MB], set of guidelines [BBL-WL] and a checklist [BBL-CL] were drawn up. - -Existing uncertainties are resolved as far as possible with these strategic guidelines, the accompanying practical guidelines and recommendations for action, as well as the additional tools. - -# Reference to other strategies - -These Strategic Guidelines for Open Source Software in the Federal Administration are aligned with four current public sector strategies and EMOTA.[^6] These contain a direct or indirect reference to the topic of open source software and IT collaboration among public institutions: - -The **Digital Federal Administration Strategy** [SB001] sets out eight principles and four priorities. By using open source software, the Federal Administration contributes to priority 4, 'Strengthening digital sovereignty'. An open source solution can be reused any number of times and adapted to the individual needs of the Federal Administration due to its open source code. - -The concept of digital sustainability and digital sovereignty also comes up in the **Digital Public Services Switzerland Strategy 2024–2027**[^7]. The Confederation and cantons will create appropriate conditions for this multiple use. Basic modules for expanding eGovernment will be 'implemented once and used jointly'. Opting for open source software makes it easier to reuse IT solutions. - -According to the **Digital Switzerland Strategy**[^8] it is crucial for Switzerland's success in the digital space to strengthen the networking of federal levels. Particular attention should therefore be paid to coordination between the Confederation, cantons and communes as well as cooperation between organisations active in the field of digitalisation throughout Switzerland. The Federal Council also attached particular importance to Switzerland's digital sovereignty as a focus topic for 2023.[^9] - -In the **Open Government Data Strategy Switzerland (2019–2023)**[^10] the Federal Council states that data from the Federal Administration that is not personal and not security-critical should be published according to the Open by Default principle. The Federal Administration has launched the opendata.swiss portal for this purpose.[^11] Federal offices, cantons, cities and other public organisations have currently published over 11,700 datasets there. - -The Open Government Data Master Plan 2024–2027[^12] implements the Open by Default principle. - -# Governance and tools - -When talking about open source software, a distinction has to be made between **consuming** (using), **contributing** (adding to existing code) and **creating** (i.e. new projects). - -![](./assets/em002/media/image1.png) -Figure 1: The 4 Cs in the context of OSS - -**Collaboration** is also always conceivable in the background. In the case of creation, it must be initiated by the Federal Administration; in the case of contribution, it already exists; and it can also be helpful in the case of consumption (e.g. user group). - -When **consuming** open source software, it should be treated and evaluated as equivalent to proprietary software. - -When **developing** software, open source release is generally mandatory, subject to the exceptions set out in Art. 9 EMOTA (third-party rights and security-relevant reasons). - -These exceptions are addressed in [Em002-2 Instructions for Publishing OSS](em002-2.md). - -The federal authorities, i.e. the administrative units of the Federal Administration, are themselves responsible for correct compliance; there is no centralised responsibility. - -**Publication** brings added value especially when a **community** of interested parties emerges and works together on the software. If the community collaborates on a project and the Federal Administration allows these contributions, economic benefits and synergy effects are created.[^13] - -In practice, release often consists of not only the source code, but also all other aspects (documentation, governance, build instructions, etc.). - -In principle, the Federal Administration has no obligation to build communities; the legal mandate only requires it to publish the source code. The Federal Administration should prioritise investing in communities where the benefit for the Confederation and third parties is great and the effort is as low as possible. - -Currently, there is no common federal platform for **developing and publishing source code**. Each public authority must therefore select a platform (repository) for publication itself. The practical guidelines in [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md) and the associated checklists define how to work with a platform and which properties it must fulfil. - -The **choice of licence** is dealt with in the OSS Licensing Guidelines [Em002-3](em002-3.md)), which presents a selection of standard licences and explains their uses. The Federal Administration should only use its own licence texts in justified cases according to Art. 9 para. 4 EMOTA. - -When using and developing OSS, **support**[^14] must always be regulated (even if it is waived). The responsible administrative unit regulates this during the release process or when defining the community. EMOTA does not make any provisions here, and no additional financing or personnel will be made available for support. It may make sense to include support and joint further development where the benefit for Swiss authorities or the Swiss economy is considered sufficiently large (ecosystem costs) and/or cost-sharing or cooperation is sought. If the supplier takes this on, its support costs can be covered by the users. - -The **procurement of OSS** is done via the Federal Administration's regular procurement process. The FOBL provides the relevant documents and tools. - -In addition, a *Software procurement and Art. 9 EMOTA information sheet* is available[^15] *[KBB-MB]* (see Figure 2). - -Legal and practical considerations mean that under certain circumstances the obligation to release OSS may be transferred to a supplier (during the tender or in operation). The procurement tools and the release process determine how this is to be approached with the supplier. Most of this is achieved by supplementing existing processes, contract drafts and tools. - -The organisational procedure is regulated in [Em002-2 Instructions for Publishing Open Source Software ](em002-2.md) and the associated tools. - -**OSS is treated equally to proprietary software under procurement law.** Since no licence fees are incurred for OSS according to the definition of the Open Source Initiative (OSI), software can be downloaded and used in principle without a tender. Only the services to be provided by companies (e.g. support, engineering) are then subject to procurement law and must be put out to tender. - -Where necessary, the relevant aspects from the tools are integrated into the Confederation's project management processes (i.e. HERMES). - -Open development (direct open development on an openly accessible repository) and participation in existing projects (contribution) are also covered in the explanations in [Em002-4 OSS Community Guidelines](em002-4.md). - -## Overview of OSS documents -The following diagram gives an overview of the documents relevant to OSS in the Federal Administration. - -![](./assets/em002/media/image2.png) -Figure 2: Documents related to Art. 9 EMOTA - -# Objectives - -The following overarching, long-term objectives show how the Federal Administration taps into the potential of open source software and addresses the risks and challenges: - -
    -
    - A) Compliance with legal requirements (i.e. EMOTA) -
    -
    - The release of open source software is governed by Article 9 EMOTA. Compliance with this legal requirement is a key aspect of these guidelines and the associated documents. Federal authorities should comply with this article and maximise the benefits for the Federal Administration and Switzerland. The organisational units themselves are responsible for implementation. -
    -
    -
    -
    - B) Increase innovation and efficiency -
    -
    - Open source software serves as the basis of modern IT today. Building on the millions of freely available components and solutions, independent applications can be rapidly developed and operated. The associated time and resource savings and the architectural principles associated with open source software, such as interoperability, agility and microservices, increase the capacity for innovation and efficiency of software development. This in turn accelerates the digitalisation of the Federal Administration. By releasing open source software, the adoption of digital solutions can be accelerated in the federal environment and synergy effects can be utilised. -
    -
    -
    -
    -C) Promote a culture of collaboration -
    -
    - Open source software promotes a culture of collaboration in IT through the sharing of source code, open communication and practices for joint further development. These principles can be applied to increase collaboration in IT within the Federal Administration, with the cantons and with other public institutions. This strengthens digital sovereignty and reduces dependencies on software vendors. -
    -
    -
    -
    - D) Create clarity and minimise risks -
    -
    - Information on frequently used open source licences should enable the Federal Administration to select the right licences. This minimises legal risks. Technical and legal recommendations enable the Federal Administration to use and release open source software. -
    -
    -
    -
    - E) Create an overview to utilise synergies -
    -
    - Open source software is currently used in numerous places within the Federal Administration in different ways. A lot of knowledge and experience is available, but the synergies cannot yet be utilised as there is no overview of the open source solutions in use. Such an overview and the joint procurement of services will make it possible to better exploit the potential of open source software, which saves resources and creates synergies. -
    -
    -
    -
    - F) Increase attractiveness as an IT employer -
    -
    - Open source software is popular with many highly qualified IT professionals. The use of modern open source technologies and the application of open source development methods motivate many employees and increase the attractiveness of the Federal Administration as an employer. To use open source software, the Confederation needs specialists with knowledge and experience of open source software, so efforts should be made when recruiting specialists to expand internal open source know-how. -
    -
    - -# Measures - -The following measures are intended to help achieve the objectives outlined above. The measures will be supplemented or replaced in due course and adapted to changed circumstances. - -The following table illustrates how the objectives are linked to the corresponding measures. These support implementation of the respective objectives but they may also have an impact on other objectives. -|Objectives | Measures| -|:--| :--| -|**A) Compliance with legal requirements (EMOTA)**|1) Implement the *Practical Guidelines for Open Source Software in the Federal Administration [Em002-1](em002-1.md)*
    2) Implement the *Instructions for Publishing Open Source Software [Em002-2](em002-2.md)* and the tools derived from that.
    3) Procurement authorities build up open source know-how and thus support the Federal Administration.| -|**B) Increase innovation and efficiency** | 1) Implement the *Practical Guidelines for Open Source Software in the Federal Administration [Em002-1](em002-1.md)*
    3) The procurement authorities can deal with open source and optimally support Art. 9 EMOTA.
    8) Promote community building | -|**C) Promote a culture of collaboration** | 1) Implement the *Practical Guidelines for Open Source Software in the Federal Administration [Em002-1](em002-1.md)*
    4) Promote knowledge and experience exchange
    8) Promote community building
    9) Examine the possibility of establishing own publication platform; promote Open Development| -|**D) Create clarity and minimise risks** |1) Implement the *Practical Guidelines for Open Source Software in the Federal Administration [Em002-1](em002-1.md)*
    2) Implement the *Instructions for Publishing Open Source Software [Em002-2](em002-2.md)* and the tools derived from that.| -|**E) Create an overview to utilise synergies**|6) Implement joint procurement of services
    7) Create an overview of open source software used, released and co-developed
    8) Promote community building | -|**F) Increase attractiveness as an IT employer** | 5) Promote and communicate an open source culture
    8) Promote community building | - -## Description of the measures - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - 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). -
    - -# Annexes - -## Changes from previous version - -* Minor editorial changes and improvements. -* Factsheet Em002-5 has been replaced by the OSS tools information sheet'. -* A new addition is the document '[Em002-7 Procurement and OSS](./em002-7.md)'. -* New diagram depicting the 4 Cs in the context of OSS (addition of 'collaboration'). -* New FOBL and CCPP references. - -## References for OSS tools - -The following reference table lists the documents relating to the document set for [Em002 Tools for Open Source Software](./em002.md) in the Federal Administration. - - - - - -
    - 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). -
    - -The current Em002 documents are published on the OSS resources page of the Federal Chancellery. https://www.bk.admin.ch/bk/en/home/digitale-transformation-ikt-lenkung/bundesarchitektur/open_source_software.html). - -The English version is also published as markdown on GitHub. Feedback can also be given there. https://github.com/swiss/opensource-guidelines - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - [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) -
    - -Visual overview of OSS tools: -![](./assets/em002/media/image2.png) - -Figure 3: Documents in connection with Art. 9 EMOTA - -## General references -All references to the Em002 document set can be found here *in Em002 Strategic Guidelines [Em002*]. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - [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 -
    - -## Abbreviations - -This list of abbreviations contains all the abbreviations used in the OSS Em002 document set. A glossary can be found in [Em002-6 FAQ about Publishing OSS](em002-6.md). - -|Abbreviation|Meaning| -|:--|:--| -|AI|Artificial intelligence| -|AO|aApplication owner| -|CCPP|Competence Centre for Federal Public Procurement| -|CLA|Contributor Licence Agreement| -|DCO|Developer Certificate of Origin| -|DPSS|Digital Public Services Switzerland (www.digital-public-services-switzerland.ch/strategy)| -|EMOTA|Federal Act on the Use of Electronic Means to Carry Out Official Tasks| -|FITSU|Federal IT Steering Unit (until 2021)| -|FOBL|Federal Office for Buildings and Logistics| -|FoIA|Freedom of Information Act| -|FSF|Free Software Foundation| -|HERMES|Handbuch der Elektronischen Rechenzentren des Bundes, a method for system development (www.hermes.admin.ch)| -|OSI|Open Source Initiative| -|OSPO|Open Source Programme Office| -|OSS|Open source software| -|OSSD|Open source software development| -|OU|Organisational unit (usually an office)| -|SPc|Service procurer| -|SPDX|Software Package Data Exchange| -|SPv|Service provider| - -[^1]: Recommendation for Federal Administration IT in accordance with - \[P035\] *Section 4.6* - -[^2]: For definitions of the INTERNAL and CONFIDENTIAL classifications, - see the *Ordinance of 8 November 2023 on Information Security in the - Federal Administration and Armed Forces (InfoSecO; SR 128.1)* - -[^3]: See footnote 1 - -[^4]: Planning areas in accordance with the *Federal Administration IT - Strategy 2020--2023 of 3 April 2020 (SB000)* - -[^5]: SR 172.019 - -[^6]: SR 172.019: - -[^7]: Digital Public Services Switzerland Strategy 2024--2027: - - -[^8]: - -[^9]: https://digital.swiss/en/strategy/focus-topics/digital-sovereignty - -[^10]: Open Government Data Strategy 2019 -- 2023 - -[^11]: https://opendata.swiss/en - -[^12]: https://www.bfs.admin.ch/asset/en/28425806 - -[^13]: , - Section 4 (in German) - -[^14]: At least during the lifecycle by way of contracts or a community. - -[^15]: Available here (in German): and - -[^16]: Technology radars should be used as widely as possible. This means, if possible, at the level of the federal authorities or even the Federal Administration. - -[^17]: This concerns support for the software in use. Third party support for software released under EMOTA is possible and may be charged for. This is covered in [Em002-4 OSS Community Guidelines.](./em002-4.md) - -[^18]: https://en.wikipedia.org/wiki/Software_repository \ No newline at end of file diff --git a/docs/index.adoc b/docs/index.adoc new file mode 100644 index 0000000..f538ae7 --- /dev/null +++ b/docs/index.adoc @@ -0,0 +1,285 @@ +:lang: en +ifeval::["{lang}" == "en"] += Tools for Publishing Open Source Software +:title-logo-line1: Federal Chancellery FCh +:title-logo-line2: Digital Transformation and ICT Steering DTI +endif::[] +ifeval::["{lang}" == "de"] += Hilfsmittel zur Veröffentlichung von Open-Source-Software +:title-logo-line1: Bundeskanzlei BK +:title-logo-line2: Digitale Transformation und IKT-Lenkung DTI +endif::[] +ifeval::["{lang}" == "fr"] += Outils pour la publication de logiciels open source +:title-logo-line1: Chancellerie fédérale ChF +:title-logo-line2: Transformation numérique et gouvernance de l'informatique TNI +endif::[] +ifeval::["{lang}" == "it"] += Strumenti per la pubblicazione di software open source +:title-logo-line1: Cancelleria federale CaF +:title-logo-line2: Trasformazione digitale e governance delle TIC TDT +endif::[] +ifeval::["{lang}" == "rm"] += Meds per publitgar software open source +:title-logo-line1: Chanzlia federala ChF +:title-logo-line2: Transfurmaziun digitala e direcziun da las TIC TDT +endif::[] +:govpress-style: report +// Black, not the colour mark the guidelines carry: this page lists them and is +// not one of them. +:title-logo-base: black +// Deliberately empty: the document carries no classification mark. Omitting the +// line renders identically -- it is kept so the question is answered rather than +// left unasked. +:classification: +:revnumber: 2.0 +:revdate: 14.09.2026 +// Contents and numbering for the *web* view of this source. open-govpress sets +// all four itself for `:govpress-style: report` (styles/common.adoc and +// styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab +// render this file with plain Asciidoctor, which does not, and without them the +// web view loses its contents list and its section numbers. +:toc: +:toclevels: 3 +:sectnums: +:sectnumlevels: 3 + +ifeval::["{lang}" == "en"] +Federal agencies are required to disclose the source code of software they develop or have developed to fulfill their duties. They must allow anyone to use, further develop, and distribute the software without charging licensing fees. This requirement is outlined in Article 9 of the Federal Act on the Use of Electronic Means for Fulfilling Administrative Tasks (EMOTA). Responsibility for implementation lies with the individual agencies. The Federal Chancellery provides suitable tools to assist federal agencies in meeting this requirement. + +== What is it about? + +When publishing open-source software, questions regarding legal matters, licenses, security, organization, and costs need to be addressed. Depending on the specific use case, there are variations and limitations to consider. The level of knowledge required to implement the legal requirement varies within the federal administration based on experience. For this reason, the Federal Chancellery has created tools and checklists to provide support and guidance for decision-making. + +== Who is responsible? + +The individual agencies are responsible for implementation. The Federal Chancellery provides suitable tools to assist federal agencies in this process. + +== What tools are available? + +The following tools are available in the form of guidelines, instructions, checklists, fact sheets, and FAQs: + +link:em002.pdf[Em002 Strategic Guidelines for Open Source Software in the Federal Administration] (05.05.2026) + +link:em002-1.pdf[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration] (05.05.2026) + +link:em002-2.pdf[Em002-2 Instructions for Publishing OSS] (05.05.2026) + +link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Preliminary Assessment Checklist] (05.05.2026) + +link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Analysis and Preparation Checklist] (05.05.2026) + +link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Release and Publication Checklist] (05.05.2026) + +link:em002-3.pdf[Em002-3 OSS Licensing Guidelines] (05.05.2026) + +link:em002-4.pdf[Em002-4 OSS Community Guidelines] (05.05.2026) + +link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 OSS Community Checklist] (05.05.2026) + +link:em002-5.pdf[Em002-5 EMOTA and OSS Factsheet] (06.05.2026) + +link:em002-6.pdf[Em002-6 FAQ on OSS and Art. 9 EMOTA] (05.05.2026) + +link:em002-7.pdf[Em002-7 OSS Guideline: Applying Article 9 of Federal Act on the Use of Electronic Means for Fulfilling Administrative Tasks (EMOTA)] (05.05.2026) + +https://www.bk.admin.ch/dam/bk/de/dokumente/dti/OSS/oss_merkblatt_kbb_beschaffung_artikel9_embag.pdf.download.pdf/Merkblatt_KBB_Beschaffung-Software-Art9-EMBAG_de.pdf[Merkblatt KBB Beschaffung Software Artikel 9 EMBAG] (PDF, 177 kB, 13.08.2025) only available in German, French and Italian + +== Further information + +https://www.admin.ch/gov/de/start/dokumentation/medienmitteilungen.msg-id-98828.html[Federal Act on the Use of Electronic Means to Carry Out Official Tasks EMOTA] only available in German + +http://www.opensource.admin.ch/[OSS Catalogue] +endif::[] + +ifeval::["{lang}" == "de"] +Die Bundesbehörden sind verpflichtet, den Quellcode von Software offenzulegen, die sie zur Erfüllung ihrer Aufgaben entwickeln oder entwickeln lassen. Sie müssen allen erlauben, die Software ohne Lizenzgebühren zu nutzen, weiterzuentwickeln und zu verbreiten. Diese Pflicht ergibt sich aus Artikel 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG). Die Verantwortung für die Umsetzung liegt bei den einzelnen Behörden. Die Bundeskanzlei stellt geeignete Hilfsmittel bereit, um die Bundesbehörden bei der Erfüllung dieser Pflicht zu unterstützen. + +== Worum geht es? + +Bei der Veröffentlichung von Open-Source-Software sind Fragen zu Recht, Lizenzen, Sicherheit, Organisation und Kosten zu klären. Je nach Anwendungsfall bestehen Varianten und Einschränkungen. Der für die Umsetzung der gesetzlichen Vorgabe erforderliche Wissensstand ist innerhalb der Bundesverwaltung je nach Erfahrung unterschiedlich. Aus diesem Grund hat die Bundeskanzlei Hilfsmittel und Checklisten erarbeitet, die Unterstützung und Orientierung bei der Entscheidfindung bieten. + +== Wer ist verantwortlich? + +Die Verantwortung für die Umsetzung liegt bei den einzelnen Behörden. Die Bundeskanzlei stellt geeignete Hilfsmittel bereit, um die Bundesbehörden dabei zu unterstützen. + +== Welche Hilfsmittel stehen zur Verfügung? + +Die folgenden Hilfsmittel stehen in Form von Leitlinien, Anleitungen, Checklisten, Merkblättern und FAQ zur Verfügung: + +link:em002.pdf[Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung] (05.05.2026) + +link:em002-1.pdf[Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung] (05.05.2026) + +link:em002-2.pdf[Em002-2 Anleitung zur Veröffentlichung von OSS] (05.05.2026) + +link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Checkliste OSS-Vorabklärung] (05.05.2026) + +link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung] (05.05.2026) + +link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung] (05.05.2026) + +link:em002-3.pdf[Em002-3 Leitfaden OSS-Lizenzierung] (05.05.2026) + +link:em002-4.pdf[Em002-4 Leitfaden OSS-Community] (05.05.2026) + +link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Checkliste OSS-Community] (05.05.2026) + +link:em002-5.pdf[Em002-5 Merkblatt EMBAG und OSS] (06.05.2026) + +link:em002-6.pdf[Em002-6 FAQ zu OSS und Art. 9 EMBAG] (05.05.2026) + +link:em002-7.pdf[Em002-7 Leitfaden OSS: Anwendung von Artikel 9 des Bundesgesetzes über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG)] (05.05.2026) + +https://www.bk.admin.ch/dam/bk/de/dokumente/dti/OSS/oss_merkblatt_kbb_beschaffung_artikel9_embag.pdf.download.pdf/Merkblatt_KBB_Beschaffung-Software-Art9-EMBAG_de.pdf[Merkblatt KBB Beschaffung Software Artikel 9 EMBAG] (PDF, 177 kB, 13.08.2025) nur auf Deutsch, Französisch und Italienisch verfügbar + +== Weitere Informationen + +https://www.admin.ch/gov/de/start/dokumentation/medienmitteilungen.msg-id-98828.html[Bundesgesetz über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben EMBAG] nur auf Deutsch verfügbar + +http://www.opensource.admin.ch/[OSS-Katalog] +endif::[] + +ifeval::["{lang}" == "fr"] +Les autorités fédérales sont tenues de publier le code source des logiciels qu'elles développent ou font développer pour accomplir leurs tâches. Elles doivent permettre à quiconque d'utiliser, de développer et de diffuser ces logiciels sans percevoir de redevance de licence. Cette obligation découle de l'article 9 de la loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA). La responsabilité de la mise en œuvre incombe à chaque autorité. La Chancellerie fédérale met à disposition des outils appropriés pour aider les autorités fédérales à satisfaire à cette obligation. + +== De quoi s'agit-il ? + +La publication de logiciels open source soulève des questions juridiques, de licences, de sécurité, d'organisation et de coûts. Selon le cas d'application, il existe des variantes et des limites à prendre en compte. Le niveau de connaissances requis pour mettre en œuvre cette exigence légale varie au sein de l'administration fédérale en fonction de l'expérience. C'est pourquoi la Chancellerie fédérale a élaboré des outils et des listes de contrôle qui offrent un soutien et une orientation pour la prise de décision. + +== Qui est responsable ? + +La responsabilité de la mise en œuvre incombe à chaque autorité. La Chancellerie fédérale met à disposition des outils appropriés pour aider les autorités fédérales dans cette démarche. + +== Quels outils sont disponibles ? + +Les outils suivants sont disponibles sous forme de lignes directrices, d'instructions, de listes de contrôle, d'aide-mémoire et de FAQ : + +link:em002.pdf[Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale] (05.05.2026) + +link:em002-1.pdf[Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale] (05.05.2026) + +link:em002-2.pdf[Em002-2 Instructions pour la publication d'OSS] (05.05.2026) + +link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Liste de contrôle Évaluation préalable OSS] (05.05.2026) + +link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Liste de contrôle Analyse et préparation OSS] (05.05.2026) + +link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Liste de contrôle Validation et publication OSS] (05.05.2026) + +link:em002-3.pdf[Em002-3 Guide de licences OSS] (05.05.2026) + +link:em002-4.pdf[Em002-4 Guide des communautés OSS] (05.05.2026) + +link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Liste de contrôle Communauté OSS] (05.05.2026) + +link:em002-5.pdf[Em002-5 Aide-mémoire LMETA et OSS] (06.05.2026) + +link:em002-6.pdf[Em002-6 FAQ sur l'OSS et l'art. 9 LMETA] (05.05.2026) + +link:em002-7.pdf[Em002-7 Guide OSS : application de l'article 9 de la loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA)] (05.05.2026) + +https://www.bk.admin.ch/dam/bk/de/dokumente/dti/OSS/oss_merkblatt_kbb_beschaffung_artikel9_embag.pdf.download.pdf/Merkblatt_KBB_Beschaffung-Software-Art9-EMBAG_de.pdf[Merkblatt KBB Beschaffung Software Artikel 9 EMBAG] (PDF, 177 kB, 13.08.2025) disponible uniquement en allemand, français et italien + +== Informations complémentaires + +https://www.admin.ch/gov/de/start/dokumentation/medienmitteilungen.msg-id-98828.html[Loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités LMETA] disponible uniquement en allemand + +http://www.opensource.admin.ch/[Catalogue OSS] +endif::[] + +ifeval::["{lang}" == "it"] +Le autorità federali sono tenute a pubblicare il codice sorgente del software che sviluppano o fanno sviluppare per adempiere i loro compiti. Esse devono consentire a chiunque di utilizzare, sviluppare ulteriormente e diffondere il software senza riscuotere tasse di licenza. Questo obbligo discende dall'articolo 9 della legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA). La responsabilità dell'attuazione spetta alle singole autorità. La Cancelleria federale mette a disposizione strumenti adeguati per sostenere le autorità federali nell'adempimento di questo obbligo. + +== Di cosa si tratta? + +La pubblicazione di software open source solleva questioni giuridiche, di licenza, di sicurezza, di organizzazione e di costi. A seconda del caso d'applicazione vi sono varianti e limiti da considerare. Il livello di conoscenze necessario per attuare la prescrizione legale varia all'interno dell'Amministrazione federale a seconda dell'esperienza. Per questo motivo la Cancelleria federale ha elaborato strumenti e liste di controllo che offrono sostegno e orientamento nel processo decisionale. + +== Chi è responsabile? + +La responsabilità dell'attuazione spetta alle singole autorità. La Cancelleria federale mette a disposizione strumenti adeguati per sostenere le autorità federali in questo processo. + +== Quali strumenti sono disponibili? + +Sono disponibili i seguenti strumenti sotto forma di linee guida, istruzioni, liste di controllo, promemoria e FAQ: + +link:em002.pdf[Em002 Linee guida strategiche per il software open source nell'Amministrazione federale] (05.05.2026) + +link:em002-1.pdf[Em002-1 Guida pratica per il software open source nell'Amministrazione federale] (05.05.2026) + +link:em002-2.pdf[Em002-2 Istruzioni per la pubblicazione di OSS] (05.05.2026) + +link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Lista di controllo Valutazione preliminare OSS] (05.05.2026) + +link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Lista di controllo Analisi e preparazione OSS] (05.05.2026) + +link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Lista di controllo Rilascio e pubblicazione OSS] (05.05.2026) + +link:em002-3.pdf[Em002-3 Guida alle licenze OSS] (05.05.2026) + +link:em002-4.pdf[Em002-4 Guida alle community OSS] (05.05.2026) + +link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Lista di controllo Community OSS] (05.05.2026) + +link:em002-5.pdf[Em002-5 Promemoria LMeCA e OSS] (06.05.2026) + +link:em002-6.pdf[Em002-6 FAQ sull'OSS e l'art. 9 LMeCA] (05.05.2026) + +link:em002-7.pdf[Em002-7 Guida OSS: applicazione dell'articolo 9 della legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA)] (05.05.2026) + +https://www.bk.admin.ch/dam/bk/de/dokumente/dti/OSS/oss_merkblatt_kbb_beschaffung_artikel9_embag.pdf.download.pdf/Merkblatt_KBB_Beschaffung-Software-Art9-EMBAG_de.pdf[Merkblatt KBB Beschaffung Software Artikel 9 EMBAG] (PDF, 177 kB, 13.08.2025) disponibile soltanto in tedesco, francese e italiano + +== Ulteriori informazioni + +https://www.admin.ch/gov/de/start/dokumentation/medienmitteilungen.msg-id-98828.html[Legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità LMeCA] disponibile soltanto in tedesco + +http://www.opensource.admin.ch/[Catalogo OSS] +endif::[] + +ifeval::["{lang}" == "rm"] +Las autoritads federalas èn obligadas da publitgar il code da funtauna dal software ch'ellas sviluppan u fan sviluppar per ademplir lur incumbensas. Ellas ston permetter a mintgin d'utilisar, da sviluppar vinavant e da derasar il software senza incassar taxas da licenza. Quest'obligaziun resulta da l'artitgel 9 da la lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG). La responsabladad per la realisaziun sa chatta tar las singulas autoritads. La Chanzlia federala metta a disposiziun meds adattads per sustegnair las autoritads federalas en l'adempliment da questa obligaziun. + +== Da tge sa tracta? + +Cun publitgar software open source ston vegnir scleridas dumondas giuridicas, da licenzas, da segirezza, d'organisaziun e da custs. Tut tenor il cas d'applicaziun datti variantas e restricziuns da resguardar. Il nivel da savida necessari per realisar la prescripziun legala è different entaifer l'administraziun federala tenor l'experientscha. Perquai ha la Chanzlia federala elavurà meds e glistas da controlla che porschan sustegn ed orientaziun tar il prender da decisiuns. + +== Tgi è responsabel? + +La responsabladad per la realisaziun sa chatta tar las singulas autoritads. La Chanzlia federala metta a disposiziun meds adattads per sustegnair las autoritads federalas en quest process. + +== Tge meds stattan a disposiziun? + +Ils suandants meds stattan a disposiziun en furma da directivas, instrucziuns, glistas da controlla, fegls d'infurmaziun e FAQ: + +link:em002.pdf[Em002 Directivas strategicas per software open source en l'administraziun federala] (05.05.2026) + +link:em002-1.pdf[Em002-1 Guida pratica per software open source en l'administraziun federala] (05.05.2026) + +link:em002-2.pdf[Em002-2 Instrucziuns per publitgar OSS] (05.05.2026) + +link:em002-2-1-checklist-oss-preliminary-assessment.pdf[Em002-2.1 Glista da controlla Evaluaziun preliminara OSS] (05.05.2026) + +link:em002-2-2-checklist-oss-analysis-and-preparation.pdf[Em002-2.2 Glista da controlla Analisa e preparaziun OSS] (05.05.2026) + +link:em002-2-3-checklist-oss-release-and-publication.pdf[Em002-2.3 Glista da controlla Relaschada e publicaziun OSS] (05.05.2026) + +link:em002-3.pdf[Em002-3 Guida da licenzas OSS] (05.05.2026) + +link:em002-4.pdf[Em002-4 Guida da communitads OSS] (05.05.2026) + +link:em002-4-1-checklist-oss-community.pdf[Em002-4.1 Glista da controlla Communitad OSS] (05.05.2026) + +link:em002-5.pdf[Em002-5 Fegl d'infurmaziun EMBAG ed OSS] (06.05.2026) + +link:em002-6.pdf[Em002-6 FAQ davart OSS e l'art. 9 EMBAG] (05.05.2026) + +link:em002-7.pdf[Em002-7 Guida OSS: applicaziun da l'artitgel 9 da la lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG)] (05.05.2026) + +https://www.bk.admin.ch/dam/bk/de/dokumente/dti/OSS/oss_merkblatt_kbb_beschaffung_artikel9_embag.pdf.download.pdf/Merkblatt_KBB_Beschaffung-Software-Art9-EMBAG_de.pdf[Merkblatt KBB Beschaffung Software Artikel 9 EMBAG] (PDF, 177 kB, 13.08.2025) disponibel mo per tudestg, franzos ed talian + +== Ulteriuras infurmaziuns + +https://www.admin.ch/gov/de/start/dokumentation/medienmitteilungen.msg-id-98828.html[Lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads EMBAG] disponibel mo per tudestg + +http://www.opensource.admin.ch/[Catalog OSS] +endif::[] diff --git a/docs/index_en.md b/docs/index_en.md deleted file mode 100644 index c48f19f..0000000 --- a/docs/index_en.md +++ /dev/null @@ -1,48 +0,0 @@ -# Tools for Publishing Open Source Software - -Federal agencies are required to disclose the source code of software they develop or have developed to fulfill their duties. They must allow anyone to use, further develop, and distribute the software without charging licensing fees. This requirement is outlined in Article 9 of the Federal Act on the Use of Electronic Means for Fulfilling Administrative Tasks (EMOTA). Responsibility for implementation lies with the individual agencies. The Federal Chancellery provides suitable tools to assist federal agencies in meeting this requirement. - -## What is it about? - -When publishing open-source software, questions regarding legal matters, licenses, security, organization, and costs need to be addressed. Depending on the specific use case, there are variations and limitations to consider. The level of knowledge required to implement the legal requirement varies within the federal administration based on experience. For this reason, the Federal Chancellery has created tools and checklists to provide support and guidance for decision-making. - -## Who is responsible? - -The individual agencies are responsible for implementation. The Federal Chancellery provides suitable tools to assist federal agencies in this process. - -## What tools are available? - -The following tools are available in the form of guidelines, instructions, checklists, fact sheets, and FAQs: - -[Em002 Strategic Guidelines for Open Source Software in the Federal Administration](en/em002.md) (05.05.2026) - -[Em002-1 Practical Guidelines for Open Source Software in the Federal Administration](en/em002-1.md) (05.05.2026) - -[Em002-2 Instructions for Publishing OSS](en/em002-2.md) (05.05.2026) - -[Em002-2.1 Preliminary Assessment Checklist](/en/Em002-2.1%20Checklist%20OSS%20Preliminary%20Assessment.odt) (ODT, 05.05.2026) - -[Em002-2.2 Analysis and Preparation Checklist](en/Em002-2.2%20Checklist%20OSS%20Analysis%20and%20Preparation.odt) (ODT, 92 kB, 05.05.2026) - -[Em002-2.3 Release and Publication Checklist](en/Em002-2.3%20Checklist%20OSS%20Release%20and%20Publication%20.odt) (ODT, 93 kB, 05.05.2026) - -[Em002-3 OSS Licensing Guidelines](en/em002-3.md) (05.05.2026) - -[Em002-4 OSS Community Guidelines](en/em002-4.md) (05.05.2026) - -[Em002-4.1 OSS Community Checklist](en/Em002-4.1%20Checklist%20OSS%20Community.odt) (ODT, 94 kB, 05.05.2026) - -[Em002-5 EMOTA and OSS Factsheet](en/em002-5.md) (06.05.2026) - -[Em002-6 FAQ on OSS and Art. 9 EMOTA](en/em002-6.md) (05.05.2026) - -[Em002-7 OSS Guideline: Applying Article 9 of Federal Act on the Use of Electronic Means for Fulfilling Administrative Tasks (EMOTA)](en/em002-7.md) (05.05.2026) - -[Merkblatt KBB Beschaffung Software Artikel 9 EMBAG](https://www.bk.admin.ch/dam/bk/de/dokumente/dti/OSS/oss_merkblatt_kbb_beschaffung_artikel9_embag.pdf.download.pdf/Merkblatt_KBB_Beschaffung-Software-Art9-EMBAG_de.pdf) (PDF, 177 kB, 13.08.2025) only available in German, French and Italian - -## Further information - -[Federal Act on the Use of Electronic Means to Carry Out Official Tasks EMOTA](https://www.admin.ch/gov/de/start/dokumentation/medienmitteilungen.msg-id-98828.html) only available in German - -[OSS Catalogue](http://www.opensource.admin.ch/) - diff --git a/docs/partials/abbreviations.de.adoc b/docs/partials/abbreviations.de.adoc new file mode 100644 index 0000000..27961ab --- /dev/null +++ b/docs/partials/abbreviations.de.adoc @@ -0,0 +1,65 @@ +// Siehe abbreviations.en.adoc für die Begründung dieser Aufteilung. +// tag::abbr-em002[] +AGB:: +Allgemeine Geschäftsbedingungen +// end::abbr-em002[] +// tag::abbr-em002-6[] +AO:: +Application Owner +// end::abbr-em002-6[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +BBL:: +Bundesamt für Bauten und Logistik +BGÖ:: +Öffentlichkeitsgesetz +CLA:: +Contributor Licence Agreement +DCO:: +Developer Certificate of Origin +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +DVS:: +Digitale Verwaltung Schweiz (www.digital-public-services-switzerland.ch/strategy) +// end::abbr-em002[] +// tag::abbr-em002-6[] +DÖDS:: +Digitale Öffentliche Dienste Schweiz (www.digital-public-services-switzerland.ch/strategy) +// end::abbr-em002-6[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +EMBAG:: +Bundesgesetz über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben +FSF:: +Free Software Foundation +HERMES:: +_Handbuch der Elektronischen Rechenzentren des Bundes_, eine Methode zur Systementwicklung (www.hermes.admin.ch) +ISB:: +Informatiksteuerungsorgan des Bundes (bis 2021) +KBB:: +Kompetenzzentrum Beschaffungswesen Bund +KI:: +Künstliche Intelligenz +LB:: +Leistungsbezüger +LE:: +Leistungserbringer +OE:: +Organisationseinheit (in der Regel ein Bundesamt) +OSI:: +Open Source Initiative +OSPO:: +Open Source Programme Office +OSS:: +Open-Source-Software +OSSD:: +Open-Source-Softwareentwicklung +SPDX:: +Software Package Data Exchange +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +AV:: +Applikationsverantwortliche bzw. Applikationsverantwortlicher +// end::abbr-em002[] diff --git a/docs/partials/abbreviations.en.adoc b/docs/partials/abbreviations.en.adoc new file mode 100644 index 0000000..89797b4 --- /dev/null +++ b/docs/partials/abbreviations.en.adoc @@ -0,0 +1,63 @@ +// The abbreviation list shared by Em002 and Em002-6. It was two hand-kept +// copies that had drifted: HERMES was italicised in one and upright in the +// other, OSSD was capitalised in one and not the other, and an organisational +// unit was "usually an office" in one and "usually a federal office" in the +// other. +// +// The English lists are identical, but the translations are not -- the two +// documents cite different things, and a translator picked a different +// abbreviation for the same concept (German AV vs AO, DVS vs DOEDS). So the +// entries are tagged per consuming document rather than included wholesale. +// The per-language entry counts differ on purpose; see TRANSLATING.adoc. +// +// `[horizontal]` stays in the including document, immediately before the +// include -- the block attribute carries across the include and across the +// leading tag comment, and leaving it here would double it up. +// +// A few entries are emitted twice, once per tag: the two documents sort them +// differently and no single order satisfies both. They collapse as soon as the +// source lists are alphabetised. +// tag::abbr-em002[] +// tag::abbr-em002-6[] +AI:: +Artificial intelligence +AO:: +Application owner +CCPP:: +Competence Centre for Federal Public Procurement +CLA:: +Contributor Licence Agreement +DCO:: +Developer Certificate of Origin +DPSS:: +Digital Public Services Switzerland (www.digital-public-services-switzerland.ch/strategy) +EMOTA:: +Federal Act on the Use of Electronic Means to Carry Out Official Tasks +FITSU:: +Federal IT Steering Unit (until 2021) +FOBL:: +Federal Office for Buildings and Logistics +FoIA:: +Freedom of Information Act +FSF:: +Free Software Foundation +HERMES:: +_Handbuch der Elektronischen Rechenzentren des Bundes_, a method for system development (www.hermes.admin.ch) +OSI:: +Open Source Initiative +OSPO:: +Open Source Programme Office +OSS:: +Open source software +OSSD:: +Open source software development +OU:: +Organisational unit (usually a federal office) +SPc:: +Service procurer +SPDX:: +Software Package Data Exchange +SPv:: +Service provider +// end::abbr-em002-6[] +// end::abbr-em002[] diff --git a/docs/partials/abbreviations.fr.adoc b/docs/partials/abbreviations.fr.adoc new file mode 100644 index 0000000..7874787 --- /dev/null +++ b/docs/partials/abbreviations.fr.adoc @@ -0,0 +1,87 @@ +// Voir abbreviations.en.adoc pour la justification de ce découpage. +// tag::abbr-em002[] +ANS:: +Administration numérique suisse (www.digital-public-services-switzerland.ch/strategy) +BP:: +Bénéficiaire de prestations +CG:: +Conditions générales +// end::abbr-em002[] +// tag::abbr-em002-6[] +AO:: +Application owner +CCMP:: +Centre de compétence des marchés publics de la Confédération +ChF:: +Chancellerie fédérale +// end::abbr-em002-6[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +CLA:: +Contributor Licence Agreement +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +CCMP:: +Centre de compétence des marchés publics de la Confédération +// end::abbr-em002[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +DCO:: +Developer Certificate of Origin +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002-6[] +ANS:: +Administration numérique suisse (www.digital-public-services-switzerland.ch/strategy) +BP:: +Bénéficiaire de prestations +FP:: +Fournisseur de prestations +// end::abbr-em002-6[] +// tag::abbr-em002[] +FP:: +Fournisseur de prestations +// end::abbr-em002[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +FSF:: +Free Software Foundation +HERMES:: +_Handbuch der Elektronischen Rechenzentren des Bundes_, une méthode de développement de systèmes (www.hermes.admin.ch) +IA:: +Intelligence artificielle +LMETA:: +Loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités +LTrans:: +Loi sur la transparence +OFCL:: +Office fédéral des constructions et de la logistique +OSI:: +Open Source Initiative +OSPO:: +Open Source Programme Office +OSS:: +Logiciel open source +OSSD:: +Développement de logiciels open source +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +RA:: +Responsable de l'application +SPDX:: +Software Package Data Exchange +// end::abbr-em002[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +UO:: +Unité d'organisation (en règle générale un office fédéral) +USIC:: +Unité de pilotage informatique de la Confédération (jusqu'en 2021) +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002-6[] +SPDX:: +Software Package Data Exchange +// end::abbr-em002-6[] diff --git a/docs/partials/abbreviations.it.adoc b/docs/partials/abbreviations.it.adoc new file mode 100644 index 0000000..11ddb09 --- /dev/null +++ b/docs/partials/abbreviations.it.adoc @@ -0,0 +1,83 @@ +// Cfr. abbreviations.en.adoc per la motivazione di questa suddivisione. +// tag::abbr-em002[] +// tag::abbr-em002-6[] +ADS:: +Amministrazione digitale Svizzera (www.digital-public-services-switzerland.ch/strategy) +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +BP:: +Beneficiario di prestazioni +// end::abbr-em002[] +// tag::abbr-em002[] +CG:: +Condizioni generali +// end::abbr-em002[] +// tag::abbr-em002-6[] +AO:: +Application owner +BP:: +Beneficiario di prestazioni +CaF:: +Cancelleria federale +// end::abbr-em002-6[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +CCAP:: +Centro di competenza per gli acquisti pubblici della Confederazione +CLA:: +Contributor Licence Agreement +DCO:: +Developer Certificate of Origin +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002-6[] +FP:: +Fornitore di prestazioni +// end::abbr-em002-6[] +// tag::abbr-em002[] +FP:: +Fornitore di prestazioni +// end::abbr-em002[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +FSF:: +Free Software Foundation +HERMES:: +_Handbuch der Elektronischen Rechenzentren des Bundes_, un metodo per lo sviluppo di sistemi (www.hermes.admin.ch) +IA:: +Intelligenza artificiale +LMeCA:: +Legge federale concernente l'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità +LTras:: +Legge sulla trasparenza +ODIC:: +Organo direzione informatica della Confederazione (fino al 2021) +OSI:: +Open Source Initiative +OSPO:: +Open Source Programme Office +OSS:: +Software open source +OSSD:: +Sviluppo di software open source +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +RA:: +Responsabile dell'applicazione +SPDX:: +Software Package Data Exchange +// end::abbr-em002[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +UFCL:: +Ufficio federale delle costruzioni e della logistica +UO:: +Unità organizzativa (di regola un ufficio federale) +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002-6[] +SPDX:: +Software Package Data Exchange +// end::abbr-em002-6[] diff --git a/docs/partials/abbreviations.rm.adoc b/docs/partials/abbreviations.rm.adoc new file mode 100644 index 0000000..748bd59 --- /dev/null +++ b/docs/partials/abbreviations.rm.adoc @@ -0,0 +1,99 @@ +// Vesair abbreviations.en.adoc per la motivaziun da questa repartiziun. +// tag::abbr-em002[] +// tag::abbr-em002-6[] +ADS:: +Administraziun digitala Svizra (www.digital-public-services-switzerland.ch/strategy) +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002-6[] +AO:: +Application owner +// end::abbr-em002-6[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +CCA:: +Center da cumpetenza per l'acquist public da la Confederaziun +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +CGC:: +Cundiziuns generalas da contract +// end::abbr-em002[] +// tag::abbr-em002-6[] +ChF:: +Chanzlia federala +// end::abbr-em002-6[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +CLA:: +Contributor Licence Agreement +DCO:: +Developer Certificate of Origin +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +EMBAG:: +Lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads +// end::abbr-em002[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +FSF:: +Free Software Foundation +HERMES:: +_Handbuch der Elektronischen Rechenzentren des Bundes_, ina metoda per il svilup da sistems (www.hermes.admin.ch) +IA:: +Intelligenza artifiziala +ISB:: +Organ da direcziun d'informatica da la Confederaziun (fin il 2021) +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +LTr:: +Lescha davart la transparenza +// end::abbr-em002[] +// tag::abbr-em002-6[] +EMBAG:: +Lescha federala davart ils meds electronics per ademplir incumbensas d'autoritads +LTrans:: +Lescha davart la transparenza +PP:: +Purschider da prestaziuns +RP:: +Retratg da prestaziuns +// end::abbr-em002-6[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +OSI:: +Open Source Initiative +OSPO:: +Open Source Programme Office +OSS:: +Software open source +OSSD:: +Svilup da software open source +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002[] +PP:: +Purschider da prestaziuns +// end::abbr-em002[] +// tag::abbr-em002[] +RA:: +Responsabel da l'applicaziun +RP:: +Retratg da prestaziuns +SPDX:: +Software Package Data Exchange +// end::abbr-em002[] +// tag::abbr-em002[] +// tag::abbr-em002-6[] +UFCL:: +Uffizi federal per edifizis e logistica +UO:: +Unitad d'organisaziun (per ordinari in uffizi federal) +// end::abbr-em002-6[] +// end::abbr-em002[] +// tag::abbr-em002-6[] +SPDX:: +Software Package Data Exchange +// end::abbr-em002-6[] diff --git a/docs/partials/document-map.de.adoc b/docs/partials/document-map.de.adoc new file mode 100644 index 0000000..0444240 --- /dev/null +++ b/docs/partials/document-map.de.adoc @@ -0,0 +1,56 @@ +// Siehe document-map.en.adoc für die Begründung dieser Aufteilung. +[mermaid,align="center",alt="Übersicht über die OSS-Hilfsmittel im Zusammenhang mit Art. 9 EMBAG"] +.... +flowchart TD + subgraph FUND["Grundlagen (Sektor DTI)"] + EM0025["Em002-5
    Merkblatt EMBAG
    und OSS"] + EM002["Em002
    Strategische
    Leitlinien"] + EM0026["Em002-6
    FAQ zu OSS und
    Art. 9 EMBAG"] + end + + subgraph INTRO["Einführung und Anleitung (Sektor DTI)"] + EM0021["Em002-1
    Praxis-
    leitfaden"] + EM0023["Em002-3
    Leitfaden
    OSS-Lizenzierung"] + EM0027["Em002-7
    Strategische Aspekte der
    Beschaffung und OSS"] + end + + subgraph PUB["Hilfsmittel Veröffentlichung (Sektor DTI)"] + EM0022["Em002-2
    Anleitung zur Ver-
    öffentlichung von OSS"] + EM0024["Em002-4
    Leitfaden
    OSS-Community"] + CL21["Em002-2.1
    Checkliste
    OSS-
    Vorabklärung"] + CL22["Em002-2.2
    Checkliste
    OSS-Analyse und
    -Vorbereitung"] + CL23["Em002-2.3
    Checkliste
    OSS-Freigabe und
    -Veröffentlichung"] + CL41["Em002-4.1
    Checkliste
    OSS-Community"] + end + + subgraph PROC["Hilfsmittel Beschaffung (BBL)"] + KBB["Merkblatt KBB
    Beschaffung von Software
    und Art. 9 EMBAG"] + ORI["Orientierung
    Open Source und
    Beschaffung"] + CLEX["Checkliste
    Generelle Ausnahme
    Art. 9 EMBAG"] + end + + HERMES["www.HERMES.admin.ch"] + FCHOSS["Internet:
    OSS-Hilfsmittel
    Bundeskanzlei"] + + EM002 --> EM0021 + EM0021 --> EM0023 + EM0021 --> EM0022 + EM0022 --> EM0024 + EM0022 --> CL21 + CL21 --> CL22 + CL22 --> CL23 + EM0024 --> CL41 + ORI --> CLEX + HERMES -->|"Referenz"| FCHOSS + + classDef fund fill:#f0f0f0,stroke:#000000,color:#000000 + classDef intro fill:#dae8fc,stroke:#000000,color:#000000 + classDef pub fill:#e1d5e7,stroke:#000000,color:#000000 + classDef check fill:#d5e8d4,stroke:#000000,color:#000000 + classDef proc fill:#f8cecc,stroke:#000000,color:#000000 + class EM002,EM0025,EM0026 fund + class EM0021,EM0023 intro + class EM0022,EM0024 pub + class CL21,CL22,CL23,CL41 check + class EM0027,KBB,ORI,CLEX proc +.... diff --git a/docs/partials/document-map.en.adoc b/docs/partials/document-map.en.adoc new file mode 100644 index 0000000..0d521c1 --- /dev/null +++ b/docs/partials/document-map.en.adoc @@ -0,0 +1,82 @@ +// The map of Art. 9 EMOTA documents, shared by Em002, Em002-1, Em002-5 and +// Em002-7. It lived as a PNG in three copies that had already drifted apart -- +// they disagreed about the checklist file format and about the whole right-hand +// column -- which is why it is one file per language now. The caption and its +// figure number stay in the including document, because the number differs per +// document and Em002 includes the map twice. +// +// Categories are carried by the subgraph names as well as the fills, so the +// diagram needs no colour key: a reader who cannot tell the fills apart still +// knows which group each document is in. +// +// The original's second key was shape, not colour: square corners meant the DTI +// sector was responsible, rounded corners the FOBL. That is what the "(DTI +// sector)" and "(FOBL)" halves of the group names carry. +// +// Em002-7 is therefore grouped with the guidance documents, which is the band +// the original draws it in, and keeps the red procurement fill the original +// gives it. Colour is its subject, the group is who answers for it; putting it +// in the FOBL group said both at once, and got the second one wrong. +// +// Titles are the short form on purpose. The full ones are in the prose around +// every inclusion, and a four-line node label makes the graph wider than the A4 +// content box. +// +// Do not add a `theme`, `themeVariables` or an `%%{init}%%` directive -- the +// palette comes from the document's own tokens. `classDef` is not a theme +// override and is fine. +[mermaid,align="center",alt="Overview of the OSS tools in connection with Art. 9 EMOTA"] +.... +flowchart TD + subgraph FUND["Fundamentals (DTI sector)"] + EM0025["Em002-5
    EMOTA and OSS
    Factsheet"] + EM002["Em002
    Strategic
    Guidelines"] + EM0026["Em002-6
    FAQ on OSS and
    Art. 9 EMOTA"] + end + + subgraph INTRO["Introduction and guidance (DTI sector)"] + EM0021["Em002-1
    Practical
    Guidelines"] + EM0023["Em002-3
    OSS Licensing
    Guidelines"] + EM0027["Em002-7
    Strategic Aspects of
    Procurement and OSS"] + end + + subgraph PUB["Publication tools (DTI sector)"] + EM0022["Em002-2
    Instructions for
    Publishing OSS"] + EM0024["Em002-4
    OSS Community
    Guidelines"] + CL21["Em002-2.1
    Preliminary
    Assessment
    Checklist"] + CL22["Em002-2.2
    Analysis and
    Preparation
    Checklist"] + CL23["Em002-2.3
    Release and
    Publication
    Checklist"] + CL41["Em002-4.1
    OSS Community
    Checklist"] + end + + subgraph PROC["Procurement tools (FOBL)"] + KBB["Factsheet CCPP
    Procurement of Software
    and Art. 9 EMOTA"] + ORI["Orientation
    Open Source and
    Procurement"] + CLEX["Checklist
    General Exception
    Art. 9 EMOTA"] + end + + HERMES["www.HERMES.admin.ch"] + FCHOSS["Internet:
    OSS tools
    Federal Chancellery"] + + EM002 --> EM0021 + EM0021 --> EM0023 + EM0021 --> EM0022 + EM0022 --> EM0024 + EM0022 --> CL21 + CL21 --> CL22 + CL22 --> CL23 + EM0024 --> CL41 + ORI --> CLEX + HERMES -->|"reference"| FCHOSS + + classDef fund fill:#f0f0f0,stroke:#000000,color:#000000 + classDef intro fill:#dae8fc,stroke:#000000,color:#000000 + classDef pub fill:#e1d5e7,stroke:#000000,color:#000000 + classDef check fill:#d5e8d4,stroke:#000000,color:#000000 + classDef proc fill:#f8cecc,stroke:#000000,color:#000000 + class EM002,EM0025,EM0026 fund + class EM0021,EM0023 intro + class EM0022,EM0024 pub + class CL21,CL22,CL23,CL41 check + class EM0027,KBB,ORI,CLEX proc +.... diff --git a/docs/partials/document-map.fr.adoc b/docs/partials/document-map.fr.adoc new file mode 100644 index 0000000..3cb6433 --- /dev/null +++ b/docs/partials/document-map.fr.adoc @@ -0,0 +1,56 @@ +// Voir document-map.en.adoc pour la justification de ce découpage. +[mermaid,align="center",alt="Vue d'ensemble des outils OSS en lien avec l'art. 9 LMETA"] +.... +flowchart TD + subgraph FUND["Bases (secteur TNI)"] + EM0025["Em002-5
    Aide-mémoire
    LMETA et OSS"] + EM002["Em002
    Lignes directrices
    stratégiques"] + EM0026["Em002-6
    FAQ sur les OSS et
    l'art. 9 LMETA"] + end + + subgraph INTRO["Introduction et orientation (secteur TNI)"] + EM0021["Em002-1
    Guide
    pratique"] + EM0023["Em002-3
    Guide de
    licences OSS"] + EM0027["Em002-7
    Aspects stratégiques des
    achats et de l'OSS"] + end + + subgraph PUB["Outils de publication (secteur TNI)"] + EM0022["Em002-2
    Instructions pour la
    publication d'OSS"] + EM0024["Em002-4
    Guide des
    communautés OSS"] + CL21["Em002-2.1
    Liste de contrôle
    Évaluation
    préalable OSS"] + CL22["Em002-2.2
    Liste de contrôle
    Analyse et
    préparation OSS"] + CL23["Em002-2.3
    Liste de contrôle
    Validation et
    publication OSS"] + CL41["Em002-4.1
    Liste de contrôle
    Communauté OSS"] + end + + subgraph PROC["Outils d'acquisition (OFCL)"] + KBB["Aide-mémoire CCMP
    Acquisition de logiciels
    et art. 9 LMETA"] + ORI["Orientation
    Open source et
    acquisitions"] + CLEX["Liste de contrôle
    Exception générale
    art. 9 LMETA"] + end + + HERMES["www.HERMES.admin.ch"] + FCHOSS["Internet :
    outils OSS
    Chancellerie fédérale"] + + EM002 --> EM0021 + EM0021 --> EM0023 + EM0021 --> EM0022 + EM0022 --> EM0024 + EM0022 --> CL21 + CL21 --> CL22 + CL22 --> CL23 + EM0024 --> CL41 + ORI --> CLEX + HERMES -->|"référence"| FCHOSS + + classDef fund fill:#f0f0f0,stroke:#000000,color:#000000 + classDef intro fill:#dae8fc,stroke:#000000,color:#000000 + classDef pub fill:#e1d5e7,stroke:#000000,color:#000000 + classDef check fill:#d5e8d4,stroke:#000000,color:#000000 + classDef proc fill:#f8cecc,stroke:#000000,color:#000000 + class EM002,EM0025,EM0026 fund + class EM0021,EM0023 intro + class EM0022,EM0024 pub + class CL21,CL22,CL23,CL41 check + class EM0027,KBB,ORI,CLEX proc +.... diff --git a/docs/partials/document-map.it.adoc b/docs/partials/document-map.it.adoc new file mode 100644 index 0000000..288b8ee --- /dev/null +++ b/docs/partials/document-map.it.adoc @@ -0,0 +1,56 @@ +// Cfr. document-map.en.adoc per la motivazione di questa suddivisione. +[mermaid,align="center",alt="Panoramica degli strumenti OSS in relazione all'art. 9 LMeCA"] +.... +flowchart TD + subgraph FUND["Basi (settore TDT)"] + EM0025["Em002-5
    Promemoria
    LMeCA e OSS"] + EM002["Em002
    Linee guida
    strategiche"] + EM0026["Em002-6
    FAQ su OSS e
    art. 9 LMeCA"] + end + + subgraph INTRO["Introduzione e guida (settore TDT)"] + EM0021["Em002-1
    Guida
    pratica"] + EM0023["Em002-3
    Guida alle
    licenze OSS"] + EM0027["Em002-7
    Aspetti strategici degli
    acquisti e dell'OSS"] + end + + subgraph PUB["Strumenti di pubblicazione (settore TDT)"] + EM0022["Em002-2
    Istruzioni per la
    pubblicazione di OSS"] + EM0024["Em002-4
    Guida alle
    community OSS"] + CL21["Em002-2.1
    Lista di controllo
    Valutazione
    preliminare OSS"] + CL22["Em002-2.2
    Lista di controllo
    Analisi e
    preparazione OSS"] + CL23["Em002-2.3
    Lista di controllo
    Rilascio e
    pubblicazione OSS"] + CL41["Em002-4.1
    Lista di controllo
    Community OSS"] + end + + subgraph PROC["Strumenti d'acquisto (UFCL)"] + KBB["Promemoria CCAP
    Acquisto di software
    e art. 9 LMeCA"] + ORI["Orientamento
    Open source e
    acquisti"] + CLEX["Lista di controllo
    Eccezione generale
    art. 9 LMeCA"] + end + + HERMES["www.HERMES.admin.ch"] + FCHOSS["Internet:
    strumenti OSS
    Cancelleria federale"] + + EM002 --> EM0021 + EM0021 --> EM0023 + EM0021 --> EM0022 + EM0022 --> EM0024 + EM0022 --> CL21 + CL21 --> CL22 + CL22 --> CL23 + EM0024 --> CL41 + ORI --> CLEX + HERMES -->|"riferimento"| FCHOSS + + classDef fund fill:#f0f0f0,stroke:#000000,color:#000000 + classDef intro fill:#dae8fc,stroke:#000000,color:#000000 + classDef pub fill:#e1d5e7,stroke:#000000,color:#000000 + classDef check fill:#d5e8d4,stroke:#000000,color:#000000 + classDef proc fill:#f8cecc,stroke:#000000,color:#000000 + class EM002,EM0025,EM0026 fund + class EM0021,EM0023 intro + class EM0022,EM0024 pub + class CL21,CL22,CL23,CL41 check + class EM0027,KBB,ORI,CLEX proc +.... diff --git a/docs/partials/document-map.rm.adoc b/docs/partials/document-map.rm.adoc new file mode 100644 index 0000000..fd1418f --- /dev/null +++ b/docs/partials/document-map.rm.adoc @@ -0,0 +1,56 @@ +// Vesair document-map.en.adoc per la motivaziun da questa repartiziun. +[mermaid,align="center",alt="Survista dals meds OSS en connex cun l'art. 9 EMBAG"] +.... +flowchart TD + subgraph FUND["Basas (sectur TDT)"] + EM0025["Em002-5
    Fegl d'infurmaziun
    EMBAG ed OSS"] + EM002["Em002
    Directivas
    strategicas"] + EM0026["Em002-6
    FAQ davart OSS
    e l'art. 9 EMBAG"] + end + + subgraph INTRO["Introducziun e guida (sectur TDT)"] + EM0021["Em002-1
    Guida
    pratica"] + EM0023["Em002-3
    Guida da
    licenzas OSS"] + EM0027["Em002-7
    Aspects strategics da
    l'acquist e da l'OSS"] + end + + subgraph PUB["Meds da publicaziun (sectur TDT)"] + EM0022["Em002-2
    Instrucziuns per
    publitgar OSS"] + EM0024["Em002-4
    Guida da
    communitads OSS"] + CL21["Em002-2.1
    Glista da controlla
    Evaluaziun
    preliminara OSS"] + CL22["Em002-2.2
    Glista da controlla
    Analisa e
    preparaziun OSS"] + CL23["Em002-2.3
    Glista da controlla
    Relaschada e
    publicaziun OSS"] + CL41["Em002-4.1
    Glista da controlla
    Communitad OSS"] + end + + subgraph PROC["Meds d'acquist (UFCL)"] + KBB["Fegl d'infurmaziun CCA
    Acquist da software
    e l'art. 9 EMBAG"] + ORI["Orientaziun
    Open source ed
    acquist"] + CLEX["Glista da controlla
    Excepziun generala
    art. 9 EMBAG"] + end + + HERMES["www.HERMES.admin.ch"] + FCHOSS["Internet:
    meds OSS
    Chanzlia federala"] + + EM002 --> EM0021 + EM0021 --> EM0023 + EM0021 --> EM0022 + EM0022 --> EM0024 + EM0022 --> CL21 + CL21 --> CL22 + CL22 --> CL23 + EM0024 --> CL41 + ORI --> CLEX + HERMES -->|"referenza"| FCHOSS + + classDef fund fill:#f0f0f0,stroke:#000000,color:#000000 + classDef intro fill:#dae8fc,stroke:#000000,color:#000000 + classDef pub fill:#e1d5e7,stroke:#000000,color:#000000 + classDef check fill:#d5e8d4,stroke:#000000,color:#000000 + classDef proc fill:#f8cecc,stroke:#000000,color:#000000 + class EM002,EM0025,EM0026 fund + class EM0021,EM0023 intro + class EM0022,EM0024 pub + class CL21,CL22,CL23,CL41 check + class EM0027,KBB,ORI,CLEX proc +.... diff --git a/docs/partials/glossary.de.adoc b/docs/partials/glossary.de.adoc new file mode 100644 index 0000000..7199154 --- /dev/null +++ b/docs/partials/glossary.de.adoc @@ -0,0 +1,123 @@ +// Siehe glossary.en.adoc für die Begründung dieser Aufteilung. +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Anwendungsbereich:: +Gemeint sind die Kategorien der Büroautomationssoftware (BA) nach [A029] und weitere Klassifizierungen. + +Branch:: +Ein Entwicklungszweig einer OSS. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Kollaboration:: +Der Begriff «Kollaboration» leitet sich vom lateinischen Wort «collaborare» ab, das «zusammenarbeiten» bedeutet. + +Er beschreibt eine Arbeitsweise, bei der mehrere Personen oder Teams gemeinsam auf ein Ziel hinarbeiten und dabei ihre Fähigkeiten und Ressourcen einbringen. Im Zentrum stehen gegenseitiger Austausch, Transparenz und das Teilen von Wissen. + +Nach dem Gabler Wirtschaftslexikon bezeichnet Kollaboration auch die «Zusammenarbeit eines Unternehmens mit seinen Kunden und Lieferanten unter Nutzung moderner Informationstechnologien zur Integration inner- und überbetrieblicher Geschäftsprozesse». + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +KBB:: +Kompetenzzentrum Beschaffungswesen Bund + +Collaboration:: +Der Begriff Collaboration stammt vom lateinischen Wort «collaborare» und bedeutet «zusammenarbeiten». +Er beschreibt eine Arbeitsweise, bei der mehrere Personen oder Teams gemeinsam auf ein Ziel hinarbeiten und ihre Fähigkeiten und Ressourcen einbringen. Im Zentrum stehen gegenseitiger Austausch, Transparenz und das Teilen von Wissen. + +Gemäss dem Gabler Wirtschaftslexikon bezeichnet Collaboration auch die «Zusammenarbeit zwischen einem Unternehmen und seinen Kunden und Lieferanten unter Einsatz moderner Informationstechnologien zur Integration inner- und überbetrieblicher Geschäftsprozesse». + +Committer:: +Ein Committer ist eine Person, die eine Änderung an Daten in einem Versionsverwaltungssystem einträgt. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Contribution:: +Eine OSS-Contribution ist ein Beitrag zur Entwicklung und Verbesserung von Open-Source-Software (OSS). Dies kann in Form von Code, Dokumentation, Tests, Rückmeldungen oder anderen Beitragsarten geschehen. (Google AI) + +Contributor Licence Agreement (CLA):: +Ein Contributor Licence Agreement (CLA), auch Contributor Agreement genannt, ist ein Dokument, das die Bedingungen festlegt, unter denen geistiges Eigentum zu einem Projekt oder einer Initiative beigetragen werden darf. Damit ist in der Regel ein Softwareprojekt unter einer Open-Source-Lizenz gemeint (Wikipedia). + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Core Developer:: +Entwicklerin oder Entwickler eines OSS-Projekts mit Committer-Zugriffsrechten auf das Repositorium. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +DTI:: +Sektor Digitale Transformation und IKT-Lenkung. Teil der Bundeskanzlei BK + +eOperations:: +eOperations Schweiz ermöglicht gemeinsame digitale öffentliche Dienstleistungen für Bund, Kantone und Gemeinden. https://www.eoperations.ch[www.eoperations.ch] + +ISB:: +Informatiksteuerungsorgan des Bundes. Vorgänger von BK-DTI + +BBL:: +Bundesamt für Bauten und Logistik + +Lebenszyklus:: +Ein Softwarelebenszyklus beschreibt den Prozess der Softwareentwicklung mit dem Ziel, dem Kunden Software bereitzustellen. In der Regel beginnt der Zyklus mit einem vom Kunden erkannten Problem und dessen Analyse und endet auf Kundenseite mit der Ablösung der Software durch eine Nachfolgelösung. + +Lock-in:: +Der Lock-in-Effekt bezeichnet eine enge Kundenbindung an Produkte/Dienstleistungen oder an einen Anbieter, die einen Produkt- oder Anbieterwechsel für die Kundschaft aufgrund der damit verbundenen Kosten und weiterer Hürden erschwert. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Marktanalyse:: +Eine spezifische Marktanalyse dient dazu, Informationen zum aktuellen und potenziellen Beschaffungsmarkt zu ermitteln und aufzubereiten. Zweck der Marktanalyse ist es, Marktstrukturen und insbesondere die Anbieterstruktur hinsichtlich aller massgebenden Merkmale zu ermitteln und zu verstehen: Preissituation (hoch, tief, Schwankungen); Marktgrösse; geografische Verteilung potenzieller Anbieter und Hauptakteure usw. (siehe https://perimap.admin.ch/goto_perimap_file_38221_download.html). + +Mögliche Quellen für OSS-Software finden sich in link:em002-1.pdf[Em002-1 Praxisleitfaden OSS] in Kapitel 7. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +OSS:: +Open-Source-Software + +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Produkt:: +Hier als Synonym für «Anwendung» verwendet. ++ +Der Begriff stammt aus ITIL. In ITIL (Information Technology Infrastructure Library) ist ein Produkt eine Konfiguration von Ressourcen, die darauf ausgelegt ist, einer Kundin oder einer Organisation Nutzen zu stiften. Anders als ein Service, der typischerweise ein laufender, interaktiver Prozess ist, ist ein Produkt eine statische Einheit. ++ +Produkte können Software, Hardware, Daten oder andere von der Organisation bereitgestellte Ressourcen sein. (Google AI) + +Produktstandardisierung:: +In diesem Dokument bezieht sich die Standardisierung in erster Linie auf SD120, den IKT-Standarddienst für die Büroautomation, sowie auf weitere Standardisierungen durch DTI. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Subscription:: +Beim Bezug von Software im Abonnement wird eine Subscription abgeschlossen. Das bedeutet, dass die Software nicht gekauft wird. + +In den meisten Fällen umfasst dies nicht nur die Erlaubnis zur Nutzung der Software, sondern auch alle relevanten Dienstleistungen und den Support. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +SBOM:: +Eine Software Bill of Materials (SBOM) ist eine Inventarliste aller Komponenten und Softwareabhängigkeiten, die Teil der Entwicklung und Bereitstellung einer Software sind. + +Subskription:: +Beim Abonnieren von Software wird eine Subskription abgeschlossen. Das bedeutet, dass die Software nicht gekauft wird. + +In den meisten Fällen umfasst dies nicht nur die Erlaubnis zur Nutzung der Software, sondern auch alle massgebenden Leistungen und den Support. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Upstream-Projekt:: +Upstream ist ein Begriff aus der verteilten Softwareentwicklung (oft Open Source) und bezeichnet die Richtung eines Patches zu seinem Ursprung (upstream), also zu den ursprünglichen Entwicklerinnen und Entwicklern bzw. Maintainern der Software oder zum ursprünglichen Projekt. Dabei kann es sich auch um Softwarebibliotheken handeln. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +ZenDiS:: +ZenDiS ist eine Gesellschaft mit beschränkter Haftung (GmbH) in öffentlicher Hand in Deutschland. Sie unterstützt Bund, Länder und Kommunen bei der Umsetzung der digitalen Souveränität. Mit opencode.de und container.gov.de bietet sie eine Plattform für sichere Open-Source-Entwicklung. (https://www.zendis.de[www.zendis.de]) + +Zero-Day-Exploit:: +Ein Zero-Day-Exploit bezeichnet die Ausnutzung einer Sicherheitslücke, für die noch kein Patch des Komponentenherstellers verfügbar ist. + +// end::gloss-em002-7[] diff --git a/docs/partials/glossary.en.adoc b/docs/partials/glossary.en.adoc new file mode 100644 index 0000000..18dfc6f --- /dev/null +++ b/docs/partials/glossary.en.adoc @@ -0,0 +1,131 @@ +// The glossary shared by Em002-6 and Em002-7. Em002-6 owns the general +// glossary -- Em002-7 says so in its own Annex B preamble -- and Em002-7 adds +// the procurement-specific terms on top, so the union is tagged per consuming +// document and Em002-6's wording wins wherever the two had drifted. +// +// Drift found: "Application area", "Branch", "Collaboration", "Market +// analysis" and "Product" disagreed in English, and rather more in the +// translations, mostly over hard breaks and list continuations. +// +// Where the two documents use different headwords for the same concept +// (German Kollaboration vs Collaboration, Subscription vs Subskription, and +// their French, Italian and Romansh equivalents), both entries survive, one +// per tag. Unifying them is a translation decision, not a formatting one. +// +// The preamble paragraphs -- the TERMDAT pointer and Em002-7's "see Em002-6" +// note -- stay in the including documents; they differ per document. +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Application area:: +This refers to the categories of office automation (OA) software as defined in [A029] and other classifications. + +Branch:: +A development branch of an OSS. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +CCPP:: +Competence Centre for Federal Public Procurement + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Collaboration:: +The term 'collaboration' derives from the Latin word 'collaborare', which 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.' + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +Committer:: +A committer is a person who enters a change to data in a version control system. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +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). + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Core developer:: +Developer of an OSS project who has committer access rights to the repository. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +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. https://www.eoperations.ch[www.eoperations.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. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +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 link:em002-1.pdf[Em002-1 Practical Guidelines for OSS] in Section 7. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +OSS:: +Open source software + +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +// tag::gloss-em002-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. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +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. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +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. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +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 opencode.de and container.gov.de, it offers a platform for secure open-source development. (https://www.zendis.de[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. + +// end::gloss-em002-7[] diff --git a/docs/partials/glossary.fr.adoc b/docs/partials/glossary.fr.adoc new file mode 100644 index 0000000..8b27e52 --- /dev/null +++ b/docs/partials/glossary.fr.adoc @@ -0,0 +1,127 @@ +// Voir glossary.en.adoc pour la justification de ce découpage. +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Domaine d'application:: +Il s'agit des catégories de logiciels de bureautique (BA) telles que définies dans [A029] et d'autres classifications. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Branche:: +Une branche de développement d'un logiciel open source. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +Branch:: +Une branche de développement d'un OSS. + +CCMP:: +Centre de compétence des marchés publics de la Confédération + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Collaboration:: +Le terme «collaboration» dérive du mot latin «collaborare», qui signifie «travailler ensemble». + +Il décrit un mode de travail dans lequel plusieurs personnes ou équipes œuvrent ensemble à un objectif commun en y apportant leurs compétences et leurs ressources. L'échange mutuel, la transparence et le partage des connaissances sont au centre. + +Selon le Gabler Wirtschaftslexikon, la collaboration désigne aussi la «coopération d'une entreprise avec ses clients et ses fournisseurs, en recourant aux technologies modernes de l'information pour intégrer les processus d'affaires internes et interentreprises». + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +Committer:: +Un committer est une personne qui inscrit une modification de données dans un système de gestion de versions. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Contribution:: +Une contribution OSS est un apport au développement et à l'amélioration d'un logiciel open source (OSS). Cela peut prendre la forme de code, de documentation, de tests, de retours ou d'autres types de contributions. (Google AI) + +Contributor Licence Agreement (CLA):: +Un Contributor Licence Agreement (CLA), également appelé Contributor Agreement, est un document qui fixe les conditions auxquelles de la propriété intellectuelle peut être apportée à un projet ou à une initiative. Il s'agit généralement d'un projet logiciel sous licence open source (Wikipédia). + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Core developer:: +Développeur d'un projet open source disposant de droits d'accès de committer au dépôt. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +TNI:: +Secteur Transformation numérique et gouvernance de l'informatique. Fait partie de la Chancellerie fédérale ChF + +eOperations:: +eOperations Suisse permet des prestations publiques numériques communes pour la Confédération, les cantons et les communes. https://www.eoperations.ch[www.eoperations.ch] + +USIC:: +Unité de pilotage informatique de la Confédération. Prédécesseur de ChF-TNI + +OFCL:: +Office fédéral des constructions et de la logistique + +Cycle de vie:: +Un cycle de vie logiciel décrit le processus de développement logiciel visant à mettre un logiciel à disposition du client. En règle générale, le cycle commence par un problème identifié par le client et son analyse, et se termine du côté du client par le remplacement du logiciel par un successeur. + +Lock-in:: +L'effet de lock-in désigne une fidélisation étroite de la clientèle à des produits/services ou à un fournisseur, qui rend difficile pour le client un changement de produit ou de fournisseur en raison des coûts et des autres obstacles liés au changement. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Analyse de marché:: +Une analyse de marché spécifique sert à identifier et à traiter les informations relatives au marché d'acquisition actuel et potentiel. L'analyse de marché a pour but d'identifier et de comprendre les structures du marché et, en particulier, la structure des fournisseurs au regard de toutes les caractéristiques déterminantes : situation des prix (élevés, bas, fluctuations) ; taille du marché ; répartition géographique des fournisseurs potentiels et des acteurs principaux, etc. (voir https://perimap.admin.ch/goto_perimap_file_38221_download.html). + +Les sources possibles de logiciels OSS figurent dans link:em002-1.pdf[Em002-1 Guide pratique OSS], chapitre 7. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +OSS:: +Logiciel open source + +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Produit:: +Utilisé ici comme synonyme d'«application». ++ +Le terme provient d'ITIL. Dans ITIL (Information Technology Infrastructure Library), un produit est une configuration de ressources conçue pour apporter de la valeur à un client ou à une organisation. Contrairement à un service, qui est typiquement un processus interactif et continu, un produit est une entité statique. ++ +Les produits peuvent être des logiciels, du matériel, des données ou d'autres ressources fournies par l'organisation. (Google AI) + +Standardisation des produits:: +Dans le présent document, la standardisation se réfère principalement à SD120, le service standard TIC pour la bureautique, ainsi qu'à d'autres standardisations du secteur TNI. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Subscription:: +Lors de l'acquisition d'un logiciel par abonnement, une subscription est conclue. Cela signifie que le logiciel n'est pas acheté. + +Dans la plupart des cas, cela comprend non seulement l'autorisation d'utiliser le logiciel, mais aussi l'ensemble des prestations et du support pertinents. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +SBOM:: +Une Software Bill of Materials (SBOM) est une liste d'inventaire de tous les composants et dépendances logicielles qui font partie du développement et du déploiement d'un logiciel. + +Abonnement:: +Lors de l'abonnement à un logiciel, une souscription est conclue. Cela signifie que le logiciel n'est pas acheté. + +Dans la plupart des cas, cela comprend non seulement l'autorisation d'utiliser le logiciel, mais aussi toutes les prestations déterminantes et le support. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Projet upstream:: +Upstream est un terme issu du développement logiciel distribué (souvent open source) et désigne la direction d'un correctif vers son origine (upstream), c'est-à-dire vers les développeurs ou mainteneurs d'origine du logiciel, ou vers le projet d'origine. Il peut aussi s'agir de bibliothèques logicielles. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +ZenDiS:: +ZenDiS est une société à responsabilité limitée (GmbH) en mains publiques en Allemagne. Elle soutient la Fédération, les Länder et les communes dans la mise en œuvre de la souveraineté numérique. Avec opencode.de et container.gov.de, elle offre une plateforme pour un développement open source sécurisé. (https://www.zendis.de[www.zendis.de]) + +Exploit zero-day:: +Un exploit zero-day désigne l'exploitation d'une faille de sécurité pour laquelle aucun correctif n'est encore disponible auprès du fabricant du composant. + +// end::gloss-em002-7[] diff --git a/docs/partials/glossary.it.adoc b/docs/partials/glossary.it.adoc new file mode 100644 index 0000000..6591e64 --- /dev/null +++ b/docs/partials/glossary.it.adoc @@ -0,0 +1,130 @@ +// Cfr. glossary.en.adoc per la motivazione di questa suddivisione. +// tag::gloss-em002-6[] +Ambito di applicazione:: +Si intendono le categorie di software per l'automazione d'ufficio (BA) secondo [A029] e altre classificazioni. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +Ambito d'applicazione:: +Si intendono le categorie di software di automazione d'ufficio secondo [A029] e altre classificazioni. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Branch:: +Un ramo di sviluppo di un OSS. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Collaborazione:: +Il termine «collaborazione» deriva dalla parola latina «collaborare», che significa «lavorare insieme». + +Descrive un modo di lavorare in cui più persone o team operano insieme verso un obiettivo comune, apportando le proprie competenze e risorse. Al centro vi sono lo scambio reciproco, la trasparenza e la condivisione delle conoscenze. + +Secondo il Gabler Wirtschaftslexikon, la collaborazione indica anche la «cooperazione di un'impresa con i suoi clienti e fornitori, ricorrendo alle moderne tecnologie dell'informazione per integrare i processi aziendali interni e interaziendali». + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +CCAP:: +Centro di competenza per gli acquisti pubblici della Confederazione + +Collaboration:: +Il termine collaboration deriva dal latino «collaborare» e significa «lavorare insieme». +Descrive un modo di lavorare in cui più persone o team operano insieme verso un obiettivo comune, apportando le proprie capacità e risorse. Al centro figurano lo scambio reciproco, la trasparenza e la condivisione delle conoscenze. + +Secondo il Gabler Wirtschaftslexikon, collaboration designa anche la «cooperazione tra un'impresa e i suoi clienti e fornitori, ricorrendo alle moderne tecnologie dell'informazione per integrare i processi aziendali interni e interaziendali». + +Committer:: +Un committer è una persona che inserisce una modifica dei dati in un sistema di gestione delle versioni. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Contribution:: +Una contribution OSS è un contributo allo sviluppo e al miglioramento di software open source (OSS). Ciò può avvenire sotto forma di codice, documentazione, test, riscontri o altri tipi di contributi. (Google AI) + +Contributor Licence Agreement (CLA):: +Un Contributor Licence Agreement (CLA), noto anche come Contributor Agreement, è un documento che stabilisce le condizioni alle quali la proprietà intellettuale può essere apportata a un progetto o a un'iniziativa. Di regola si tratta di un progetto software sotto licenza open source (Wikipedia). + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Core developer:: +Sviluppatore di un progetto open source che dispone di diritti di accesso come committer al repository. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +TDI:: +Settore Trasformazione digitale e governance delle TIC. Parte della Cancelleria federale CaF + +eOperations:: +eOperations Svizzera consente prestazioni pubbliche digitali comuni per Confederazione, Cantoni e Comuni. https://www.eoperations.ch[www.eoperations.ch] + +ODIC:: +Organo direzione informatica della Confederazione. Predecessore di CaF-TDI + +UFCL:: +Ufficio federale delle costruzioni e della logistica + +Ciclo di vita:: +Un ciclo di vita del software descrive il processo di sviluppo software volto a mettere un software a disposizione del cliente. Di regola il ciclo inizia con un problema individuato dal cliente e la sua analisi e termina, dal lato del cliente, con la sostituzione del software con uno successivo. + +Lock-in:: +L'effetto lock-in designa uno stretto legame della clientela a prodotti/servizi o a un fornitore, che rende difficile al cliente cambiare prodotto o fornitore a causa dei costi e di altri ostacoli connessi al cambiamento. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Analisi di mercato:: +Un'analisi di mercato specifica serve a individuare ed elaborare informazioni sul mercato d'acquisto attuale e potenziale. Scopo dell'analisi di mercato è individuare e comprendere le strutture di mercato e in particolare la struttura dei fornitori riguardo a tutte le caratteristiche determinanti: situazione dei prezzi (alti, bassi, oscillazioni); dimensione del mercato; distribuzione geografica dei potenziali fornitori e degli attori principali ecc. (cfr. https://perimap.admin.ch/goto_perimap_file_38221_download.html). + +Possibili fonti di software OSS figurano in link:em002-1.pdf[Em002-1 Guida pratica OSS], capitolo 7. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +OSS:: +Software open source + +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Prodotto:: +Qui utilizzato come sinonimo di «applicazione». ++ +Il termine deriva da ITIL. In ITIL (Information Technology Infrastructure Library) un prodotto è una configurazione di risorse concepita per generare valore per un cliente o un'organizzazione. A differenza di un servizio, che è tipicamente un processo continuo e interattivo, un prodotto è un'entità statica. ++ +I prodotti possono essere software, hardware, dati o altre risorse messe a disposizione dall'organizzazione. (Google AI) + +Standardizzazione dei prodotti:: +Nel presente documento la standardizzazione si riferisce in primo luogo a SD120, il servizio standard TIC per l'automazione d'ufficio, nonché ad altre standardizzazioni del settore TDT. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Subscription:: +Acquisendo software in abbonamento si stipula una subscription. Ciò significa che il software non viene acquistato. + +Nella maggior parte dei casi ciò comprende non solo l'autorizzazione a utilizzare il software, ma anche tutte le prestazioni e il supporto pertinenti. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +SBOM:: +Una Software Bill of Materials (SBOM) è un elenco d'inventario di tutti i componenti e le dipendenze software che fanno parte dello sviluppo e della distribuzione di un software. + +Abbonamento:: +Abbonandosi a un software si sottoscrive una subscription. Ciò significa che il software non viene acquistato. + +Nella maggior parte dei casi ciò comprende non soltanto l'autorizzazione a utilizzare il software, ma anche tutte le prestazioni determinanti e il supporto. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Progetto upstream:: +Upstream è un termine dello sviluppo software distribuito (spesso open source) e indica la direzione di una patch verso la sua origine (upstream), ossia verso gli sviluppatori o i maintainer originari del software o verso il progetto originario. Può trattarsi anche di librerie software. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +ZenDiS:: +ZenDiS è una società a garanzia limitata (GmbH) in mano pubblica in Germania. Sostiene la Federazione, i Länder e i Comuni nell'attuazione della sovranità digitale. Con opencode.de e container.gov.de offre una piattaforma per uno sviluppo open source sicuro. (https://www.zendis.de[www.zendis.de]) + +Exploit zero-day:: +Un exploit zero-day designa lo sfruttamento di una falla di sicurezza per la quale non è ancora disponibile alcuna patch del fabbricante del componente. + +// end::gloss-em002-7[] diff --git a/docs/partials/glossary.rm.adoc b/docs/partials/glossary.rm.adoc new file mode 100644 index 0000000..72904c7 --- /dev/null +++ b/docs/partials/glossary.rm.adoc @@ -0,0 +1,126 @@ +// Vesair glossary.en.adoc per la motivaziun da questa repartiziun. +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Sectur d'applicaziun:: +Manegiadas èn las categorias dal software d'automatisaziun da biro (BA) tenor [A029] ed ulteriuras classificaziuns. + +Branch:: +Ina branca da svilup d'in OSS. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Collavuraziun:: +La noziun «collavuraziun» deriva dal pled latin «collaborare» che munta «lavurar ensemen». + +Ella descriva ina moda da lavurar, en la quala pliras persunas u teams lavuran ensemen vers ina finamira cuminaivla ed integreschan lur abilitads e resursas. En il center stattan il barat vicendaivel, la transparenza ed il cundivider da savida. + +Tenor il Gabler Wirtschaftslexikon designescha collavuraziun era la «collavuraziun d'ina interpresa cun ses clients e furniturs, cun utilisar modernas tecnologias d'infurmaziun per integrar process da fatschenta interns ed interinterpresarials». + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +CCA:: +Center da cumpetenza per l'acquist public da la Confederaziun + +Collaboration:: +Il term collaboration deriva dal latin «collaborare» e munta «lavurar ensemen». +El descriva ina moda da lavurar, tar la quala pliras persunas u teams lavuran ensemen vers ina finamira cuminaivla ed inducan lur abilitads e resursas. En il center stattan il barat vicendaivel, la transparenza ed il cundivider da savida. + +Tenor il Gabler Wirtschaftslexikon designescha collaboration era la «collavuraziun tranter ina interpresa e sias clientas e ses clients e furniturs cun utilisar modernas tecnologias d'infurmaziun per integrar process da fatschenta interns ed interinterpresarials». + +Committer:: +In committer è ina persuna che endatescha ina midada da datas en in sistem da gestiun da versiuns. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Contribution:: +Ina contribution OSS è ina contribuziun al svilup ed a la meglieraziun da software open source (OSS). Quai po capitar en furma da code, documentaziun, tests, resuns u auters geners da contribuziuns. (Google AI) + +Contributor Licence Agreement (CLA):: +In Contributor Licence Agreement (CLA), era numnà Contributor Agreement, è in document che fixescha las cundiziuns, sut las qualas proprietad intellectuala dastga vegnir contribuida ad in project u ad ina iniziativa. Per ordinari è manegià cun quai in project da software sut ina licenza open source (Wikipedia). + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Core developer:: +Sviluppadra u sviluppader d'in project OSS cun dretgs d'access sco committer al repositori. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +TDT:: +Sectur Transformaziun digitala e direcziun TIC. Part da la Chanzlia federala ChF + +eOperations:: +eOperations Svizra pussibilitescha prestaziuns publicas digitalas cuminaivlas per la Confederaziun, ils chantuns e las vischnancas. https://www.eoperations.ch[www.eoperations.ch] + +ISB:: +Organ da direcziun d'informatica da la Confederaziun. Predecessur da ChF-TDT + +UFCL:: +Uffizi federal per edifizis e logistica + +Ciclus da vita:: +In ciclus da vita da software descriva il process dal svilup da software cun la finamira da metter a disposiziun software al client. Da regla cumenza il ciclus cun in problem renconuschì dal client e sia analisa e finescha da la vart dal client cun la remplazzada dal software tras in successur. + +Lock-in:: +L'effect lock-in designescha ina stretga liaziun da la clientella a products/prestaziuns u ad in purschider, che renda difficil per la clientella ina midada da product u da purschider pervia dals custs e d'ulteriuras savas colliadas cun la midada. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Analisa dal martgà:: +Ina analisa dal martgà specifica serva ad eruir ed elavurar infurmaziuns davart il martgà d'acquist actual e potenzial. L'intent da l'analisa dal martgà è d'eruir e da chapir las structuras dal martgà ed en spezial la structura dals purschiders areguard tuttas caracteristicas determinantas: situaziun dals pretschs (auts, bass, fluctuaziuns); grondezza dal martgà; repartiziun geografica dals purschiders potenzials e dals acturs principals etc. (vesair https://perimap.admin.ch/goto_perimap_file_38221_download.html). + +Funtaunas pussaivlas per software OSS sa chattan en link:em002-1.pdf[Em002-1 Guida pratica OSS] en il chapitel 7. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +OSS:: +Software open source + +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Product:: +Qua duvrà sco sinonim per «applicaziun». ++ +La noziun deriva da ITIL. En ITIL (Information Technology Infrastructure Library) è in product ina configuraziun da resursas concepida per purtar valur ad ina clientella u ad ina organisaziun. Cuntrari ad in servetsch ch'è tipicamain in process current ed interactiv, è in product ina unitad statica. ++ +Products pon esser software, hardware, datas u autras resursas messas a disposiziun da l'organisaziun. (Google AI) + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-6[] +Standardisaziun da products:: +En quest document sa referescha la standardisaziun en emprima lingia a SD120, il servetsch standard TIC per l'automatisaziun da biro, sco era ad ulteriuras standardisaziuns dal sectur TDT. + +Subscription:: +Tar il retratg da software en abunament vegn serrada ina subscription. Quai munta che il software na vegn betg cumprà. + +En ils pli blers cas cumpiglia quai betg mo il permiss dad utilisar il software, mabain era tut las prestaziuns relevantas ed il support. + +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +Standardisaziun dals products:: +En quest document sa referescha la standardisaziun en emprima lingia a SD120, la prestaziun standard TIC per l'automatisaziun da biro, ed ad ulteriuras standardisaziuns dal sectur TDT. + +SBOM:: +Ina Software Bill of Materials (SBOM) è ina glista d'inventari da tuttas cumponentas e dependenzas da software che fan part dal svilup e da la messa a disposiziun d'in software. + +Abunament:: +Tar l'abunament d'in software vegn concludida ina subscripziun. Quai munta che il software na vegn betg cumprà. + +En la gronda part dals cas cumpiglia quai betg mo il permiss d'utilisar il software, mabain era tuttas prestaziuns determinantas ed il support. + +// end::gloss-em002-7[] +// tag::gloss-em002-6[] +// tag::gloss-em002-7[] +Project upstream:: +Upstream è ina noziun dal svilup da software repartì (savens open source) e designescha la direcziun d'in patch vers sia origin (upstream), pia vers las sviluppadras ed ils sviluppaders resp. maintainers originals dal software u vers il project original. I po sa tractar era da bibliotecas da software. + +// end::gloss-em002-7[] +// end::gloss-em002-6[] +// tag::gloss-em002-7[] +ZenDiS:: +ZenDiS è ina societad cun responsabladad limitada (GmbH) en maun public en Germania. Ella sustegna la Confederaziun, ils Länder e las vischnancas en la realisaziun da la suveranitad digitala. Cun opencode.de e container.gov.de porscha ella ina plattafurma per in svilup open source segir. (https://www.zendis.de[www.zendis.de]) + +Zero-day-exploit:: +In zero-day-exploit designescha l'exploataziun d'ina largia da segirezza, per la quala i n'è anc disponibel nagin patch dal fabricant da la cumponenta. + +// end::gloss-em002-7[] diff --git a/docs/partials/references.de.adoc b/docs/partials/references.de.adoc new file mode 100644 index 0000000..81ecc34 --- /dev/null +++ b/docs/partials/references.de.adoc @@ -0,0 +1,200 @@ +// Siehe references.en.adoc für die Begründung dieser Aufteilung. +// tag::ref-em002-tools[] +[Em002]:: +Em002 Strategische Leitlinien für Open-Source-Software in der Bundesverwaltung, Version 2.0, 2025 + +[Em002-1]:: +Em002-1 Praxisleitfaden für Open-Source-Software in der Bundesverwaltung, Version 2.0, 2025 + +[Em002-2]:: +Em002-2 Anleitung zur Veröffentlichung von Open-Source-Software, Version 2.0, 2025 + +[Em002-2.1]:: +Em002-2.1 Checkliste OSS-Vorabklärung, Version 2.0, 2025 + +[Em002-2.2]:: +Em002-2.2 Checkliste OSS-Analyse und -Vorbereitung, Version 2.0, 2025 + +[Em002-2.3]:: +Em002-2.3 Checkliste OSS-Freigabe und -Veröffentlichung, Version 2, 2025 + +[Em002-3]:: +Em002-3 Leitfaden OSS-Lizenzierung, Version 2.0, 2025 + +[Em002-4]:: +Em002-4 Leitfaden OSS-Community, Version 2.0, 2025 + +[Em002-4.1]:: +Em002-4.1 Checkliste OSS-Community, Version 2.0, 2025 + +[Em002-5]:: +Em002-5 Merkblatt OSS-Hilfsmittel, Version 2.0, 2025 + +[Em002-6]:: +Em002-6 Häufig gestellte Fragen zur Veröffentlichung von OSS (FAQ-OSS), Version 2.0, 2025 + +[Em002-7]:: +Em002-7 Strategische Aspekte der Beschaffung und Open-Source-Software, Version 2.0, 2025 + +[BBL-WZK]:: +Merkblätter für die BBL-Bedarfsstellen finden sich im entsprechenden Werkzeugkasten: link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] + +[BBL-AGB]:: +AGB des Bundes. link:https://www.bkb.admin.ch/bkb/de/home/themen/agb.html[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] + +// end::ref-em002-tools[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[A029]:: +Produktstandard für Büroautomations-Clientsoftware (BAB) +Intranet: link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html[https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-general[] +[BITKOM2023]:: +Leitfaden Open-Source-Software 2.0. Berlin: Bitkom e. V. Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2023. link:https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html[https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html] + +// end::ref-em002-general[] +// tag::ref-em002-7[] +[BBL2015]:: +Merkblatt: Softwareausschreibungen: Sicherstellung eines breiten Wettbewerbs; 2015; nicht mehr in Kraft + +[BITKOM2024]:: +Leitfaden Open-Source-Software 2.0. Berlin: Bitkom e. V. Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2024. https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html + +// end::ref-em002-7[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[BöB]:: +Bundesgesetz über das öffentliche Beschaffungswesen (BöB) link:https://www.fedlex.admin.ch/eli/oc/2020/126/de[https://www.fedlex.admin.ch/eli/oc/2020/126/de] + +[DigiV]:: +Verordnung über digitale Dienstleistungen und die digitale Transformation in der Bundesverwaltung (DigiV) link:https://www.fedlex.admin.ch/eli/cc/2025/235/de[SR 172.019.1 – Verordnung vom 2. April 2025 | Fedlex] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[BBL-WL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[Wegleitung Open Source in der Beschaffung], BBL; 2025 + +Entscheidungshilfe für Einkäuferinnen und Einkäufer in Projekten mit möglicher OSS-Relevanz. Enthält Informationen zur korrekten Umsetzung in Ausschreibungen und Verträgen. (PDF) + +Nur für Bundesstellen im Bundesintranet zugänglich + +[BBL-CL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[Checkliste Integral-Ausnahme Art. 9 EMBAG], BBL, 2025, + +Hilft bei der Prüfung und Dokumentation, ob im Einzelfall auf die Veröffentlichung entwickelter Software verzichtet werden kann. (DOCX) + +Nur für Bundesstellen im Bundesintranet zugänglich + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-MB]:: +Merkblatt: Softwarebeschaffung und Art. 9 EMBAG, Kompetenzzentrum Beschaffungswesen Bund: + +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html] + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-general[] +[EY2011]:: +Open Source Software im geschäftskritischen Einsatz. Ernst & Young. 2011. link:https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young[https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young]. + +[EMBAG2023]:: +172.019 Bundesgesetz über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG) link:https://www.fedlex.admin.ch/eli/cc/2023/682/de[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, März 2021 + +[GoAy2022]:: +Goldstein, Ayala. Top 10 Open Source Licenses in 2022: Trends and Predictions. 2022. link:https://resources.whitesourcesoftware.com/blog-whitesource/top-open-source-licenses-trends-and-predictions[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. link:https://gnostx.com/wp_gnostx/blog/2024/05/31/selection-criteria-for-enterprise-ready-open-source-software/[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, und Metzger, Alex. Open Source Software: Rechtliche Rahmenbedingungen der Freien Software. 4. Aufl. München: C.H.Beck. 2016 + +[KuWiSa2008]:: +Kuhn, Bradley M., Williamson, Aaron; und Sandler, Karen M. A Practical Guide to GPL Compliance. Software Freedom Law Center. 2008. link:https://softwarefreedom.org/resources/2008/compliance-guide.html[https://softwarefreedom.org/resources/2008/compliance-guide.html] + +[LaOp2023]:: +Lambach, D. und Oppermann, K.. Narratives of digital sovereignty in German political discourse', Governance, 36(3), S. 693–709. 2023. Verfügbar unter: link:https://doi.org/10.1111/gove.12690[https://doi.org/10.1111/gove.12690] + +[LaWu2022]:: +Laux, Christian und Wüst, Anja. Datensouveränität – Was es zur Begriffsklärung braucht. Swiss Data Alliance. Version 1.0. Juli 2022 + +[Le2023]:: +Lehmann, David. Erfahrungen mit Open Source Freigabe beim BIT. Präsentation vom 18. September 2023 + +[OSI2024]:: +Open Source Initiative. Open Source Licenses by Name. 2024. link:https://opensource.org/licenses/alphabetical[https://opensource.org/licenses/alphabetical] + +[OSS2024]:: +Open Source Studie 2024; link:https://www.oss-studie.ch/[https://www.oss-studie.ch/] + +[Pe1999]:: +Perens, Bruce. The Open Source Definition. In Open Sources: Voices from the Open Source Revolution. 1999. link:https://www.oreilly.com/openbook/opensources/book/perens.html[https://www.oreilly.com/openbook/opensources/book/perens.html]. + +[SB001]:: +link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/strategien-teilstrategien/strategie-digitale-bundesverwaltung.html[Strategie Digitale Bundesverwaltung] und Transformationsplan. + +[Sc2024]:: +Schlauri, Simon. Charakteristika gängiger Open-Source-Lizenzen. 2024 + +[ScScPo2017]:: +Schlauri, Simon, Schweizer, Samuel, und Poledna, Thomas. 2017. Rechtliche Voraussetzungen Der Nutzung von Open-Source-Software in Der Öffentlichen Verwaltung, Insbesondere des Kantons Bern. Carl Grossmann Verlag. link:http://www.oapen.org/search?identifier=632680[http://www.oapen.org/search?identifier=632680] (26. August 2019). + +[St2011]:: +Straub, Wolfgang. Softwareschutz: Urheberrecht, Patentrecht, Open Source. Zürich: 2011. Dike. link:https://www.it-recht.ch/wp-content/uploads/2014/11/Straub-Softwareschutz-Open-Source-Software-Zurich-2011.pdf[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, Bericht für das EDA. 2024 link:https://arxiv.org/abs/2406.03266[[2406.03266\] Technological Perspective on Digital Sovereignty (arxiv.org)] + +[StGa2018]:: +Stürmer, Matthias, und Gauch, Carole. Open Source Studie Schweiz 2018. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2018. link:https://www.oss-studie.ch/open-source-studie-2018.pdf[https://www.oss-studie.ch/open-source-studie-2018.pdf]. + +[StNu2021]:: +Stürmer, Matthias und Nussbaumer, Jasmin. Open Source Studie Schweiz 2021. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2021. link:https://www.ch-open.ch/open-source-studie-schweiz-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. link:https://dwheeler.com/essays/floss-license-slide.pdf[https://dwheeler.com/essays/floss-license-slide.pdf] + +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-KV]:: +Musterkriterien – Beschaffung und EMBAG. +https://perimap.admin.ch/goto_perimap_file_47064_download.html+ + +Mustervertragstexte – Softwareentwicklung +https://perimap.admin.ch/goto_perimap_file_47059_download.html+ + +[KBB-Perimap]:: +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[Lern und Vorlagenplattform KBB] (Registrierung erforderlich) + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-7[] +[OSBA-VK]:: +Vergabekriterien für die nachhaltige Beschaffung von Open-Source-Software | OSBA – Open Source Business Alliance + +[Sto2024]:: +Fachausweis 3 zu beschaffungsrelevanten Kriterien im Zusammenhang mit dem neuen _Bundesgesetz über den Einsatz elektronischer Mittel zur Erfüllung von Behördenaufgaben (EMBAG) gestützt auf Art. 9 (Open-Source-Software)_ von Reto Stoll, 2024 + +[Stü2015]:: +Open-Source-Geschäftsmodell: Mehrwert des Subskriptionsangebots, 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 für die Beschaffung von Open-Source-Software: +https://www.parldigi.ch/de/sik-e-fuer-beschaffung-von-open-source-software/+, 2015 + +[W012]:: +W012 – Weisungen für die digitale Souveränität in der Bundesverwaltung, V1.0 2025 + +// end::ref-em002-7[] diff --git a/docs/partials/references.en.adoc b/docs/partials/references.en.adoc new file mode 100644 index 0000000..952ae1a --- /dev/null +++ b/docs/partials/references.en.adoc @@ -0,0 +1,231 @@ +// The reference list shared by Em002 and Em002-7. Three tags, not two: +// Em002 prints its references as two separate lists in two separate sections +// -- "References for OSS tools" and "General references" -- with the document +// map wedged between them, so one tag per list is the only way to reproduce +// it. Em002-7's Annex A is the third. +// +// The lists overlap more than they look: [A029], [BoeB] and [DigiV] are in +// both Em002's general list and Annex A, and [BBL-WL], [BBL-CL], [KBB-KV] and +// [KBB-Perimap] are in both Em002's tools list and Annex A. All seven had +// drifted, in the title and in the link form -- Em002 writes `link:url[text]`, +// Annex A writes `+url+`, which renders as inert text. +// +// [KBB-MB] and Annex A's [KKB-MB] were the same information sheet at the same +// URL under two keys, and are now one entry under [KBB-MB]. KBB is +// Kompetenzzentrum Beschaffungswesen Bund, and Annex A's own neighbours are +// [KBB-KV] and [KBB-Perimap], so [KKB-MB] was the typo. Annex A cited +// [KBB-MB] six times without defining it, and [KKB-MB] once. +// +// [BITKOM2023] (Em002) and [BITKOM2024] (Annex A) still look like one source +// under two names and are NOT merged here, because picking a year is the +// document owner's call: same Bitkom guide at the same URL, two years apart. +// +// The section text that follows [KBB-Perimap] in Em002 -- the document map and +// its caption -- is not part of the list and stays in Em002.adoc. +// tag::ref-em002-tools[] +[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): link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] + +[BBL-AGB]:: +GTCs of the Confederation. link:https://www.bkb.admin.ch/bkb/de/home/themen/agb.html[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] + +// end::ref-em002-tools[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[A029]:: +Product standard for office automation (OA) client software +Intranet: link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html[https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-general[] +[BITKOM2023]:: +Leitfaden Open-Source-Software 2.0. Berlin: Bitkom e. V. Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2023. link:https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html[https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html] + +// end::ref-em002-general[] +// tag::ref-em002-7[] +[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 + +// end::ref-em002-7[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[BöB]:: +Federal Act on Public Procurement (PPA) link:https://www.fedlex.admin.ch/eli/oc/2020/126/de[https://www.fedlex.admin.ch/eli/oc/2020/126/de] + +[DigiV]:: +Ordinance on Digital Services and the Digital Transformation in the Federal Administration, DigiO) link:https://www.fedlex.admin.ch/eli/cc/2025/235/de[SR 172.019.1 – Ordinance of 2 April 2025 | Fedlex] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[BBL-WL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[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]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[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 + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-MB]:: +Information sheet: Software procurement and Art. 9 EMOTA, Competence Centre for Federal Public Procurement: + +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html] + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-general[] +[EY2011]:: +Open Source Software im geschäftskritischen Einsatz. Ernst & Young. 2011. link:https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young[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) link:https://www.fedlex.admin.ch/eli/cc/2023/682/de[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. link:https://resources.whitesourcesoftware.com/blog-whitesource/top-open-source-licenses-trends-and-predictions[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. link:https://gnostx.com/wp_gnostx/blog/2024/05/31/selection-criteria-for-enterprise-ready-open-source-software/[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. link:https://softwarefreedom.org/resources/2008/compliance-guide.html[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: link:https://doi.org/10.1111/gove.12690[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. link:https://opensource.org/licenses/alphabetical[https://opensource.org/licenses/alphabetical] + +[OSS2024]:: +Open Source Studie 2024; link:https://www.oss-studie.ch/[https://www.oss-studie.ch/] + +[Pe1999]:: +Perens, Bruce. The Open Source Definition. In Open Sources: Voices from the Open Source Revolution.1999. link:https://www.oreilly.com/openbook/opensources/book/perens.html[https://www.oreilly.com/openbook/opensources/book/perens.html]. + +[SB001]:: +link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/strategien-teilstrategien/strategie-digitale-bundesverwaltung.html[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. link:http://www.oapen.org/search?identifier=632680[http://www.oapen.org/search?identifier=632680] (26 August 2019). + +[St2011]:: +Straub, Wolfgang. Softwareschutz: Urheberrecht, Patentrecht, Open Source. Zurich: 2011. Dike. link:https://www.it-recht.ch/wp-content/uploads/2014/11/Straub-Softwareschutz-Open-Source-Software-Zurich-2011.pdf[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 link:https://arxiv.org/abs/2406.03266[[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. link:https://www.oss-studie.ch/open-source-studie-2018.pdf[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. link:https://www.ch-open.ch/open-source-studie-schweiz-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. link:https://dwheeler.com/essays/floss-license-slide.pdf[https://dwheeler.com/essays/floss-license-slide.pdf] + +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[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+ + +// end::ref-em002-7[] +// The two source documents label this entry differently: Em002 keeps the +// German platform name, Em002-7 translates it. Both are upstream wording, so +// each consuming document keeps its own. +[KBB-Perimap]:: +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[Lern und Vorlagenplattform KBB] (Registration is required) + +// end::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-Perimap]:: +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[CCPP learning and template platform] (Registration is required) + +// end::ref-em002-7[] +// tag::ref-em002-7[] +[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 + +// end::ref-em002-7[] diff --git a/docs/partials/references.fr.adoc b/docs/partials/references.fr.adoc new file mode 100644 index 0000000..7241b1b --- /dev/null +++ b/docs/partials/references.fr.adoc @@ -0,0 +1,200 @@ +// Voir references.en.adoc pour la justification de ce découpage. +// tag::ref-em002-tools[] +[Em002]:: +Em002 Lignes directrices stratégiques pour les logiciels open source dans l'administration fédérale, version 2.0, 2025 + +[Em002-1]:: +Em002-1 Guide pratique pour les logiciels open source dans l'administration fédérale, version 2.0, 2025 + +[Em002-2]:: +Em002-2 Instructions pour la publication de logiciels open source, version 2.0, 2025 + +[Em002-2.1]:: +Em002-2.1 Liste de contrôle Évaluation préalable OSS, version 2.0, 2025 + +[Em002-2.2]:: +Em002-2.2 Liste de contrôle Analyse et préparation OSS, version 2.0, 2025 + +[Em002-2.3]:: +Em002-2.3 Liste de contrôle Validation et publication OSS, version 2, 2025 + +[Em002-3]:: +Em002-3 Guide de licences OSS, version 2.0, 2025 + +[Em002-4]:: +Em002-4 Guide des communautés OSS, version 2.0, 2025 + +[Em002-4.1]:: +Em002-4.1 Liste de contrôle Communauté OSS, version 2.0, 2025 + +[Em002-5]:: +Em002-5 Aide-mémoire Outils OSS, version 2.0, 2025 + +[Em002-6]:: +Em002-6 Foire aux questions sur la publication d'OSS (FAQ-OSS), version 2.0, 2025 + +[Em002-7]:: +Em002-7 Aspects stratégiques des achats et des logiciels open source, version 2.0, 2025 + +[BBL-WZK]:: +Les aide-mémoire destinés aux services demandeurs de l'OFCL figurent dans la boîte à outils correspondante (en allemand) : link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] + +[BBL-AGB]:: +CG de la Confédération. link:https://www.bkb.admin.ch/bkb/de/home/themen/agb.html[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] + +// end::ref-em002-tools[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[A029]:: +Standard de produit pour les logiciels clients de bureautique +Intranet : link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html[https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-general[] +[BITKOM2023]:: +Leitfaden Open-Source-Software 2.0. Berlin: Bitkom e. V. Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2023. link:https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html[https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html] + +// end::ref-em002-general[] +// tag::ref-em002-7[] +[BBL2015]:: +Aide-mémoire : appels d'offres de logiciels : garantir une large concurrence ; 2015 ; n'est plus en vigueur + +[BITKOM2024]:: +Leitfaden Open-Source-Software 2.0. 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 + +// end::ref-em002-7[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[BöB]:: +Loi fédérale sur les marchés publics (LMP) link:https://www.fedlex.admin.ch/eli/oc/2020/126/fr[https://www.fedlex.admin.ch/eli/oc/2020/126/fr] + +[DigiV]:: +Ordonnance sur les prestations numériques et la transformation numérique au sein de l'administration fédérale (ONum) link:https://www.fedlex.admin.ch/eli/cc/2025/235/fr[RS 172.019.1 – Ordonnance du 2 avril 2025 | Fedlex] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[BBL-WL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[Directives Open Source dans les acquisitions], OFCL ; 2025 + +Aide à la décision pour les acheteurs dans les projets présentant une possible pertinence OSS. Contient des informations sur la mise en œuvre correcte dans les appels d'offres et les contrats. (PDF) + +Accessible uniquement aux services fédéraux sur l'intranet de la Confédération + +[BBL-CL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[Liste de contrôle pour l'exception forfaitaire selon l'art. 9 LMETA], OFCL, 2025, + +Aide à examiner et à documenter si, dans un cas d'espèce, il est possible de renoncer à la publication d'un logiciel développé. (DOCX) + +Accessible uniquement aux services fédéraux sur l'intranet de la Confédération + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-MB]:: +Aide-mémoire : acquisition de logiciels et art. 9 LMETA, Centre de compétence des marchés publics de la Confédération : + +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html] + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-general[] +[EY2011]:: +Open Source Software im geschäftskritischen Einsatz. Ernst & Young. 2011. link:https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young[https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young]. + +[EMBAG2023]:: +172.019 Loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA) link:https://www.fedlex.admin.ch/eli/cc/2023/682/fr[https://www.fedlex.admin.ch/eli/cc/2023/682/fr] + +[Fr2012]:: +Fröhlich-Bleuler, Gianni. Open Source Compliance. Jusletter 12 novembre 2012. + +[Ga2021]:: +Gartner for Application and Software Engineering Leaders Tool: Open Source Software Governance Policy Template. Gartner, mars 2021 + +[GoAy2022]:: +Goldstein, Ayala. Top 10 Open Source Licenses in 2022: Trends and Predictions. 2022. link:https://resources.whitesourcesoftware.com/blog-whitesource/top-open-source-licenses-trends-and-predictions[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. link:https://gnostx.com/wp_gnostx/blog/2024/05/31/selection-criteria-for-enterprise-ready-open-source-software/[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, et Metzger, Alex. Open Source Software: Rechtliche Rahmenbedingungen der Freien Software. 4e éd. Munich: C.H.Beck. 2016 + +[KuWiSa2008]:: +Kuhn, Bradley M., Williamson, Aaron; et Sandler, Karen M. A Practical Guide to GPL Compliance. Software Freedom Law Center. 2008. link:https://softwarefreedom.org/resources/2008/compliance-guide.html[https://softwarefreedom.org/resources/2008/compliance-guide.html] + +[LaOp2023]:: +Lambach, D. et Oppermann, K.. Narratives of digital sovereignty in German political discourse', Governance, 36(3), p. 693–709. 2023. Disponible à l'adresse : link:https://doi.org/10.1111/gove.12690[https://doi.org/10.1111/gove.12690] + +[LaWu2022]:: +Laux, Christian et Wüst, Anja. Datensouveränität – Was es zur Begriffsklärung braucht. Swiss Data Alliance. Version 1.0. Juillet 2022 + +[Le2023]:: +Lehmann, David. Erfahrungen mit Open Source Freigabe beim BIT. Présentation du 18 septembre 2023 + +[OSI2024]:: +Open Source Initiative. Open Source Licenses by Name. 2024. link:https://opensource.org/licenses/alphabetical[https://opensource.org/licenses/alphabetical] + +[OSS2024]:: +Open Source Studie 2024; link:https://www.oss-studie.ch/[https://www.oss-studie.ch/] + +[Pe1999]:: +Perens, Bruce. The Open Source Definition. In Open Sources: Voices from the Open Source Revolution. 1999. link:https://www.oreilly.com/openbook/opensources/book/perens.html[https://www.oreilly.com/openbook/opensources/book/perens.html]. + +[SB001]:: +link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/strategien-teilstrategien/strategie-digitale-bundesverwaltung.html[Stratégie Administration fédérale numérique] et plan de transformation. + +[Sc2024]:: +Schlauri, Simon. Charakteristika gängiger Open-Source-Lizenzen. 2024 + +[ScScPo2017]:: +Schlauri, Simon, Schweizer, Samuel, et Poledna, Thomas. 2017. Rechtliche Voraussetzungen Der Nutzung von Open-Source-Software in Der Öffentlichen Verwaltung, Insbesondere des Kantons Bern. Carl Grossmann Verlag. link:http://www.oapen.org/search?identifier=632680[http://www.oapen.org/search?identifier=632680] (26 août 2019). + +[St2011]:: +Straub, Wolfgang. Softwareschutz: Urheberrecht, Patentrecht, Open Source. Zurich: 2011. Dike. link:https://www.it-recht.ch/wp-content/uploads/2014/11/Straub-Softwareschutz-Open-Source-Software-Zurich-2011.pdf[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, rapport pour le DFAE. 2024 link:https://arxiv.org/abs/2406.03266[[2406.03266\] Technological Perspective on Digital Sovereignty (arxiv.org)] + +[StGa2018]:: +Stürmer, Matthias, et Gauch, Carole. Open Source Studie Schweiz 2018. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2018. link:https://www.oss-studie.ch/open-source-studie-2018.pdf[https://www.oss-studie.ch/open-source-studie-2018.pdf]. + +[StNu2021]:: +Stürmer, Matthias et Nussbaumer, Jasmin. Open Source Studie Schweiz 2021. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2021. link:https://www.ch-open.ch/open-source-studie-schweiz-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. link:https://dwheeler.com/essays/floss-license-slide.pdf[https://dwheeler.com/essays/floss-license-slide.pdf] + +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-KV]:: +Critères types — Acquisition et LMETA. +https://perimap.admin.ch/goto_perimap_file_47064_download.html+ + +Textes contractuels types — Développement logiciel +https://perimap.admin.ch/goto_perimap_file_47059_download.html+ + +[KBB-Perimap]:: +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[Plateforme d'apprentissage et de modèles du CCMP] (inscription requise) + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-7[] +[OSBA-VK]:: +Critères d'adjudication pour l'acquisition durable de logiciels open source | OSBA — Open Source Business Alliance + +[Sto2024]:: +Brevet de compétence 3 relatif aux critères pertinents pour les acquisitions en lien avec la nouvelle _loi fédérale sur l'utilisation des moyens électroniques pour l'exécution des tâches des autorités (LMETA), fondée sur l'art. 9 (logiciels open source)_ de Reto Stoll, 2024 + +[Stü2015]:: +Modèle d'affaires open source : valeur ajoutée de l'offre d'abonnement, 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 pour l'acquisition de logiciels open source : +https://www.parldigi.ch/de/sik-e-fuer-beschaffung-von-open-source-software/+, 2015 + +[W012]:: +W012 — Directives pour la souveraineté numérique au sein de l'administration fédérale, V1.0 2025 + +// end::ref-em002-7[] diff --git a/docs/partials/references.it.adoc b/docs/partials/references.it.adoc new file mode 100644 index 0000000..0915941 --- /dev/null +++ b/docs/partials/references.it.adoc @@ -0,0 +1,200 @@ +// Cfr. references.en.adoc per la motivazione di questa suddivisione. +// tag::ref-em002-tools[] +[Em002]:: +Em002 Linee guida strategiche per il software open source nell'Amministrazione federale, versione 2.0, 2025 + +[Em002-1]:: +Em002-1 Guida pratica per il software open source nell'Amministrazione federale, versione 2.0, 2025 + +[Em002-2]:: +Em002-2 Istruzioni per la pubblicazione di software open source, versione 2.0, 2025 + +[Em002-2.1]:: +Em002-2.1 Lista di controllo Valutazione preliminare OSS, versione 2.0, 2025 + +[Em002-2.2]:: +Em002-2.2 Lista di controllo Analisi e preparazione OSS, versione 2.0, 2025 + +[Em002-2.3]:: +Em002-2.3 Lista di controllo Rilascio e pubblicazione OSS, versione 2, 2025 + +[Em002-3]:: +Em002-3 Guida alle licenze OSS, versione 2.0, 2025 + +[Em002-4]:: +Em002-4 Guida alle community OSS, versione 2.0, 2025 + +[Em002-4.1]:: +Em002-4.1 Lista di controllo Community OSS, versione 2.0, 2025 + +[Em002-5]:: +Em002-5 Promemoria Strumenti OSS, versione 2.0, 2025 + +[Em002-6]:: +Em002-6 Domande frequenti sulla pubblicazione di OSS (FAQ-OSS), versione 2.0, 2025 + +[Em002-7]:: +Em002-7 Aspetti strategici degli acquisti e del software open source, versione 2.0, 2025 + +[BBL-WZK]:: +I promemoria per i servizi richiedenti dell'UFCL si trovano nella corrispondente cassetta degli attrezzi (in tedesco): link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] + +[BBL-AGB]:: +CG della Confederazione. link:https://www.bkb.admin.ch/bkb/de/home/themen/agb.html[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] + +// end::ref-em002-tools[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[A029]:: +Standard di prodotto per il software client di automazione d'ufficio +Intranet: link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html[https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-general[] +[BITKOM2023]:: +Leitfaden Open-Source-Software 2.0. Berlin: Bitkom e. V. Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2023. link:https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html[https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html] + +// end::ref-em002-general[] +// tag::ref-em002-7[] +[BBL2015]:: +Promemoria: bandi di software: garantire un'ampia concorrenza; 2015; non più in vigore + +[BITKOM2024]:: +Leitfaden Open-Source-Software 2.0. 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 + +// end::ref-em002-7[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[BöB]:: +Legge federale sugli appalti pubblici (LAPub) link:https://www.fedlex.admin.ch/eli/oc/2020/126/it[https://www.fedlex.admin.ch/eli/oc/2020/126/it] + +[DigiV]:: +Ordinanza sulle prestazioni digitali e sulla trasformazione digitale nell'Amministrazione federale (ODigit) link:https://www.fedlex.admin.ch/eli/cc/2025/235/it[RS 172.019.1 – Ordinanza del 2 aprile 2025 | Fedlex] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[BBL-WL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[Direttive Open Source negli acquisti], UFCL; 2025 + +Ausilio decisionale per gli acquirenti in progetti con possibile rilevanza OSS. Contiene informazioni sulla corretta attuazione in bandi e contratti. (PDF) + +Accessibile soltanto ai servizi federali sull'intranet della Confederazione + +[BBL-CL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[Lista di controllo per l'eccezione forfettaria secondo l'art. 9 LMeCA], UFCL, 2025, + +Aiuta a esaminare e documentare se, nel singolo caso, si può rinunciare alla pubblicazione del software sviluppato. (DOCX) + +Accessibile soltanto ai servizi federali sull'intranet della Confederazione + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-MB]:: +Promemoria: acquisto di software e art. 9 LMeCA, Centro di competenza per gli acquisti pubblici della Confederazione: + +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html] + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-general[] +[EY2011]:: +Open Source Software im geschäftskritischen Einsatz. Ernst & Young. 2011. link:https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young[https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young]. + +[EMBAG2023]:: +172.019 Legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA) link:https://www.fedlex.admin.ch/eli/cc/2023/682/it[https://www.fedlex.admin.ch/eli/cc/2023/682/it] + +[Fr2012]:: +Fröhlich-Bleuler, Gianni. Open Source Compliance. Jusletter 12 novembre 2012. + +[Ga2021]:: +Gartner for Application and Software Engineering Leaders Tool: Open Source Software Governance Policy Template. Gartner, marzo 2021 + +[GoAy2022]:: +Goldstein, Ayala. Top 10 Open Source Licenses in 2022: Trends and Predictions. 2022. link:https://resources.whitesourcesoftware.com/blog-whitesource/top-open-source-licenses-trends-and-predictions[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. link:https://gnostx.com/wp_gnostx/blog/2024/05/31/selection-criteria-for-enterprise-ready-open-source-software/[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, e Metzger, Alex. Open Source Software: Rechtliche Rahmenbedingungen der Freien Software. 4a ed. Monaco: C.H.Beck. 2016 + +[KuWiSa2008]:: +Kuhn, Bradley M., Williamson, Aaron; e Sandler, Karen M. A Practical Guide to GPL Compliance. Software Freedom Law Center. 2008. link:https://softwarefreedom.org/resources/2008/compliance-guide.html[https://softwarefreedom.org/resources/2008/compliance-guide.html] + +[LaOp2023]:: +Lambach, D. e Oppermann, K.. Narratives of digital sovereignty in German political discourse', Governance, 36(3), pagg. 693–709. 2023. Disponibile all'indirizzo: link:https://doi.org/10.1111/gove.12690[https://doi.org/10.1111/gove.12690] + +[LaWu2022]:: +Laux, Christian e Wüst, Anja. Datensouveränität – Was es zur Begriffsklärung braucht. Swiss Data Alliance. Versione 1.0. Luglio 2022 + +[Le2023]:: +Lehmann, David. Erfahrungen mit Open Source Freigabe beim BIT. Presentazione del 18 settembre 2023 + +[OSI2024]:: +Open Source Initiative. Open Source Licenses by Name. 2024. link:https://opensource.org/licenses/alphabetical[https://opensource.org/licenses/alphabetical] + +[OSS2024]:: +Open Source Studie 2024; link:https://www.oss-studie.ch/[https://www.oss-studie.ch/] + +[Pe1999]:: +Perens, Bruce. The Open Source Definition. In Open Sources: Voices from the Open Source Revolution. 1999. link:https://www.oreilly.com/openbook/opensources/book/perens.html[https://www.oreilly.com/openbook/opensources/book/perens.html]. + +[SB001]:: +link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/strategien-teilstrategien/strategie-digitale-bundesverwaltung.html[Strategia Amministrazione federale digitale] e piano di trasformazione. + +[Sc2024]:: +Schlauri, Simon. Charakteristika gängiger Open-Source-Lizenzen. 2024 + +[ScScPo2017]:: +Schlauri, Simon, Schweizer, Samuel, e Poledna, Thomas. 2017. Rechtliche Voraussetzungen Der Nutzung von Open-Source-Software in Der Öffentlichen Verwaltung, Insbesondere des Kantons Bern. Carl Grossmann Verlag. link:http://www.oapen.org/search?identifier=632680[http://www.oapen.org/search?identifier=632680] (26 agosto 2019). + +[St2011]:: +Straub, Wolfgang. Softwareschutz: Urheberrecht, Patentrecht, Open Source. Zurigo: 2011. Dike. link:https://www.it-recht.ch/wp-content/uploads/2014/11/Straub-Softwareschutz-Open-Source-Software-Zurich-2011.pdf[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, rapporto per il DFAE. 2024 link:https://arxiv.org/abs/2406.03266[[2406.03266\] Technological Perspective on Digital Sovereignty (arxiv.org)] + +[StGa2018]:: +Stürmer, Matthias, e Gauch, Carole. Open Source Studie Schweiz 2018. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2018. link:https://www.oss-studie.ch/open-source-studie-2018.pdf[https://www.oss-studie.ch/open-source-studie-2018.pdf]. + +[StNu2021]:: +Stürmer, Matthias e Nussbaumer, Jasmin. Open Source Studie Schweiz 2021. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2021. link:https://www.ch-open.ch/open-source-studie-schweiz-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. link:https://dwheeler.com/essays/floss-license-slide.pdf[https://dwheeler.com/essays/floss-license-slide.pdf] + +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-KV]:: +Criteri tipo — Acquisto e LMeCA. +https://perimap.admin.ch/goto_perimap_file_47064_download.html+ + +Testi contrattuali tipo — Sviluppo software +https://perimap.admin.ch/goto_perimap_file_47059_download.html+ + +[KBB-Perimap]:: +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[Piattaforma di apprendimento e modelli del CCAP] (è necessaria la registrazione) + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-7[] +[OSBA-VK]:: +Criteri di aggiudicazione per l'acquisto sostenibile di software open source | OSBA — Open Source Business Alliance + +[Sto2024]:: +Attestato di competenza 3 sui criteri rilevanti per gli acquisti in relazione alla nuova _legge federale sull'impiego di mezzi elettronici per l'adempimento dei compiti delle autorità (LMeCA), fondata sull'art. 9 (software open source)_ di Reto Stoll, 2024 + +[Stü2015]:: +Modello di business open source: valore aggiunto dell'offerta di abbonamento, 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 per l'acquisto di software open source: +https://www.parldigi.ch/de/sik-e-fuer-beschaffung-von-open-source-software/+, 2015 + +[W012]:: +W012 — Direttive per la sovranità digitale nell'Amministrazione federale, V1.0 2025 + +// end::ref-em002-7[] diff --git a/docs/partials/references.rm.adoc b/docs/partials/references.rm.adoc new file mode 100644 index 0000000..de3b1a8 --- /dev/null +++ b/docs/partials/references.rm.adoc @@ -0,0 +1,200 @@ +// Vesair references.en.adoc per la motivaziun da questa repartiziun. +// tag::ref-em002-tools[] +[Em002]:: +Em002 Directivas strategicas per software open source en l'administraziun federala, versiun 2.0, 2025 + +[Em002-1]:: +Em002-1 Guida pratica per software open source en l'administraziun federala, versiun 2.0, 2025 + +[Em002-2]:: +Em002-2 Instrucziuns per publitgar software open source, versiun 2.0, 2025 + +[Em002-2.1]:: +Em002-2.1 Glista da controlla Evaluaziun preliminara OSS, versiun 2.0, 2025 + +[Em002-2.2]:: +Em002-2.2 Glista da controlla Analisa e preparaziun OSS, versiun 2.0, 2025 + +[Em002-2.3]:: +Em002-2.3 Glista da controlla Relaschada e publicaziun OSS, versiun 2, 2025 + +[Em002-3]:: +Em002-3 Guida da licenzas OSS, versiun 2.0, 2025 + +[Em002-4]:: +Em002-4 Guida da communitads OSS, versiun 2.0, 2025 + +[Em002-4.1]:: +Em002-4.1 Glista da controlla Communitad OSS, versiun 2.0, 2025 + +[Em002-5]:: +Em002-5 Fegl d'infurmaziun Meds OSS, versiun 2.0, 2025 + +[Em002-6]:: +Em002-6 Dumondas frequentas davart la publicaziun da l'OSS (FAQ-OSS), versiun 2.0, 2025 + +[Em002-7]:: +Em002-7 Aspects strategics da l'acquist e dal software open source, versiun 2.0, 2025 + +[BBL-WZK]:: +Fegls d'infurmaziun per ils posts da basegn da l'UFCL sa chattan en la chascha d'utensilis correspundenta (per tudestg): link:https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html[https://intranet.bbl.admin.ch/bbl_kp/de/home/informatik/beschaffung-buerotechnik-informatik-des-bbl/werkzeugkasten.html] + +[BBL-AGB]:: +CGC da la Confederaziun. link:https://www.bkb.admin.ch/bkb/de/home/themen/agb.html[https://www.bkb.admin.ch/bkb/de/home/themen/agb.html] + +// end::ref-em002-tools[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[A029]:: +Standard da product per software da client d'automatisaziun da biro +Intranet: link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html[https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/standards/a029-bab_client_software.html] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-general[] +[BITKOM2023]:: +Leitfaden Open-Source-Software 2.0. Berlin: Bitkom e. V. Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e. V. BIT-KOM. 2023. link:https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html[https://www.bitkom.org/Bitkom/Publikationen/Bitkom-Leitfaden-zu-Open-Source-Software-20.html] + +// end::ref-em002-general[] +// tag::ref-em002-7[] +[BBL2015]:: +Fegl d'infurmaziun: Concurs da software: garantir ina vasta concurrenza; 2015; betg pli en vigur + +[BITKOM2024]:: +Leitfaden Open-Source-Software 2.0. 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 + +// end::ref-em002-7[] +// tag::ref-em002-general[] +// tag::ref-em002-7[] +[BöB]:: +Lescha federala davart l'acquist public (LAPub) link:https://www.fedlex.admin.ch/eli/oc/2020/126/de[https://www.fedlex.admin.ch/eli/oc/2020/126/de] + +[DigiV]:: +Ordinaziun davart las prestaziuns digitalas e la transformaziun digitala en l'administraziun federala (DigiV) link:https://www.fedlex.admin.ch/eli/cc/2025/235/de[CS 172.019.1 – Ordinaziun dals 2 d'avrigl 2025 | Fedlex] + +// end::ref-em002-7[] +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[BBL-WL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf.download.pdf/Wegleitung%20Open%20Source%20in%20der%20Beschaffung.pdf[Directiva Open Source en l'acquist], UFCL; 2025 + +Agid da decisiun per cumpraders en projects cun ina pussaivla relevanza OSS. Cuntegna infurmaziuns davart la realisaziun correcta en concurs ed en contracts. (PDF) + +Accessibel mo per posts federals en l'intranet da la Confederaziun + +[BBL-CL]:: +link:https://intranet.bbl.admin.ch/dam/bbl_kp/de/dokumente/informatik/Werkzeugkiste/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx.download.docx/Checkliste%20Integral-Ausnahme%20Art.%209%20EMBAG.docx[Glista da controlla excepziun integrala art. 9 EMBAG], UFCL, 2025, + +Gida tar l'examinaziun e la documentaziun, sch'i po vegnir renunzià en il cas singul a la publicaziun dal software sviluppà. (DOCX) + +Accessibel mo per posts federals en l'intranet da la Confederaziun + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-MB]:: +Fegl d'infurmaziun: acquist da software ed art. 9 EMBAG, Center da cumpetenza per l'acquist public da la Confederaziun: + +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[https://perimap.admin.ch/goto_perimap_file_46835_download.html] + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-general[] +[EY2011]:: +Open Source Software im geschäftskritischen Einsatz. Ernst & Young. 2011. link:https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young[https://www.yumpu.com/de/document/read/23276493/open-source-software-ernst-young]. + +[EMBAG2023]:: +172.019 Lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG) link:https://www.fedlex.admin.ch/eli/cc/2023/682/rm[https://www.fedlex.admin.ch/eli/cc/2023/682/rm] + +[Fr2012]:: +Fröhlich-Bleuler, Gianni. Open Source Compliance. Jusletter ils 12 da november 2012. + +[Ga2021]:: +Gartner for Application and Software Engineering Leaders Tool: Open Source Software Governance Policy Template. Gartner, mars 2021 + +[GoAy2022]:: +Goldstein, Ayala. Top 10 Open Source Licenses in 2022: Trends and Predictions. 2022. link:https://resources.whitesourcesoftware.com/blog-whitesource/top-open-source-licenses-trends-and-predictions[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. link:https://gnostx.com/wp_gnostx/blog/2024/05/31/selection-criteria-for-enterprise-ready-open-source-software/[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, e Metzger, Alex. Open Source Software: Rechtliche Rahmenbedingungen der Freien Software. 4. ed. Minca: C.H.Beck. 2016 + +[KuWiSa2008]:: +Kuhn, Bradley M., Williamson, Aaron; e Sandler, Karen M. A Practical Guide to GPL Compliance. Software Freedom Law Center. 2008. link:https://softwarefreedom.org/resources/2008/compliance-guide.html[https://softwarefreedom.org/resources/2008/compliance-guide.html] + +[LaOp2023]:: +Lambach, D. ed Oppermann, K.. Narratives of digital sovereignty in German political discourse', Governance, 36(3), p. 693–709. 2023. Disponibel sut: link:https://doi.org/10.1111/gove.12690[https://doi.org/10.1111/gove.12690] + +[LaWu2022]:: +Laux, Christian e Wüst, Anja. Datensouveränität – Was es zur Begriffsklärung braucht. Swiss Data Alliance. Versiun 1.0. Fanadur 2022 + +[Le2023]:: +Lehmann, David. Erfahrungen mit Open Source Freigabe beim BIT. Preschentaziun dals 18 da settember 2023 + +[OSI2024]:: +Open Source Initiative. Open Source Licenses by Name. 2024. link:https://opensource.org/licenses/alphabetical[https://opensource.org/licenses/alphabetical] + +[OSS2024]:: +Open Source Studie 2024; link:https://www.oss-studie.ch/[https://www.oss-studie.ch/] + +[Pe1999]:: +Perens, Bruce. The Open Source Definition. In Open Sources: Voices from the Open Source Revolution. 1999. link:https://www.oreilly.com/openbook/opensources/book/perens.html[https://www.oreilly.com/openbook/opensources/book/perens.html]. + +[SB001]:: +link:https://intranet.dti.bk.admin.ch/isb_kp/de/home/ikt-vorgaben/strategien-teilstrategien/strategie-digitale-bundesverwaltung.html[Strategia Administraziun federala digitala] e plan da transformaziun. + +[Sc2024]:: +Schlauri, Simon. Charakteristika gängiger Open-Source-Lizenzen. 2024 + +[ScScPo2017]:: +Schlauri, Simon, Schweizer, Samuel, e Poledna, Thomas. 2017. Rechtliche Voraussetzungen Der Nutzung von Open-Source-Software in Der Öffentlichen Verwaltung, Insbesondere des Kantons Bern. Carl Grossmann Verlag. link:http://www.oapen.org/search?identifier=632680[http://www.oapen.org/search?identifier=632680] (26 d'avust 2019). + +[St2011]:: +Straub, Wolfgang. Softwareschutz: Urheberrecht, Patentrecht, Open Source. Turitg: 2011. Dike. link:https://www.it-recht.ch/wp-content/uploads/2014/11/Straub-Softwareschutz-Open-Source-Software-Zurich-2011.pdf[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, rapport per il DFAE. 2024 link:https://arxiv.org/abs/2406.03266[[2406.03266\] Technological Perspective on Digital Sovereignty (arxiv.org)] + +[StGa2018]:: +Stürmer, Matthias, e Gauch, Carole. Open Source Studie Schweiz 2018. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2018. link:https://www.oss-studie.ch/open-source-studie-2018.pdf[https://www.oss-studie.ch/open-source-studie-2018.pdf]. + +[StNu2021]:: +Stürmer, Matthias e Nussbaumer, Jasmin. Open Source Studie Schweiz 2021. Forschungsstelle Digitale Nachhaltigkeit der Universität Bern. 2021. link:https://www.ch-open.ch/open-source-studie-schweiz-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. link:https://dwheeler.com/essays/floss-license-slide.pdf[https://dwheeler.com/essays/floss-license-slide.pdf] + +// end::ref-em002-general[] +// tag::ref-em002-tools[] +// tag::ref-em002-7[] +[KBB-KV]:: +Criteris models – Acquist ed EMBAG. +https://perimap.admin.ch/goto_perimap_file_47064_download.html+ + +Texts da contract models – Svilup da software +https://perimap.admin.ch/goto_perimap_file_47059_download.html+ + +[KBB-Perimap]:: +link:https://perimap.admin.ch/goto_perimap_file_46835_download.html[Plattafurma d'emprender e da models dal CCA] (ina registraziun è necessaria) + +// end::ref-em002-7[] +// end::ref-em002-tools[] +// tag::ref-em002-7[] +[OSBA-VK]:: +Criteris d'attribuziun per l'acquist persistent da software open source | OSBA – Open Source Business Alliance + +[Sto2024]:: +Attestat da cumpetenza 3 davart criteris relevants per l'acquist en connex cun la nova _lescha federala davart l'utilisaziun da meds electronics per ademplir incumbensas d'autoritads (EMBAG), sa basond sin l'art. 9 (software open source)_ da Reto Stoll, 2024 + +[Stü2015]:: +Model da fatschenta open source: plivalur da la purschida d'abunament, 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 per l'acquist da software open source: +https://www.parldigi.ch/de/sik-e-fuer-beschaffung-von-open-source-software/+, 2015 + +[W012]:: +W012 – Directivas per la suveranitad digitala en l'administraziun federala, V1.0 2025 + +// end::ref-em002-7[] diff --git a/publiccode.yml b/publiccode.yml index 7ee0694..b931fb6 100644 --- a/publiccode.yml +++ b/publiccode.yml @@ -46,7 +46,12 @@ description: - Documentation - Open Source Knowledge screenshots: - - https://github.com/swiss/opensource-guidelines/blob/e173972f2119e46d38e017064544d179e69805eb/docs/en/assets/em002-1/media/image1.png + # A page of the rendered Em002, not a source asset: it shows what this + # repository actually produces. The previous entry pointed at a diagram + # PNG through a `/blob/` URL, which serves an HTML page rather than an + # image, and at a bitmap that no longer exists now that the diagrams are + # generated from the AsciiDoc sources. + - https://raw.githubusercontent.com/swiss/opensource-guidelines/main/docs/assets/screenshots/document-map.png legal: license: CC0-1.0 maintenance: @@ -60,4 +65,5 @@ localisation: - de-CH - fr-CH - it-CH + - rm-CH - en diff --git a/tools/check-asciidoc.sh b/tools/check-asciidoc.sh new file mode 100755 index 0000000..ea3bb8e --- /dev/null +++ b/tools/check-asciidoc.sh @@ -0,0 +1,276 @@ +#!/usr/bin/env bash +# +# Fail on AsciiDoc that does not parse, on cross-references that do not +# resolve, and on citations with no reference entry. +# +# tools/check-asciidoc.sh [file.adoc...] +# +# With no arguments, checks every tracked .adoc; the git hook passes the files +# it is about to commit. +# +# git-hooks.nix ships no AsciiDoc linter, and the render pipeline is the only +# thing that reads these files -- so without this, a broken include or an +# unterminated block is first noticed by the CI render matrix, several minutes +# and five parallel jobs later. asciidoctor parses in well under a second per +# document, so the same class of mistake can be caught at commit time. +# +# Every document is checked once per language. The bodies are five +# `ifeval::["{lang}" == ""]` blocks, so a conditional left unterminated in +# the Romansh block is simply invisible while parsing as English, which is what +# a single default-language pass would do. +# +# Runs from the repository root. Both checks below resolve paths from there, and +# it is where prek invokes this in the hook and in CI. + +set -euo pipefail + +here=$(dirname "${BASH_SOURCE[0]}") +here=$(cd "${here}" && pwd) +root=$(cd "${here}/.." && pwd) +cd "${root}" + +# The five languages render-docs builds. A document that opts out of one with +# `:l10n-languages:` still has to parse in it -- the guards just yield an empty +# body -- so there is no reason to read that attribute here. +languages=(en de fr it rm) + +files=() +if [[ "$#" -gt 0 ]]; then + files=("${@}") +else + tracked=$(git ls-files '*.adoc') + while IFS= read -r file; do + [[ -n "${file}" ]] || continue + files+=("${file}") + done <<<"${tracked}" +fi + +if [[ "${#files[@]}" -eq 0 ]]; then + exit 0 +fi + +status=0 + +# --------------------------------------------------------------------------- +# Parse, convert, and fail on anything asciidoctor diagnoses at INFO or above. +# --------------------------------------------------------------------------- +# +# `--out-file -` with stdout thrown away, not `--out-file /dev/null`: asciidoctor +# special-cases that one path and returns the loaded document *without ever +# converting it* -- lib/asciidoctor/convert.rb reads +# +# when '/dev/null' then return load input, options +# +# so nothing the converter diagnoses could reach this gate at any +# --failure-level. An unresolved <> is diagnosed during conversion, which +# is why this used to be documented as out of reach: the symptom was real, the +# explanation was not. Converting for real and discarding the HTML costs nothing +# measurable (2.5s either way across the whole repository), because the parse is +# the expensive half. +# +# `--failure-level=INFO` and `--verbose` are then both needed, for different +# reasons: an unresolved cross-reference is logged at INFO, so INFO has to be +# fatal *and* has to be logged at all. asciidoctor has no --log-level; -v / +# --verbose is its only lever on the logger, and it lowers the threshold to +# DEBUG. WARN stays fatal as before -- asciidoctor otherwise prints +# "unterminated listing block" and still exits 0. +# +# Lowering the threshold to DEBUG also turns on 35 lines per language that +# open-govpress's own extensions provoke ("unknown style for literal block: +# mermaid", "unknown name for block macro: field", ditto "signature"): plain +# asciidoctor has no such extensions, so it says so, once per block. Those are +# filtered out rather than explained away in this comment, because DEBUG sits +# below INFO and can therefore never change the exit code -- the lines are noise +# by construction, and 175 of them per run would train people to stop reading +# this gate's output. The filter keys on the level label, not on the three +# messages, so a fourth open-govpress extension needs no change here and nothing +# that could ever fail the gate is hidden. +# +# One asciidoctor per language rather than per file-and-language: Ruby startup +# dominates (0.29s per invocation, whatever the document's size), so batching the +# whole repository costs 2.5s where 100 separate runs cost 29s. The price is +# paid by exactly one message: the INFO line for an unresolved cross-reference +# reads "possible invalid reference: " and names no file and no line, so a +# batched failure says which reference dangles but not where. That is worth 26 +# seconds a commit, because the key is its own locator -- `git grep -n '<&1 >/dev/null + } | { grep -v ': DEBUG: ' >&2 || true; }; then + echo "check-asciidoc.sh: failed to check as '${lang}'" >&2 + status=1 + fi +done + +# --------------------------------------------------------------------------- +# Every cited reference key has a reference entry defining it. +# --------------------------------------------------------------------------- +# +# The check above cannot do this and no log level makes it: a citation is the +# literal text `[St2024]`, and a reference entry is a description-list term +# `[St2024]::` (or, once the lists are centralised, a bibliography anchor +# `[[[St2024]]]`). Nothing connects the two, so a citation whose entry was never +# written -- or, now that the lists are moving into tagged partials, whose entry +# a `tags=` selector did not select -- renders as a bracketed label pointing at +# nothing, in silence, in asciidoctor and in open-govpress alike. +# +# asciidoctor-reducer resolves the includes and the `ifeval::` guards and prints +# the flattened source, which is the only honest way to ask what a given language +# actually ends up containing: it applies the same tag selection that will +# silently drop an entry, so a mis-tagged include shows up here as the citation +# losing its definition. It ships with the asciidoctor package devenv.nix +# already pulls in. +# +# Always the whole tracked corpus, whatever arguments were passed, because a +# citation and its entry live in different documents: only Em002 and Em002-7 +# carry reference lists, and every other document says so in prose ("The +# references ... can be found in the Em002 Strategic Guidelines"). Checking a +# document against its own entries alone would report every citation in Em002-1. +# The flip side is that this cannot catch an entry that went missing from one +# list while another list still defines the key. +marker='// check-asciidoc: file ' + +manifest='' +tracked=$(git ls-files '*.adoc') +while IFS= read -r file; do + [[ -n "${file}" ]] || continue + # Fragments are not documents -- render-docs and site-index.sh exclude them + # too. They are read through the documents that include them, which is the + # point: that is where the tag selection happens. + case "${file}" in + docs/partials/*) continue ;; + *) ;; + esac + manifest+="${marker}${file}"$'\n' + manifest+="include::${file}[]"$'\n' +done <<<"${tracked}" + +# The classes are negated rather than spelled [[:alpha:]] and [[:alnum:]] so that +# the umlaut in [BöB] is a key character whether awk reads characters (a UTF-8 +# locale) or bytes (the C locale a bare CI runner hands it). +# +# A bracketed token is a citation only when what precedes it is prose. The text +# of an inline macro looks identical -- `link:em002-2.pdf[Em002-2]` -- but the +# bracket there follows the macro target, so requiring a blank, a `_`, an opening +# quote or the start of the line in front of it separates the two. A line that is +# nothing but `[...]` is a block attribute list, never a citation. +# +# Inside a footnote the closing bracket is written `\]`, because Asciidoctor ends +# the footnote at the first bare one. The backslash belongs to the escape and not +# to the key, so it is dropped along with the bracket. +program=$( + cat <<'AWK' +BEGIN { + keychar = "[^][:space:],;:=%#*<>&+/\"'?!()|[]" + keystart = "[^][:space:],;:=%#*<>&+/\"'?!()|.0-9_[-]" + key = keystart keychar "*" + entry_dl = "^\\[" key "\\]::" + entry_bib = "^\\[\\[\\[" key "\\]\\]\\]" + citation = "(^|[[:space:]_(\"'])\\[" key "\\]" +} + +index($0, marker) == 1 { file = substr($0, length(marker) + 1); next } + +# A comment renders as nothing, so a key inside one is not a citation. The +# partials discuss their own keys in their headers, which would otherwise read +# as a dozen citations apiece. +$0 ~ /^\/\/\/\/+[[:space:]]*$/ { commented = !commented; next } +commented { next } +$0 ~ /^\/\// { next } + +$0 ~ entry_bib { k = $0; sub(/^\[\[\[/, "", k); sub(/\]\]\].*/, "", k); defined[k] = 1; next } +$0 ~ entry_dl { k = $0; sub(/^\[/, "", k); sub(/\]::.*/, "", k); defined[k] = 1; next } + +$0 ~ /^\[[^]]*\]$/ { next } + +{ + rest = $0 + while (match(rest, citation)) { + k = substr(rest, RSTART, RLENGTH) + sub(/^.*\[/, "", k) + sub(/\\?\]$/, "", k) + if (length(k) > 1 && !((k SUBSEP file) in seen)) { + seen[k SUBSEP file] = 1 + cited[++n] = k SUBSEP file + } + rest = substr(rest, RSTART + RLENGTH) + } +} + +END { + for (i = 1; i <= n; i++) { + split(cited[i], part, SUBSEP) + if (!(part[1] in defined)) print lang "\t" part[2] "\t" part[1] + } +} +AWK +) + +# Keys cited with no reference entry anywhere, deliberately left that way while +# their owner decides what they should point at. Everything else is fatal +# already; delete an entry here the moment its citation is fixed or dropped, and +# the check becomes fatal for it -- a stale entry is reported as such, so the +# list cannot quietly outlive the problem it documents. +# +# Empty, and meant to stay that way: it held OSI (docs/em002-3.adoc) and OSI2019 +# (docs/em002-1.adoc) until the owner decided what they should point at, and both +# citations were corrected. Add a key here only to park a citation an owner has +# yet to rule on, one per line with the document and the question, like +# +# known_unresolved=( +# Xy2026 # docs/em002-4.adoc -- entry promised for the 2026 revision +# ) +known_unresolved=() + +if ! unresolved=$( + for lang in "${languages[@]}"; do + printf '%s' "${manifest}" | + asciidoctor-reducer \ + --attribute lang="${lang}" \ + --attribute doctype=book \ + --output - \ + - | + awk -v lang="${lang}" -v marker="${marker}" "${program}" + done +); then + echo "check-asciidoc.sh: could not flatten the corpus to check citations" >&2 + exit 1 +fi + +pending=() +while IFS=$'\t' read -r lang file key; do + [[ -n "${key}" ]] || continue + if [[ " ${known_unresolved[*]} " == *" ${key} "* ]]; then + case " ${pending[*]-} " in + *" ${key} "*) ;; + *) pending+=("${key}") ;; + esac + else + echo "check-asciidoc.sh: ${file} (${lang}): [${key}] is cited with no reference entry" >&2 + status=1 + fi +done <<<"${unresolved}" + +for key in "${known_unresolved[@]}"; do + case " ${pending[*]-} " in + *" ${key} "*) ;; + *) + echo "check-asciidoc.sh: [${key}] now resolves; drop it from known_unresolved in ${BASH_SOURCE[0]}" >&2 + status=1 + ;; + esac +done + +if [[ "${#pending[@]}" -gt 0 ]]; then + echo "check-asciidoc.sh: still cited with no reference entry, by agreement: ${pending[*]}" >&2 +fi + +exit "${status}" diff --git a/tools/make-four-cs-svg.sh b/tools/make-four-cs-svg.sh new file mode 100755 index 0000000..349006c --- /dev/null +++ b/tools/make-four-cs-svg.sh @@ -0,0 +1,105 @@ +#!/usr/bin/env bash +# Generate the "four Cs" gear graphic, one SVG per language, into +# docs/assets/four-cs/. +# +# Why a generator rather than ten hand-written files: the graphic is four gears +# whose geometry is identical in every language and whose only translated parts +# are the "(Use)" gloss on Consumption and, in the `cases` variant, the two case +# labels. Ten copies of the same 60 teeth would drift the first time anyone +# nudged a radius. +# +# Why SVG rather than the PNGs this replaced: the labels become real text, so +# they are translatable, greppable and selectable in the PDF, and the file is a +# few kB instead of 200. The PNGs had no editable source in the repository at +# all -- this script is that source. +# +# The four C-words are deliberately NOT translated. `Consumption`, +# `Contribution`, `Collaboration` and `Creation` are terms of art -- the German, +# French, Italian and Romansh bodies all use them untranslated ("die 4 C", "les +# 4 C", "ils 4 C"), so translating them here would contradict the prose. The +# framing words around them are ordinary prose and are translated, including in +# the accessible name. +# +# Usage: tools/make-four-cs-svg.sh # regenerate every file +set -euo pipefail + +here=$(dirname "$0") +cd "${here}/.." + +out_dir="docs/assets/four-cs" +mkdir -p "${out_dir}" + +# Colours are read off the bitmaps this replaces, so the figure keeps its +# familiar look. They are the figure's own, not CD Bund tokens: this is a cited +# graphic, not a chart the project styles. +col_collab="#9e2b25" +col_consum="#7ba63f" +col_contrib="#2f6fa8" +col_create="#dd8127" + +font='Liberation Sans, Helvetica, Arial, sans-serif' + +# gear +# A gear is an annulus plus N tooth rectangles placed by `rotate()`, which keeps +# the script free of trigonometry. +gear() { + awk -v cx="$1" -v cy="$2" -v r="$3" -v w="$4" -v n="$5" -v c="$6" -v fill="$7" ' + BEGIN { + printf " \n", cx, cy, r, fill, c, w + tw = r * 0.30; th = w * 0.62 + for (i = 0; i < n; i++) { + a = 360.0 * i / n + printf " \n", \ + cx - tw / 2, cy - r - w / 2 - th + 1, tw, th + 2, tw * 0.18, c, a, cx, cy + } + }' +} + +# emit +# A non-empty adds the divider variant used by Em002-5. +emit() { + local lang="$1" use="$2" lead="$3" case_a="${4:-}" case_b="${5:-}" + local name="four-cs" title="${lead}: Consumption, Contribution, Collaboration, Creation" + if [[ -n "${case_a}" ]]; then + name="four-cs-cases" + fi + + { + printf '\n' "${title}" + printf ' %s\n' "${title}" + + # Collaboration is the gear the other three turn inside, so it is drawn + # first and left unfilled. + gear 290 312 232 40 14 "${col_collab}" none + gear 192 196 124 42 12 "${col_consum}" "#ffffff" + gear 479 206 84 34 10 "${col_contrib}" "#ffffff" + gear 428 462 67 30 10 "${col_create}" "#ffffff" + + printf ' Consumption\n' "${font}" + printf ' (%s)\n' "${font}" "${use}" + printf ' Contribution\n' "${font}" + printf ' Creation\n' "${font}" + printf ' Collaboration\n' "${font}" + + if [[ -n "${case_a}" ]]; then + printf ' \n' + printf ' %s\n' "${font}" "${case_a}" + printf ' %s\n' "${font}" "${case_b}" + fi + + printf '\n' + } > "${out_dir}/${name}.${lang}.svg" + echo "wrote ${out_dir}/${name}.${lang}.svg" +} + +emit en "Use" "The four Cs" +emit de "Nutzung" "Die 4 C" +emit fr "utilisation" "Les 4 C" +emit it "uso" "Le 4 C" +emit rm "utilisaziun" "Ils 4 C" + +emit en "Use" "The four Cs" "case a)" "case b)" +emit de "Nutzung" "Die 4 C" "Fall a)" "Fall b)" +emit fr "utilisation" "Les 4 C" "cas a)" "cas b)" +emit it "uso" "Le 4 C" "caso a)" "caso b)" +emit rm "utilisaziun" "Ils 4 C" "cas a)" "cas b)" diff --git a/tools/open-govpress.sh b/tools/open-govpress.sh new file mode 100755 index 0000000..b842c35 --- /dev/null +++ b/tools/open-govpress.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +# +# Run the open-govpress CLI that renders these .adoc documents to PDF. +# +# tools/open-govpress.sh render ... -o out.pdf +# +# Not meant to be called directly: the `open-govpress` devenv script is the way +# in, and it supplies the environment below from Nix. The logic lives here +# rather than in devenv.nix so that shellcheck and editorconfig-checker can see +# it -- shell embedded in a Nix string is invisible to both. +# +# Always run under xvfb-run: Electron has no headless mode and the packaged +# binary refuses to render without a display (exit code 5). xvfb-run makes this +# work the same way whether or not the calling shell has a real display, which +# keeps local dev and CI identical. +# +# Downloads and extracts the release tarball on first use rather than at +# `enterShell` time, so entering the shell stays fast when nobody needs to +# render anything, and caches both under open-govpress/ (gitignored) so repeat +# invocations don't re-fetch or re-extract. +# +# Environment (all set by the devenv wrapper): +# GOVPRESS_VERSION release version, also the directory name in the tarball +# GOVPRESS_URL release asset to download +# GOVPRESS_SHA256 expected checksum of that asset +# GOVPRESS_FHS FHS-env wrapper the dynamically-linked binary needs +# GOVPRESS_XVFB_RUN xvfb-run binary +# GOVPRESS_CURL curl binary +# GOVPRESS_SHA256SUM sha256sum binary + +set -euo pipefail + +: "${GOVPRESS_VERSION:?GOVPRESS_VERSION is required}" +: "${GOVPRESS_URL:?GOVPRESS_URL is required}" +: "${GOVPRESS_SHA256:?GOVPRESS_SHA256 is required}" +: "${GOVPRESS_FHS:?GOVPRESS_FHS is required}" +: "${GOVPRESS_XVFB_RUN:?GOVPRESS_XVFB_RUN is required}" +: "${GOVPRESS_CURL:?GOVPRESS_CURL is required}" +: "${GOVPRESS_SHA256SUM:?GOVPRESS_SHA256SUM is required}" + +here=$(dirname "${BASH_SOURCE[0]}") +here=$(cd "${here}" && pwd) +root=$(cd "${here}/.." && pwd) +cd "${root}" + +cache_dir="${root}/open-govpress/.cache" +archive="${cache_dir}/open-govpress-${GOVPRESS_VERSION}-linux-x64.tar.gz" +extract_dir="${root}/open-govpress/.extracted" +bin="${extract_dir}/open-govpress-${GOVPRESS_VERSION}/open-govpress" + +if [[ ! -x "${bin}" ]]; then + mkdir -p "${cache_dir}" "${extract_dir}" + + if [[ ! -f "${archive}" ]]; then + # Download to .part and rename, so an interrupted download cannot be + # mistaken for a complete one on the next run. + "${GOVPRESS_CURL}" -fL --retry 3 -o "${archive}.part" "${GOVPRESS_URL}" + mv "${archive}.part" "${archive}" + fi + + echo "${GOVPRESS_SHA256} ${archive}" | "${GOVPRESS_SHA256SUM}" -c - + tar xzf "${archive}" -C "${extract_dir}" +fi + +exec "${GOVPRESS_FHS}" "${GOVPRESS_XVFB_RUN}" -a "${bin}" --no-sandbox "${@}" diff --git a/tools/render-docs.sh b/tools/render-docs.sh new file mode 100755 index 0000000..5709b1a --- /dev/null +++ b/tools/render-docs.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +# +# Build the whole published site locally. +# +# tools/render-docs.sh [lang...] +# +# Every tracked .adoc rendered once per language into build//, with the +# same per-language index pages and language chooser that CI publishes to +# GitHub Pages. +# +# It shares tools/site-index.sh and tools/site-root.sh with the workflow on +# purpose -- the point of building locally is to see what will be published, +# which a second implementation of the index would quietly stop doing. +# +# Reached through the `render-docs` devenv script, which is also what puts +# `open-govpress` on the PATH this needs. + +set -euo pipefail + +here=$(dirname "${BASH_SOURCE[0]}") +here=$(cd "${here}" && pwd) +root=$(cd "${here}/.." && pwd) +cd "${root}" + +all_languages=(en de fr it rm) + +if [[ "$#" -gt 0 ]]; then + langs=("${@}") +else + langs=("${all_languages[@]}") +fi + +for lang in "${langs[@]}"; do + case "${lang}" in + en | de | fr | it | rm) ;; + *) + echo "render-docs: unknown language '${lang}' (expected en, de, fr, it or rm)" >&2 + exit 1 + ;; + esac +done + +# `docs/partials/` is excluded: it holds fragments that are `include::`d into +# the documents -- the shared document map, say -- and a fragment is not a +# document. On its own it has no title and no ifeval:: block, so it would render +# as a near-empty PDF and take a row in the language index. +tracked=$(git ls-files '*.adoc' ':!docs/partials/*') + +for lang in "${langs[@]}"; do + # A document may opt out of a language with `:l10n-languages:` in its + # header; absent means all five. Skipping it here keeps an untranslated + # document out of that language entirely, rather than rendering a PDF whose + # body every ifeval:: guard rejected. + docs=() + while IFS= read -r doc; do + [[ -n "${doc}" ]] || continue + doc_langs=$(sed -n 's/^:l10n-languages:[[:space:]]*//p' "${doc}" | head -1) + if [[ -z "${doc_langs}" ]] || grep -qw "${lang}" <<<"${doc_langs}"; then + docs+=("${doc}") + fi + done <<<"${tracked}" + + echo "Rendering ${#docs[@]} documents in ${lang}..." + mkdir -p "build/${lang}" + open-govpress render --lang "${lang}" -o "build/${lang}" "${docs[@]}" + ./tools/site-index.sh "${lang}" "build/${lang}" +done + +./tools/site-root.sh build +echo "Site built in build/ -- open build/index.html" diff --git a/tools/site-archive.sh b/tools/site-archive.sh new file mode 100755 index 0000000..a62f207 --- /dev/null +++ b/tools/site-archive.sh @@ -0,0 +1,159 @@ +#!/usr/bin/env bash +# +# Write the index of archived builds at the root of the published site. +# +# tools/site-archive.sh +# +# is the accumulated site tree, which holds a copy of every build that is +# still retained: +# +# /tags// a released version, kept forever +# /commits// a build of the published branch, newest few only +# +# Each of those carries the `build-meta.txt` that site-publish.sh wrote, and +# this page is generated purely by reading them back -- so a build that was +# pruned from the tree disappears from the listing by construction, and no +# separate bookkeeping file can drift out of sync with what is actually there. +# +# Environment: +# PUBLISH_BRANCH the branch `commits/` holds builds of, named in the page +# copy (default main; site-publish.sh passes its own) + +set -euo pipefail + +dir="${1:?usage: site-archive.sh }" +publish_branch="${PUBLISH_BRANCH:-main}" + +escape() { sed -e 's/&/\&/g' -e 's//\>/g' -e 's/"/\"/g'; } + +# escape(), but for a value already in hand rather than on stdin. Pulled out of +# the format arguments below because `"$(printf ... | escape)"` inside a command +# substitution hides the exit status of everything in the pipe. +escaped() { + local value="$1" out + out=$(printf '%s' "${value}" | escape) + printf '%s' "${out}" +} + +# Read one `keyvalue` field out of a build-meta.txt. +meta_field() { + local file="$1" key="$2" + awk -F'\t' -v k="${key}" '$1 == k { sub(/^[^\t]*\t/, ""); print; exit }' "${file}" +} + +# Emit the
  • entries for one archive directory, newest first. +# +# Sorting is on the `epoch` field rather than on the directory name: commit +# directories are named by hash, which has no useful order, and tags sort by +# release date rather than by the accident of their spelling. +emit_entries() { + local subdir="$1" rows=() metas name epoch sorted + local meta date subject subdir_html name_html subject_html when_html + + [[ -d "${dir}/${subdir}" ]] || return 0 + + metas=$(find "${dir}/${subdir}" -mindepth 2 -maxdepth 2 -name build-meta.txt | sort) + + while IFS= read -r meta; do + [[ -f "${meta}" ]] || continue + name=$(dirname "${meta}") + name=$(basename "${name}") + epoch=$(meta_field "${meta}" epoch) + rows+=("${epoch:-0} ${name} ${meta}") + done <<<"${metas}" + + [[ ${#rows[@]} -gt 0 ]] || return 0 + + sorted=$(printf '%s\n' "${rows[@]}" | sort -rn -t' ' -k1,1) + + while IFS=$'\t' read -r _ name meta; do + [[ -n "${meta}" ]] || continue + date=$(meta_field "${meta}" date) + subject=$(meta_field "${meta}" subject) + subdir_html=$(escaped "${subdir}") + name_html=$(escaped "${name}") + subject_html=$(escaped "${subject}") + when_html=$(escaped "${date%T*}") + printf '
  • %s%s%s
  • \n' \ + "${subdir_html}" \ + "${name_html}" \ + "${name_html}" \ + "${subject_html}" \ + "${when_html}" + done <<<"${sorted}" +} + +{ + cat <<'HTML' + + + + +Archived builds — Open Source Guidelines + +HTML + + # Out of the heredoc above because that one is quoted, which is what keeps + # the CSS free of accidental expansion. The branch name is a repository + # variable rather than a literal, so it goes through escape() like every + # other value that reaches the page. + branch_html=$(escaped "${publish_branch}") + + printf '

    Archived builds

    \n' + printf '

    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 '

    Releases

    ' + tags=$(emit_entries tags) + if [[ -n "${tags}" ]]; then + printf '
      \n%s\n
    \n' "${tags}" + else + echo '

    No release has been tagged yet.

    ' + fi + + printf '

    Recent builds of %s

    \n' "${branch_html}" + commits=$(emit_entries commits) + if [[ -n "${commits}" ]]; then + printf '
      \n%s\n
    \n' "${commits}" + else + echo '

    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 +# +# Lists the PDFs that are actually present in , which is what implements +# "a document that has no translation in this language is omitted": the render +# step never produced the file, so nothing links to it. +# +# Each entry is labelled with the document's title *in that language*, read out +# of the source's `ifeval::["{lang}" == ""]` block rather than from the +# filename. + +set -euo pipefail + +lang="${1:?usage: site-index.sh }" +dir="${2:?usage: site-index.sh }" + +# `back` labels the link to the language chooser. A bare arrow gave no clue +# where it led, or that it led anywhere. +case "${lang}" in + en) heading="Tools for Publishing Open Source Software" + lead="Automatically rendered from the AsciiDoc sources in this repository." + back="All languages" ;; + de) heading="Hilfsmittel zur Veröffentlichung von Open-Source-Software" + lead="Automatisch aus den AsciiDoc-Quellen dieses Repositorys gerendert." + back="Alle Sprachen" ;; + fr) heading="Outils pour la publication de logiciels open source" + lead="Généré automatiquement à partir des sources AsciiDoc de ce dépôt." + back="Toutes les langues" ;; + it) heading="Strumenti per la pubblicazione di software open source" + lead="Generato automaticamente dai sorgenti AsciiDoc di questo repository." + back="Tutte le lingue" ;; + rm) heading="Meds per publitgar software open source" + lead="Generà automaticamain a partir da las funtaunas AsciiDoc da quest repositori." + back="Tut las linguas" ;; + *) echo "site-index.sh: unknown language '${lang}'" >&2; exit 1 ;; +esac + +escape() { sed -e 's/&/\&/g' -e 's//\>/g' -e 's/"/\"/g'; } + +# escape(), but for a value already in hand rather than on stdin. Pulled out of +# the format arguments below because `"$(printf ... | escape)"` inside a command +# substitution hides the exit status of everything in the pipe. +escaped() { + local value="$1" out + out=$(printf '%s' "${value}" | escape) + printf '%s' "${out}" +} + +# The title for this language, or the bare filename if the source has no block +# for it (which the render step should already have prevented). +doc_title() { + local src="$1" title stem + title=$(awk -v lang="${lang}" ' + /^ifeval::\["\{lang\}" == "/ { inblock = ($0 ~ "\"" lang "\"]$"); next } + /^endif::\[\]/ { inblock = 0; next } + inblock && /^= / { sub(/^= /, ""); print; exit } + ' "${src}") + if [[ -z "${title}" ]]; then + stem=$(basename "${src}" .adoc) + title="${stem}" + fi + printf '%s' "${title}" +} + +# basename -> source path, so a rendered PDF can be traced back to its document. +# `docs/partials/` is excluded: it holds fragments that are `include::`d into +# the documents, and a fragment has no PDF of its own to trace back to. +declare -A source_of +adoc_files=$(git ls-files '*.adoc' ':!docs/partials/*') +while IFS= read -r src; do + [[ -n "${src}" ]] || continue + stem=$(basename "${src}" .adoc) + source_of["${stem}"]="${src}" +done <<<"${adoc_files}" + +heading_html=$(escaped "${heading}") +lead_html=$(escaped "${lead}") +back_html=$(escaped "${back}") + +{ + cat < + + + +${heading_html} + +

    ${heading_html}

    +

    ${lead_html}

    +
      +HTML + + # index first, then the documents in natural order (em002, em002-1, em002-2-1, …). + pdf_list=$(cd "${dir}" && find . -maxdepth 1 -type f -name '*.pdf' | sort -V) + ordered=() + [[ -f "${dir}/index.pdf" ]] && ordered+=("index.pdf") + while IFS= read -r pdf; do + # find prints ./name; the prefix comes straight back off. + pdf="${pdf#./}" + [[ -n "${pdf}" ]] || continue + [[ "${pdf}" = "index.pdf" ]] && continue + ordered+=("${pdf}") + done <<<"${pdf_list}" + + for pdf in ${ordered+"${ordered[@]}"}; do + stem="${pdf%.pdf}" + src="${source_of[${stem}]:-}" + if [[ -n "${src}" ]]; then + label=$(doc_title "${src}") + else + label="${stem}" + fi + pdf_html=$(escaped "${pdf}") + label_html=$(escaped "${label}") + printf '
    • %s%sPDF
    • \n' \ + "${pdf_html}" \ + "${label_html}" \ + "${pdf_html}" + done + + cat < + + +HTML +} > "${dir}/index.html" + +echo "wrote ${dir}/index.html ($((${#ordered[@]})) documents)" diff --git a/tools/site-publish.sh b/tools/site-publish.sh new file mode 100755 index 0000000..aedae10 --- /dev/null +++ b/tools/site-publish.sh @@ -0,0 +1,205 @@ +#!/usr/bin/env bash +# +# Overlay a freshly rendered site onto the accumulated published tree. +# +# tools/site-publish.sh +# +# GitHub Pages deployments are whole-site snapshots: `actions/deploy-pages` +# replaces everything each time and offers no way to read back what is already +# published. Keeping older builds around therefore needs somewhere to remember +# them between runs, and that somewhere is the `site-history` branch -- cloned +# here, overlaid with the build that was just rendered, and pushed back. The +# caller then uploads the whole of as the Pages artifact, so the +# deployment stays a snapshot while its *contents* accumulate. +# +# Where the build lands depends on the ref: +# +# refs/tags/ -> tags// kept forever, root untouched +# the published branch -> commits// pruned to $KEEP_COMMITS, and the root +# +# The root keeps meaning "current head of the published branch", which is what +# the site has always meant. A tag archives itself without disturbing it. +# +# Which branch that is comes from $PUBLISH_BRANCH, defaulting to main. Any other +# branch is refused rather than published: this script replaces the site root, +# and the workflow's own gate is a condition in a YAML file that a future edit +# could get wrong. Two independent checks on the same variable is the point. +# +# Environment: +# GITHUB_REPOSITORY owner/repo, used to build the push URL +# GITHUB_REF_TYPE `branch` or `tag` +# GITHUB_REF_NAME branch or tag name +# GITHUB_SHA commit being published +# GITHUB_RUN_ID recorded in build-meta.txt, for tracing a build back +# GH_TOKEN token with contents:write +# PUBLISH_BRANCH the branch that owns the site root (default main) +# KEEP_COMMITS how many branch builds to retain (default 10) +# SITE_REMOTE override the push URL (tests point this at a bare repo) +# SITE_BRANCH override the accumulator branch (default site-history) +# +# Never run this under `set -x`: the push URL carries the token. + +set -euo pipefail + +site="${1:?usage: site-publish.sh }" +work="${2:?usage: site-publish.sh }" + +here=$(dirname "${BASH_SOURCE[0]}") +here=$(cd "${here}" && pwd) + +: "${GITHUB_REF_TYPE:?GITHUB_REF_TYPE is required}" +: "${GITHUB_REF_NAME:?GITHUB_REF_NAME is required}" +: "${GITHUB_SHA:?GITHUB_SHA is required}" + +branch="${SITE_BRANCH:-site-history}" +publish_branch="${PUBLISH_BRANCH:-main}" +keep="${KEEP_COMMITS:-10}" +run="${GITHUB_RUN_ID:-unknown}" + +case "${keep}" in + ''|*[!0-9]*|0) + echo "site-publish.sh: KEEP_COMMITS must be a positive integer, got '${keep}'" >&2 + exit 1 + ;; + *) ;; +esac + +[[ -d "${site}" ]] || { echo "site-publish.sh: no such directory: ${site}" >&2; exit 1; } + +if [[ -n "${SITE_REMOTE:-}" ]]; then + remote="${SITE_REMOTE}" +else + : "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY is required}" + : "${GH_TOKEN:?GH_TOKEN is required}" + # The token is interpolated at run time, so the literal here is a URL shape + # rather than a credential. ripsecrets only honours the pragma on the line + # it is attached to, hence the trailing comment. + remote="https://x-access-token:${GH_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" # pragma: allowlist secret +fi + +# Which slot this build occupies, and whether it also becomes the root. +short="${GITHUB_SHA:0:8}" +case "${GITHUB_REF_TYPE}" in + tag) + slot="tags/${GITHUB_REF_NAME}" + update_root=0 + ;; + branch) + [[ "${GITHUB_REF_NAME}" = "${publish_branch}" ]] || { + echo "site-publish.sh: refusing to publish branch '${GITHUB_REF_NAME}'; PUBLISH_BRANCH is '${publish_branch}'" >&2; exit 1; } + slot="commits/${short}" + update_root=1 + ;; + *) + echo "site-publish.sh: unexpected GITHUB_REF_TYPE '${GITHUB_REF_TYPE}'" >&2 + exit 1 + ;; +esac + +# Only the files are wanted, never the branch's history -- see the force-push at +# the bottom for why. A missing branch is the normal first run, not an error. +rm -rf "${work}" +if git clone --quiet --depth 1 --branch "${branch}" "${remote}" "${work}" 2>/dev/null; then + echo "cloned ${branch}" +else + echo "${branch} does not exist yet, starting an empty tree" + mkdir -p "${work}" +fi +rm -rf "${work}/.git" + +# The root holds the languages and the chooser; clearing them first is what +# makes a document that was deleted from the sources disappear from the site +# rather than linger as an orphaned PDF. `commits/`, `tags/` and `archive.html` +# are deliberately left in place -- they are the accumulated part. +if [[ "${update_root}" = 1 ]]; then + rm -rf \ + "${work}"/en \ + "${work}"/de \ + "${work}"/fr \ + "${work}"/it \ + "${work}"/rm \ + "${work}"/index.html + cp -a "${site}"/. "${work}"/ + echo "updated the site root" +fi + +rm -rf "${work:?}/${slot}" +mkdir -p "${work}/${slot}" +cp -a "${site}"/. "${work}/${slot}"/ +echo "archived the build as ${slot}" + +# Taken from the commit rather than from the clock, so re-rendering the same +# commit reproduces the same metadata instead of reshuffling the archive order. +date=$(git log -1 --format=%cI "${GITHUB_SHA}" 2>/dev/null || echo "") +epoch=$(git log -1 --format=%ct "${GITHUB_SHA}" 2>/dev/null || echo "0") +subject=$(git log -1 --format=%s "${GITHUB_SHA}" 2>/dev/null || echo "") + +printf '%s\t%s\n' \ + ref "${GITHUB_REF_NAME}" \ + type "${GITHUB_REF_TYPE}" \ + sha "${GITHUB_SHA}" \ + short "${short}" \ + date "${date}" \ + epoch "${epoch}" \ + subject "${subject}" \ + run "${run}" \ + > "${work}/${slot}/build-meta.txt" + +# Prune branch builds to the newest $keep. Tags are never pruned: a release needs +# a URL that keeps working. Ordering is by the recorded commit date, since the +# directory names are hashes and sort arbitrarily. +if [[ -d "${work}/commits" ]]; then + metas=$(find "${work}/commits" -mindepth 2 -maxdepth 2 -name build-meta.txt) + + dated="" + while IFS= read -r meta; do + [[ -n "${meta}" ]] || continue + meta_epoch=$(awk -F'\t' '$1 == "epoch" { print $2; exit }' "${meta}") + meta_dir=$(dirname "${meta}") + dated+=$(printf '%s\t%s\n' "${meta_epoch}" "${meta_dir}")$'\n' + done <<<"${metas}" + + stale=() + if [[ -n "${dated}" ]]; then + pruned=$(printf '%s' "${dated}" | sort -rn -t$'\t' -k1,1 | tail -n "+$((keep + 1))") + while IFS=$'\t' read -r _ stale_dir; do + [[ -n "${stale_dir}" ]] || continue + stale+=("${stale_dir}") + done <<<"${pruned}" + fi + + for stale_dir in ${stale+"${stale[@]}"}; do + rm -rf "${stale_dir}" + pruned_name=$(basename "${stale_dir}") + echo "pruned ${pruned_name}" + done +fi + +# Passed on so the archive page names the branch it is actually listing builds +# of, rather than saying "main" on a site published from somewhere else. +PUBLISH_BRANCH="${publish_branch}" "${here}/site-archive.sh" "${work}" + +# Regenerate the chooser so it picks up the archive link. Skipped when the root +# is still empty, which happens if a tag is pushed before main has ever built -- +# a chooser listing no languages would be worse than none at all. +for lang in en de fr it rm; do + if [[ -d "${work}/${lang}" ]]; then + "${here}/site-root.sh" "${work}" + break + fi +done + +# One parentless commit, force-pushed. PDFs are re-rendered on every run and so +# are new blobs even when their content is unchanged; keeping history would add +# the full weight of the site to the branch every time, and deleting a pruned +# directory at the tip would reclaim none of it. The branch is derived output, +# so discarding its history costs nothing that cannot be re-rendered. +git -c init.defaultBranch=publish init -q "${work}" +git -C "${work}" add -A +git -C "${work}" \ + -c user.name='github-actions[bot]' \ + -c user.email='41898282+github-actions[bot]@users.noreply.github.com' \ + -c commit.gpgsign=false \ + commit -q -m "Publish ${GITHUB_REF_NAME} (${short})" +git -C "${work}" push -q --force "${remote}" "HEAD:refs/heads/${branch}" +echo "pushed ${slot} to ${branch}" diff --git a/tools/site-root.sh b/tools/site-root.sh new file mode 100755 index 0000000..bd952bd --- /dev/null +++ b/tools/site-root.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +# +# Write the language chooser at the root of the published site. +# +# tools/site-root.sh +# +# Lists only the language directories that were actually built, so a language +# whose render job failed is absent rather than a dead link. + +set -euo pipefail + +dir="${1:?usage: site-root.sh }" + +# Endonyms, left untranslated by convention: a reader looking for their own +# language recognises its own name, not its name in someone else's. +label_of() { + case "${1}" in + en) echo "English" ;; + de) echo "Deutsch (Schweiz)" ;; + fr) echo "Français (Suisse)" ;; + it) echo "Italiano (Svizzera)" ;; + rm) echo "Rumantsch (Svizra)" ;; + *) echo "${1}" ;; + esac +} + +{ + cat <<'HTML' + + + + +Open Source Guidelines + +

      Open Source Guidelines

      +

      Tools for publishing open source software in the Swiss Federal +Administration. Choose a language.

      +
        +HTML + + for lang in en de fr it rm; do + [[ -d "${dir}/${lang}" ]] || continue + label=$(label_of "${lang}") + printf '
      • %s%s
      • \n' \ + "${lang}" "${label}" "${lang}" + done + + cat <<'HTML' +
      +
      +

      The German, French, Italian and Romansh versions are unreviewed +translations. The binding versions are published in the official languages by +the Federal Chancellery.

      +HTML + + # Only on the published site, where site-archive.sh has written the listing. + # A pull request build has no archive, and a dead link would be worse than + # no link at all. + if [[ -f "${dir}/archive.html" ]]; then + printf '

      Earlier builds and releases →

      \n' + fi + + cat <<'HTML' +
      + +HTML +} > "${dir}/index.html" + +echo "wrote ${dir}/index.html" From fa56f47733e00a0ffd479a7cce26cce9a8b8bdf4 Mon Sep 17 00:00:00 2001 From: shrewd-laidback palace Date: Tue, 20 Oct 2026 23:45:46 +0200 Subject: [PATCH 2/2] Point the README at the site the documents are published to The pipeline publishes every document, in all five languages, and nothing in the repository said where. Adds one line per language block, after the line that names the document index. The address is a shared `:url-site:` attribute beside `:url-repo:` rather than five literals: the site carries all five languages behind one chooser, so there is nothing to localise in the address, and TRANSLATING.adoc already states the rule that an attribute reference is not text to be translated. That rule enumerated the shared attributes, so it is updated to name this one too. Link display text is the bare address. Everything around it is translated, but the label needs no review in four languages it would otherwise have to be read in. Rendered in all five languages and checked: the attribute expands, and each PDF carries an annotation to the published site, not just the text. --- README.adoc | 15 +++++++++++++++ TRANSLATING.adoc | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 2bbfc17..d310ee7 100644 --- a/README.adoc +++ b/README.adoc @@ -38,6 +38,11 @@ endif::[] // reads nothing here; this is its own documented idiom for an author-defined // attribute that saves repetition (see the `showcase.adoc` it ships). :url-repo: https://github.com/swiss/opensource-guidelines +// Where CI publishes the rendered PDFs, written as `{url-site}` in all five +// body blocks. Shared like `{url-repo}` rather than per-language: the site +// carries every language behind one chooser, so there is nothing to localise +// in the address itself. +:url-site: https://swiss.github.io/opensource-guidelines // Contents and numbering for the *web* view of this source. open-govpress sets // all four itself for `:govpress-style: report` (styles/common.adoc and // styles/report.adoc), so they change nothing in the PDF -- GitHub and GitLab @@ -55,6 +60,8 @@ Every document in this repository carries all five languages -- English, German, For a complete list of documents, see: link:docs/index.adoc[Tools for Publishing Open Source Software] +The drafts are also rendered to PDF and published in all five languages at {url-site}[swiss.github.io/opensource-guidelines]. + == Legal obligations and responsibility As outlined in https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[Article 9 EMOTA], the Federal Administration is *principally obligated to publish its software as open source.* Each federal authority holds independent responsibility for ensuring compliance, including making the source code publicly available. @@ -97,6 +104,8 @@ Jedes Dokument in diesem Repository enthält alle fünf Sprachen -- Englisch, De Eine vollständige Liste der Dokumente finden Sie unter: link:docs/index.adoc[Hilfsmittel zur Veröffentlichung von Open-Source-Software] +Die Entwürfe werden zudem als PDF gerendert und in allen fünf Sprachen unter {url-site}[swiss.github.io/opensource-guidelines] veröffentlicht. + == Gesetzliche Pflichten und Verantwortung Gemäss https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[Artikel 9 EMBAG] ist die Bundesverwaltung *grundsätzlich verpflichtet, ihre Software als Open Source zu veröffentlichen.* Jede Bundesbehörde trägt eigenständig die Verantwortung für die Einhaltung dieser Pflicht, einschliesslich der öffentlichen Bereitstellung des Quellcodes. @@ -139,6 +148,8 @@ Chaque document de ce dépôt contient les cinq langues -- anglais, allemand, fr Pour la liste complète des documents, voir : link:docs/index.adoc[Outils pour la publication de logiciels open source] +Les projets sont également rendus en PDF et publiés dans les cinq langues sur {url-site}[swiss.github.io/opensource-guidelines]. + == Obligations légales et responsabilité Conformément à l'https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[article 9 LMETA], l'administration fédérale est *en principe tenue de publier ses logiciels en open source.* Chaque autorité fédérale est responsable de manière autonome du respect de cette obligation, y compris de la mise à disposition publique du code source. @@ -181,6 +192,8 @@ Ogni documento di questo repository contiene tutte e cinque le lingue -- inglese Per l'elenco completo dei documenti si veda: link:docs/index.adoc[Strumenti per la pubblicazione di software open source] +Le bozze sono inoltre rese in PDF e pubblicate in tutte e cinque le lingue su {url-site}[swiss.github.io/opensource-guidelines]. + == Obblighi legali e responsabilità Conformemente all'https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[articolo 9 LMeCA], l'Amministrazione federale è *tenuta in linea di principio a pubblicare il proprio software come open source.* Ogni autorità federale è responsabile in modo autonomo del rispetto di tale obbligo, compresa la messa a disposizione pubblica del codice sorgente. @@ -223,6 +236,8 @@ Mintga document da quest repositori cuntegna tuttas tschintg linguas -- englais, Ina glista cumpletta dals documents chattais Vus sut: link:docs/index.adoc[Meds per publitgar software open source] +Las sbozzas vegnan ultra da quai renderisadas sco PDF e publitgadas en tuttas tschintg linguas sut {url-site}[swiss.github.io/opensource-guidelines]. + == Obligaziuns legalas e responsabladad Tenor l'https://www.fedlex.admin.ch/eli/cc/2023/682/de#art_9[artitgel 9 EMBAG] è l'administraziun federala *fundamentalmain obligada da publitgar ses software sco open source.* Mintga autoritad federala porta independentamain la responsabladad per l'observaziun da questa obligaziun, inclusiv la messa a disposiziun publica dal code da funtauna. diff --git a/TRANSLATING.adoc b/TRANSLATING.adoc index fe37ec5..5964843 100644 --- a/TRANSLATING.adoc +++ b/TRANSLATING.adoc @@ -78,7 +78,7 @@ ifeval::["{lang}" == "en"] <4> Language codes are the bare subtags `en de fr it rm` -- never `de-CH`. Nothing anywhere reduces a region subtag to its base: `open-govpress render --lang de-CH` exits with `unknown --lang "de-CH"`, and a document whose own `:lang:` is `de-CH` fails on its caption include, which is resolved by exact filename. No `ifeval::` would match it either. -Two further attributes are shared and must survive translation unchanged: `:revnumber:` and `:revdate:`, which date the document, and `:url-repo:`, the repository URL written once in the header and referenced as `+{url-repo}+` in the body of eight documents. Translate neither the attribute name nor the reference -- `+{url-repo}+` is an attribute reference, not text, and expanding it by hand puts the URL back in 64 places. +Further attributes are shared and must survive translation unchanged: `:revnumber:` and `:revdate:`, which date the document; `:url-repo:`, the repository URL written once in the header and referenced as `+{url-repo}+` in the body of eight documents; and `:url-site:`, where CI publishes the rendered PDFs, referenced the same way in each of the README's five blocks. Translate neither an attribute name nor a reference -- `+{url-repo}+` is an attribute reference, not text, and expanding it by hand puts the URL back in 64 places. === The Kennzeichnung