Zitieren : Haghish, EF (2020). Entwicklung, Wartung und Hosting der Stata-Statistiksoftware auf GitHub. Das Stata Journal, 20(4), 931-951.
github
ist ein Stata-Modul zum Suchen und Installieren von Stata-Paketen von GitHub, einschließlich früherer Versionen eines Pakets. Es handelt sich um eine Kombination aus mehreren Stata-Befehlen wie search
, findit
und ssc
, die jedoch stattdessen für die Verwaltung von auf GitHub gehosteten Stata-Paketen gedacht sind. Darüber hinaus bietet das Paket neue Funktionen zur Versionskontrolle, die Stata-Benutzern anderswo nicht zur Verfügung stehen (das Paket ermöglicht beispielsweise die Installation älterer Versionen eines Stata-Pakets, um eine mit älterer Software durchgeführte Analyse zu reproduzieren).
NEWS : Einführung gitget
-Befehls. gitget
vereinfacht die Installation und Aktualisierung eines Pakets weiter. Es stellt eine Datenbank für alle vorhandenen Stata-Pakete auf GitHub bereit, die es Ihnen ermöglicht, ein Paket zu installieren, das auf GitHub gehostet wird – und unter gitget
bekannt ist, indem Sie einfach Folgendes eingeben:
gitget packagename
Der Befehl gitget
stützt sich auf eine vollständige Liste der Stata-Pakete auf GitHub, um die URL eines Projekts zu identifizieren. Diese Liste wird programmgesteuert mithilfe eines Suchprogramms erstellt, das Stata-Pakete erkennt. Zunächst werden alle Stata-Repositorys identifiziert und in repolist.dta gespeichert. Als nächstes werden die installierbaren Pakete extrahiert und in gitget.dta gespeichert, das auch mit dem Paket auf Ihrem Computer installiert wird. Die vollständige Liste des Archivs steht in diesem Repository auch zur Vorschau zur Verfügung
Inhaltsverzeichnis
gitget
erkannten Stata-Pakete In den letzten Jahren nutzen Stata-Benutzer GitHub zunehmend zum Teilen von Stata-Code und -Datensätzen, zum Entwickeln von Statistiksoftware und zum Hosten von Stata-Paketen, wie in der folgenden Abbildung dargestellt. Das ist in der Tat eine gute Nachricht für die Stata-Community und alle, die sich für Forschungstransparenz einsetzen! Das github
Modul erleichtert das Suchen, Installieren, Verwalten und sogar Erstellen von Stata-Paketen. Darüber hinaus ist die Installation einer Entwicklungsversion oder alternativ stabiler Versionen eines Pakets möglich. Außerdem können Paketabhängigkeiten angegeben werden, die automatisch installiert werden, was GitHub für Stata-Benutzer und -Entwickler noch attraktiver macht. Hier zeige ich Ihnen schnell, wie Sie das github
-Paket installieren und verwenden.
github
Modul installieren Sie können die neueste Version des github
-Befehls installieren, indem Sie den folgenden Code ausführen:
net install github, from("https://haghish.github.io/github/")
Die allgemeine Syntax des Pakets kann wie folgt zusammengefasst werden:
github [subcommand] [...]
Wobei der [ Unterbefehl ] sein kann:
Unterbefehl | Beschreibung |
---|---|
search | findet ein Stata-Paket auf GitHub |
findfile | sucht unter allen Stata-Paketen auf GitHub nach einer Datei |
install | Installiert ein Paket von GitHub |
list | Bietet Informationen zu Paketen, die mit github installiert wurden |
query | listet alle vorherigen Versionen eines Pakets auf |
check | testet, ob ein Repository installierbar ist |
uninstall | Entfernt ein Paket aus Stata |
update | aktualisiert ein Paket von GitHub |
version | gibt die Version eines installierten Pakets zurück |
und das [ ... ] kann basierend auf dem angegebenen Unterbefehl entweder Benutzername/Repository oder Paketname sein.
Um ein Paket zu installieren, benötigen Sie lediglich den GitHub-Benutzernamen und den Namen des Repositorys. Die Kombination aus Benutzername und Repository-Name – getrennt durch einen Schrägstrich – liefert die benötigte URL zum Repository. Um beispielsweise das MarkDoc-Paket zu installieren, das auf https://github.com/haghish/markdoc gehostet wird, reicht es aus, Folgendes einzugeben:
github install haghish/markdoc [, stable version("")]
Das github
-Paket enthält eine Datenbank mit der vollständigen Liste der auf GitHub gehosteten Stata-Pakete. Daher können Sie ein Paket auch einfach durch Angabe des Paketnamens installieren. Der Befehl gitget
– ein Wrapper für github install
– kann Stata-Pakete von GitHub nur installieren oder aktualisieren, indem er nach dem Paketnamen fragt:
gitget packagename [, stable version("")]
Wenn Sie beispielsweise das Paket markdoc
installieren möchten, wäre die Eingabe gitget markdoc
genauso gut wie die Eingabe github install haghish/markdoc
. Wenn Sie die Liste der auf GitHub gehosteten Stata-Pakete überprüfen möchten, sehen Sie sich den Datensatz gitget.dta an.
Optionen | Beschreibung |
---|---|
stable | Installiert die neueste stabile Release-Version des Pakets |
version(str) | Installiert die angegebene Release-Version |
Sie können GitHub nach Stata-Paketen durchsuchen, indem Sie ein Schlüsselwort oder mehrere Schlüsselwörter verwenden. Dies ähnelt den search
oder findit
-Befehlen von Stata, wird jedoch nur zum Durchsuchen von GitHub-Paketen verwendet:
github search weaver
Es ist sehr wichtig, die GitHub-API effektiv zu durchsuchen. Zu diesem Zweck enthält das Paket eine Such-GUI, die die Syntax anzeigt, mit der Sie Ihre Suche eingrenzen oder auf andere Quellen erweitern können. Der Suchbefehl analysiert auch die Veröffentlichungsdaten für Pakete, die auf dem Befehl net
gehostet werden, was eine sehr nützliche Funktion ist. Geben Sie Folgendes ein, um die GUI zu starten:
db github
Wenn Sie beispielsweise den Befehl github search
verwenden, um nach dem Paket markdoc
zu suchen, erhalten Sie die folgende Ausgabe:
github
verfügt über eine integrierte Datenbank, die die auf Ihrem Computer installierten Pakete verfolgt und Ihnen natürlich auch die Versionen der auf dem Computer installierten Pakete mitteilt. Die Version wird den eindeutigen Release-Tags des Pakets entnommen, die vom Entwickler angegeben werden. Sie können die installierten Pakete list
und hilfreiche Informationen dazu erhalten. Dieser Befehl benachrichtigt Sie auch, wenn für eines Ihrer GitHub-Pakete ein Update verfügbar ist . In der Ausgabe unten wissen wir beispielsweise, dass für zwei unserer Pakete Updates verfügbar sind. Wir können auch auf den Link (update)
klicken, um das Paket auf die neueste Version zu aktualisieren.
. github list
Nicht alle Pakete sind installierbar. Stata-Repositorys müssen über TOC- und PKG- Dateien verfügen, um installiert werden zu können. Mit dem Unterbefehl check
können Sie prüfen, ob ein Paket installierbar ist oder nicht.
github check haghish/markdoc
Dies ist ein ziemlich wichtiger Punkt, den es zu beachten gilt, da der
github search
, der zum Durchsuchen von Stata-Paketen auf GitHub verwendet wird, dazu neigt, Stata-Repositorys zu verwerfen, die nicht installierbar sind. Mit anderen Worten: Wenn Ihr Repository diese Dateien nicht enthält, wird es nicht als Stata-Paket betrachtet, es sei denn, Sie geben in Ihrer Suche die Optionall
an (aktivieren Sie in der Such-GUI die Option „ GitHub-Repositorys anzeigen, die nicht installierbar sind “). Dasgithub
-Paket enthält jedoch auch eine GUI zum Erstellen dieser Dateien. Mit der GUI, die mitgithub
geliefert wird, können Sie diese Dateien ganz einfach für Ihr Repository erstellen (siehe unten).
Um ein Paket zu installieren, verwenden Sie den Unterbefehl uninstall
, gefolgt vom Paketnamen. Zum Beispiel:
github uninstall markdoc
GitHub ermöglicht die Archivierung einer unbegrenzten Anzahl von Paketversionen. Der Befehl github
verfügt über eine Option zum Angeben der Paketversion, sodass frühere Paketversionen installiert werden können. Wenn Sie beispielsweise eine ältere Version des MarkDoc-Pakets installieren möchten, sagen Sie 3.8.0
. Sie können Folgendes eingeben:
github install haghish/markdoc , version("3.8.0")
Aber wo können Sie die Paketversionen sehen? GitHub verfügt über eine Registerkarte „Release“ , die alle früheren Versionen der Software auflistet ( siehe zum Beispiel die früheren Versionen von MarkDoc ). Aber die gute Nachricht ist, dass github
über einen Unterbefehl zum Auflisten aller vorherigen Versionen in Stata-Ergebnisfenstern verfügt und es Ihnen ermöglicht, jede davon ( sowie ihre Paketabhängigkeiten für diese bestimmte Version, falls angegeben ) mit einem einzigen Mausklick zu installieren programmatisch. Geben Sie dazu Folgendes ein:
github query username/repository
Um beispielsweise die früheren Versionen von MarkDoc aufzulisten, geben Sie Folgendes ein:
. github query haghish/markdoc
----------------------------------------
Version Release Date Install
----------------------------------------
3.8.5 2016-10-16 Install
3.8.4 2016-10-13 Install
3.8.3 2016-10-03 Install
3.8.2 2016-10-01 Install
3.8.1 2016-09-29 Install
3.8.0 2016-09-24 Install
3.7.9 2016-09-20 Install
3.7.8 2016-09-19 Install
3.7.7 2016-09-18 Install
3.7.6 2016-09-13 Install
3.7.5 2016-09-08 Install
3.7.4 2016-09-07 Install
3.7.3 2016-09-06 Install
3.7.2 2016-09-05 Install
3.7.0 2016-08-23 Install
3.6.9 2016-08-16 Install
3.6.7 2016-02-27 Install
----------------------------------------
Wenn Sie eine Analyse mit einer dynamischen Dokumentationssoftware wie MarkDoc schreiben, sollten Sie die Version der Pakete angeben, die Sie in Ihrer Analyse verwenden. Sie können die Version eines installierten Pakets programmgesteuert abrufen, indem Sie den Unterbefehl version
verwenden, gefolgt von:
. github version markdoc
3.8.0
Dieser Befehl hat keine weiteren Verwendungsmöglichkeiten, da der Befehl github list
bereits die Version der installierten Pakete anzeigt und auch prüft, ob eine neuere Version davon verfügbar ist ...
Einige Pakete sind auf andere Pakete angewiesen. Mit dem Befehl github
können Sie die Paketabhängigkeiten mit oder ohne eine bestimmte Version installieren. Gehen Sie dazu wie folgt vor:
dependency.do
und fügen Sie sie in das Repository eingithub
zum Installieren der Paketabhängigkeiten und geben Sie sogar die erforderliche Version an.github
-Befehl sucht nach der Installation des Pakets nach dependency.do
und führt es aus, wenn er es im Repository findet. Beispielsweise verfügt das MarkDoc-Paket über eine dependency.do
-Datei , die als Beispiel dafür dienen kann, wie die Abhängigkeitsdatei erstellt werden sollte. Natürlich kann die Datei dependenc.do
nur mit dem Befehl github install
ausgeführt werden.
Das github
-Paket enthält eine Datenbank aller Dateien, die in auf GitHub gehosteten Paketen installiert sind. Dies ist eine wichtige Funktion für Entwickler, um zu vermeiden, dass eine Datei mit einem Namen erstellt wird, der von einem anderen Entwickler verwendet wird, da solche Pakete nicht zusammen auf demselben System installiert werden können (das Problem besteht auch für Programmnamen ). Mit dem github
-Paket können Entwickler überprüfen, ob ein bestimmter Name bereits zuvor in einem Paket verwendet wurde.
Der Unterbefehl findfile
“ durchsucht die githubfiles.dta
(mit dem Paket installiert) und zeigt, wenn sie gefunden wird, das Repository an, das die Datei enthält. Die Suche nach Dateien mit dem Schlüsselwort „dy“ führt beispielsweise zu Folgendem:
. github findfile dy
---------------------------------
Searching githubfiles database
---------------------------------
dynpandoc.ado
dynpandoc.sthlp
dynamicPage1.mata
---------------------------------
Diese Dateien enthalten auch den Link zu ihren Repositorys, wenn Sie im Ergebnisfenster darauf klicken.
Stellen Sie sich vor, Sie haben eine ADO-Datei und Stata-Hilfedateien erstellt. Wie machen Sie Ihr Repository installierbar? Sie müssen manuell eine stata.toc- und eine packagename.pkg- Datei erstellen, die erforderlichen Informationen angeben, Dateien, die installiert werden sollen usw. Das github
Paket führt die make
-GUI ein, die die Paketinstallationen für Sie generiert und dabei ein strenges Layout verwendet. Sie können einfach die Dateien auswählen, die Sie installieren möchten, die erforderlichen Informationen angeben und Ihre TOC- und PKG- Dateien bereithalten. Sobald Sie diese Dateien dann in Ihr Repository kopieren, ist sie installierbar!
Ändern Sie das Arbeitsverzeichnis in den Repository-Pfad und führen Sie dann die GUI aus, indem Sie Folgendes eingeben:
db make
Notieren Sie sich die erforderlichen Informationen und wählen Sie die Dateien aus, die installiert werden sollen. Drücken Sie OK und genießen Sie es!
gitget
erkannt werden Der gitget
Datensatz wird zusammen mit github
-Paket heruntergeladen. Dieser Datensatz wird monatlich aktualisiert. Klicken Sie hier, um die vollständige Liste der gitget
Pakete anzuzeigen.
EF Haghish
Zentrum für Medizinische Biometrie und Medizinische Informatik
Universität Freiburg, Deutschland
@Haghish