あなたの研究をConda Packと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