diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 892367c..3209f56 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 eb249f5..42aeb0f 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 00a9a81..db32d17 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 0000000..f87d610 --- /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 d747b56..cb867ae 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 2f30021..51f7b20 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 0e2a903..4aac93b 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",