diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 892367cf..3209f56b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -146,3 +146,46 @@ jobs: env: FLIT_USERNAME: __token__ FLIT_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + + conda: + name: publish conda to anaconda.org + needs: [tag, release] + runs-on: ubuntu-24.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: main + + - name: Set version in conda recipe + run: | + sed -i -E "s/^{% set version = \".*\" %}$/{% set version = \"${{ github.event.inputs.version }}\" %}/" conda-recipe/meta.yaml + + - name: Setup Conda + uses: conda-incubator/setup-miniconda@v3 + with: + miniforge-variant: Miniforge3 + python-version: "3.12" + auto-activate-base: false + + - name: Install build tools + shell: bash -l {0} + run: | + conda install -y conda-build anaconda-client + conda config --add channels conda-forge + conda config --set channel_priority strict + conda config --set anaconda_upload no + + - name: Build package + shell: bash -l {0} + run: | + conda build conda-recipe + + - name: Upload to Anaconda + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} + run: | + PKG_PATH=$(conda build conda-recipe --output) + anaconda -t "$ANACONDA_API_TOKEN" upload "$PKG_PATH" --user CCPBioSim --force diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index eb249f5f..42aeb0f2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,6 +12,7 @@ repos: - id: check-added-large-files - id: check-merge-conflict - id: check-yaml + exclude: ^conda-recipe/meta\.yaml$ - id: check-toml - id: check-case-conflict - id: check-ast diff --git a/README.md b/README.md index 00a9a818..db32d17b 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ CodeEntropy CodeEntropy is a Python package for computing the configurational entropy of macromolecular systems using forces sampled from molecular dynamics (MD) simulations. It implements the multiscale cell correlation method to provide accurate and efficient entropy estimates, supporting a wide range of applications in molecular simulation and statistical mechanics.

- CodeEntropy logo - CodeEntropy logo + CodeEntropy logo + CodeEntropy logo

See [CodeEntropy’s documentation](https://codeentropy.readthedocs.io/en/latest/) for more information. diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml new file mode 100644 index 00000000..f87d6100 --- /dev/null +++ b/conda-recipe/meta.yaml @@ -0,0 +1,47 @@ +{% set name = "CodeEntropy" %} +{% set version = "0.0.0" %} + +package: + name: {{ name }} + version: {{ version }} + +source: + path: .. + +build: + noarch: python + script: python -m pip install . -vv --no-deps + entry_points: + - CodeEntropy=CodeEntropy.cli:main + +requirements: + host: + - python >=3.12 + - pip + - flit-core >=3.4,<4 + run: + - python >=3.11 + - numpy >=2.3,<3.0 + - mdanalysis >=2.10,<3.0 + - pandas >=3.0,<3.1 + - psutil >=7.1,<8.0 + - pyyaml >=6.0,<7.0 + - python-json-logger >=4.0,<5.0 + - rich >=14.2,<15.0 + - art >=6.5,<7.0 + - networkx >=3.6,<3.7 + - matplotlib >=3.10,<3.11 + - waterentropy >=2,<2.1 + - requests >=2.32,<3.0 + +test: + imports: + - CodeEntropy + commands: + - CodeEntropy --help + +about: + home: https://ccpbiosim.github.io/CodeEntropy/ + license: MIT + license_file: LICENSE + summary: "Entropy analysis tools for macromolecular systems and MD simulation" diff --git a/docs/developer_guide.rst b/docs/developer_guide.rst index d747b563..cb867ae6 100644 --- a/docs/developer_guide.rst +++ b/docs/developer_guide.rst @@ -9,12 +9,19 @@ the continuous integration workflows. Getting Started for Developers ------------------------------ -Create a virtual environment:: +Create a development environment using either venv or Conda. + +Using venv:: python -m venv codeentropy-dev source codeentropy-dev/bin/activate # Linux/macOS codeentropy-dev\Scripts\activate # Windows +Using Conda:: + + conda create -n codeentropy-dev python=3.14 + conda activate codeentropy-dev + Clone the repository:: git clone https://github.com/CCPBioSim/CodeEntropy.git diff --git a/docs/getting_started.rst b/docs/getting_started.rst index 2f300213..51f7b207 100644 --- a/docs/getting_started.rst +++ b/docs/getting_started.rst @@ -23,13 +23,37 @@ Requirements Installation ------------ -To install the released version: +CodeEntropy can be installed using either pip or Conda. + +Install with pip +^^^^^^^^^^^^^^^^ + +To install the released version from PyPI: .. code-block:: bash pip install CodeEntropy +Install with Conda +^^^^^^^^^^^^^^^^^^ + +CodeEntropy is also available via the CCPBioSim Anaconda channel. + +Create a dedicated environment: + +.. code-block:: bash + + conda create -n codeentropy python=3.14 + conda activate codeentropy + +Install CodeEntropy: + +.. code-block:: bash + + conda install -c conda-forge -c CCPBioSim CodeEntropy + + Input Files ----------- diff --git a/pyproject.toml b/pyproject.toml index 0e2a903a..4aac93b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ classifiers = [ "Development Status :: 5 - Production/Stable" ] keywords = ["entropy", "macromolecular systems", "MD simulation"] -requires-python = ">=3.11" +requires-python = ">=3.12" dependencies = [ "numpy>=2.3,<3.0", "mdanalysis>=2.10,<3.0",