diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index e23b1ba860..854925f061 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -95,6 +95,38 @@ jobs: - config: [gcc, 11, -py, 310, -mpi, -tbb] - config: [gcc, 10, -py, 310, -mpi, -tbb] + check-links: + name: "Check links" + runs-on: ubuntu-latest + steps: + - name: Check out repo + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + submodules: true + - name: Set up Python + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 + with: + python-version: "3.12" + - name: Setup uv + uses: glotzerlab/workflows/setup-uv@5cfac9da9cb78e16ae97a9119b6fd13c1c2d6f5e # 0.1.0 + - name: Install dependencies + run: uv pip install -r sphinx-doc/requirements.txt --system + - name: Install tools + run: sudo apt-get install pandoc + - name: Build Sphinx Docs + run: sphinx-build -b html sphinx-doc doc_build + - name: Link Checker + id: lychee + uses: lycheeverse/lychee-action@2b973e86fc7b1f6b36a93795fe2c9c6ae1118621 # v1.10.0 + with: + args: -n + --exclude-path 'sphinx-doc/_templates/page.html' + --exclude-path 'hoomd/extern' + --exclude https://glotzerlab.engin.umich.edu + --exclude doi.org + './**/*.md' './**/*.html' './**/*.rst' + fail: true + tests_complete: name: Unit test if: always() diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 5b2306ea11..d226b78250 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -19,19 +19,15 @@ Each minor and major release of HOOMD-blue at a minimum supports: ### Continuous integration [Github Actions] performs continuous integration testing on HOOMD-blue. GitHub -Actions compiles HOOMD-blue, runs the unit tests, and and reports the +Actions compiles HOOMD-blue, runs the unit tests, and reports the status to GitHub pull requests. A number of parallel builds test a variety of compiler and build configurations as defined above. Visit the [workflows] page to find recent builds. The pipeline configuration -files are in [.github/workflows/] and are built from Jinja templates in -[.github/workflows/templates/] using `make_workflows.py` which is automatically -run by `pre-commit`. To make changes to the workflows, edit the templates. +files are in `.github/workflows/`. [GitHub Actions]: https://docs.github.com/en/actions [workflows]: https://github.com/glotzerlab/hoomd-blue/actions -[.github/workflows/]: .github/workflows/ -[.github/workflows/templates/]: .github/workflows/templates/ ## Build system @@ -398,7 +394,7 @@ classes is automated through previously described classes. HOOMD-blue version 3 allows for much more interaction with Python objects within its C++ core. One feature is custom actions (see the tutorial -https://hoomd-blue.readthedocs.io/en/latest/tutorial/03-Custom-Actions-In-Python/00-index.html +https://hoomd-blue.readthedocs.io/en/latest/tutorial/04-Custom-Actions-In-Python/00-index.html or API documentation for more introductory information). When using custom actions internally for HOOMD, the classes `hoomd.custom._InternalAction` and one of the `hoomd.custom._InternalOperation` subclasses are to be used. They allow diff --git a/README.md b/README.md index cc3dcde8ee..6f4c76a3af 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Citing HOOMD](https://img.shields.io/badge/cite-hoomd-blue.svg)](https://hoomd-blue.readthedocs.io/en/latest/citing.html) [![conda-forge](https://img.shields.io/conda/vn/conda-forge/hoomd.svg?style=flat)](https://anaconda.org/conda-forge/hoomd) [![conda-forge Downloads](https://img.shields.io/conda/dn/conda-forge/hoomd.svg?style=flat)](https://anaconda.org/conda-forge/hoomd) -[![GitHub Actions](https://github.com/glotzerlab/hoomd-blue/actions/workflows/test.yml/badge.svg?branch=trunk-patch)](https://github.com/glotzerlab/hoomd-blue/actions/workflows/test.yml) +[![GitHub Actions](https://github.com/glotzerlab/hoomd-blue/actions/workflows//test.yaml/badge.svg?branch=trunk-patch)](https://github.com/glotzerlab/hoomd-blue/actions/workflows/test.yaml) [![Read the Docs](https://img.shields.io/readthedocs/hoomd-blue/latest.svg)](https://hoomd-blue.readthedocs.io/en/latest/?badge=latest) [![Contributors](https://img.shields.io/github/contributors-anon/glotzerlab/hoomd-blue.svg?style=flat)](https://hoomd-blue.readthedocs.io/en/latest/credits.html) [![License](https://img.shields.io/badge/license-BSD--3--Clause-green.svg)](LICENSE) diff --git a/hoomd/data/array.py b/hoomd/data/array.py index c94f9c3dcd..8b7ae4d804 100644 --- a/hoomd/data/array.py +++ b/hoomd/data/array.py @@ -720,7 +720,7 @@ class HOOMDGPUArray(_NoGPU): The HOOMDGPUArray object exposes a GPU data buffer using `__cuda_array_interface__ -`_. +`_. This class provides buffer access through a context manager to prevent invalid memory accesses (`hoomd.State.gpu_local_snapshot`). To avoid errors, use arrays only within the relevant context manager. For example: @@ -755,7 +755,7 @@ class HOOMDGPUArray(_NoGPU): Packages like Numba and PyTorch can use `HOOMDGPUArray` without CuPy installed. Any package that supports version 2 of the `__cuda_array_interface__ - `_ + `_ should support the direct use of `HOOMDGPUArray` objects. """ diff --git a/hoomd/md/bond.py b/hoomd/md/bond.py index 6e469128e4..72af360a76 100644 --- a/hoomd/md/bond.py +++ b/hoomd/md/bond.py @@ -279,7 +279,7 @@ class Tether(Bond): The tethered network is described in Refs. `Gompper, G. & Kroll, D. M. Statistical Mechanics of Membranes and Surfaces 2nd edn (eds Nelson, D. R. et al.) 359-426 (World Scientific, 2004) - `__ and + `__ and `Noguchi, H. & Gompper, G., Phys. Rev. E 72 011901 (2005) `__. diff --git a/hoomd/md/constrain.py b/hoomd/md/constrain.py index 2064465691..a6bfdc7eb1 100644 --- a/hoomd/md/constrain.py +++ b/hoomd/md/constrain.py @@ -77,7 +77,7 @@ class Distance(Constraint): Where :math:`i` and :math:`j` are the the particle tags in the ``constraint_group`` and :math:`d_{ij}` is the constraint distance as given - by the `system state `_. + by the system state. The method sets the second derivative of the Lagrange multipliers with respect to time to zero, such that both the distance constraints and their diff --git a/sphinx-doc/_templates/page.html b/sphinx-doc/_templates/page.html index eb096c38ec..ec236453a9 100644 --- a/sphinx-doc/_templates/page.html +++ b/sphinx-doc/_templates/page.html @@ -30,7 +30,7 @@
-

