3.7. Publikation auf Zenodo#

Zenodo[1] bietet eine Integration mit GitHub an, über die eine Publikation eines bestimmten Zustandes (commit) eine GitHub-Repositoriums möglich ist.

../_images/zenodo_profil_men%C3%BC.png

Fig. 3.3 Zugriff auf die GitHub-Integration
ist im Profil-Menü oben rechts hinterlegt.
#

Für die Integration muss eine Person mit genügend Rechten im GitHub-Repositorium eine Verbindung zwischen ihrem Zenodo-Account und ihrem GitHub-Account herstellen. Öffnen Sie dazu das Menü rechts oben über den Pfeil neben Ihrem Account-Namen und wählen Sie dort GitHub aus (siehe Fig. 3.3). Folgen Sie den Anweisungen zum Verknüpfen der Accounts.

Sind die Accounts verknüpft, so sehen Sie eine Anleitung, wie ein Repositorium nach Zenodo importiert werden kann. Auf die Schritte wird hier nochmals eingegangen:

  1. Vorbereitung des Repositoriums

  2. Aktivierung der Integration für ein bestimmtes Repositorium

  3. Erstellung eines Releases in GitHub

  4. Überprüfung der Metadaten in Zenodo

3.7.1. Vorbereitung des Repositoriums#

Zenodo hat verschiedene Möglichkeiten, Metadaten aus dem Repositorium zu extrahieren und für den Eintrag auf Zenodo zu nutzen. In QUADRIGA nutzen wir die Datei CITATION.cff[2], welche es erlaubt die Metadaten im Repositorium zu definieren. Diese Datei wird auch von GitHub und anderen Werkzeugen genutzt, um Zitationsempfehlungen anzubieten.

3.7.2. Aktivierung der Integration für ein bestimmtes Repositorium#

../_images/zenodo_GitHub_toggle.png

Fig. 3.4 Deaktiverter und aktivierter Schalter für
den Import neuer Releases in Zenodo.
#

Für jedes Repositorium, für das Sie genügend Rechte haben, können Sie entscheiden, ob Sie neue Releases nach Zenodo importieren wollen (siehe Fig. 3.4 unten) oder nicht (siehe Fig. 3.4 oben).

Nutzen Sie diese Funktion, wenn Sie bspw. temporär neue Releases nicht in Zenodo übernehmen wollen.

3.7.3. Erstellung eines Releases in GitHub#

../_images/GitHub_repo_release.png

Fig. 3.5 Anzeige des aktuellsten Releases
auf der Hauptseite eines
Repositoriums.
#

Releases in GitHub werden über einen tag spezifiziert. Diesen Tag können Sie entweder per git tag[3] festlegen, oder Sie legen beim Erstellen des Releases einen Tag an.

Lokale Erstellung eines Tags mit git tag#

Hinweise zur Erstellung von Tags in der GitHub-Releases-Unterseite finden Sie im nächsten Abschnitt.

Die Option, Tags lokal zu erstellen, wird durch Schritte in der GitHub Action update-metadata.yml unterstützt und daher zu bevorzugen. Wenn Sie ein Tag erstellen und pushen, dann wird automatisch die Action ausgelöst. Diese passt, falls nötig die Metadaten-Felder book-version und date-of-last-change an und erstellt bei Änderung einen neuen Commit. Dann wird der Tag auf den neu-erstellten Commit verschoben.

Schritt für Schritt gehen Sie so vor:

  1. Legen Sie das neue Tag an. Im Beispiel nutzen wir die Versionsnummer 0.1.2.

    $ git tag v0.1.2
    
  2. “Veröffentlichen” Sie das Tag auf GitHub.

    $ git push origin tag v0.1.2
    
  3. Die Action update-metadata.yml läuft und erstellt ggf. einen neuen Commit. Wird ein Commit erstellt, so wird der Tag auf dem Server “verschoben”.

    Warten Sie, bis die Action vollständig ausgeführt wurde.

  4. Aktualisieren Sie die Tags in Ihrem lokalen Repositorium.

    Achtung

    Achtung, die nachfolgende Operation überschreibt lokale Tags!

    $ git fetch --tags --all --force
    

    Sie können überprüfen, ob Ihre lokalen Tags korrekt sind mit git log.

    Wollen Sie nicht alle lokalen Tags überschreiben, so können Sie gezielt Ihre lokale Version löschen und dann nochmals die Tags von GitHub übernehmen.

    $ git tag -d v0.1.2
    $ git fetch --tags --all
    

    Damit sollte Ihr Repositorium auf dem gleichen Stand sein wie GitHub.

