Zusammenfassung
In Bibliotheken werden immer mehr Aufgaben digitalisiert und Dienste digital angeboten. Teilweise starre Strukturen werden durch die digitale Transformation aufgebrochen. In der Folge ist eine stärkere und flexible Kollaboration zwischen den Mitarbeitenden und Stakeholdern erforderlich. Um diese Veränderungen mit geeigneten Werkzeugen zu unterstützen, wurde geprüft, wie Git, GitLab und GitHub hierzu beitragen können. Es konnte festgestellt werden, dass der Einsatz von Git und GitLab zu einer erheblich besseren Kollaboration innerhalb der IT-Abteilung geführt hat. GitHub wird derzeit für die öffentliche Bereitstellung von Eigenentwicklungen genutzt und soll zukünftig für die interinstitutionelle kollaborative Entwicklung zum Einsatz kommen. Ferner werden die verwendeten Werkzeuge mit Fortschreiten der digitalen Transformation auch in anderen Bereichen von Bibliotheken zum Einsatz kommen.
Abstract
In libraries, digitized data and services offered online are on the increase. Rigid structures are gradually worn down by digital transformation. As a result, increased and more flexible collaboration between employees and stakeholders is required. These changes will need to be flanked by suitable tools, and we examined how the software Git, GitLab and GitHub might contribute to the development. We found that the use of Git and GitLab leads to significantly better collaborative practices within the IT department. GitHub is currently used for public provision of in-house developments and will, in the future, be used for inter-institutional collaborative development. Moreover, the tools will see increased usage in other areas of libraries as the digital transformation progresses.
1 Einleitung
Wie in vielen Lebensbereichen schreitet die digitale Transformation auch in Bibliotheken und den hier wahrgenommenen Aufgaben voran. Dabei spielen insbesondere die IT-Abteilungen bzw. -Bereiche eine wichtige Rolle. Zur Administration von Bibliothekssystemen kommen in IT-Abteilungen von Universitätsbibliotheken immer mehr Aufgaben im Bereich der Entwicklung von Anwendungen hinzu. Gerade in kleineren und mittleren Bibliotheken stellt sich dann die Frage, wie die (wenigen) vorhandenen IT-Ressourcen effizient genutzt werden können, um diesen Herausforderungen effektiv zu begegnen.
In kleineren und mittleren Bibliotheken ist es oftmals nicht möglich, ein dediziertes Entwicklungsteam oder gar eine Entwicklungsabteilung einzurichten. Auch in der Universitätsbibliothek der Otto-von-Guericke-Universität Magdeburg (UB Magdeburg) übernimmt die IT-Abteilung ein großes Spektrum an Tätigkeiten. Die Aufgaben der IT-Abteilung erstrecken sich von der Konzeption der Infrastruktur, Beschaffung der Hardware, Administration der Betriebssysteme für Mitarbeiter-PCs, Nutzer-PCs und Server über das Bereitstellen und Administrieren von Anwendungen bis hin zur Entwicklung und Weiterentwicklung eigener Anwendungen[1]. Auf Grund des sehr breiten Aufgabenfeldes und der wenigen Personen, welche diese Aufgaben wahrnehmen, werden Betriebsaufgaben und Entwicklungsaufgaben oftmals in Personalunion durchgeführt.
Die zunehmenden Entwicklungsaufgaben führten auch zur Auflösung der relativ starren Aufgabenverteilung in Bibliotheken hin zur flexiblen Arbeit in agilen Projekten[2]. Perspektivisch wird die digitale Transformation zu immer mehr Microservices und einer zunehmenden Verzahnung der vorhandenen Systeme führen. Hieraus ergibt sich ein erhöhter Bedarf an Kollaboration zum einen mit den Stakeholdern, deren Anforderungen die spätere Software genügen soll, zum anderen zwischen den Entwicklern, um eine effiziente Entwicklung zu ermöglichen.
Aufgrund der Entwicklungserfahrungen waren den Autoren Versionierungssysteme wie Subversion (SVN) und Git bereits bekannt. Laut Umfrage in der Entwicklungscommunity Stack Overflow wird Git von fast 94 Prozent der Nutzer zur Versionsverwaltung genutzt[3].
Auch in Bibliotheken ist Git keine unbekannte Technologie: Insbesondere der Aspekt der Versionskontrolle für Dokumente aller Art wird dabei als interessant angesehen – bereits 2015 waren mehrere große Bibliotheken auf GitHub, einer öffentlichen Kollaborationsplattform auf Git-Basis, aktiv[4]. In einer Untersuchung von GitHub-Repositorien wurde 2018 festgestellt, dass Nutzer*innen aus Bibliotheken sich durchaus von anderen Nutzergruppen unterscheiden[5]. So ergibt sich bei Bibliotheken im Mittel eine höhere Diversität in den genutzten Programmiersprachen, was den eingangs erwähnten Punkt unterstützt, dass IT-Personal in Bibliotheken breite Aufgaben übernimmt. Auch wurde festgestellt, dass Reichweite und Produktivität der Bibliotheken im Vergleich erhöht sind. Dies spricht für eine offene Kollaborationskultur mit langfristigem Kompetenzaufbau.
Als bekanntestes Entwicklungsprojekt im Bibliotheks- und Git-Kontext ist FOLIO zu nennen, mit über 300 Repositorien auf GitHub[6]. Auch in der Konfiguration kann Git erfolgreich zur Versionskontrolle eingesetzt werden, dies wird zum Beispiel durch die Verbundzentrale des Gemeinsamen Bibliotheksverbundes (VZG) für die Konfiguration der betriebenen Bibliotheksmanagementsysteme seit LBS-Version 2.12.3 eingesetzt.
Die UB Magdeburg setzt bereits seit mehreren Jahren Git in der IT-Abteilung ein, jedoch zunächst für Projekte mit einzelnen Bearbeitenden. Der eingangs erwähnte erhöhte Bedarf an Entwicklung und Kollaboration führte jedoch zu Herausforderungen, welche in diesem Beitrag zusammen mit Lösungsmöglichkeiten diskutiert werden.
Mit dem vorliegenden Beitrag wollen wir unsere Erfahrungen mit Git schildern. Zunächst werden ausgewählte Funktionen von Git beschrieben, bevor wir dann auf mögliche Anwendungsszenarien eingehen.
2 Ausgewählte Eigenschaften von Git, GitLab und GitHub
Im Zusammenhang mit Git werden oftmals auch GitLab und GitHub erwähnt. Bereits durch den Einsatz von Git, welches die Basis für GitLab und GitHub bildet, können viele Funktionen genutzt werden. Hier werden die Funktionen vorgestellt, welche wesentlich in der UB Magdeburg zum Einsatz kommen. Darüber hinaus gibt es viele weitere Funktionen, welche in der einschlägigen Literatur nachgelesen werden können[7].
2.1 Git
Git ist ein verteiltes Versionierungssystem[8]. Jeder Ordner in einem Dateisystem kann durch eine entsprechende Initialisierung (git init)[9] in ein Git-Repositorium umgewandelt werden. Ab diesem Zeitpunkt können alle darin befindlichen Dateien und Unterordner versioniert und die Funktionen von Git genutzt werden.
Versionierung
Git ermöglicht es, zu einer Datei mehrere Versionen zu speichern[10]. Wurde ein neuer Stand erreicht, welcher im Repositorium hinterlegt werden soll, wird dieser durch einen entsprechenden Befehl versioniert (git commit). Mit jeder neuen Version werden das Änderungsdatum, die ändernde Person und eine Nachricht gespeichert.
Historie anzeigen
Auf Basis der gespeicherten Versionen ist es möglich, den Änderungsverlauf einer Datei anzusehen. Ferner können Änderungen zwischen zwei beliebig ausgewählten Versionen dargestellt werden[11].
Verteiltes System
Da es sich bei Git um ein verteiltes Versionierungssystem handelt, sind nahezu alle Funktionen von Git lokal nutzbar. Ein zweiter Rechner oder gar Server ist nicht erforderlich.
Soll hingegen das Repositorium auch auf einem anderen Rechner zur Verfügung stehen (zweiter Rechner, Server auf dem die produktive Anwendung läuft, etc.), kann eine Kopie erstellt werden (git clone). Die Kopie eines Repositoriums enthält alle Informationen des Repositoriums, das heißt alle Dateien und Verzeichnisse inklusive der gesamten Historie. Jede Kopie ist somit gleichwertig. Dies ist ein großer Vorteil gegenüber zentralen Versionierungssystemen, bei welchen lediglich der zentrale Server die Versionshistorie vorhält. Dort kann eine neue Version nur erstellt werden, wenn eine Verbindung zum zentralen Server besteht.
Entferntes Repositorium und Synchronisierung
Beim Erstellen einer Kopie von einem Repositorium (git clone) wird in der Regel das ursprüngliche Repositorium als entferntes Repositorium für die lokale Kopie registriert (git remote). Durch Abfragen des entfernten Repositoriums können neue Versionen in die lokale Kopie übertragen werden (git pull). Werden im lokalen Repositorium neue Versionen erstellt, können diese auch an das entfernte Repositorium übertragen werden (git push). Dies ist jedoch nur möglich, wenn das lokale Repositorium die aktuelle Version des entfernten Repositoriums besitzt. Git stellt dies sicher und weist gegebenenfalls auf ein notwendiges Abholen der aktuellen Version des entfernten Repositoriums hin.
Die Zuordnung von entfernten Repositorien kann auch zu einem späteren Zeitpunkt geändert werden. Dabei können einem lokalen Repositorium beliebig viele entfernte Repositorien zugeordnet werden[12].
Zusammenführung
Wird sowohl im lokalen Repositorium als auch im zugeordneten entfernten Repositorium eine neue Version erstellt, ist nach dem Abholen der neuen Version eine Zusammenführung mit dem lokalen Repositorium erforderlich (git merge). Für Textdateien erledigt Git dies automatisiert, sofern nicht genau die gleichen Zeilen einer Datei geändert wurden. Andernfalls kommt es zu einem Konflikt und die betroffenen Stellen werden von Git markiert. Welche Änderungen angewendet oder verworfen werden entscheidet dann der Nutzende.
Verzweigung
Ausgehend von der aktuellen Version kann ein neuer Zweig erstellt werden. Im neuen Zweig können dann beliebig viele neue Versionen angelegt werden. Wurden die gewünschten Änderungen vorgenommen und entspricht das Ergebnis den Erwartungen, kann der Nebenzweig mit dem Hauptzweig zusammengeführt werden (siehe Zusammenführung).
Es ist zu jedem Zeitpunkt möglich, schnell zwischen den einzelnen Zweigen zu wechseln und neue Versionen im jeweiligen Zweig anzulegen. Mit dieser Funktion ist es möglich, mehrere parallele Varianten zu verwalten oder temporäre Nebenzweige für neue Funktionen anzulegen. Die temporären Nebenzweige werden nach Entwicklungsabschluss wieder mit dem Hauptzweig zusammengeführt.
2.2 GitLab
GitLab ist eine Webanwendung, welche viele Funktionen für die kollaborative Arbeit anbietet und unter anderem als Git-Server verwendet wird. Die bereitgestellten Funktionen unterstützen die Entwicklung einer Software über den gesamten Softwarelebenszyklus.
Für jedes Git-Repositorium wird ein Projekt in GitLab erstellt. Ein solches Projekt dient unter anderem als entferntes Repositorium für alle Mitwirkenden. Auf diese Weise können alle Mitwirkenden den Stand ihres Repositoriums mit dem Repositorium im GitLab synchronisieren.
Geplante Entwicklungsaufgaben werden in Issues festgehalten und dokumentiert. Die Issues können Milestones zugeordnet und mit verschiedenen Labels versehen werden. Um darzustellen, welcher Mitwirkende an einem Issue arbeitet, wird diesem ein Bearbeiter zugewiesen. Spätere Konflikte bei der Zusammenführung können so reduziert werden. Wird eine neue Version erstellt, kann auf den Issue Bezug genommen werden. Auf diese Weise können später die für einen Issue relevanten Versionen (und damit die für diesen Issue durchgeführten Änderungen) einfach assoziiert werden.
Darüber hinaus bietet GitLab viele Funktionen für den Softwarelebenszyklus, insbesondere für Continuous Integration (CI) und Continuous Delivery (CD)[13]. Eine Beschreibung der Möglichkeiten von GitLab kann der Website entnommen werden[14].
2.3 GitHub
GitHub ist ein auf Git basierender Internetdienst zur Verwaltung von Git-Repositorien. Neben der verteilten Versionskontrolle mittels Git bietet es erweiterte Möglichkeiten zur Zugriffskontrolle, Bug-Tracking, Aufgabenverwaltung sowie CI-/CD-Integration. Zudem unterstützt es neben den integrierten Möglichkeiten zur Kollaboration, unter anderem durch seinen Social Media-Charakter, zum Beispiel in Form von Feedbacks, die gemeinsame Arbeit.
Funktionsweise und Handhabung ähneln der von GitLab sehr, nicht zuletzt durch die nahezu identische Weboberfläche zur Bedienung. Bei GitHub werden Repositorien ebenfalls über Projekte verwaltet, welche als entferntes Repositorium für alle am Projekt Mitwirkenden dienen. Die Aufgabenverwaltung erfolgt mittels der gleichen Konventionen wie bei GitLab, wie beispielsweise durch Benennungsregeln zur Indizierung beziehungsweise Referenzierung von Informationen sowie durch Verwendung der leichtgewichtigen Markup-Sprache „Markdown“ zur Formatierung beschreibender Textfelder.
Durch seine Ausrichtung als Internetdienst und zudem bereitgestellte Funktionen einer zentralen, sozialen Plattform für verteilte Repositorien eignet sich GitHub, neben der verbesserten Kollaboration, besonders zur Veröffentlichung von Projekten und als Software-Archiv mit Versions-Historie.
3 Erfahrungen aus dem Einsatz von Git, GitLab und GitHub in der Bibliothek
3.1 Mögliche Einsatzbereiche
Die oben beschriebenen Funktionen von Git können für unterschiedliche Aufgaben in Bibliotheken genutzt werden. Da es sich um einen Erfahrungsbericht handelt, sind diese nicht abschließend. Der vorliegende Bericht stellt dar, wie die Funktionen von Git in der UB Magdeburg zum Einsatz kommen.
Verwaltung von Konfigurationen
Mit der Versionierung von Git ist es möglich, die Historie aller Konfigurationen zu speichern. Ein manuelles Speichern älterer Stände (Konfiguration.alt.txt, Konfiguration.neu.txt, …) ist nicht mehr erforderlich. Weiterhin ermöglicht die Versionierung ein schnelles Zurücksetzen auf einen vorherigen Stand. In der UB Magdeburg werden beispielsweise die Konfigurationen des Bibliotheksmanagementsystems, der PAIA-Schnittstelle, Skripterweiterungen, Druckereinstellungen, Konfigurationen des Forschungsdatenrepositoriums und vieles mehr mit Git verwaltet.
Dokumentation von Konfigurationen
Die Versionierung von Git lässt die Dokumentation von Änderungen quasi „im Vorbeigehen“ entstehen. Auf Basis der Versionierung kann schnell beantwortet werden: „Wer hat Wann Was geändert“? So kann beispielweise die Dokumentation von Konfigurationsänderungen helfen, die Ursache für ein Fehlverhalten einer Anwendung zu ermitteln. Ist es möglich, den Zeitraum einzugrenzen, in welchem das Fehlverhalten festgestellt wurde, kann mit geringem Aufwand im Git geprüft werden, welche (ungewollten) Änderungen im entsprechenden Zeitraum durchgeführt wurden. Mit Hilfe der Historie werden die Versionen am Beginn und Ende des Zeitraumes verglichen. Alle Änderungen zwischen den zwei Versionen werden aufgezeigt, unabhängig von der Anzahl der in diesem Zeitraum neu erstellten Versionen.
Backup von Konfigurationen
Durch die Kopie eines Repositoriums können alle Informationen inklusive der Historie auf einem zweiten Rechner gesichert werden. Bei Ausfall eines Rechners können so keine Konfigurationen verloren gehen. In der UB Magdeburg wird hierfür ein Git-Server auf Basis von GitLab genutzt.
Konfiguration durch mehrere Personen
Wird eine Anwendung von mehreren Personen konfiguriert, verhindert Git ein ungewolltes Überschreiben von parallel durchgeführten Änderungen. Im Konfliktfall werden dem Administrator die betroffenen Zeilen angezeigt, sodass dieser den Konflikt manuell auflösen kann.
Konfiguration testen
Änderungen können in einem separaten Zweig durchgeführt und immer wieder angepasst werden, bis ein gewünschter Zustand erreicht wurde. Anschließend können die Änderungen mit dem Hauptzweig zusammengeführt werden.
Gemeinsame Entwicklung bibliotheksinterner Anwendungen
Besonders bei der gemeinsamen Entwicklung von Anwendungen kommen die Synchronisierung, Verzweigung und Zusammenführung von Git zum Tragen. Da in der Regel jeder Mitwirkende einen anderen Teil des Projektes bearbeitet, erfolgt die Zusammenführung der Entwicklungen zu einem Großteil automatisiert.
Für die gemeinsame Arbeit an zahlreichen Projekten nutzt die UB Magdeburg universitätsinternes GitLab. Mit den Issues von GitLab können Ideen schnell festgehalten werden, wenn der aktuelle Betrieb eine zeitnahe Umsetzung nicht erlaubt. Die Ideen können dann von den anderen Mitwirkenden weiterentwickelt oder im Quellcode umgesetzt werden.
Veröffentlichung von Quellcode für andere Einrichtungen
Da Git ein verteiltes System ist, kann leicht eine Kopie eines Repositoriums öffentlich zugänglich gemacht werden. Zu diesem Zweck hat die UB Magdeburg ein Nutzerkonto auf GitHub eingerichtet. Dort sind aktuell die drei Projekte „UserCounter“[15], „lisa“[16] und „concordance“ veröffentlicht.
Gemeinsame Entwicklung mit anderen Einrichtungen
Ebenso ist auch eine interinstitutionelle kollaborative Entwicklung mit anderen Einrichtungen mit einem öffentlichen Git-Server wie GitHub realisierbar. Wie in der Einleitung erwähnt, ist FOLIO ein Projekt, welches diese Möglichkeiten intensiv nutzt. Auch die UB Magdeburg plant zukünftig Anwendungen gemeinsam mit anderen Einrichtungen zu entwickeln.
3.2 Schrittweise Einführung von Git
Viele der genannten Vorteile sind bereits realisierbar, wenn die zugrundeliegende Aufgabe von nur einer Person wahrgenommen wird. Die mögliche Infrastruktur hierfür ist in der Abbildung blau dargestellt. Dies lässt den Schluss zu, dass der Einsatz von Git auch in kleinen und mittleren Bibliotheken die Arbeitsabläufe positiv beeinflussen kann.
Die Einführung von Git ist mit geringem Aufwand möglich. Der Hauptaufwand besteht hierbei, sich mit den Grundfunktionen und der Arbeitsweise von Git vertraut zu machen. Einen guten Überblick für den schnellen Einstieg geben Scott Chacon und Ben Straub, insbesondere im zweiten Kapitel[17].
Sind keine Vorkenntnisse zu Git vorhanden, kann schrittweise die Arbeit mit Git erprobt werden. Zunächst wird Git lokal auf dem Arbeitsplatzrechner eingesetzt, um eine Versionierung beispielsweise von Konfigurationen vorzunehmen. Anschließend wird ein entferntes Repositorium auf einem zweiten Rechner als Backup eingerichtet, um die Arbeit mit entfernten Repositorien kennenzulernen. Wurden erste Erfahrungen mit Git gesammelt, können dann weitere Funktionen von Git genutzt werden. Ein Git-Server kann für die Zusammenarbeit mit anderen Mitarbeitenden verwendet oder öffentliche Git-Server wie GitHub genutzt werden, um mit anderen Einrichtungen gemeinsam zu arbeiten.

