引用:Haghish,EF (2020)。在 GitHub 上開發、維護和託管 Stata 統計軟體。 Stata 期刊,20(4), 931-951。
github
是一個 Stata 模組,用於從 GitHub 搜尋和安裝 Stata 包,包括先前版本的套件。它是幾個 Stata 指令的組合,例如search
、 findit
和ssc
,但用於管理託管在 GitHub 上的 Stata 套件。此外,該軟體包還提供了版本控制的新功能,這是 Stata 用戶在其他地方無法使用的(例如,該軟體包允許安裝舊版本的 Stata 軟體包以重現使用舊軟體進行的分析)。
新聞:介紹gitget
指令。 gitget
進一步簡化了軟體包的安裝和更新。它為 GitHub 上所有現有的 Stata 套件提供了一個資料庫,它允許您安裝託管在 GitHub 上的套件 - 並且可以透過gitget
識別,只需輸入:
gitget packagename
gitget
指令依賴 GitHub 上 Stata 套件的完整清單來識別專案的 URL。此清單是使用檢測 Stata 套件的搜尋程式以程式設計方式建立的。首先,所有 Stata 儲存庫都被識別並儲存在repolist.dta中。接下來,可安裝的軟體包被提取並儲存在gitget.dta中,該軟體包也隨軟體包一起安裝在您的電腦上。存檔的完整清單也可在此儲存庫中預覽
目錄
gitget
指令識別的Stata套件列表近年來,Stata 用戶越來越多地使用 GitHub 來共享 Stata 程式碼和資料集、開發統計軟體以及託管 Stata 包,如下圖所示。對於 Stata 社區和任何促進研究透明度的人來說,這確實是一個好消息! github
模組有助於搜尋、安裝、管理甚至建立 Stata 套件。此外,它允許安裝開發版本或穩定版本的軟體包。它還允許指定將自動安裝的套件依賴項,使 GitHub 對 Stata 用戶和開發人員更具吸引力。在這裡,我快速向您展示如何安裝和使用github
套件。
github
模組您可以執行以下程式碼來安裝最新版本的github
命令:
net install github, from("https://haghish.github.io/github/")
該包的一般語法可以總結為:
github [subcommand] [...]
其中 [子命令] 可以是:
子命令 | 描述 |
---|---|
search | 在 GitHub 上找到 Stata 包 |
findfile | 在 GitHub 上的所有 Stata 包中搜尋文件 |
install | 從 GitHub 安裝包 |
list | 提供有關隨github 安裝的軟體包的信息 |
query | 列出軟體包的所有先前版本 |
check | 測試儲存庫是否可安裝 |
uninstall | 從 Stata 中刪除套件 |
update | 從 GitHub 更新包 |
version | 傳回已安裝套件的版本 |
[ ... ] 可以是使用者名稱/儲存庫或包名,取決於指定的子命令。
要安裝套件,您只需要 GitHub 使用者名稱和儲存庫名稱。使用者名稱和儲存庫名稱的組合(以斜線分隔)提供了儲存庫所需的 URL。例如,要安裝託管在 https://github.com/haghish/markdoc 上的 MarkDoc 包,只需鍵入:
github install haghish/markdoc [, stable version("")]
github
套件包含一個資料庫,包含 GitHub 上託管的 Stata 套件的完整清單。因此,您也可以僅透過指定套件名稱來安裝套件。 gitget
命令 - 它是github install
的包裝器 - 只需詢問套件名稱即可從 GitHub 安裝或更新 Stata 套件:
gitget packagename [, stable version("")]
例如,如果你想安裝markdoc
包,輸入gitget markdoc
就跟輸入github install haghish/markdoc
一樣好。如果您希望檢查 GitHub 上託管的 Stata 套件列表,請參閱gitget.dta資料集。
選項 | 描述 |
---|---|
stable | 安裝軟體套件的最新穩定版本 |
version(str) | 安裝指定的發行版本 |
您可以使用一個或多個關鍵字在 GitHub 上搜尋 Stata 包。這類似於 Stata 的search
或findit
指令,但僅用於搜尋 GitHub 套件:
github search weaver
有效地搜尋 GitHub API 非常重要。為此,該軟體包包含一個搜尋 GUI,它顯示可用於縮小搜尋範圍或擴展搜尋範圍以包含其他來源的語法。 search 命令還分析net
命令上託管的軟體包的發布日期,這是一個非常有用的功能。若要啟動 GUI,請鍵入:
db github
例如,如果您使用github search
命令搜尋markdoc
包,您將得到以下輸出:
github
有一個內建資料庫,可以追蹤您機器上安裝的軟體包,當然,也可以告訴您機器上安裝的軟體包的版本。此版本取自開發人員指定的套件的唯一發布標籤。您可以list
已安裝的軟體包並獲取有關它們的有用資訊。如果您的任何 GitHub 套件有可用更新,此命令也會通知您。例如,在下面的輸出中,我們知道我們的兩個軟體包有可用的更新。我們也可以點擊(update)
連結將軟體包更新到最新版本。
. github list
並非所有軟體包都可以安裝。 Stata 儲存庫必須具有toc和pkg檔案才能安裝。您可以使用check
命令檢查軟體包是否可安裝。
github check haghish/markdoc
這是需要注意的相當重要的一點,因為用於在 GitHub 上搜尋 Stata 套件的
github search
命令往往會忽略不可安裝的 Stata 儲存庫。換句話說,如果您的儲存庫不包含這些文件,它將不會被視為 Stata 包,除非您在搜尋中指定all
選項(在搜尋 GUI 中選取顯示不可安裝的 GitHub 儲存庫選項)。但是,github
套件還包含用於建立這些檔案的 GUI。使用github
附帶的 GUI,您可以輕鬆地為您的儲存庫建立這些文件(請參閱下文)。
若要安裝軟體包,請使用uninstall
子命令,後面跟著軟體包名稱。例如:
github uninstall markdoc
GitHub 允許歸檔無限數量的套件版本。 github
指令有一個用於指定軟體包版本的選項,允許安裝先前的軟體包版本。例如,要安裝舊版的 MarkDoc 套件,例如3.8.0
。您可以輸入:
github install haghish/markdoc , version("3.8.0")
但是你能看到軟體包版本嗎? GitHub 有一個發布選項卡,列出了該軟體的所有先前版本(例如,請參閱 MarkDoc 的先前版本)。但好消息是github
有一個子命令,用於在 Stata 結果視窗中列出所有先前的版本,並允許您透過點擊滑鼠或安裝它們中的任何一個(以及該特定版本的套件依賴項,如果指定的話)以程式設計方式。為此,請鍵入:
github query username/repository
例如,要列出MarkDoc的先前版本,請鍵入:
. 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
----------------------------------------
使用動態文件軟體(例如MarkDoc )編寫分析時,您應該報告分析中使用的套件的版本。您可以使用version
命令以程式設計方式取得已安裝軟體包的版本,後面接著:
. github version markdoc
3.8.0
該命令沒有任何其他用途,因為github list
命令已經顯示了已安裝軟體包的版本,並且還檢查是否有可用的更新版本...
有些套件依賴其他套件。 github
指令可讓您安裝有或沒有特定版本的套件依賴項。為此:
dependency.do
的檔案並將其包含在儲存庫中github
命令安裝套件依賴項,甚至指定所需的版本。github
指令在安裝套件後尋找dependency.do
,如果在儲存庫中找到它,則會執行它。例如, MarkDoc 套件有一個dependency.do
文件,可以作為如何建立依賴文件的範例。當然, dependenc.do
檔案只能透過github install
指令執行。
github
套件包含安裝在 GitHub 上託管的套件內的所有檔案的資料庫。對於開發人員來說,這是一個重要的功能,可以避免創建具有其他開發人員使用的名稱的文件,因為此類軟體包不能一起安裝在同一系統上(程式名稱也存在問題)。 github
套件允許開發人員檢查特定名稱是否已在套件中使用過。
findfile
指令搜尋githubfiles.dta
(隨套件一起安裝),如果找到,它會指出包含該檔案的儲存庫。例如,搜尋包含關鍵字“dy”的檔案將導致:
. github findfile dy
---------------------------------
Searching githubfiles database
---------------------------------
dynpandoc.ado
dynpandoc.sthlp
dynamicPage1.mata
---------------------------------
如果您在結果視窗中按一下這些文件,它們還包含其儲存庫的連結。
假設您已經建立了 ado 檔案和 Stata 幫助文件。如何使您的儲存庫可安裝? make
需要手動建立stata.toc和packagename.pkg文件, github
所需的資訊、應安裝的文件等。您只需選擇要安裝的文件,指定所需的信息,然後準備好toc和pkg文件。然後,一旦您將這些檔案複製到儲存庫,它就可以安裝了!
將工作目錄變更為儲存庫路徑,然後執行 GUI,輸入:
db make
記下所需的資訊並選擇應安裝的檔案。按確定,然後享受吧!
gitget
指令識別的Stata套件列表gitget
資料集與github
套件一起下載。該資料集每月更新一次。按一下此處查看gitget
包的完整清單。
EF哈吉什
醫學生物統計與醫學資訊學中心
德國弗萊堡大學
@哈吉什