Tags können auch in GitHub Desktop oder in VS Code erstellt werden. Hierfür gibt es keine gesonderten Anleitungen.

GitHub-Releases-Unterseite#

Klicken Sie entweder auf der Hauptseite des Repositoriums rechts auf Releases (siehe Fig. 3.5) oder oben neben der Auswahl der Branches auf Tags. Stellen Sie auf der nächsten Seite sicher, dass Releases ausgewählt ist.

Auf der Releases-Seite werden ggf. existierende Releases angezeigt, welche Sie auch durchsuchen können. Über die Schaltfläche Draft a new release können Sie einen neuen Release erstellen (siehe Fig. 3.6).

../_images/GitHub_releases.png

Fig. 3.6 Menüleiste der Releases-Seite mit der Schaltfläche zur Erstellung eines neuen Releases#

Beachten Sie bei der Erstellung eines neuen Releases die Hinweise in Fig. 3.7. Unter “Choose a tag” kann ein bestehender Tag ausgewählt oder eine neuer erstellt werden (siehe Warnung unten). Tags, die eine Version repräsentieren, sollten einem Standard folgen. Wir empfehlen für QUADRIGA den Standard Semantic Versioning 2.0.0[4].

Wichtig

Bevor Sie diese Option zur Erstellung eines Tags nutzen, stellen Sie bitte sicher, dass in der Metadaten-Datei (metadata.yml) die Felder book-version und date-of-last-change korrekt sind. In book-version sollte die Version stehen, welche Sie später im Release angeben (ohne das v also book-version: 0.1.2, wenn Sie beim Release v0.1.2 als Tag nutzen). Im date-of-last-change sollte das aktuelle Datum stehen.

Erstellen Sie ggf. einen neuen Commit mit diesen Änderungen und beginnen Sie dann den Prozess der Erstellung eines Releases erneut.

Ein Git Tag kann nicht mit einer Zahl beginnen. Typischerweise beginnen Versionstags mit einem v. Daher empfehlen wir folgendes Format:

v0.1.2

Dann können Sie Veröffentlichungsinformationen (release notes) generieren lassen. Diese müssen ggf. angepasst werden. Der Titel des Releases ist oft eine Wiederholung des Tags, sie können jedoch auch einen sprechenden Namen vergeben. Zu den release notes gehört auch eine Beschreibung der Veränderungen zur letzten veröffentlichten Version.

Ein Release kann als neuester Release markiert werden oder als eine Vorveröffentlichung. Sie können Zwischenstände der Release-Informationen als Entwurf speichern oder den Release veröffentlichen. Veröffentlichen Sie einen Release wird dieser von Zenodo importiert, solange die Importfunktion für das Repositorium aktiviert ist (s.o.). Der Import kann einige Zeit in Anspruch nehmen.

../_images/GitHub_new_release.png

Fig. 3.7 Seite zur Erstellung eines neuen Releases.#

3.7.4. Überprüfung der Metadaten in Zenodo#

Nach einem Release sollten die von Zenodo importierten Informationen überprüft werden. Ggf. müssen Sie in Zenodo und/oder in der Datei CITATION.cff angepasst werden. Änderungen in CITATION.cff werden mit dem nächsten Release-Import übernommen.

Zenodo stellt auch eine sogenannte Badge zur Verfügung. In den Einstellungen der GitHub-Integration wird diese neben dem Repositorium angezeigt. Klicken Sie auf diese, so öffnet sich eine Ansicht, aus der Sie bspw. Markdown-Code kopieren und Ihre README.md einfügen können.