引用: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 帮助文件。如何使您的存储库可安装?您需要手动创建stata.toc和packagename.pkg文件,指定所需的信息、应安装的文件等。github 包引入了make
GUI,它使用严格的布局为您生成github
安装。您只需选择要安装的文件,指定所需的信息,然后准备好toc和pkg文件。然后,一旦您将这些文件复制到存储库,它就可以安装了!
将工作目录更改为存储库路径,然后运行 GUI,输入:
db make
记下所需的信息并选择应安装的文件。按确定,然后享受吧!
gitget
命令识别的Stata包列表gitget
数据集与github
包一起下载。该数据集每月更新一次。单击此处查看gitget
包的完整列表。
EF哈吉什
医学生物统计和医学信息学中心
德国弗莱堡大学
@哈吉什