Development of {{ project }} is led by the Glotzer Group at the University of Michigan (supported by NSF DMR 1808342) with many external contributions. +

Development of {{ project }} is led by the Glotzer Group at the University of Michigan (supported by NSF DMR 1808342) with many external contributions.

{%- if show_copyright %} diff --git a/sphinx-doc/index.rst b/sphinx-doc/index.rst index 6f70bed1f6..e6d29fc61a 100644 --- a/sphinx-doc/index.rst +++ b/sphinx-doc/index.rst @@ -21,8 +21,8 @@ HOOMD-blue :target: https://anaconda.org/conda-forge/hoomd .. |conda-forge-Downloads| image:: https://img.shields.io/conda/dn/conda-forge/hoomd.svg?style=flat :target: https://anaconda.org/conda-forge/hoomd - .. |GitHub Actions| image:: https://github.com/glotzerlab/hoomd-blue/actions/workflows/test.yml/badge.svg?branch=trunk-patch - :target: https://github.com/glotzerlab/hoomd-blue/actions/workflows/test.yml + .. |GitHub Actions| image:: https://github.com/glotzerlab/hoomd-blue/actions/workflows/test.yaml/badge.svg?branch=trunk-patch + :target: https://github.com/glotzerlab/hoomd-blue/actions/workflows/test.yaml .. |Contributors| image:: https://img.shields.io/github/contributors-anon/glotzerlab/hoomd-blue.svg?style=flat :target: https://hoomd-blue.readthedocs.io/en/latest/credits.html .. |License| image:: https://img.shields.io/badge/license-BSD--3--Clause-green.svg diff --git a/sphinx-doc/license.rst b/sphinx-doc/license.rst index 933e86db58..2f818b0c16 100644 --- a/sphinx-doc/license.rst +++ b/sphinx-doc/license.rst @@ -9,7 +9,7 @@ License Libraries --------- -**HOOMD:** HOOMD-blue is a continuation of the HOOMD project (http://www.ameslab.gov/hoomd/). The code from the original project is used under the following license:: +**HOOMD:** HOOMD-blue is a continuation of the HOOMD project. The code from the original project is used under the following license:: Highly Optimized Object-Oriented Molecular Dynamics (HOOMD) Open Source Software License @@ -122,7 +122,7 @@ following license:: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -`CUB `_, used under the following license:: +`CUB `_, used under the following license:: Copyright (c) 2011, Duane Merrill. All rights reserved. Copyright (c) 2011-2016, NVIDIA CORPORATION. All rights reserved. diff --git a/sphinx-doc/migrating.rst b/sphinx-doc/migrating.rst index 9dbcf30638..375a07cff3 100644 --- a/sphinx-doc/migrating.rst +++ b/sphinx-doc/migrating.rst @@ -292,9 +292,9 @@ HOOMD v3 removes old APIs, unused functionality, and features better served by o * - ``deprecated.init.read_xml`` - `Simulation.create_state_from_gsd` * - ``deprecated.init.create_random`` - - `mBuild `_, `packmol `_, or user script. + - `mBuild `_, `packmol `_, or user script. * - ``deprecated.init.create_random_polymers`` - - `mBuild `_, `packmol `_, or user script. + - `mBuild `_, `packmol `_, or user script. :py:mod:`hoomd.hpmc`: diff --git a/sphinx-doc/style.rst b/sphinx-doc/style.rst index 6893f1805f..13d1a91d6f 100644 --- a/sphinx-doc/style.rst +++ b/sphinx-doc/style.rst @@ -34,7 +34,7 @@ Tools * With these plugins: * `pep8-naming `_ - * `flake8-docstrings `_ + * `flake8-docstrings `_ * `flake8-rst-docstrings `_ * Configure flake8 in your editor to see violations on save.