-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from glotzerlab/initial-setup
Initial template
- Loading branch information
Showing
18 changed files
with
591 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
[bumpversion] | ||
current_version = 0.0.0 | ||
commit = False | ||
tag = False | ||
|
||
[bumpversion:file:src/version.py] | ||
|
||
[bumpversion:file:src/pytest/test_version.py] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
--- | ||
BasedOnStyle: WebKit | ||
AccessModifierOffset: 0 | ||
AlignAfterOpenBracket: Align | ||
AlignEscapedNewlines: 'Left' | ||
AlignOperands: 'true' | ||
AlignTrailingComments: 'true' | ||
AllowAllArgumentsOnNextLine: 'false' | ||
AllowAllParametersOfDeclarationOnNextLine: 'false' | ||
AllowShortFunctionsOnASingleLine: Empty | ||
AllowShortIfStatementsOnASingleLine: 'false' | ||
AllowShortLoopsOnASingleLine: 'false' | ||
BinPackArguments: 'false' | ||
BinPackParameters: 'false' | ||
BreakBeforeBraces: Whitesmiths | ||
BreakConstructorInitializers: BeforeColon | ||
ColumnLimit: '100' | ||
CompactNamespaces: 'true' | ||
Cpp11BracedListStyle: 'true' | ||
FixNamespaceComments: 'true' | ||
IndentWidth: '4' | ||
KeepEmptyLinesAtTheStartOfBlocks: false | ||
Language: Cpp | ||
NamespaceIndentation: None | ||
PointerAlignment: Left | ||
SortIncludes: 'true' | ||
SpaceAfterCStyleCast: 'false' | ||
SpaceAfterTemplateKeyword: 'false' | ||
SpaceBeforeParens: ControlStatements | ||
SpacesInAngles: 'false' | ||
SpaceInEmptyParentheses: false | ||
Standard: Cpp11 | ||
TabWidth: '4' | ||
UseTab: Never | ||
|
||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
target-branch: trunk | ||
schedule: | ||
interval: "weekly" | ||
time: "07:00" | ||
timezone: "EST5EDT" | ||
pull-request-branch-name: | ||
separator: "-" | ||
open-pull-requests-limit: 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
changelog: | ||
exclude: | ||
authors: | ||
- dependabot | ||
categories: | ||
- title: Added | ||
labels: | ||
- enhancement | ||
- title: Fixed | ||
labels: | ||
- bug | ||
- title: Changed | ||
labels: | ||
- "*" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: pre-commit | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: [trunk] | ||
|
||
workflow_dispatch: | ||
|
||
jobs: | ||
pre-commit: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.12' | ||
- run: pip install pre-commit | ||
- run: pre-commit run --all-files |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
name: GitHub release | ||
|
||
on: | ||
pull_request: | ||
|
||
push: | ||
branches: | ||
- "trunk" | ||
tags: | ||
- "v*" | ||
|
||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: write | ||
|
||
defaults: | ||
run: | ||
shell: bash | ||
|
||
jobs: | ||
release: | ||
name: Publish [GitHub] | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Determine version number | ||
id: version | ||
run: | | ||
TAG=${{ github.ref_name }} | ||
# Remove v from start of tag name | ||
VERSION=${TAG#v} | ||
# Replace / with - in merge names | ||
VERSION=${VERSION//\//-} | ||
echo "version=${VERSION}" >> "$GITHUB_OUTPUT" | ||
echo "name=${{ github.event.repository.name }}-${VERSION}" >> "$GITHUB_OUTPUT" | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
path: ${{ steps.version.outputs.name }} | ||
|
||
- name: Remove .git | ||
run: | | ||
rm -rf ${{ steps.version.outputs.name }}/.git | ||
ls -laR ${{ steps.version.outputs.name }} | ||
- name: Tar source | ||
run: tar --zstd -cvf ${{ steps.version.outputs.name }}.tar.zst ${{ steps.version.outputs.name }} | ||
|
||
- name: Create release | ||
uses: softprops/action-gh-release@v1 | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
with: | ||
files: "*.tar.zst" | ||
name: ${{ steps.version.outputs.version }} | ||
generate_release_notes: True | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
name: Unit test | ||
|
||
env: | ||
# TODO: Set COMPONENT_NAME to the name of your Python package. | ||
COMPONENT_NAME: template | ||
|
||
# Most components should not modify the rest of this file. When needed, merge in updates from | ||
# https://github.com/glotzerlab/hoomd-component-template/ | ||
|
||
############################################################################################# | ||
# HOOMD-blue version to build. | ||
HOOMD_BLUE_VERSION: 4.4.0 | ||
# 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 | ||
# allow openmpi to oversubscribe cores | ||
OMPI_MCA_rmaps_base_oversubscribe: 1 | ||
# prevent errors from mis-configured openib systems | ||
OMPI_MCA_btl: "vader,self" | ||
# import HOOMD out of the build directory | ||
PYTHONPATH: ${{ github.workspace }}/install | ||
|
||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: [trunk] | ||
|
||
workflow_dispatch: | ||
|
||
defaults: | ||
run: | ||
shell: bash | ||
|
||
jobs: | ||
build_test: | ||
name: Build and test [${{ matrix.name }}] | ||
runs-on: ubuntu-latest | ||
container: | ||
image: glotzerlab/ci:2023.11.27-cuda120_gcc11_py310 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- name: 'CPU' | ||
enable_gpu: 'OFF' | ||
enable_mpi: 'OFF' | ||
- name: 'CPU, MPI' | ||
enable_gpu: 'OFF' | ||
enable_mpi: 'ON' | ||
- name: 'GPU' | ||
enable_gpu: 'ON' | ||
enable_mpi: 'OFF' | ||
- name: 'GPU, MPI' | ||
enable_gpu: 'ON' | ||
enable_mpi: 'ON' | ||
|
||
steps: | ||
- name: Restore cached HOOMD-blue build | ||
id: cache | ||
uses: actions/cache/restore@v3 | ||
with: | ||
path: install | ||
key: hoomd-blue-${{ env.HOOMD_BLUE_VERSION }}-2023.11.27-cuda120_gcc11_py310-mpi-${{ matrix.enable_mpi }}-gpu-${{ matrix.enable_gpu }} | ||
- name: Checkout HOOMD-blue | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: glotzerlab/hoomd-blue | ||
path: hoomd-blue | ||
submodules: true | ||
ref: v${{ env.HOOMD_BLUE_VERSION }} | ||
- name: Configure HOOMD-blue | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
cmake -B build-hoomd-blue -S hoomd-blue \ | ||
-GNinja \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DENABLE_GPU=${ENABLE_GPU} \ | ||
-DENABLE_MPI=${ENABLE_MPI} \ | ||
-DCUDA_ARCH_LIST="70" \ | ||
-DBUILD_TESTING=OFF \ | ||
-DPLUGINS="" \ | ||
-DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install | ||
env: | ||
ENABLE_GPU: ${{ matrix.enable_gpu }} | ||
ENABLE_MPI: ${{ matrix.enable_mpi }} | ||
- name: Build HOOMD-blue | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: ninja install -j $(($(getconf _NPROCESSORS_ONLN) + 2)) | ||
working-directory: build-hoomd-blue | ||
- name: Cache HOOMD-blue build | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
uses: actions/cache/save@v3 | ||
with: | ||
path: install | ||
key: hoomd-blue-${{ env.HOOMD_BLUE_VERSION }}-2023.11.27-cuda120_gcc11_py310-mpi-${{ matrix.enable_mpi }}-gpu-${{ matrix.enable_gpu }} | ||
|
||
- name: Checkout component | ||
uses: actions/checkout@v4 | ||
with: | ||
path: component | ||
- name: Configure component | ||
run: CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/install cmake -S component -B build-component -GNinja -DCMAKE_BUILD_TYPE=Release | ||
- name: Build component | ||
run: ninja install -j $(($(getconf _NPROCESSORS_ONLN) + 2)) | ||
working-directory: build-component | ||
|
||
- name: Run pytest (serial) | ||
run: python3 -m pytest --pyargs hoomd.${COMPONENT_NAME} -x -v -ra --durations=0 --durations-min=0.1 | ||
- name: Run pytest (MPI) | ||
if: ${{ matrix.enable_mpi == 'ON' }} | ||
run: mpirun -n 2 ${GITHUB_WORKSPACE}/install/hoomd/pytest/pytest-openmpi.sh --pyargs hoomd.${COMPONENT_NAME} -x -v -ra --durations=0 --durations-min=0.1 || (( cat pytest.out.1 && exit 1 )) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
ci: | ||
autoupdate_schedule: quarterly | ||
autoupdate_branch: 'trunk' | ||
autofix_prs: false | ||
|
||
repos: | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: 'v4.4.0' | ||
hooks: | ||
- id: end-of-file-fixer | ||
exclude_types: [svg] | ||
- id: trailing-whitespace | ||
exclude_types: [svg] | ||
- id: check-json | ||
- id: check-yaml | ||
- id: check-case-conflict | ||
- id: fix-encoding-pragma | ||
args: | ||
- --remove | ||
- id: mixed-line-ending | ||
- repo: https://github.com/glotzerlab/fix-license-header | ||
rev: v0.2.0 | ||
hooks: | ||
- id: fix-license-header | ||
name: Fix license headers (Python) | ||
types_or: [python] | ||
args: | ||
- --license-file=LICENSE | ||
- --add=Part of HOOMD-blue, released under the BSD 3-Clause License. | ||
- --keep-before=#! | ||
- id: fix-license-header | ||
name: Fix license headers (C) | ||
types_or: [c, c++, cuda, inc] | ||
args: | ||
- --license-file=LICENSE | ||
- --add=Part of HOOMD-blue, released under the BSD 3-Clause License. | ||
- --comment-prefix=// | ||
- id: fix-license-header | ||
name: Fix license headers (reStructuredText) | ||
types_or: [rst] | ||
args: | ||
- --license-file=LICENSE | ||
- --add=Part of HOOMD-blue, released under the BSD 3-Clause License. | ||
- --keep-after=.. include | ||
- --comment-prefix=.. | ||
- repo: https://github.com/pre-commit/mirrors-clang-format | ||
rev: v16.0.6 | ||
hooks: | ||
- id: clang-format | ||
types_or: [c, c++, cuda, inc] | ||
- repo: https://github.com/astral-sh/ruff-pre-commit | ||
rev: v0.1.4 | ||
hooks: | ||
- id: ruff-format | ||
- id: ruff |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
target-version = "py38" | ||
|
||
extend-select = [ | ||
"A", | ||
"B", | ||
"D", | ||
"E501", | ||
"EM", | ||
"I", | ||
"ICN", | ||
"ISC", | ||
"N", | ||
"NPY", | ||
"PL", | ||
"PT", | ||
"RET", | ||
"RUF", | ||
"UP", | ||
"W", | ||
] | ||
|
||
ignore = [ | ||
"N806", "N803", # Allow occasional use of uppercase variable and argument names (e.g. N). | ||
"D107", # Do not document __init__ separately from the class. | ||
"PLR09", # Allow "too many" statements/arguments/etc... | ||
"N816", # Allow mixed case names like kT. | ||
] | ||
|
||
[lint.per-file-ignores] | ||
|
||
"__init__.py" = ["F401", # __init__.py import submodules for use by the package importer. | ||
] | ||
|
||
[pydocstyle] | ||
convention = "google" | ||
|
||
[format] | ||
quote-style = "single" | ||
|
||
[lint.flake8-import-conventions] | ||
# Prefer no import aliases | ||
aliases = {} | ||
# Always import hoomd without 'from' | ||
banned-from = ["hoomd"] | ||
|
||
# Ban standard import conventions and force common packages to be imported by their actual name. | ||
[lint.flake8-import-conventions.banned-aliases] | ||
"numpy" = ["np"] | ||
"pandas" = ["pd"] | ||
"matplotlib" = ["mpl"] |
Oops, something went wrong.