Veröffentlichungsort für Open Code auswählen
Die langfristige Erhaltung und Zugänglichkeit von Code und Forschungssoftware sollte durch die Archivierung auf einer geeigneten, vertrauenswürdigen Plattform sichergestellt werden. Hierbei ist zwischen einer Veröffentlichung, um Code grundsätzlich verfügbar zu machen, und der Veröffentlichung als oder im Rahmen einer wissenschaftlichen Publikation zu unterscheiden.
Um Code grundsätzlich zugänglich zu machen, bieten sich große Code-Repositorien wie GitHub (oder zumindest ein institutsinternes Git-Repositorium, das öffentlich zugänglich ist) an. Der Vorteil besteht darin, dass diese bereits eine Versionskontrolle und ein Release-Management bieten. Sie können für Ihr eigenes Repositorium auch zunächst die Sichtbarkeit für Dritte einschränken (“privat stellen”) und entscheiden, wann Sie dieses öffentlich zugänglich machen wollen. Sie haben zudem die Möglichkeit, eine bestimmte Version (Commit) oder ein Release zu referenzieren.
Code Notebooks, wie Jupyter Notebook, lassen sich auch auf GitHub ablegen und verwalten und als lauffähige Variante über Umgebungen wie MyBinder teilen. Container, wie Docker, lassen sich über Plattformen wie Docker Hub teilen.
Um Code im wissenschaftlichen Sinne zu veröffentlichen, stehen Ihnen verschiedene Wege offen:
- Sie können ein fachspezifisches Repositorium suchen. Wenn Sie eine Journal-Veröffentlichung planen, prüfen Sie zunächst, ob es bereits ein mit dem Journal verbundenes Repositorium gibt. Verschiedene Journals der American Economic Association (AEA) haben ein eigenes Repositorium für Daten und Code. Das Ablegen von Code in diesem Repositorium ist Teil einer Publikation und wird auch mit einer DOI versehen. Ein solches Datenrepositorium ist auch das ZBW Journal Data Archive. Dort stellen verschiedene Fachzeitschriften Daten und Code zu publizierten Artikeln für die Fachwelt zur Verfügung.
- Sie können den Code auf generischen Repositorien wie Zenodo oder Figshare ablegen. Dort bekommen Sie dann auch eine eigene DOI für eine spätere Zitation. Einmal hochgeladene Dateien können im Nachhinein nicht mehr geändert werden. Daher eignet sich diese Art der Veröffentlichung besonders für bestimmte Versionen beziehungsweise ein Release. Was auf Zenodo oder Figshare liegt, können Sie bei einer Publikation auch entsprechend (zum Beispiel als Supplemental Material) zitieren. GitHub beinhaltet bereits eine Unterstützung für Zenodo, mit der ein Release auf Zenodo veröffentlicht wird.
- Umfangreichere Code-Pakete beziehungsweise komplette Software können Sie auch als eigenständige Publikation veröffentlichen, allerdings gibt es dafür sehr wenig Möglichkeiten. Die Open-Access-Zeitschrift Journal of Open Source Software publiziert Forschungssoftware, die Open Source ist. Von den Gutachtenden der Zeitschrift werden der eingereichte Code und seine Dokumentation geprüft. Wenn alle Kriterien erfüllt sind, erfolgt die Veröffentlichung als sogenanntes Software-Paper, worin die publizierte Software auf einem Repositorium referenziert wird. Eine Liste mit möglichen Journals enthält auch die Ratgeberseite “In which journals should I publish my software?” des Software Sustainability Institute der University of Edinburgh.
- Auf Plattformen wie dem Open Science Framework (OSF) können Sie ebenfalls Ihren Code veröffentlichen.
- Falls es keine anderen Möglichkeiten gibt, könnten Sie auch überlegen, Code als “Supplemental Material” hochzuladen, also als eine Art Anhang einer Journal-Publikation. Diese Anhänge sind dann aber selbst nicht zitierbar.
Bei Ihrer Entscheidung, wo und für welchen Zweck Sie Ihren Code am Ende ablegen, können noch folgende Punkte eine Rolle spielen:
- Genügend Speicherplatz für Ihre Zwecke,
- eine längerfristige Archivierung (im Optimalfall: Langzeitarchivierung) des Codes,
- Anbieter ist langfristig sicher am Markt,
- möglichst kostenlos.