あなたの研究をConda PackとGitHubアクションで再現可能にしておいてください
5732 ワード
再現性は科学的方法を支える主要な原則であり、科学的ソフトウェアは例外ではない.
アナコンダは、2500万人以上のユーザーによる科学的コンピューティングのためのパイソンとRプログラミング言語の配布です.しかし、どのように再生可能なアナコンダで作られた科学ですか?最も重要なことは
あなたは、次の10年であなたの研究結果を再現することができると思いますか?
現在、アナコンダ環境の再現性is not guaranteed .
例えば、非標準のチャンネルからパッケージを使用する場合、所有者はいつでもそれらを削除することができます.また、解決されたURLはパッケージラベルまたは保管の変化のために変化するかもしれません.
があるongoing debate この問題を解決するために異なる利用可能なツールを統一する方法について.このワークフローでは、Githubのアクションと
Githubの上であなたのコード(例えば紙)の新しいリリースを発表するたびに、環境は解決されて、パックされて、資産としてアップロードされます.
コードを得る
epassaro / repro-conda-envs
Anagonda環境を長期的にGithubアクションで再現可能に保つ方法に関する例リポジトリ
コンプロ民主党
Anagonda環境を長期的にGithubアクションで再現可能に保つ方法に関する例リポジトリ
View on GitHub
アナコンダは、2500万人以上のユーザーによる科学的コンピューティングのためのパイソンとRプログラミング言語の配布です.しかし、どのように再生可能なアナコンダで作られた科学ですか?最も重要なことは
あなたは、次の10年であなたの研究結果を再現することができると思いますか?
現在、アナコンダ環境の再現性is not guaranteed .
conda list --explicit
ほんの一部の短期再現性を提供します.例えば、非標準のチャンネルからパッケージを使用する場合、所有者はいつでもそれらを削除することができます.また、解決されたURLはパッケージラベルまたは保管の変化のために変化するかもしれません.
があるongoing debate この問題を解決するために異なる利用可能なツールを統一する方法について.このワークフローでは、Githubのアクションと
conda-pack
:
conda-pack
is a command line tool for creating archives of conda environments that can be installed on other systems and locations. This is useful for deploying code in a consistent environment —potentially where Python and/or conda isn’t already installed.
Githubの上であなたのコード(例えば紙)の新しいリリースを発表するたびに、環境は解決されて、パックされて、資産としてアップロードされます.
name: pack
on:
release:
types: [published]
env:
BASENAME: ${{ github.event.repository.name }}-${{ github.event.release.tag_name }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Setup Mambaforge
uses: conda-incubator/[email protected]
with:
miniforge-variant: Mambaforge
miniforge-version: latest
environment-file: environment.yml
activate-environment: my-env
use-mamba: true
- name: Freeze packages
shell: bash -l {0}
run: conda env export -n my-env > $BASENAME.yml
- name: Install conda-pack
shell: bash -l {0}
run: mamba install -c conda-forge conda-pack
- name: Pack environment
shell: bash -l {0}
run: conda pack -n my-env -o $BASENAME.tar.gz
- name: Upload assets
uses: AButler/[email protected]
with:
files: '${{ env.BASENAME }}.{yml,tar.gz}'
repo-token: ${{ secrets.GITHUB_TOKEN }}
release-tag: ${{ github.event.release.tag_name }}
最後にfollow the instructions 将来の任意の時点で同じ環境を展開します.コードを得る
epassaro / repro-conda-envs
Anagonda環境を長期的にGithubアクションで再現可能に保つ方法に関する例リポジトリ
コンプロ民主党
Anagonda環境を長期的にGithubアクションで再現可能に保つ方法に関する例リポジトリ
View on GitHub
Reference
この問題について(あなたの研究をConda PackとGitHubアクションで再現可能にしておいてください), 我々は、より多くの情報をここで見つけました https://dev.to/epassaro/keep-your-research-reproducible-with-conda-pack-and-github-actions-339nテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol