diff --git a/.github/workflows/ci-integration.yml b/.github/workflows/ci-integration.yml index 36e1d380..9a961fe8 100644 --- a/.github/workflows/ci-integration.yml +++ b/.github/workflows/ci-integration.yml @@ -27,8 +27,9 @@ jobs: matrix: os: ['ubuntu'] python-version: - - "3.9" - "3.10" + - "3.11" + - "3.12" steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/deploy-conda-envs.yml b/.github/workflows/deploy-conda-envs.yml deleted file mode 100644 index 15964545..00000000 --- a/.github/workflows/deploy-conda-envs.yml +++ /dev/null @@ -1,75 +0,0 @@ ---- - -name: Deployment - conda environments - -on: - push: - branches: - - master - paths: - - 'devtools/conda-envs/alchemiscale-*.yml' - workflow_dispatch: - -jobs: - deploy-conda-env: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - env-name: - - alchemiscale-client - - alchemiscale-server - - alchemiscale-compute - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: ensure we only have one instance running - uses: softprops/turnstyle@v1 - env: - GITHUB_TOKEN: ${{ secrets.GH_DANGERBOT_TOKEN_LIMITED }} - with: - abort-after-seconds: 60 - - #- name: Cache conda - # uses: actions/cache@v2 - # env: - # CACHE_NUMBER: 0 - # with: - # path: ~/conda_pkgs_dir - # key: - # ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ - # hashFiles('devtools/conda-envs/${{ matrix.env-name }}.yml') }} - - - name: Additional info about the build - shell: bash - run: | - uname -a - df -h - ulimit -a - - - name: Configure conda; test creation of environment - uses: conda-incubator/setup-miniconda@v2 - with: - #python-version: 3.9 - auto-update-conda: true - use-mamba: true - miniforge-variant: Mambaforge - activate-environment: ${{ matrix.env-name }} - environment-file: devtools/conda-envs/${{ matrix.env-name }}.yml - #use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! - #auto-activate-base: false - - - name: Environment Information - shell: bash -l {0} - run: | - conda info - conda list - - - name: Deploy conda env - shell: bash -l {0} - env: - ANACONDA_TOKEN: ${{ secrets.ANACONDA_TOKEN }} - run: | - mamba install -y anaconda-client - anaconda -t ${ANACONDA_TOKEN} upload --user openforcefield devtools/conda-envs/${{ matrix.env-name }}.yml diff --git a/devtools/conda-envs/alchemiscale-client.yml b/devtools/conda-envs/alchemiscale-client.yml index 6f583986..a027bde5 100644 --- a/devtools/conda-envs/alchemiscale-client.yml +++ b/devtools/conda-envs/alchemiscale-client.yml @@ -2,35 +2,34 @@ name: alchemiscale-client channels: - jaimergp/label/unsupported-cudatoolkit-shim - conda-forge - - openeye dependencies: - pip - - python =3.10 + - python=3.12 # alchemiscale dependencies - - gufe=0.9.5 - - openfe=0.14.0 - - openmmforcefields>=0.12.0 + - gufe=1.0.0 + - openfe=1.0.1 - requests - click - httpx - pydantic<2.0 + # openmm protocols + - feflow=0.1.0 + ## user client printing - rich - # perses dependencies - - openeye-toolkits - - openmoltools - - cloudpathlib - - dask - - distributed - - numba - - pymbar >=3.0.6,<4 + # additional pins + - openmm=8.1.2 + - openmmforcefields>=0.14.1 + + # alchemiscale-fah dependencies + - cryptography + - plyvel - pip: - nest_asyncio - async_lru - - git+https://github.com/openforcefield/alchemiscale.git@v0.4.0 - - git+https://github.com/choderalab/perses.git@protocol-neqcyc + - git+https://github.com/openforcefield/alchemiscale.git@v0.5.0 diff --git a/devtools/conda-envs/alchemiscale-compute.yml b/devtools/conda-envs/alchemiscale-compute.yml index c0f371d2..a44788d4 100644 --- a/devtools/conda-envs/alchemiscale-compute.yml +++ b/devtools/conda-envs/alchemiscale-compute.yml @@ -1,32 +1,27 @@ name: alchemiscale-compute channels: - conda-forge - - openeye dependencies: - pip - - python =3.10 + - python =3.12 - cudatoolkit =11.8 - + # alchemiscale dependencies - - gufe=0.9.5 - - openfe=0.14.0 - - openmmforcefields>=0.12.0 + - gufe=1.0.0 + - openfe=1.0.1 - requests - click - httpx - pydantic<2.0 - # perses dependencies - - openeye-toolkits - - openmoltools - - cloudpathlib - - dask - - distributed - - numba - - pymbar >=3.0.6,<4 + # openmm protocols + - feflow=0.1.0 + + # additional pins + - openmm=8.1.2 + - openmmforcefields>=0.14.1 - pip: - async_lru - - git+https://github.com/openforcefield/alchemiscale.git@v0.4.0 - - git+https://github.com/choderalab/perses.git@protocol-neqcyc + - git+https://github.com/openforcefield/alchemiscale.git@v0.5.0 diff --git a/devtools/conda-envs/alchemiscale-server.yml b/devtools/conda-envs/alchemiscale-server.yml index f8909d40..7d46147c 100644 --- a/devtools/conda-envs/alchemiscale-server.yml +++ b/devtools/conda-envs/alchemiscale-server.yml @@ -2,17 +2,15 @@ name: alchemiscale-server channels: - jaimergp/label/unsupported-cudatoolkit-shim - conda-forge - - openeye dependencies: - pip - - python =3.10 + - python=3.12 # alchemiscale dependencies - - gufe=0.9.5 - - openfe=0.14.0 + - gufe=1.0.0 + - openfe=1.0.1 - - openmmforcefields>=0.12.0 - requests - click - pydantic<2.0 @@ -37,16 +35,20 @@ dependencies: - httpx - cryptography - # perses dependencies - - openeye-toolkits - - openmoltools - - cloudpathlib - - dask - - distributed - - numba - - pymbar >=3.0.6,<4 + # openmm protocols + - feflow=0.1.0 + + # additional pins + - openmm=8.1.2 + - openmmforcefields>=0.14.1 + + # deployment + - curl # used in healthchecks for API services + + # alchemiscale-fah dependencies + - cryptography + - plyvel - pip: - async_lru - - git+https://github.com/openforcefield/alchemiscale.git@v0.4.0 - - git+https://github.com/choderalab/perses.git@protocol-neqcyc + - git+https://github.com/openforcefield/alchemiscale.git@v0.5.0 diff --git a/devtools/conda-envs/test.yml b/devtools/conda-envs/test.yml index fdab69d7..a23320c2 100644 --- a/devtools/conda-envs/test.yml +++ b/devtools/conda-envs/test.yml @@ -9,7 +9,6 @@ dependencies: # alchemiscale dependencies - gufe>=1.0.0 - openfe>=1.0.1 - - openmmforcefields>=0.12.0 - pydantic<2.0 ## state store @@ -36,6 +35,9 @@ dependencies: - httpx - cryptography + # openmm protocols + - feflow>=0.1.0 + ## cli - click @@ -46,6 +48,10 @@ dependencies: - coverage - moto + # additional pins + - openmm=8.1.2 + - openmmforcefields>=0.14.1 + - pip: - async_lru - git+https://github.com/datryllic/grolt@neo4j-5.x # neo4j test server deployment diff --git a/docs/user_guide.rst b/docs/user_guide.rst index 9a098e08..10355eea 100644 --- a/docs/user_guide.rst +++ b/docs/user_guide.rst @@ -12,27 +12,23 @@ It assumes that you already have a user identity on the target ``alchemiscale`` Installation ************ -Create a conda environment on your workstation:: - - $ conda env create openforcefield/alchemiscale-client - -You can also use ``mamba`` instead of conda above if you prefer a faster solver and have it installed, e.g. via `mambaforge`_. - -If this doesn’t work, clone alchemiscale from Github, and install from there:: +Clone alchemiscale from Github, and switch to the latest release tag:: $ git clone https://github.com/openforcefield/alchemiscale.git $ cd alchemiscale - $ git checkout v0.4.0 + $ git checkout v0.5.0 - $ conda env create -f devtools/conda-envs/alchemiscale-client.yml +Create a conda environment using, e.g. `micromamba`_:: + + $ micromamba create -f devtools/conda-envs/alchemiscale-client.yml Once installed, activate the environment:: - $ conda activate alchemiscale-client + $ micromamba activate alchemiscale-client You may wish to install other packages into this environment, such as jupyterlab. -.. _mambaforge: https://github.com/conda-forge/miniforge#mambaforge +.. _micromamba: https://github.com/mamba-org/micromamba-releases Installing on ARM-based Macs