Git & GitHub

Versionskontrolle mit Git
Git ist eine freie Software zur Versionsverwaltung von Dateien. Sie wurde durch Linus Torvalds, dem Erfinder von Linux, initiiert und erschien erstmals im Jahr 2005. Mittlerweile hat sie sehr hohe Popularität erfahren und sich gegen andere ähnliche Software (z. B. Subversion) durchgesetzt. Entwickelt wurde Git zwar für die gemeinsame Software-Entwicklung, heute kommt es jedoch allgemein in Projekten, in welchen die Zusammenarbeit an Dateien relevant ist, zum Einsatz. So wird Git etwa auch verwendet, um Forschungsdaten zu versionieren und somit schliesslich reproduzierbar zu machen. Aber auch die gemeinsame Arbeit an Texten und Präsentationen wird dadurch effizienter. Ermöglicht wird dadurch die synchrone Arbeit von mehreren Personen und/oder Rechnern an denselben Textdateien. Indem jede Änderung in hoher Detailtiefe aufgezeichnet wird, kann jederzeit nachvollzogen werden, wer was geändert hat. Dies ist praktisch, um Bugs zu finden und verleiht allgemein Schutz vor unbeabsichtigten oder böswilligen Änderungen. Geeignet ist die Software für jegliche Arten von Textdateien; also für Quellcode, Plain Text oder auch Tabellen im Format CSV.

GitHub im Unterschied zu Git
Git kann einerseits lokal auf einem Rechner verwendet werden. Wenn jedoch ein Git Repository im Web bereitgestellt werden soll, braucht es eine Installation von Git auf einem Webserver. Möchte man dies nicht selber konfigurieren, kann man eine Plattform nutzen wie bspw. GitHub. Es handelt sich dabei um die bekannteste Plattform für diesen Anwendungszweck, es gibt jedoch Alternativen wie GitLab, SourceForge oder BitBucket. GitHub wurde 2007 gegründet und 2018 von Microsoft aufgekauft, was von vielen Software-Entwickler kritisch angesehen wurde, obwohl die Plattform Microsoft zufolge unabhängig bleiben soll. Praktisch jedes Open-Source-Projekt legt ihren Code auf GitHub ab. Erwähnenswert ist die Liste BibsOnGitHub; hier können Listen von Bibliotheken und deren Repositorien eingesehen werden.

Interessant: Am 8. Juli 2020 lagerte GitHub alle öffentlichen, auf der Plattform vorhandenen Code-Repositories in einer ehemaligen Mine, die sich in der Permafrostzone auf Spitzbergen befindet, ein. Das als Arctic Code Vault bezeichnete Archiv enthält 21 TB Daten; mehr als 100 Millionen Repositories auf 186 Mikrofilmrollen gespeichert.

Metadatenstandards in Bibliotheken (MARC21)

MARC21 ist ein 1999 von der Library of Congress begründeter Metadaten-Standard, der international weit verbreitet ist. Viele grosse Bibliothekssysteme basieren auf MRC21 oder unterstützen es als Austauschformat. Der Standard liegt im eigenen Binärformat (.mrc) vor oder als XML. Während Ersteres nur von spezialisierten Prorammen verwendet wird, ist Letzteres für alle Programme geeignet, die XML lesen können. Obwohl es sich um einen Standard handelt, kann die Verwendung aufgrund von eigenen Feldern und Katalogisierungsregeln je nach Institution und international abweichen. Wenn man sich also mit MARC21-Dateien beschäftigt, muss man immer auch prüfen, wie diese verwendet worden sind. MARC21 wird voraussichtlich von BIBFRAME abgelöst – einem Datenmodell, das auf RDF basiert (siehe dazu auch Blogeintrag zum 18.12.2020).