Beispiel einer Verteilung von Git-Repositorien.
3.3 Empfehlungen für den praktischen Einsatz
Während der Arbeit mit Git haben wir verschiedene Erfahrungen, insbesondere in der Zusammenarbeit im Team gesammelt, welche wir pragmatisch als Leitlinien nutzen.
Nutzung von Nebenzweigen
Wird eine neue Funktion hinzugefügt oder eine bestehende Funktion geändert, hat es sich als hilfreich erwiesen, während der Entwicklung einen separaten Zweig für die Änderungen anzulegen. Dies hat den Vorteil, dass der Hauptzweig nicht beeinflusst wird. Auf diese Weise können im Hauptzweig weiterhin Änderungen an der aktuellen / produktiven Version vorgenommen werden.
Hauptzweig ist funktionsfähig
Für die UB Magdeburg wurde definiert, dass der Hauptzweig jederzeit eine funktionsfähige Version der Software enthält. So ist es zu jedem Zeitpunkt möglich, neben der Entwicklung (in einem dann anzulegenden Nebenzweig) Tests durchzuführen oder Fehler in der produktiven Umgebung zu beheben. Würde die Entwicklung von neuen Funktionen ebenfalls im Hauptzweig erfolgen, könnte es sein, dass Tests nicht ausführbar sind, da die Software sich gerade in einem nicht funktionsfähigen Zustand befindet und Fehler können nicht schnell behoben werden.
Kleine Erweiterungen
Wird ein Nebenzweig angelegt, gehen die Entwicklungen der beiden Zweige zunächst auseinander. Änderungen im Hauptzweig sind im Nebenzweig nicht enthalten. Je größer die Erweiterung ist und je länger die Entwicklung dauert, desto größer ist die Gefahr, dass beim späteren Zusammenführen Konflikte auftreten. Daher sollten, analog zur agilen Softwareentwicklung[18], möglichst kleine, klar abgegrenzte Erweiterungen entwickelt werden. So können schnell Fortschritte erzielt und der Nebenzweig wieder mit dem Hauptzweig zusammengeführt werden.
Häufige Synchronisierungen
Vor Beginn der Arbeit an einem Projekt wird der aktuelle Stand vom Git-Server abgeholt. Während der Arbeit werden neue Versionen zeitnah auf den Server übertragen. Andere Mitwirkende können somit auf den aktuellen Stand zugreifen und die Wahrscheinlichkeit von Konflikten wird geringgehalten.
Atomare Versionen
In eine Version (git commit) sollen lediglich Änderungen zu einem Thema einfließen. Inhaltlich nicht zusammenhängende Änderungen werden auf mehrere Versionen aufgeteilt.
4 Erkenntnisse und Ausblick
Der Einsatz von Git hat unabhängig von der technischen Ebene zu einer Stärkung der Zusammenarbeit innerhalb der IT-Abteilung geführt. Die vorhandenen Ressourcen werden effizienter eingesetzt. Mitarbeitende können beispielsweise Ihre Stärken in die Anwendungsentwicklung einbringen, da der Quellcode und die Konfigurationen für alle einsehbar sind.
Nachdem innerhalb der IT-Abteilung positive Erfahrungen mit dem Einsatz von Git gesammelt wurden, wird überlegt, wie Git in anderen Bereichen der Bibliothek genutzt werden kann, um auch hier positive Effekte zu erzeugen und die Zusammenarbeit zu stärken. Ferner werden im Rahmen einer Masterarbeit die Potentiale von GitLab bezüglich Continuous Integration und Continuous Development für die Softwareentwicklung innerhalb der UB Magdeburg untersucht. Hierdurch soll die Qualität und Geschwindigkeit bei der Entwicklung von Anwendungen weiter gesteigert werden.
In Zukunft ist geplant, Entwicklungsprojekte gemeinsam mit anderen Bibliotheken auf Git-Basis durchzuführen. Dies stärkt nicht nur die Relevanz der entwickelten Lösungen für andere Bibliotheken, sondern reduziert auch Mehrarbeit, welche bei einer klassischen Nachnutzung auf Basis einer Software-Version entstehen würde. Um diese Vorteile realisieren zu können, müssen zunächst organisatorische Herausforderungen bei der Kooperation über Einrichtungsgrenzen gelöst werden.
Insgesamt kann der verstärkte Einsatz von Git in der UB Magdeburg als Erfolg bezeichnet werden, denn die Kollaboration orientiert sich an Prozessbahnen, was Frustration und Mehrarbeit verringert. Durch die genannten Vorteile steigt auch die Qualität der entwickelten Software. Die Fehlerwahrscheinlichkeit im Produktivbetrieb sinkt und das schafft Kapazitäten für weitere Entwicklungen. Somit kann der personellen Knappheit in den IT-Bereichen der Bibliotheken entgegengetreten und die digitale Transformation dieser Branche beschleunigt werden.
5 Abkürzungsverzeichnis
Contiuous Development
Continuous Integration
Otto-von-Guericke-Universität Magdeburg
Universitätsrechenzentrum der OVGU
Verbundzentrale des Gemeinsamen Bibliotheksverbundes
© 2023 bei den Autoren, publiziert von De Gruyter.
Dieses Werk ist lizensiert unter einer Creative Commons Namensnennung 4.0 International Lizenz.
Articles in the same Issue
- Frontmatter
- Editorial
- Aus den Verbänden
- Öffentliche Sichtbarkeit und Vernetzung von Spezialbibliotheken
- Deutscher Bibliotheksverband e.V. (dbv) begrüßt Kulturpass für 18-Jährige
- Initiative Fortbildung e.V. erhält die Karl-Preusker-Medaille 2022
- Themen
- Quereinsteigende qualifizieren
- Proveana – Eine Datenbank für die Provenienzforschung am Deutschen Zentrum Kulturgutverluste
- Strukturdatenerfassung in den Zentralen Fachbibliotheken – Nutzerbedürfnisse und Effizienz
- Git in der Universitätsbibliothek der OVGU – ein Erfahrungsbericht
- Notizen und Kurzbeiträge
- Notizen und Kurzbeiträge
Articles in the same Issue
- Frontmatter
- Editorial
- Aus den Verbänden
- Öffentliche Sichtbarkeit und Vernetzung von Spezialbibliotheken
- Deutscher Bibliotheksverband e.V. (dbv) begrüßt Kulturpass für 18-Jährige
- Initiative Fortbildung e.V. erhält die Karl-Preusker-Medaille 2022
- Themen
- Quereinsteigende qualifizieren
- Proveana – Eine Datenbank für die Provenienzforschung am Deutschen Zentrum Kulturgutverluste
- Strukturdatenerfassung in den Zentralen Fachbibliotheken – Nutzerbedürfnisse und Effizienz
- Git in der Universitätsbibliothek der OVGU – ein Erfahrungsbericht
- Notizen und Kurzbeiträge
- Notizen und Kurzbeiträge