Praktische Anwendung

Richtlinie zum Softwareverzeichnis

Das Softwareverzeichnis: Software finden, bewerten und erstellen

Das Softwareverzeichnis beschreibt einen durchsuchbaren Katalog an Open-Source-Projekten und Lösungen. In dem Verzeichnis werden entsprechende Details und Gütekriterien zu dem jeweiligen Projekt oder Lösung gepflegt und transparent für alle Nutzenden ausgewiesen.

Diese Hilfestellung zum Softwareverzeichnis dient als das Rahmenwerk für die Aufnahme und Darstellung von Projekten und Lösungen unterschiedlicher Entwicklungszyklen und Stadien im Softwareverzeichnis. Ziel ist es, mithilfe dieser Richtlinie den Nutzenden transparent zu signalisieren, ob und wie eine Software für sie bzw. den Anwendungsfall verwendbar sein kann. Zudem soll frühzeitig die Kollaboration mit Fokus auf Rechtssicherheit im Kontext von OSS Lizenz Compliance Förderung finden.


Darstellung des Weges in das Softwareverzeichnis

Aufnahme ins Softwareverzeichnis Kopiert!

Das Interesse zur Aufnahme in das Softwareverzeichnis muss durch die Projekte der Plattform ausgedrückt werden. Die Interessenbekundung wird durch die Existenz einer publiccode.yml innerhalb der Repositories geäußert. Die Repositories der Plattform werden kontinuierlich nach diesen Dateien überprüft.

publiccode.yml Kopiert!

Die notwendigen Schlüsselworte und Anforderungen an die publiccode.yml entspringen dem Metadaten Standard für Software von Öffentlichen Verwaltungen und sind dem Standardisierungsprojekt entnommen. Die Mindestangaben sind im Folgenden mit einem Beispiel angegeben. Optionale, aber als sinnvoll erachtete Schlüsselworte sind als solche gekennzeichnet.

Die minimum viable Publiccode.yml

publiccodeYmlVersion

  • Datentyp: String
  • Beispiel: “0.2.1”

name

  • Datentyp: String
  • Beispiel: “Hundesteuer”

url

  • Datentyp: String (URL)
  • Beispiel: “https://gitlab.opencode.de/bmi/hundesteuer”

releaseDate

  • Datentyp: String (Datum) in “YYYY-MM-DD”
  • Beispiel: “2022-02-22”

softwareVersion

  • Datentyp: String
  • Beispiel: “1.0”
  • Optional

platforms

  • Datentyp: Array an Strings
  • Werte: [web, windows, mac, linux, ios, android]
  • Beispiel:
    • web
    • linux

categories

  • Datentyp: Array an Strings
  • Werte: siehe Tabelle aller Möglichen Kategorien
  • Beispiel:
    • email-management
    • email-marketing

developmentStatus

  • Datentyp: String
  • Werte: [concept, development, beta, stable, obsolete]
  • Beispiel: stable

softwareType

  • Datentyp: String
  • Werte: ["standalone/mobile", "standalone/iot", "standalone/desktop", "standalone/web", "standalone/backend", "standalone/other", "addon", "library", "configurationFiles"]
  • Beispiel: standalone/web

description/[lang]/genericName

  • Datentyp: String, generischer Name für die Tätigkeit des Projekts
  • Beispiel: “Steuerberechnung App”

description/[lang]/shortDescription

  • Datentyp: String
  • Beispiel: “Eintragung und Abrechnung der Hundesteuer”

description/[lang]/longDescription

  • Datentyp: String
  • Beispiel: “[…]” Überblick über die Fähigkeiten des Projekts für potentielle Nutzende

description/[lang]/features

  • Datentyp: Array an Strings
  • Werte: Freitext für Worte bis 100 Zeichen
  • Beispiel:
    • Hundeanmeldung
    • Hundesteuer Berechnung

legal/license

  • Datentyp: String mit Logikverbindung (OR/AND/WITH) bei Mehrfachlizenzierung (SPDX Identifier)
  • Beispiel:  BSD-3-Clause

maintenance/type

  • Datentyp: String
  • Werte: ["internal", "contract", "community", "none"]
  • Beispiel: community

maintenance/contractors

  • Datentyp: Array an Strings WENN maintenance/type “contract” ist
  • Werte: Angaben für Name, Email, Website, Vertragsablauf
  • Beispiel:
    • name: “ZenDiS”
    • email: “hallo@zendis.de”
    • website: “zendis.de”
    • until: “2023-01-01”

maintenance/contacts

  • Datentyp: Array an Strings WENN maintenance/type “internal” oder “community” ist
  • Werte: Angaben für Name, Email, Zugehörigkeit der Öffentlichen Verwaltung, ggf. Telefonnummer
  • Beispiel:
    • name: “Erika Mustermann”
    • email: “Erika@mustermann.de”
    • affiliation: “Bundeshauptstadt Berlin”
    • phone: “[…]”

localisation/localisationReady

  • Datentyp: Boolean, Eigenschaft zur Möglichkeit mehrere Sprachen (muss nicht aktuell vorliegen)
  • Beispiel: yes

localisation/availableLanguages

  • Datentyp: Array an Strings
  • Werte: IETF BCP 47 Sprachkürzel
  • Beispiel:
    • de
    • en

de/countryExtensionVersion

  • Datentyp: String
  • Beispiel: “0.2”
  • Optional

de/leika

  • Datentyp: Array an Strings
  • Werte: Angaben verpflichtend: Leika-ID, optional: Themenfeld, Lebenslage, OZG-ID,
  • Beispiel:
    • themenfeld: “Engagement & Hobby”
    • lebenslage: “Tierhaltung
    • ozg-id: “10160”
    • leika-id: “99102013000000”
  • Optional