diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 4819d834..dda4a9e0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -17,8 +17,6 @@ updates: insecure-external-code-execution: "deny" pull-request-branch-name: separator: "/" - reviewers: - - "andthum" labels: - "dependencies" - "patch" @@ -33,8 +31,6 @@ updates: insecure-external-code-execution: "deny" pull-request-branch-name: separator: "/" - reviewers: - - "andthum" labels: - "dependencies" - "skip-changelog" @@ -49,8 +45,6 @@ updates: insecure-external-code-execution: "deny" pull-request-branch-name: separator: "/" - reviewers: - - "andthum" labels: - "dependencies" - "skip-changelog" @@ -62,8 +56,6 @@ updates: interval: "weekly" pull-request-branch-name: separator: "/" - reviewers: - - "andthum" labels: - "dependencies" - "skip-changelog" diff --git a/.github/workflows/cff-validator.yml b/.github/workflows/cff-validator.yml index d5265ee0..992b089e 100644 --- a/.github/workflows/cff-validator.yml +++ b/.github/workflows/cff-validator.yml @@ -27,9 +27,9 @@ jobs: runs-on: "${{ matrix.os }}" steps: - name: "Checkout repository" - uses: "actions/checkout@v4" + uses: "actions/checkout@v6" - name: "Set up Python ${{ matrix.python-version }}" - uses: "actions/setup-python@v5" + uses: "actions/setup-python@v6" with: python-version: "${{ matrix.python-version }}" - name: "Export ${HOME}/.local/bin to ${PATH}" @@ -44,7 +44,7 @@ jobs: python -m pip install --user --upgrade pip echo "dir=$(pip cache dir)" >> ${GITHUB_OUTPUT} - name: "Create/Restore cache" - uses: "actions/cache@v4" + uses: "actions/cache@v5" with: path: "${{ steps.pip-cache.outputs.dir }}/**" key: | diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index b73fbb28..b05785cd 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -27,9 +27,9 @@ jobs: security-events: "write" steps: - name: "Checkout repository" - uses: "actions/checkout@v4" + uses: "actions/checkout@v6" - name: "Set up Python ${{ matrix.python-version }}" - uses: "actions/setup-python@v5" + uses: "actions/setup-python@v6" with: python-version: "${{ matrix.python-version }}" - name: "Export ${HOME}/.local/bin to ${PATH}" @@ -44,7 +44,7 @@ jobs: python -m pip install --user --upgrade pip echo "dir=$(pip cache dir)" >> ${GITHUB_OUTPUT} - name: "Create/Restore cache" - uses: "actions/cache@v4" + uses: "actions/cache@v5" with: path: "${{ steps.pip-cache.outputs.dir }}/**" key: | @@ -72,7 +72,7 @@ jobs: # executable that includes the dependencies. echo "CODEQL_PYTHON=$(which python)" >> ${GITHUB_ENV} - name: "Initialize CodeQL" - uses: "github/codeql-action/init@v3" + uses: "github/codeql-action/init@v4" with: languages: "python" # Override the default behavior so that the action doesn't @@ -80,4 +80,4 @@ jobs: # https://docs.github.com/en/code-security/secure-coding/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#analyzing-python-dependencies setup-python-dependencies: false - name: "Perform CodeQL Analysis" - uses: "github/codeql-action/analyze@v3" + uses: "github/codeql-action/analyze@v4" diff --git a/.github/workflows/tests-skip.yml b/.github/workflows/tests-skip.yml index 67de5e5b..93aeecc6 100644 --- a/.github/workflows/tests-skip.yml +++ b/.github/workflows/tests-skip.yml @@ -53,27 +53,23 @@ jobs: strategy: matrix: # Tests must be run on all target platforms and Python versions. - # Python <3.8 is not supported in the MacOS 14 runner. os: - "ubuntu-latest" - - "macos-13" - "windows-latest" python-version: - "3.6" - "3.7" - "3.8" - "3.9" - # Python 3.6 is not supported anymore in the Ubuntu 22.04 runner - # https://github.com/actions/setup-python/issues/544#issuecomment-1332535877 - # Python 3.7 is not supported anymore in the Ubuntu 24.04 runner exclude: + # Python 3.6 is not supported anymore in the Ubuntu 22.04 runner + # https://github.com/actions/setup-python/issues/544#issuecomment-1332535877 + # Python 3.7 is not supported anymore in the Ubuntu 24.04 runner - os: "ubuntu-latest" python-version: "3.6" - os: "ubuntu-latest" python-version: "3.7" include: - - os: "ubuntu-20.04" - python-version: "3.6" - os: "ubuntu-22.04" python-version: "3.7" # Do not cancel in-progress jobs if any matrix job fails diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 07f7dea3..042c97da 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,9 +37,9 @@ jobs: runs-on: "${{ matrix.os }}" steps: - name: "Checkout repository" - uses: "actions/checkout@v4" + uses: "actions/checkout@v6" - name: "Set up Python ${{ matrix.python-version }}" - uses: "actions/setup-python@v5" + uses: "actions/setup-python@v6" with: python-version: "${{ matrix.python-version }}" - name: "Export ${HOME}/.local/bin to ${PATH}" @@ -54,7 +54,7 @@ jobs: python -m pip install --user --upgrade pip echo "dir=$(pip cache dir)" >> ${GITHUB_OUTPUT} - name: "Create/Restore cache" - uses: "actions/cache@v4" + uses: "actions/cache@v5" with: path: "${{ steps.pip-cache.outputs.dir }}/**" key: | @@ -148,27 +148,23 @@ jobs: strategy: matrix: # Tests must be run on all target platforms and Python versions. - # Python <3.8 is not supported in the MacOS 14 runner. os: - "ubuntu-latest" - - "macos-13" - "windows-latest" python-version: - "3.6" - "3.7" - "3.8" - "3.9" - # Python 3.6 is not supported anymore in the Ubuntu 22.04 runner - # https://github.com/actions/setup-python/issues/544#issuecomment-1332535877 - # Python 3.7 is not supported anymore in the Ubuntu 24.04 runner exclude: + # Python 3.6 is not supported anymore in the Ubuntu 22.04 runner + # https://github.com/actions/setup-python/issues/544#issuecomment-1332535877 + # Python 3.7 is not supported anymore in the Ubuntu 24.04 runner - os: "ubuntu-latest" python-version: "3.6" - os: "ubuntu-latest" python-version: "3.7" include: - - os: "ubuntu-20.04" - python-version: "3.6" - os: "ubuntu-22.04" python-version: "3.7" # Do not cancel in-progress jobs if any matrix job fails @@ -176,9 +172,9 @@ jobs: runs-on: "${{ matrix.os }}" steps: - name: "Checkout repository" - uses: "actions/checkout@v4" + uses: "actions/checkout@v6" - name: "Set up Python ${{ matrix.python-version }}" - uses: "actions/setup-python@v5" + uses: "actions/setup-python@v6" with: python-version: "${{ matrix.python-version }}" - name: "Export ${HOME}/.local/bin to ${PATH}" @@ -193,7 +189,7 @@ jobs: python -m pip install --user --upgrade pip echo "dir=$(pip cache dir)" >> ${GITHUB_OUTPUT} - name: "Create/Restore cache" - uses: "actions/cache@v4" + uses: "actions/cache@v5" with: path: | ${{ steps.pip-cache.outputs.dir }}/** @@ -215,7 +211,7 @@ jobs: python -m pip install --user --upgrade setuptools wheel python -m pip install --user --upgrade python-dev-tools python -m pip install --user "Cython <3.0" - python -m pip install --user "numpy >=1.19.2" + python -m pip install --user "numpy >=1.19.2,<2.0" - name: "Test installation of MDTools" run: | python -m pip install --user . diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d35c6dac..969c6c0b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -38,6 +38,8 @@ ci: repos: - repo: "https://github.com/pre-commit/pre-commit-hooks" + # Stay at pre-commit-hooks version 5, because pre-commit-hooks drops + # support for Python 3.8 in version 6. Latest 5 version is v5.0.0. rev: "v5.0.0" hooks: ### Git ### @@ -116,7 +118,10 @@ repos: - id: "check-pre-commit-ci-config" - repo: "https://github.com/python-jsonschema/check-jsonschema" - rev: "0.31.2" + # Stay at version 0.30.0 together with jsonschema <=4.18, because + # higher versions require regress>=2024.11.1, but only + # regress <=2024.8.1 seems to support Python 3.8 + rev: "0.30.0" hooks: # Validate Dependabot Config (v2) against the schema provided by # SchemaStore. @@ -186,6 +191,9 @@ repos: - "--color" - repo: "https://github.com/PyCQA/flake8" + # Stay at flake8 version 7.1.2, because higher versions require + # pycodestyle >=2.13.0, but only pycodestyle <=2.12.1 seems to + # support Python 3.8 rev: "7.1.2" hooks: # Lint Python code with Flake8. @@ -208,7 +216,9 @@ repos: - "pep8-naming >=0.1, <1.0" - repo: "https://github.com/PyCQA/bandit" - rev: "1.8.3" + # Stay at bandit version 1.7.10, because bandit drops support for + # Python 3.8 in version 1.8.0. Latest 1.7 version is 1.7.10. + rev: "1.7.10" hooks: # Check code security with bandit. - id: "bandit" @@ -230,6 +240,8 @@ repos: ###################################################################### - repo: "https://github.com/maxwinterstein/shfmt-py" + # Stay at shfmt-py version v3.7.0.1, because shfmt-py drops support + # for Python 3.8 in version v3.11.0.2. rev: "v3.7.0.1" hooks: # Format shell scripts with shfmt. @@ -251,6 +263,8 @@ repos: - "-l" - repo: "https://github.com/shellcheck-py/shellcheck-py" + # Stay at shellcheck-py version v0.10.0.1, because shellcheck-py + # drops support for Python 3.8 in version v0.11.0.1. rev: "v0.10.0.1" hooks: # Lint shell scripts with shellcheck. diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index a54dbf10..096561ad 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -6,5 +6,5 @@ # on sphinx >=1.6, <6.0 # => The sphix requirement must not be >=6.0 -sphinx >=5.0, <9.0 +sphinx >=5.0, <10.0 sphinx-rtd-theme >=1.0, <3.0 diff --git a/docs/source/conf.py b/docs/source/conf.py index ca5f00e3..745ebe51 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -241,7 +241,7 @@ .. |explanation_of_these_terms| replace:: :raw-html:`explanation of these terms` .. |MDA_always_guesses_atom_masses| replace:: - :raw-html:`MDAnalysis always guesses atom masses` + :raw-html:`MDAnalysis always guesses atom masses` .. |shfmt| replace:: :raw-html:`shfmt` @@ -479,6 +479,7 @@ linkcheck_ignore = [ # 403 Client Error: Forbidden for url. r"https://www\.cabdirect\.org/cabdirect/abstract/19272700028", + r"https://docutils\.sourceforge\.io/docs/ref/rst/restructuredtext\.html#bullet-lists", # noqa: E501 r"https://doi\.org/10\.1002/9781118033005", r"https://doi\.org/10\.1021/acs\.jctc\.2c00327", r"https://doi\.org/10\.1063/1\.1320826", @@ -491,6 +492,12 @@ r"https://doi\.org/10\.1103/PhysRevB\.74\.184430", r"https://doi\.org/10\.1103/PhysRevLett\.98\.227802", r"https://doi\.org/10\.3233/DS-190026", + r"https://doi\.org/10\.5281/zenodo\.1172987", + r"https://doi\.org/10\.5281/zenodo\.1212495", + r"https://doi\.org/10\.5281/zenodo\.3233853", + r"https://doi\.org/10\.5281/zenodo\.7615177", + r"https://zenodo\.org/badge/DOI/10\.5281/zenodo\.7615177\.svg", + r"https://zenodo\.org/record/1172988", # 418 Client Error: Unknown for url. r"https://doi\.org/10\.1109/TSMC\.1979\.4310076", ] diff --git a/setup.py b/setup.py index 359d5d8a..0004542b 100644 --- a/setup.py +++ b/setup.py @@ -160,7 +160,6 @@ def get_content(fname="README.rst"): "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", # noqa: E501 "Natural Language :: English", - "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", diff --git a/src/mdtools/check.py b/src/mdtools/check.py index 136bed33..e8a6b57f 100644 --- a/src/mdtools/check.py +++ b/src/mdtools/check.py @@ -1548,7 +1548,7 @@ def masses(ag, flash_test=True): of mass. .. _MDAnalysis always guesses atom masses: - https://userguide.mdanalysis.org/formats/guessing.html + https://userguide.mdanalysis.org/stable/guessing.html Parameters ---------- @@ -1615,7 +1615,7 @@ def masses_new(ag, verbose=False): center of mass. .. _MDAnalysis always guesses atom masses: - https://userguide.mdanalysis.org/formats/guessing.html + https://userguide.mdanalysis.org/stable/guessing.html Parameters ---------- diff --git a/src/mdtools/structure.py b/src/mdtools/structure.py index 5bcd7689..277b8161 100644 --- a/src/mdtools/structure.py +++ b/src/mdtools/structure.py @@ -951,7 +951,7 @@ def com(ag, pbc=False, compound="group", make_whole=False, debug=False): :class:`~MDAnalysis.core.groups.Atom` coordinates. .. _MDAnalysis always guesses atom masses: - https://userguide.mdanalysis.org/formats/guessing.html + https://userguide.mdanalysis.org/stable/guessing.html """ if compound == "atoms": if pbc: