Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/trunk-minor' into feature-virtua…
Browse files Browse the repository at this point in the history
…l-move-monte-carlo
  • Loading branch information
tcmoore3 committed Dec 12, 2024
2 parents d052302 + dcf270d commit e8281d8
Show file tree
Hide file tree
Showing 1,236 changed files with 52,709 additions and 55,280 deletions.
8 changes: 1 addition & 7 deletions .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 4.8.2
current_version = 5.0.0
commit = False
tag = False
parse = ^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))(?:\.(?P<number>0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)))?$
Expand All @@ -14,16 +14,10 @@ values =

[bumpversion:file:INSTALLING.rst]

[bumpversion:file:BUILDING.rst]

[bumpversion:file:CMakeLists.txt]

[bumpversion:file:sphinx-doc/conf.py]

[bumpversion:file:hoomd/hpmc/pair/user.py]

[bumpversion:file:hoomd/hpmc/external/user.py]

[bumpversion:file:.github/ISSUE_TEMPLATE/bug_report.yml]

[bumpversion:file:.github/ISSUE_TEMPLATE/release.md]
4 changes: 1 addition & 3 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,11 @@ body:
- Compiled from source
- Conda-forge package
- glotzerlab-software package
validations:
required: true
- type: input
attributes:
label: HOOMD-blue version
description: What version of HOOMD-blue are you using?
placeholder: 4.8.2
placeholder: 5.0.0
validations:
required: true
- type: markdown
Expand Down
7 changes: 4 additions & 3 deletions .github/ISSUE_TEMPLATE/release.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: Release checklist
about: '[for maintainer use]'
title: 'Release 4.8.2'
title: 'Release 5.0.0'
labels: ''
assignees: 'joaander'

Expand All @@ -20,12 +20,13 @@ Minor and major releases:

All releases:

- [ ] Update change log.
- ``git log --format=oneline --first-parent $(git log -n 1 --pretty=format:%H -- CHANGELOG.rst)...``
- [ ] Review change log.
- [ ] Check readthedocs build, especially change log formatting.
- [ ] Run *bumpversion*.
- [ ] Tag and push.
- [ ] Update conda-forge recipe.
- [ ] Update *glotzerlab-software*.
- [ ] Update *hoomd-component-template*.
- [ ] Update *hoomd-md-pair-template*.
- [ ] Update *hoomd-hpmc-shape-template*.
- [ ] Update *hpmc-energy-template*.
8 changes: 1 addition & 7 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,9 @@ Resolves #???
<!--- Please build the sphinx documentation and check that any changes to
documentation display properly. -->

## Change log

<!-- Propose a change log entry. -->
```
```

## Checklist:

- [ ] I have reviewed the [**Contributor Guidelines**](https://github.com/glotzerlab/hoomd-blue/blob/trunk-minor/CONTRIBUTING.rst).
- [ ] I agree with the terms of the [**HOOMD-blue Contributor Agreement**](https://github.com/glotzerlab/hoomd-blue/blob/trunk-minor/ContributorAgreement.md).
- [ ] My name is on the list of contributors (`sphinx-doc/credits.rst`) in the pull request source branch.
- [ ] I have summarized these changes in `CHANGELOG.rst` following the established format.
58 changes: 27 additions & 31 deletions .github/workflows/build_and_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ defaults:
shell: bash

env:
# prevent deadlocked MPI tests from causing the job to cancel
MPIEXEC_TIMEOUT: 3000
# allow mpirun to execute as root in the tests
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
Expand Down Expand Up @@ -118,15 +116,15 @@ jobs:
apt-get update
apt-get install git --yes
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
path: code
submodules: true

- name: Create Python Environment
uses: mamba-org/setup-micromamba@f8b8a1e23a26f60a44c853292711bacfd3eac822 # v1.9.0
uses: mamba-org/setup-micromamba@617811f69075e3fd3ae68ca64220ad065877f246 # v2.0.0
with:
micromamba-version: '1.5.8-0'
micromamba-version: '2.0.2-2'
environment-name: test
environment-file: code/.github/workflows/environments/py${{ inputs.python }}-conda-lock.yml
post-cleanup: all
Expand Down Expand Up @@ -158,21 +156,16 @@ jobs:
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
-DENABLE_GPU=${ENABLE_GPU:-"OFF"} \
-DENABLE_MPI=${ENABLE_MPI:-"OFF"} \
-DENABLE_TBB=${ENABLE_TBB:-"OFF"} \
-DENABLE_LLVM=${ENABLE_LLVM:-"OFF"} \
-DBUILD_MD=${BUILD_MD:-"ON"} \
-DBUILD_MPCD=${BUILD_MD:-"ON"} \
-DBUILD_METAL=${BUILD_MD:-"ON"} \
-DBUILD_HPMC=${BUILD_HPMC:-"ON"} \
-DCUDA_ARCH_LIST="60;70" \
-DENABLE_DEBUG_JIT=ON \
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install \
-DPLUGINS=""
env:
ENABLE_GPU: ${{ contains(inputs.config, 'cuda') }}
ENABLE_MPI: ${{ contains(inputs.config, 'mpi') }}
ENABLE_TBB: ${{ contains(inputs.config, 'tbb') }}
ENABLE_LLVM: ${{ contains(inputs.config, 'llvm') }}
BUILD_MD: ${{ !contains(inputs.config, 'nomd') }}
BUILD_HPMC: ${{ !contains(inputs.config, 'nohpmc') }}
BUILD_DEBUG: ${{ contains(inputs.config, 'debug') }}
Expand All @@ -181,18 +174,6 @@ jobs:
run: ninja install -j $(($(getconf _NPROCESSORS_ONLN) + 2)) -k 0
working-directory: build

- name: Configure plugins
run : |
if [[ ${BUILD_DEBUG} == "true" ]]; then BUILD_TYPE="Debug"; else BUILD_TYPE="Release"; fi
echo "BUILD_TYPE=${BUILD_TYPE}"
CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install cmake -S code/example_plugins -B build-example-plugins -GNinja -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
env:
BUILD_DEBUG: ${{ contains(inputs.config, 'debug') }}

- name: Build plugins
run: ninja install -j $(($(getconf _NPROCESSORS_ONLN) + 2)) -k 0
working-directory: build-example-plugins

- name: Remove object files
run: find build -type f -name '*.o' -delete

Expand All @@ -203,13 +184,13 @@ jobs:
run: tar --use-compress-program='zstd -10 -T0' -cvf install.tar install

- name: 'Upload build'
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: build-${{ inputs.config }}-${{ github.sha }}
path: build.tar
retention-days: 7
- name: 'Upload install'
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: install-${{ inputs.config }}-${{ github.sha }}
path: install.tar
Expand All @@ -233,14 +214,14 @@ jobs:
apt-get update
apt-get install git --yes
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
path: code

- name: Create Python Environment
uses: mamba-org/setup-micromamba@f8b8a1e23a26f60a44c853292711bacfd3eac822 # v1.9.0
uses: mamba-org/setup-micromamba@617811f69075e3fd3ae68ca64220ad065877f246 # v2.0.0
with:
micromamba-version: '1.5.8-0'
micromamba-version: '2.0.2-2'
environment-name: test
environment-file: code/.github/workflows/environments/py${{ inputs.python }}-conda-lock.yml
post-cleanup: all
Expand Down Expand Up @@ -275,7 +256,7 @@ jobs:

- name: Run pytest (mpi)
if: ${{ contains(inputs.config, 'mpi') }}
run: mpirun -n 2 ${GITHUB_WORKSPACE}/install/hoomd/pytest/pytest-openmpi.sh --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1 || (( cat pytest.out.1 && exit 1 ))
run: mpirun --timeout 3000 -n 2 ${GITHUB_WORKSPACE}/install/hoomd/pytest/pytest-openmpi.sh --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1 || (( cat pytest.out.1 && exit 1 ))

- name: Run pytest (serial without cupy)
if: ${{ contains(inputs.config, 'cuda') }}
Expand All @@ -285,21 +266,36 @@ jobs:

- name: Run pytest (mpi without cupy)
if: ${{ contains(inputs.config, 'cuda') && contains(inputs.config, 'mpi') }}
run: mpirun -n 2 ${GITHUB_WORKSPACE}/install/hoomd/pytest/pytest-openmpi.sh --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1 -m cupy_optional || (( cat pytest.out.1 && exit 1 ))
run: mpirun --timeout 3000 -n 2 ${GITHUB_WORKSPACE}/install/hoomd/pytest/pytest-openmpi.sh --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1 -m cupy_optional || (( cat pytest.out.1 && exit 1 ))
env:
_HOOMD_DISALLOW_CUPY_: 1

### compute-sanitizer checks: These checks are slow, so run them only when validation is
# requested, but no on the actual long validation tests. Every class's basic test should ensure
# that the GPU kernel is called for at least a few timesteps for these checks to be effective.
- name: Run memcheck
if: ${{ contains(inputs.config, 'cuda') && contains(github.event.pull_request.labels.*.name, 'validate') && inputs.validate == 'true' && !contains(inputs.config, 'mpi')}}
run: compute-sanitizer --tool memcheck --error-exitcode 1 python3 -m pytest --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1

- name: Run racecheck
if: ${{ contains(inputs.config, 'cuda') && contains(github.event.pull_request.labels.*.name, 'validate') && inputs.validate == 'true' && !contains(inputs.config, 'mpi')}}
run: compute-sanitizer --tool racecheck --error-exitcode 1 python3 -m pytest --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1

- name: Run synccheck
if: ${{ contains(inputs.config, 'cuda') && contains(github.event.pull_request.labels.*.name, 'validate') && inputs.validate == 'true' && !contains(inputs.config, 'mpi')}}
run: compute-sanitizer --tool synccheck --error-exitcode 1 python3 -m pytest --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1

### Validation tests
- name: Run pytest -m validate (serial)
if: ${{ !contains(inputs.config, 'mpi') && contains(github.event.pull_request.labels.*.name, 'validate') && inputs.validate == 'true' }}
run: python3 -m pytest --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1 -p hoomd.pytest_plugin_validate -m validate --validate

- name: Run pytest -m validate (mpi)
if: ${{ contains(inputs.config, 'mpi') && contains(github.event.pull_request.labels.*.name, 'validate') && inputs.validate == 'true' }}
run: mpirun -n 2 ${GITHUB_WORKSPACE}/install/hoomd/pytest/pytest-openmpi.sh --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1 -p hoomd.pytest_plugin_validate -m validate --validate || (( cat pytest.out.1 && exit 1 ))
run: mpirun --timeout 3000 -n 2 ${GITHUB_WORKSPACE}/install/hoomd/pytest/pytest-openmpi.sh --pyargs hoomd -x -v -ra --durations=0 --durations-min=0.1 -p hoomd.pytest_plugin_validate -m validate --validate || (( cat pytest.out.1 && exit 1 ))

- name: Run howto guides (serial)
if: ${{ contains(inputs.config, 'llvm') && contains(github.event.pull_request.labels.*.name, 'validate') && inputs.validate == 'true' }} # some examples require LLVM
if: ${{ contains(github.event.pull_request.labels.*.name, 'validate') && inputs.validate == 'true' }}
run: 'for i in *.py; do echo "Running howto: $i" && python3 $i || exit 1; done'
working-directory: code/sphinx-doc/howto

Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/environments/environment.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
channels:
- conda-forge/label/numpy_rc
- conda-forge
dependencies:
- cereal
Expand All @@ -8,7 +7,7 @@ dependencies:
- gsd
- h5py
- ninja
- numpy>=2.0.0rc1
- numpy>=2.0.0
- mpi4py
- openmpi
- pybind11
Expand Down
Loading

0 comments on commit e8281d8

Please sign in to comment.