1
0
mirror of https://github.com/django/django.git synced 2025-08-26 03:39:11 +00:00

Fixed #36485 -- Added lint-docs check in Tox and GitHub Actions.

The `check` docs target now runs spelling, black, and lint, so all
current documentation quality checks can be run with a single command.

Also documented the lint-docs check's availability and usage.
This commit is contained in:
David Smith 2025-06-02 08:22:08 +01:00 committed by nessita
parent f81e6e3a53
commit 43e4d0a142
7 changed files with 64 additions and 8 deletions

View File

@ -58,3 +58,19 @@ jobs:
echo "💥 📢 Code blocks in documentation must be reformatted with blacken-docs 📢 💥"
fi;
exit $RESULT
lint-docs:
runs-on: ubuntu-latest
name: lint-docs
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
- run: python -m pip install sphinx-lint
- name: Build docs
run: |
cd docs
make lint

View File

@ -181,6 +181,6 @@ lint:
@echo
@echo "Documentation lint complete."
check: spelling black
check: spelling black lint
@echo
@echo "Style and spelling checks completed."

View File

@ -69,11 +69,11 @@ command from any place in the Django source tree:
$ tox
By default, ``tox`` runs the test suite with the bundled test settings file for
SQLite, ``black``, ``blacken-docs``, ``flake8``, ``isort``, and the
documentation spelling checker. In addition to the system dependencies noted
elsewhere in this documentation, the command ``python3`` must be on your path
and linked to the appropriate version of Python. A list of default environments
can be seen as follows:
SQLite, ``black``, ``blacken-docs``, ``flake8``, ``isort``, ``lint-docs`` and
the documentation spelling checker. In addition to the system dependencies
noted elsewhere in this documentation, the command ``python3`` must be on your
path and linked to the appropriate version of Python. A list of default
environments can be seen as follows:
.. console::
@ -84,6 +84,7 @@ can be seen as follows:
flake8>=3.7.0
docs
isort>=5.1.0
lint-docs
Testing other Python versions and database backends
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -158,8 +158,9 @@ Documentation quality checks
----------------------------
Several checks help maintain Django's documentation quality, including
:ref:`spelling <documentation-spelling-check>` and
:ref:`code block formatting <documentation-code-block-format-check>`.
:ref:`spelling <documentation-spelling-check>`,
:ref:`code block formatting <documentation-code-block-format-check>`, and
:ref:`documentation style <documentation-lint-check>`.
These checks are run automatically in CI and must pass before documentation
changes can be merged. They can also be run locally with a single command:
@ -215,6 +216,31 @@ installed, run the following command from the ``docs`` directory:
The formatter will report any issues by printing them to the terminal and will
reformat code blocks where possible.
.. _documentation-lint-check:
Documentation lint check
~~~~~~~~~~~~~~~~~~~~~~~~
Django's documentation is checked for reStructuredText style and formal issues
using :pypi:`sphinx-lint`. This helps catch problems like stray tabs, trailing
whitespace, excessive line length, and similar formatting problems.
Once ``sphinx-lint`` is installed, the check can be run with the following
command from the ``docs`` directory:
.. console::
$ make lint
The command prints any violations to the terminal in the form
``path:line: message``. If problems are encountered:
* Read the message and fix the indicated issue (for example, remove trailing
whitespace, adjust backticks, or replace tabs with spaces).
* For long lines consider wrapping text onto new lines or breaking long inline
links into named references. The custom line length check should already skip
common false positives such as headings, tables and long links.
.. _documentation-link-check:
Link check

View File

@ -205,6 +205,7 @@ if "%1" == "lint" (
)
if "%1" == "check" (
call :run_lint
call :run_black
call :run_spelling
echo.

View File

@ -39,6 +39,7 @@ backport
backported
backports
backtick
backticks
backtraces
balancer
basename

11
tox.ini
View File

@ -13,6 +13,7 @@ envlist =
flake8
docs
isort
lint-docs
# Add environment to use the default python3 installation
[testenv:py3]
@ -87,3 +88,13 @@ allowlist_externals =
commands =
npm install
npm test
[testenv:lint-docs]
basepython = python3
usedevelop = false
allowlist_externals =
make
deps = sphinx-lint
changedir = docs
commands =
make lint