Цитирование : Хагиш, Э.Ф. (2020). Разработка, поддержка и размещение статистического программного обеспечения Stata на GitHub. Стата журнал, 20(4), 931-951.
github
— это модуль Stata для поиска и установки пакетов Stata с GitHub, включая предыдущие выпуски пакетов. Это комбинация нескольких команд Stata, таких как search
, findit
и ssc
, но вместо этого она предназначена для управления пакетами Stata, размещенными на GitHub. Кроме того, пакет предоставляет новые функции контроля версий, которые недоступны пользователям Stata где-либо еще (например, пакет позволяет устанавливать более старые версии пакета Stata для воспроизведения анализа, проведенного с использованием более старого программного обеспечения).
НОВОСТИ : Представляем команду gitget
. gitget
еще больше упрощает установку и обновление пакета. он предоставляет базу данных для всех существующих пакетов Stata на GitHub, что позволяет вам установить пакет, размещенный на GitHub и известный gitget
, просто набрав:
gitget packagename
Команда gitget
использует полный список пакетов Stata на GitHub для определения URL-адреса проекта. Этот список создается программно с помощью программы поиска, которая обнаруживает пакеты Stata. Во-первых, все репозитории Stata идентифицируются и сохраняются в repolist.dta . Затем устанавливаемые пакеты извлекаются и сохраняются в gitget.dta , который также устанавливается вместе с пакетом на ваш компьютер. Полный список архива также доступен для предварительного просмотра в этом репозитории.
Оглавление
gitget
В последние годы пользователи Stata все чаще используют GitHub для обмена кодом и наборами данных Stata, разработки статистического программного обеспечения и размещения пакетов Stata, как показано на рисунке ниже. Это действительно хорошая новость для сообщества Stata и всех, кто выступает за прозрачность исследований! Модуль github
облегчает поиск, установку, управление и даже сборку пакетов Stata. Кроме того, он позволяет устанавливать разрабатываемую версию или, альтернативно, стабильные версии пакета. Он также позволяет указывать зависимости пакетов, которые будут установлены автоматически, что делает GitHub еще более привлекательным для пользователей и разработчиков Stata. Здесь я быстро покажу вам, как установить и использовать пакет github
.
github
Вы можете установить последнюю версию команды github
, выполнив следующий код:
net install github, from("https://haghish.github.io/github/")
Общий синтаксис пакета можно резюмировать следующим образом:
github [subcommand] [...]
Где [ подкоманда ] может быть:
Подкоманда | Описание |
---|---|
search | находит пакет Stata на GitHub |
findfile | ищет файл среди всех пакетов Stata на GitHub |
install | устанавливает пакет с GitHub |
list | предоставляет информацию о пакетах, установленных с помощью github |
query | перечисляет все предыдущие выпуски пакета |
check | проверяет, можно ли установить репозиторий |
uninstall | удаляет пакет из Stata |
update | обновляет пакет с GitHub |
version | возвращает версию установленного пакета |
и [ ... ] может быть именем пользователя/репозитория или именем пакета на основе указанной подкоманды.
Чтобы установить пакет, вам нужно только имя пользователя GitHub и имя репозитория. Комбинация имени пользователя и имени репозитория, разделенных косой чертой, обеспечивает необходимый URL-адрес репозитория. Например, чтобы установить пакет MarkDoc, который размещен на https://github.com/haghish/markdoc, достаточно ввести:
github install haghish/markdoc [, stable version("")]
Пакет github
включает базу данных с полным списком пакетов Stata, размещенных на GitHub. Таким образом, вы также можете установить пакет, просто указав имя пакета. Команда gitget
, которая является оболочкой для github install
, может устанавливать или обновлять пакеты Stata из GitHub, только запрашивая имя пакета:
gitget packagename [, stable version("")]
Например, если вы хотите установить пакет markdoc
, ввести gitget markdoc
будет так же хорошо, как ввести github install haghish/markdoc
. Если вы хотите просмотреть список пакетов Stata, размещенных на GitHub, см. набор данных gitget.dta .
Параметры | Описание |
---|---|
stable | устанавливает последнюю стабильную версию пакета |
version(str) | устанавливает указанную версию выпуска |
Вы можете выполнить поиск пакета Stata на GitHub, используя ключевое слово или несколько ключевых слов. Это похоже на команды search
или findit
Stata, но вместо этого используется только для поиска пакетов GitHub:
github search weaver
Эффективный поиск по GitHub API очень важен. Для этого в пакет включен графический интерфейс поиска, показывающий синтаксис, который вы можете использовать, чтобы сузить поиск или расширить его, включив в него другие источники. Команда поиска также анализирует даты выпуска пакетов, размещенных в команде net
, что является очень полезной функцией. Чтобы запустить графический интерфейс, введите:
db github
Например, если вы используете команду github search
для поиска пакета markdoc
, вы получите следующий результат:
github
имеет встроенную базу данных, которая отслеживает пакеты, установленные на вашем компьютере, и, конечно же, сообщает вам версии пакетов, установленных на вашем компьютере. Версия берется из уникальных тегов релиза пакета, указанных разработчиком. Вы можете list
установленные пакеты и получить полезную информацию о них. Эта команда также уведомляет вас о наличии доступного обновления для любого из ваших пакетов GitHub . Например, из приведенного ниже вывода мы знаем, что для двух наших пакетов доступны обновления. мы также можем нажать ссылку (update)
, чтобы обновить пакет до последней версии.
. github list
Не все пакеты можно установить. Чтобы их можно было установить, репозитории Stata должны иметь файлы toc и pkg . Вы можете проверить, можно ли установить пакет, с помощью подкоманды check
.
github check haghish/markdoc
Это довольно важный момент, на который следует обратить внимание, поскольку команда
github search
, которая используется для поиска пакетов Stata на GitHub, имеет тенденцию отклонять репозитории Stata, которые невозможно установить. Другими словами, если ваш репозиторий не включает эти файлы, он не будет считаться пакетом Stata, если вы не укажете параметрall
в своем поиске (в графическом интерфейсе поиска установите флажок «Показать репозитории GitHub, которые не подлежат установке» ). Однако пакетgithub
также включает графический интерфейс для создания этих файлов. Используя графический интерфейс, поставляемый сgithub
, вы можете легко собрать эти файлы для своего репозитория (см. ниже).
Чтобы установить пакет, используйте подкоманду 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
, который генерирует для вас установки пакета, используя строгий макет. Вы можете просто выбрать файлы, которые хотите установить, указать необходимую информацию и подготовить файлы toc и pkg . Затем, как только вы скопируете эти файлы в свой репозиторий, их можно будет установить!
Измените рабочий каталог на путь к репозиторию, а затем запустите графический интерфейс, набрав:
db make
запишите необходимую информацию и выберите файлы, которые следует установить. Нажмите ОК и наслаждайтесь!
gitget
Набор данных gitget
загружается вместе с пакетом github
. Этот набор данных обновляется ежемесячно. Нажмите здесь, чтобы просмотреть полный список пакетов gitget
.
Э.Ф. Хагиш
Центр медицинской биометрии и медицинской информатики
Университет Фрайбурга, Германия
@Хагиш