diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index a3560da..0000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,6 +0,0 @@ -# by default, assign a maintainer and a contributor to review a pull request -* @glotzerlab/hoomd-maintainers @glotzerlab/hoomd-reviewers - -# For changes to github settings, workflows, and CI, only assign maintainers -.github @glotzerlab/hoomd-maintainers -.pre-commit-config.yaml @glotzerlab/hoomd-maintainers diff --git a/.github/workflows/environments/environment.yaml b/.github/workflows/environments/environment.yaml new file mode 100644 index 0000000..77e3b13 --- /dev/null +++ b/.github/workflows/environments/environment.yaml @@ -0,0 +1,8 @@ +channels: +- conda-forge +dependencies: +- gsd +- h5py +- hoomd +- pandas +- python==3.12 diff --git a/.github/workflows/environments/py312-conda-lock.yml b/.github/workflows/environments/py312-conda-lock.yml new file mode 100644 index 0000000..43e3169 --- /dev/null +++ b/.github/workflows/environments/py312-conda-lock.yml @@ -0,0 +1,790 @@ +# This lock file was generated by conda-lock (https://github.com/conda/conda-lock). DO NOT EDIT! +# +# A "lock file" contains a concrete list of package versions (with checksums) to be installed. Unlike +# e.g. `conda env create`, the resulting environment will not change as new package versions become +# available, unless you explicitly update the lock file. +# +# Install this environment as "YOURENV" with: +# conda-lock install -n YOURENV py312-conda-lock.yml +# To update a single package to the latest version compatible with the version constraints in the source: +# conda-lock lock --lockfile py312-conda-lock.yml --update PACKAGE +# To re-solve the entire environment, e.g. after changing a version constraint in the source file: +# conda-lock -f tmp.yaml --lockfile py312-conda-lock.yml +version: 1 +metadata: + content_hash: + linux-64: fe02693bd5256e4b845d5786da5bc8abd53499be34db3708c314e110f59b6bf2 + channels: + - url: conda-forge + used_env_vars: [] + platforms: + - linux-64 + sources: + - tmp.yaml +package: +- name: _libgcc_mutex + version: '0.1' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + hash: + md5: d7c89558ba9fa0495403155b64376d81 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + category: main + optional: false +- name: _openmp_mutex + version: '4.5' + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + libgomp: '>=7.5.0' + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + hash: + md5: 73aaf86a425cc6e73fcf236a5a46396d + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + category: main + optional: false +- name: bzip2 + version: 1.0.8 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda + hash: + md5: 69b8b6202a07720f448be700e300ccf4 + sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8 + category: main + optional: false +- name: c-ares + version: 1.28.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda + hash: + md5: dcde58ff9a1f30b0037a2315d1846d1f + sha256: cb25063f3342149c7924b21544109696197a9d774f1407567477d4f3026bf38a + category: main + optional: false +- name: ca-certificates + version: 2024.6.2 + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.6.2-hbcca054_0.conda + hash: + md5: 847c3c2905cc467cea52c24f9cfa8080 + sha256: 979af0932b2a5a26112044891a2d79e402e5ae8166f50fa48b8ebae47c0a2d65 + category: main + optional: false +- name: cached-property + version: 1.5.2 + manager: conda + platform: linux-64 + dependencies: + cached_property: '>=1.5.2,<1.5.3.0a0' + url: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + hash: + md5: 9b347a7ec10940d3f7941ff6c460b551 + sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 + category: main + optional: false +- name: cached_property + version: 1.5.2 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + hash: + md5: 576d629e47797577ab0f1b351297ef4a + sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 + category: main + optional: false +- name: gsd + version: 3.3.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + numpy: '>=1.19,<3' + python: '>=3.12,<3.13.0a0' + python_abi: 3.12.* + url: https://conda.anaconda.org/conda-forge/linux-64/gsd-3.3.0-py312h085067d_0.conda + hash: + md5: 797d6a6c48a43ac92f8d2e7b302734d6 + sha256: 6572d75e9239dd2b6d280b3f4c87e2ad1c0eb178b951fec0eef3036b3e6ab016 + category: main + optional: false +- name: h5py + version: 3.11.0 + manager: conda + platform: linux-64 + dependencies: + cached-property: '' + hdf5: '>=1.14.3,<1.14.4.0a0' + libgcc-ng: '>=12' + numpy: '>=1.19,<3' + python: '>=3.12,<3.13.0a0' + python_abi: 3.12.* + url: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.11.0-nompi_py312hb7ab980_102.conda + hash: + md5: 966750c8f347ece01e80aa2114b4a76d + sha256: 08f9cea9414fce460e7dd6aa489e6c81af1eebe3766e8ae22fc55b7238e5b803 + category: main + optional: false +- name: hdf5 + version: 1.14.3 + manager: conda + platform: linux-64 + dependencies: + libaec: '>=1.1.3,<2.0a0' + libcurl: '>=8.8.0,<9.0a0' + libgcc-ng: '>=12' + libgfortran-ng: '' + libgfortran5: '>=12.3.0' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0a0' + openssl: '>=3.3.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.3-nompi_hdf9ad27_105.conda + hash: + md5: 7e1729554e209627636a0f6fabcdd115 + sha256: 2278fa07da6f96e807d402cd55480624d67d2dee202191aaaf278ce5ab23605a + category: main + optional: false +- name: hoomd + version: 4.7.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + numpy: '>=1.26.4,<2.0a0' + pybind11-abi: '4' + python: '>=3.12,<3.13.0a0' + python_abi: 3.12.* + tbb: '>=2021.12.0' + url: https://conda.anaconda.org/conda-forge/linux-64/hoomd-4.7.0-cpu_py312h0562f11_1.conda + hash: + md5: a9460406f4ceec852234164a9ca97483 + sha256: e76db9de3012458e4eb46eeb5bdf69cccb7b3b616b4b517b7cfccd2839d48596 + category: main + optional: false +- name: icu + version: '73.2' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + hash: + md5: cc47e1facc155f91abd89b11e48e72ff + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + category: main + optional: false +- name: keyutils + version: 1.6.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=10.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + hash: + md5: 30186d27e2c9fa62b45fb1476b7200e3 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + category: main + optional: false +- name: krb5 + version: 1.21.2 + manager: conda + platform: linux-64 + dependencies: + keyutils: '>=1.6.1,<2.0a0' + libedit: '>=3.1.20191231,<4.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + openssl: '>=3.1.2,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda + hash: + md5: cd95826dbd331ed1be26bdf401432844 + sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4 + category: main + optional: false +- name: ld_impl_linux-64 + version: '2.40' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda + hash: + md5: b80f2f396ca2c28b8c14c437a4ed1e74 + sha256: 764b6950aceaaad0c67ef925417594dd14cd2e22fff864aeef455ac259263d15 + category: main + optional: false +- name: libaec + version: 1.1.3 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda + hash: + md5: 5e97e271911b8b2001a8b71860c32faa + sha256: 2ef420a655528bca9d269086cf33b7e90d2f54ad941b437fb1ed5eca87cee017 + category: main + optional: false +- name: libblas + version: 3.9.0 + manager: conda + platform: linux-64 + dependencies: + libopenblas: '>=0.3.27,<1.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-22_linux64_openblas.conda + hash: + md5: 1a2a0cd3153464fee6646f3dd6dad9b8 + sha256: 082b8ac20d43a7bbcdc28b3b1cd40e4df3a8b5daf0a2d23d68953a44d2d12c1b + category: main + optional: false +- name: libcblas + version: 3.9.0 + manager: conda + platform: linux-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-22_linux64_openblas.conda + hash: + md5: 4b31699e0ec5de64d5896e580389c9a1 + sha256: da1b2faa017663c8f5555c1c5518e96ac4cd8e0be2a673c1c9e2cb8507c8fe46 + category: main + optional: false +- name: libcurl + version: 8.8.0 + manager: conda + platform: linux-64 + dependencies: + krb5: '>=1.21.2,<1.22.0a0' + libgcc-ng: '>=12' + libnghttp2: '>=1.58.0,<2.0a0' + libssh2: '>=1.11.0,<2.0a0' + libzlib: '>=1.2.13,<2.0.0a0' + openssl: '>=3.3.0,<4.0a0' + zstd: '>=1.5.6,<1.6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.8.0-hca28451_0.conda + hash: + md5: f21c27f076a07907e70c49bb57bd0f20 + sha256: 45aec0ffc6fe3fd4c0083b815aa102b8103380acc2b6714fb272d921acc68ab2 + category: main + optional: false +- name: libedit + version: 3.1.20191231 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=7.5.0' + ncurses: '>=6.2,<7.0.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 + hash: + md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf + category: main + optional: false +- name: libev + version: '4.33' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + hash: + md5: 172bf1cd1ff8629f2b1179945ed45055 + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + category: main + optional: false +- name: libexpat + version: 2.6.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda + hash: + md5: e7ba12deb7020dd080c6c70e7b6f6a3d + sha256: 331bb7c7c05025343ebd79f86ae612b9e1e74d2687b8f3179faec234f986ce19 + category: main + optional: false +- name: libffi + version: 3.4.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=9.4.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + hash: + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + category: main + optional: false +- name: libgcc-ng + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + _openmp_mutex: '>=4.5' + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h77fa898_13.conda + hash: + md5: 9358cdd61ef0d600d2a0dde2d53b006c + sha256: ffa0f472c8b37f864de855af2d3c057f1813162319f10ebd97332d73fc27ba60 + category: main + optional: false +- name: libgfortran-ng + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + libgfortran5: 13.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_13.conda + hash: + md5: 516e66b26eea14e7e322fe99e88e0f02 + sha256: 3ef5d92510e9cdd70ec2a9f1f83b8c1d327ff0f9bfc17831a8f8f06f10c2085c + category: main + optional: false +- name: libgfortran5 + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=13.2.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-h3d2ce59_13.conda + hash: + md5: 1e380198685bc1e993bbbc4b579f5916 + sha256: 19cffb68b19ff5f426d1cb3db670dccb73c09f54b8d3f8e304665e2cee68f14f + category: main + optional: false +- name: libgomp + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + _libgcc_mutex: '0.1' + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h77fa898_13.conda + hash: + md5: d370d1855cca14dff6a819c90c77497c + sha256: c5949bec7eee93cdd5c367e6e5c5e92ee1c5139a827567af23853dd52721d8ed + category: main + optional: false +- name: libhwloc + version: 2.10.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libxml2: '>=2.12.7,<3.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.10.0-default_h5622ce7_1001.conda + hash: + md5: fc2d5b79c2d3f8568fbab31db7ae02f3 + sha256: 6f19d26819d336cb76689861e20560404a3cd61cc9adf7cbc395b9a5e612e226 + category: main + optional: false +- name: libiconv + version: '1.17' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + hash: + md5: d66573916ffcf376178462f1b61c941e + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + category: main + optional: false +- name: liblapack + version: 3.9.0 + manager: conda + platform: linux-64 + dependencies: + libblas: 3.9.0 + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-22_linux64_openblas.conda + hash: + md5: b083767b6c877e24ee597d93b87ab838 + sha256: db246341d42f9100d45adeb1a7ba8b1ef5b51ceb9056fd643e98046a3259fde6 + category: main + optional: false +- name: libnghttp2 + version: 1.58.0 + manager: conda + platform: linux-64 + dependencies: + c-ares: '>=1.23.0,<2.0a0' + libev: '>=4.33,<5.0a0' + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + openssl: '>=3.2.0,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda + hash: + md5: 700ac6ea6d53d5510591c4344d5c989a + sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb + category: main + optional: false +- name: libnsl + version: 2.0.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + hash: + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + category: main + optional: false +- name: libopenblas + version: 0.3.27 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libgfortran-ng: '' + libgfortran5: '>=12.3.0' + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_h413a1c8_0.conda + hash: + md5: a356024784da6dfd4683dc5ecf45b155 + sha256: 2ae7559aed0705deb3f716c7b247c74fd1b5e35b64e39834ce8b95f7564d4a3e + category: main + optional: false +- name: libsqlite + version: 3.46.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda + hash: + md5: 18aa975d2094c34aef978060ae7da7d8 + sha256: daee3f68786231dad457d0dfde3f7f1f9a7f2018adabdbb864226775101341a8 + category: main + optional: false +- name: libssh2 + version: 1.11.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + openssl: '>=3.1.1,<4.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda + hash: + md5: 1f5a58e686b13bcfde88b93f547d23fe + sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d + category: main + optional: false +- name: libstdcxx-ng + version: 13.2.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: 13.2.0 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-hc0a3c3a_13.conda + hash: + md5: 1053882642ed5bbc799e1e866ff86826 + sha256: 143171c6084e526122cc2976fbbfadf7b9f50e5d13036adf20feb7ed9d036dd2 + category: main + optional: false +- name: libuuid + version: 2.38.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + hash: + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + category: main + optional: false +- name: libxcrypt + version: 4.4.36 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + hash: + md5: 5aa797f8787fe7a17d1b0821485b5adc + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + category: main + optional: false +- name: libxml2 + version: 2.12.7 + manager: conda + platform: linux-64 + dependencies: + icu: '>=73.2,<74.0a0' + libgcc-ng: '>=12' + libiconv: '>=1.17,<2.0a0' + libzlib: '>=1.2.13,<2.0a0' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.7-hc051c1a_1.conda + hash: + md5: 340278ded8b0dc3a73f3660bbb0adbc6 + sha256: 576ea9134176636283ff052897bf7a91ffd8ac35b2c505dfde2890ec52849698 + category: main + optional: false +- name: libzlib + version: 1.3.1 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda + hash: + md5: 57d7dc60e9325e3de37ff8dffd18e814 + sha256: adf6096f98b537a11ae3729eaa642b0811478f0ea0402ca67b5108fe2cb0010d + category: main + optional: false +- name: ncurses + version: '6.5' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda + hash: + md5: fcea371545eda051b6deafb24889fc69 + sha256: 4fc3b384f4072b68853a0013ea83bdfd3d66b0126e2238e1d6e1560747aa7586 + category: main + optional: false +- name: numpy + version: 1.26.4 + manager: conda + platform: linux-64 + dependencies: + libblas: '>=3.9.0,<4.0a0' + libcblas: '>=3.9.0,<4.0a0' + libgcc-ng: '>=12' + liblapack: '>=3.9.0,<4.0a0' + libstdcxx-ng: '>=12' + python: '>=3.12,<3.13.0a0' + python_abi: 3.12.* + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda + hash: + md5: d8285bea2a350f63fab23bf460221f3f + sha256: fe3459c75cf84dcef6ef14efcc4adb0ade66038ddd27cadb894f34f4797687d8 + category: main + optional: false +- name: openssl + version: 3.3.1 + manager: conda + platform: linux-64 + dependencies: + ca-certificates: '' + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_0.conda + hash: + md5: a41fa0e391cc9e0d6b78ac69ca047a6c + sha256: 9691f8bd6394c5bb0b8d2f47cd1467b91bd5b1df923b69e6b517f54496ee4b50 + category: main + optional: false +- name: pandas + version: 2.2.2 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + numpy: '>=1.19,<3' + python: '>=3.12,<3.13.0a0' + python-dateutil: '>=2.8.1' + python-tzdata: '>=2022a' + python_abi: 3.12.* + pytz: '>=2020.1' + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.2-py312h1d6d2e6_1.conda + hash: + md5: ae00b61f3000d2284d1f2584d4dfafa8 + sha256: 80fd53b68aa89b929d03874b99621ec8cc6a12629bd8bfbdca87a95f8852af96 + category: main + optional: false +- name: pybind11-abi + version: '4' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-4-hd8ed1ab_3.tar.bz2 + hash: + md5: 878f923dd6acc8aeb47a75da6c4098be + sha256: d4fb485b79b11042a16dc6abfb0c44c4f557707c2653ac47c81e5d32b24a3bb0 + category: main + optional: false +- name: python + version: 3.12.4 + manager: conda + platform: linux-64 + dependencies: + bzip2: '>=1.0.8,<2.0a0' + ld_impl_linux-64: '>=2.36.1' + libexpat: '>=2.6.2,<3.0a0' + libffi: '>=3.4,<4.0a0' + libgcc-ng: '>=12' + libnsl: '>=2.0.1,<2.1.0a0' + libsqlite: '>=3.46.0,<4.0a0' + libuuid: '>=2.38.1,<3.0a0' + libxcrypt: '>=4.4.36' + libzlib: '>=1.3.1,<2.0a0' + ncurses: '>=6.5,<7.0a0' + openssl: '>=3.3.1,<4.0a0' + readline: '>=8.2,<9.0a0' + tk: '>=8.6.13,<8.7.0a0' + tzdata: '' + xz: '>=5.2.6,<6.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda + hash: + md5: d73490214f536cccb5819e9873048c92 + sha256: 97a78631e6c928bf7ad78d52f7f070fcf3bd37619fa48dc4394c21cf3058cdee + category: main + optional: false +- name: python-dateutil + version: 2.9.0 + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + six: '>=1.5' + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda + hash: + md5: 2cf4264fffb9e6eff6031c5b6884d61c + sha256: f3ceef02ac164a8d3a080d0d32f8e2ebe10dd29e3a685d240e38b3599e146320 + category: main + optional: false +- name: python-tzdata + version: '2024.1' + manager: conda + platform: linux-64 + dependencies: + python: '>=3.6' + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.1-pyhd8ed1ab_0.conda + hash: + md5: 98206ea9954216ee7540f0c773f2104d + sha256: 9da9a849d53705dee450b83507df1ca8ffea5f83bd21a215202221f1c492f8ad + category: main + optional: false +- name: python_abi + version: '3.12' + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-4_cp312.conda + hash: + md5: dccc2d142812964fcc6abdc97b672dff + sha256: 182a329de10a4165f6e8a3804caf751f918f6ea6176dd4e5abcdae1ed3095bf6 + category: main + optional: false +- name: pytz + version: '2024.1' + manager: conda + platform: linux-64 + dependencies: + python: '>=3.7' + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda + hash: + md5: 3eeeeb9e4827ace8c0c1419c85d590ad + sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41 + category: main + optional: false +- name: readline + version: '8.2' + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + ncurses: '>=6.3,<7.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + hash: + md5: 47d31b792659ce70f470b5c82fdfb7a4 + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + category: main + optional: false +- name: six + version: 1.16.0 + manager: conda + platform: linux-64 + dependencies: + python: '' + url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 + hash: + md5: e5f25f8dbc060e9a8d912e432202afc2 + sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 + category: main + optional: false +- name: tbb + version: 2021.12.0 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libhwloc: '>=2.10.0,<2.10.1.0a0' + libstdcxx-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.12.0-h297d8ca_1.conda + hash: + md5: 3ff978d8994f591818a506640c6a7071 + sha256: ab706931ba80e8117995fc838509f044ccd1388a4cd7cc4ff1a55ea904bac723 + category: main + optional: false +- name: tk + version: 8.6.13 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + hash: + md5: d453b98d9c83e71da0741bb0ff4d76bc + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + category: main + optional: false +- name: tzdata + version: 2024a + manager: conda + platform: linux-64 + dependencies: {} + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + hash: + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 + category: main + optional: false +- name: xz + version: 5.2.6 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + hash: + md5: 2161070d867d1b1204ea749c8eec4ef0 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + category: main + optional: false +- name: zstd + version: 1.5.6 + manager: conda + platform: linux-64 + dependencies: + libgcc-ng: '>=12' + libstdcxx-ng: '>=12' + libzlib: '>=1.2.13,<2.0.0a0' + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + hash: + md5: 4d056880988120e29d75bfff282e0f45 + sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + category: main + optional: false diff --git a/.github/workflows/environments/update-lockfiles.sh b/.github/workflows/environments/update-lockfiles.sh new file mode 100755 index 0000000..2987c4a --- /dev/null +++ b/.github/workflows/environments/update-lockfiles.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Execute this script to update all lock files to the latest versions of dependencies. + +rm *-conda-lock.yml + +for python_version in 3.12 +do + sed "s/python==.*/python=$python_version/g" environment.yaml > tmp.yaml || exit 2 + conda lock -f tmp.yaml -p linux-64 --lockfile py${python_version//.}-conda-lock.yml || exit 2 +done +rm tmp.yaml diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml new file mode 100644 index 0000000..2a8cdf7 --- /dev/null +++ b/.github/workflows/stale.yaml @@ -0,0 +1,11 @@ +name: Close stale issues and PRs + +on: + schedule: + - cron: '0 19 * * *' + + workflow_dispatch: + +jobs: + stale: + uses: glotzerlab/workflows/.github/workflows/stale.yaml@5cfac9da9cb78e16ae97a9119b6fd13c1c2d6f5e # 0.1.0 diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index a356f55..0000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Close stale issues and PRs - -on: - schedule: - - cron: '0 19 * * *' - - # Trigger on request. - workflow_dispatch: - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v9.0.0 - with: - days-before-close: 10 - stale-issue-label: stale - stale-pr-label: stale - exempt-issue-labels: essential - exempt-pr-labels: essential - - days-before-issue-stale: 170 - stale-issue-message: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. - close-issue-message: > - This issue has been automatically closed because it has not had - recent activity. - - days-before-pr-stale: 20 - stale-pr-message: > - This pull request has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. - close-pr-message: > - This pull request has been automatically closed because it has not had - recent activity. diff --git a/.github/workflows/test.yml b/.github/workflows/test.yaml similarity index 59% rename from .github/workflows/test.yml rename to .github/workflows/test.yaml index c26f658..ca70a52 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yaml @@ -5,25 +5,18 @@ concurrency: cancel-in-progress: true on: - # Trigger on pull requests. pull_request: - # Trigger on pushes to the mainline branches. This prevents building commits twice when the pull - # request source branch is in the same repository. push: branches: - "trunk" - # Trigger on request. workflow_dispatch: jobs: execute_benchmarks: name: Execute benchmarks - runs-on: ubuntu-latest - container: - image: glotzerlab/software:nompi - options: -u 0 + runs-on: ubuntu-24.04 env: benchmark_options: > --device CPU @@ -32,11 +25,23 @@ jobs: --warmup_steps 1000 --benchmark_steps 1000 steps: - - uses: actions/checkout@v4.1.6 + - name: Checkout + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - name: Create Python Environment + uses: mamba-org/setup-micromamba@f8b8a1e23a26f60a44c853292711bacfd3eac822 # v1.9.0 + with: + micromamba-version: '1.5.8-0' + environment-name: test + environment-file: .github/workflows/environments/py312-conda-lock.yml + micromamba-root-path: ${{ github.workspace }}/micromamba + + - name: Configure conda environment variables + run: | + echo "$MAMBA_ROOT_PREFIX/envs/test/bin" >> $GITHUB_PATH - name: List benchmarks run: ls **/*.py - name: Cache configurations - uses: actions/cache@v4.0.2 + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 with: path: initial_configuration_cache key: ${{ env.benchmark_options }} diff --git a/hoomd_benchmarks/hpmc_pair_kern_frenkel.py b/hoomd_benchmarks/hpmc_pair_kern_frenkel.py index 3f06534..3d53133 100644 --- a/hoomd_benchmarks/hpmc_pair_kern_frenkel.py +++ b/hoomd_benchmarks/hpmc_pair_kern_frenkel.py @@ -16,6 +16,8 @@ class HPMCPairKernFrenkel(hpmc_pair.HPMCPair): `hpmc_pair.HPMCPair` """ + SUITE_STEP_SCALE = 0.1 + r_cut = 1.5 diameter = 1.0 pair_class = getattr(hoomd.hpmc.pair, 'AngularStep', None) diff --git a/hoomd_benchmarks/hpmc_pair_union_wca.py b/hoomd_benchmarks/hpmc_pair_union_wca.py index 00ff84a..a8161ce 100644 --- a/hoomd_benchmarks/hpmc_pair_union_wca.py +++ b/hoomd_benchmarks/hpmc_pair_union_wca.py @@ -17,6 +17,8 @@ class HPMCPairUnionWCA(hpmc_base.HPMCBenchmark): """Test performance of HPMC union potentials.""" + SUITE_STEP_SCALE = 0.1 + def __init__( self, mode=DEFAULT_MODE,