Übung: Vergleich MARC21 und Dublin Core
Wir möchten MARC21 und Dublin Core vergleichen und nutzen hierfür den Katalog der FHGR. Die Daten beziehen wir über die SRU-Schnittstelle von Swissbib. Swissbib sammelt Metadaten einiger Schweizer Bibliotheken und weiterer Institutionen, ermöglicht dadurch eine übergreifende Suche im Katalog und bietet Schnittstellen an, damit diese zentral bezogen werden können. Was auffällt: MARC21 ist viel umfangreicher und enthält somit mehr Informationen. Die Feldbezeichnungen in Form von Zahlen werden nur verstanden, wenn man deren Bedeutung/Schlüssel kennt. Dublin Core hingegen ist ein Standard, der als kleinster gemeinsamer Nenner gilt: Er hat einen kleineren Umfang und sprechende Feldlabels. Bei Konvertierungen von einem Format ins andere muss dies immer mitberücksichtigt werden, da es aufgrund der Unterschiede im Umfang zu Verlusten kommen kann.

Titel und Autor in MARC21 (Ausschnitt): codimd

Titel und Autor in Dublin Core (Ausschnitt): codimd

Bibliothekssoftware Koha

Koha ist eine webbasierte Open-Source-Bibliothekssoftware, die im Jahr 1999 gegründet wurde und heute Beteiligung von unterschiedlichen Unternehmen erfährt (ByWater Solutions, Biblibre, Catalyst IT, PTFS Europe, Theke Solutions). Die Mitarbeit von Bibliotheken und Code-Beiträge von neuen Entwicklern sind ausdrücklich erwünscht – wie es der Name bereits sagt: Bei den Maori ist “Koha” ein Geschenk, bei dem ein Gegengeschenk erwartet wird.

Statistik bei Open Hub
Die Statistik für Koha bei Open Hub verrät einiges über die Software: Lizenz, Anzahl Commits pro Monat (Aktivität), Anzahl Mitwirkende (Community), Anzahl Codezeilen, Programmiersprachen, Release Notes und weiteres. Diese Angaben sind hilfreich um die Gesundheit einer Open-Source-Software zu bewerten, bspw. im Rahmen einer Evaluierung. Für Koha lassen sich u. a. folgende Erkenntnisse gewinnen:

  • Negativ ist die eher kleine Anzahl von Kommentaren im Quellencode. Insgesamt ist aber eine erwachsene, reife Codebasis vorhanden.
  • v3.0 Lizenz, was u. a. bedeutet, dass die Software open-source bleiben muss.
  • Hohe Anzahl von Commits pro Monat ist positiv, es wird regelmässig daran gearbeitet.
  • Commits durch viele unterschiedliche Personen. Dies ist insbesondere bei Open-Source-Software ein gutes Zeichen, da diese häufig von nur einer Person betreut werden und somit die Weiterentwicklung und der Support wegfallen, sobald diese aussteigt.

Installation und Konfiguration
Die Installation erfolgte mittels Eingabe einiger Befehle in die Konsole, was problemlos ging. Am Ende konnte man mit dem Browser auf der virtuellen Maschine die Webseite http://bibliothek-intra.meine-schule.org aufrufen, wo der Koha-Installationsassistent angezeigt wurde. Für die Grundkonfiguration orientierten wir uns an einem Tutorial von Stephan Tetzel. Die Schritt-für-Schritt-Anleitung ist an sich sehr gut aufgebaut und verständlich. Für leichte Irritierung sorgte lediglich der Umstand, dass wir eine neuere Version installiert haben also jene, die von Tetzel beschrieben wird (ein Grundproblem von Tutorials). Dies merkte ich schnell aufgrund seiner Screenshots, die vom Aussehen meines Koha zum Teil abwichen. So befindet sich bspw. der Parameter OpacMainUserBlock in der neuen Version an einer anderen Stelle, sodass ich diesen anhand des Tutorials nicht gefunden habe. Es handelt sich dabei aber lediglich um eine (optionale) Willkommensnachricht für die Hauptseite.



Quellen: Git, GitHub, Koha, Koha bei Open Hub, BAIN-Skript 2