From 9261d95fb978ce2ebb15b0a10407d0d300be623d Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 13:08:47 -0700 Subject: [PATCH 01/12] update ci workflows and env file --- .github/workflows/pytest.yml | 12 ++++++------ environment-dev.yml | 2 +- environment.yml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 9e46e8b0..8f916f18 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-latest, macOS-13, ubuntu-latest] + os: [macos-14, ubuntu-24.04] python-version: ['3.10', '3.11'] runs-on: ${{ matrix.os }} @@ -44,7 +44,7 @@ jobs: environment-file: environment-dev.yml python-version: ${{ matrix.python-version }} miniforge-variant: Mambaforge - miniforge-version: 4.9.2-4 + #miniforge-version: 24.11.0 use-mamba: true - name: Install package @@ -63,7 +63,7 @@ jobs: test-tutorials: if: ${{ github.event.issue.pull_request && github.event.comment.body== '/testtutorials'}} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Put a reaction to the comment run: gh api graphql --silent --raw-field query="mutation AddReaction {addReaction(input:{subjectId:\"$NODE_ID\",content:EYES}){reaction{content}subject{id}}}" @@ -96,14 +96,14 @@ jobs: PR_NUMBER: ${{ github.event.issue.number }} - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build environment - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: environment-file: environment-dev.yml miniforge-variant: Mambaforge - miniforge-version: 4.9.2-4 + #miniforge-version: 24.11.0 use-mamba: true - name: Install package diff --git a/environment-dev.yml b/environment-dev.yml index 3285b1f1..f46fa5a5 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -8,7 +8,7 @@ dependencies: - gmso >=0.12.0 - gsd >=3.0 - grits >=0.5.0 - - hoomd >=4.5 + - hoomd >=4.5, <5.0 - mbuild >=0.17.0 - numpy <2.0 - openbabel >=3 diff --git a/environment.yml b/environment.yml index 4caf1ddc..1b3fa0c3 100644 --- a/environment.yml +++ b/environment.yml @@ -8,7 +8,7 @@ dependencies: - gmso >=0.12.0 - gsd >=3.0 - grits >=0.5.0 - - hoomd >=4.5 + - hoomd >=4.5, <5.0 - mbuild >=0.17.0 - numpy <2.0 - openbabel >=3 From a2591b7f428d03b91ca1b57644a69fed7a42b0f8 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 13:12:50 -0700 Subject: [PATCH 02/12] uncomment mambaforge version --- .github/workflows/pytest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 8f916f18..3e0bda63 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -44,7 +44,7 @@ jobs: environment-file: environment-dev.yml python-version: ${{ matrix.python-version }} miniforge-variant: Mambaforge - #miniforge-version: 24.11.0 + miniforge-version: 24.11.0 use-mamba: true - name: Install package @@ -103,7 +103,7 @@ jobs: with: environment-file: environment-dev.yml miniforge-variant: Mambaforge - #miniforge-version: 24.11.0 + miniforge-version: 24.11.0 use-mamba: true - name: Install package From d448f8065d2034c61f80eae8542e764b2ba2f4e6 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 13:14:35 -0700 Subject: [PATCH 03/12] replace Mambaforge with Miniforge --- .github/workflows/pytest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 3e0bda63..c7627eb1 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -43,7 +43,7 @@ jobs: with: environment-file: environment-dev.yml python-version: ${{ matrix.python-version }} - miniforge-variant: Mambaforge + miniforge-variant: Miniforge miniforge-version: 24.11.0 use-mamba: true @@ -102,7 +102,7 @@ jobs: uses: conda-incubator/setup-miniconda@v3 with: environment-file: environment-dev.yml - miniforge-variant: Mambaforge + miniforge-variant: Miniforge miniforge-version: 24.11.0 use-mamba: true From c3564edcac9121bfa01c212f9ad988c4272781d4 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 13:16:24 -0700 Subject: [PATCH 04/12] Fix Miniforge name --- .github/workflows/pytest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index c7627eb1..d30f2d2c 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -43,7 +43,7 @@ jobs: with: environment-file: environment-dev.yml python-version: ${{ matrix.python-version }} - miniforge-variant: Miniforge + miniforge-variant: Miniforge3 miniforge-version: 24.11.0 use-mamba: true @@ -102,7 +102,7 @@ jobs: uses: conda-incubator/setup-miniconda@v3 with: environment-file: environment-dev.yml - miniforge-variant: Miniforge + miniforge-variant: Miniforge3 miniforge-version: 24.11.0 use-mamba: true From 5047bc6c8b06b9aa93cecb3d7b8fd680aaab54a7 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 13:18:46 -0700 Subject: [PATCH 05/12] fix version --- .github/workflows/pytest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index d30f2d2c..b895dc26 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -44,7 +44,7 @@ jobs: environment-file: environment-dev.yml python-version: ${{ matrix.python-version }} miniforge-variant: Miniforge3 - miniforge-version: 24.11.0 + miniforge-version: 24.11.0-0 use-mamba: true - name: Install package @@ -103,7 +103,7 @@ jobs: with: environment-file: environment-dev.yml miniforge-variant: Miniforge3 - miniforge-version: 24.11.0 + miniforge-version: 24.11.0-0 use-mamba: true - name: Install package From 39a9dfa189e105c8d97fd4d7c6f1ecc0cf193013 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 13:37:39 -0700 Subject: [PATCH 06/12] update unit tests --- flowermd/tests/base/test_molecule.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/flowermd/tests/base/test_molecule.py b/flowermd/tests/base/test_molecule.py index b6ad615c..e5670ed3 100644 --- a/flowermd/tests/base/test_molecule.py +++ b/flowermd/tests/base/test_molecule.py @@ -207,8 +207,8 @@ def test_polymer_different_chain_lengths(self, dimethylether_smiles): bond_orientation=[None, None], ) assert polymer.n_particles == 53 - assert len(polymer.molecules[0].labels["Compound"]) == 3 - assert len(polymer.molecules[1].labels["Compound"]) == 4 + assert len(polymer.molecules[0].children) == 3 + assert len(polymer.molecules[1].children]) == 4 def test_polymer_different_num_mol(self, dimethylether_smiles): polymer = Polymer( @@ -220,9 +220,9 @@ def test_polymer_different_num_mol(self, dimethylether_smiles): bond_orientation=[None, None], ) assert polymer.n_particles == 55 - assert len(polymer.molecules[0].labels["Compound"]) == 3 - assert len(polymer.molecules[1].labels["Compound"]) == 2 - assert len(polymer.molecules[2].labels["Compound"]) == 2 + assert len(polymer.molecules[0].children) == 3 + assert len(polymer.molecules[1].children) == 2 + assert len(polymer.molecules[2].children) == 2 def test_polymer_unequal_num_mol_length(self, dimethylether_smiles): with pytest.raises(ValueError): From 8cf572435b100dd6e4e1545e649e09bf262355ca Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 13:38:41 -0700 Subject: [PATCH 07/12] fix variable name --- flowermd/tests/base/test_molecule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flowermd/tests/base/test_molecule.py b/flowermd/tests/base/test_molecule.py index e5670ed3..351f722e 100644 --- a/flowermd/tests/base/test_molecule.py +++ b/flowermd/tests/base/test_molecule.py @@ -208,7 +208,7 @@ def test_polymer_different_chain_lengths(self, dimethylether_smiles): ) assert polymer.n_particles == 53 assert len(polymer.molecules[0].children) == 3 - assert len(polymer.molecules[1].children]) == 4 + assert len(polymer.molecules[1].children) == 4 def test_polymer_different_num_mol(self, dimethylether_smiles): polymer = Polymer( From 89af1c6186282d89915fed6c8a368d3e150d4e14 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 14:01:25 -0700 Subject: [PATCH 08/12] add python 3.12 to test matrix --- .github/workflows/pytest.yml | 2 +- environment-dev.yml | 2 +- environment.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index b895dc26..93275870 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -30,7 +30,7 @@ jobs: fail-fast: false matrix: os: [macos-14, ubuntu-24.04] - python-version: ['3.10', '3.11'] + python-version: ['3.10', '3.11', '3.12'] runs-on: ${{ matrix.os }} diff --git a/environment-dev.yml b/environment-dev.yml index f46fa5a5..0f881fa2 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -18,6 +18,6 @@ dependencies: - pytest - pytest-cov - nbmake - - python >=3.10, <3.12 + - python >=3.10, <3.13 - fresnel >=0.13.5 - cmeutils >=1.3 diff --git a/environment.yml b/environment.yml index 1b3fa0c3..3305ba5d 100644 --- a/environment.yml +++ b/environment.yml @@ -14,6 +14,6 @@ dependencies: - openbabel >=3 - pip - py3Dmol - - python >=3.10, <3.12 + - python >=3.10, <3.13 - fresnel >=0.13.5 - cmeutils >=1.3 From 637ec078de20da9f6695d591ed65cd47eb7924d3 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Sat, 18 Jan 2025 14:21:56 -0700 Subject: [PATCH 09/12] Replace setup.py with pyproject.toml file --- pyproject.toml | 53 +++++++++++++++++++++++ setup.py | 114 ------------------------------------------------- 2 files changed, 53 insertions(+), 114 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..d2e9eee5 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,53 @@ +[build-system] +requires = ["setuptools>=61.2", "versioningit"] +build-backend = "setuptools.build_meta" + +[project] +name = "flowermd" +description = "Framework for building and running coplex simulaiton workflows with MosDeF and HOOMD-Blue." +readme = "README.md" +authors = [ + {name = "Chris Jones", email = "chrisjones4@u.boisestate.edu"}, + {name = "Marjan Albooyeh", email = "marjanalbooyeh@u.boisestate.edu"} + {name = "Eric Jankowski", email = "ericjankowski@boisestate.edu"} +] +license= {text = "GPLv3"} +classifiers=[ + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Programming Language :: Python", + "Programming Language :: Python :: 3", +] +urls = {Homepage = "https://github.com/cmelab/flowermd"} +requires-python = ">=3.10" +dynamic = ["version"] + +[tool.setuptools] +zip-safe = false +include-package-data = true +license-files = ["LICENSE"] + +[tool.setuptools.packages] +find = {namespaces = false} + +[tool.setuptools.package-data] +flowermd = [ + '"modules/**"', + '"library/**"', + '"assets/forcefields/**"', + '"assets/molecule_files/**"', + '"utils/**"', + '"internal/**"', +] + +[tool.versioningit] +default-version = "1+unknown" + +[tool.versioningit.format] +distance = "{base_version}+{distance}.{vcs}{rev}" +dirty = "{base_version}+{distance}.{vcs}{rev}.dirty" +distance-dirty = "{base_version}+{distance}.{vcs}{rev}.dirty" + +[tool.versioningit.vcs] +method = "git" +match = ["*"] +default-tag = "0.0.0" diff --git a/setup.py b/setup.py deleted file mode 100644 index 7369f8ab..00000000 --- a/setup.py +++ /dev/null @@ -1,114 +0,0 @@ -import os -import sys -from shutil import rmtree - -from setuptools import Command, find_packages, setup - -# Package meta-data. -NAME = "flowermd" -DESCRIPTION = ( - "Package making it easier to build and simulate polymers in Hoomd-Blue." -) -URL = "https://github.com/cmelab/flowerMD" -EMAIL = "chrisjones4@u.boisestate.edu" -AUTHOR = "CME Lab" -REQUIRES_PYTHON = ">=3.10.0" -VERSION = None - -# What packages are required for this module to be executed? -REQUIRED = [] - -# Follow the README and use the environment.yml file to install -# the needed packages. -# ------------------------------------------------ - -here = os.path.abspath(os.path.dirname(__file__)) - -# Load the package's __version__.py module as a dictionary. -about = {} -if not VERSION: - with open(os.path.join(here, NAME, "__version__.py")) as f: - exec(f.read(), about) -else: - about["__version__"] = VERSION - - -class UploadCommand(Command): - """Support setup.py upload.""" - - description = "Build and publish the package." - user_options = [] - - @staticmethod - def status(s): - """Prints things in bold.""" - print("\033[1m{0}\033[0m".format(s)) - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def run(self): - try: - self.status("Removing previous builds…") - rmtree(os.path.join(here, "dist")) - except OSError: - pass - - self.status("Building Source and Wheel (universal) distribution…") - os.system( - "{0} setup.py sdist bdist_wheel --universal".format(sys.executable) - ) - - self.status("Uploading the package to PyPi via Twine…") - os.system("twine upload dist/*") - - self.status("Pushing git tags…") - os.system("git tag v{0}".format(about["__version__"])) - os.system("git push --tags") - - sys.exit() - - -setup( - name=NAME, - version=about["__version__"], - description=DESCRIPTION, - author=AUTHOR, - author_email=EMAIL, - python_requires=REQUIRES_PYTHON, - url=URL, - packages=find_packages( - exclude=( - "tests", - "docs", - ) - ), - package_data={ - "flowermd": [ - "modules/**", - "library/**", - "assets/forcefields/**", - "assets/molecule_files/**", - "utils/**", - "internal/**", - ], - }, - install_requires=REQUIRED, - include_package_data=True, - license="GPLv3", - classifiers=[ - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", - ], - # $ setup.py publish support. - cmdclass={ - "upload": UploadCommand, - }, -) From f3bc30cdf8898e83f347e4eec0a2f5905088b655 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Thu, 23 Jan 2025 12:30:58 -0700 Subject: [PATCH 10/12] update version in pyproject.toml, use mamba runner instead of miniconda --- .github/workflows/pytest.yml | 17 +++++++---------- pyproject.toml | 14 ++------------ 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 93275870..f9e5c973 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -39,13 +39,11 @@ jobs: uses: actions/checkout@v4 - name: Build environment - uses: conda-incubator/setup-miniconda@v3 + uses: mamba-org/setup-micromamba@v2 with: environment-file: environment-dev.yml - python-version: ${{ matrix.python-version }} - miniforge-variant: Miniforge3 - miniforge-version: 24.11.0-0 - use-mamba: true + create-args: >- + python=${{ matrix.python-version }} - name: Install package shell: bash -l {0} @@ -56,7 +54,7 @@ jobs: run: python -m pytest -rs -v --cov=./ --cov-report=xml - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage.xml @@ -99,12 +97,11 @@ jobs: uses: actions/checkout@v4 - name: Build environment - uses: conda-incubator/setup-miniconda@v3 + uses: mamba-org/setup-micromamba@v2 with: environment-file: environment-dev.yml - miniforge-variant: Miniforge3 - miniforge-version: 24.11.0-0 - use-mamba: true + create-args: >- + python=3.12 - name: Install package shell: bash -l {0} diff --git a/pyproject.toml b/pyproject.toml index d2e9eee5..6757c62a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,15 +39,5 @@ flowermd = [ '"internal/**"', ] -[tool.versioningit] -default-version = "1+unknown" - -[tool.versioningit.format] -distance = "{base_version}+{distance}.{vcs}{rev}" -dirty = "{base_version}+{distance}.{vcs}{rev}.dirty" -distance-dirty = "{base_version}+{distance}.{vcs}{rev}.dirty" - -[tool.versioningit.vcs] -method = "git" -match = ["*"] -default-tag = "0.0.0" +[tool.setuptools.dynamic] +version = {attr = "flowermd.__version__"} From 42845d391c700a762f6a520f66d0786aacff7c42 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Thu, 23 Jan 2025 12:32:27 -0700 Subject: [PATCH 11/12] add comma --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6757c62a..e8437a17 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ description = "Framework for building and running coplex simulaiton workflows wi readme = "README.md" authors = [ {name = "Chris Jones", email = "chrisjones4@u.boisestate.edu"}, - {name = "Marjan Albooyeh", email = "marjanalbooyeh@u.boisestate.edu"} + {name = "Marjan Albooyeh", email = "marjanalbooyeh@u.boisestate.edu"}, {name = "Eric Jankowski", email = "ericjankowski@boisestate.edu"} ] license= {text = "GPLv3"} From 2331b31104ae4b4ef3a7c3567cefbcabfc8efc99 Mon Sep 17 00:00:00 2001 From: chrisjonesBSU Date: Thu, 23 Jan 2025 12:52:49 -0700 Subject: [PATCH 12/12] put version in __init__.py --- flowermd/__init__.py | 2 ++ flowermd/__version__.py | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 flowermd/__version__.py diff --git a/flowermd/__init__.py b/flowermd/__init__.py index f8c66533..f88ad9cf 100644 --- a/flowermd/__init__.py +++ b/flowermd/__init__.py @@ -10,3 +10,5 @@ Simulation, System, ) + +__version__ = "1.3.1" diff --git a/flowermd/__version__.py b/flowermd/__version__.py deleted file mode 100644 index d00a693c..00000000 --- a/flowermd/__version__.py +++ /dev/null @@ -1,3 +0,0 @@ -VERSION = (1, 3, 1) - -__version__ = ".".join(map(str, VERSION))