diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index f00cb44860bd..e8107ca54470 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -28,7 +28,7 @@ jobs: - name: Install Requirements run: pip install -r requirements.txt - name: Cache Django - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: Django/* key: Django diff --git a/.github/workflows/coverage_comment.yml b/.github/workflows/coverage_comment.yml index 2370f3c97122..00e34f09aaf1 100644 --- a/.github/workflows/coverage_comment.yml +++ b/.github/workflows/coverage_comment.yml @@ -36,7 +36,7 @@ jobs: - name: Post/update PR comment env: PR_NUMBER: ${{ steps.pr.outputs.number }} - uses: actions/github-script@v8 + uses: actions/github-script@v9 with: script: | const fs = require('fs'); diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml index 3042f4d22810..11417b9e72bc 100644 --- a/.github/workflows/labels.yml +++ b/.github/workflows/labels.yml @@ -22,7 +22,7 @@ jobs: timeout-minutes: 60 steps: - name: "Check title and manage labels" - uses: actions/github-script@v8 + uses: actions/github-script@v9 with: script: | const title = context.payload.pull_request.title; diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index ccee1adde022..5ad4ec881e5f 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -33,8 +33,8 @@ jobs: python-version: '3.14' - run: python -m pip install flake8 - name: flake8 - # Pinned to v3.0.0. - uses: liskin/gh-problem-matcher-wrap@e7b7beaaafa52524748b31a381160759d68d61fb + # Pinned to v4.0.0. + uses: liskin/gh-problem-matcher-wrap@d31bb388d13cf879e93f878cb2550299f0afb460 with: linters: flake8 run: flake8 @@ -53,8 +53,8 @@ jobs: python-version: '3.14' - run: python -m pip install isort - name: isort - # Pinned to v3.0.0. - uses: liskin/gh-problem-matcher-wrap@e7b7beaaafa52524748b31a381160759d68d61fb + # Pinned to v4.0.0. + uses: liskin/gh-problem-matcher-wrap@d31bb388d13cf879e93f878cb2550299f0afb460 with: linters: isort run: isort --check --diff django tests scripts @@ -93,9 +93,9 @@ jobs: with: persist-credentials: false - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: - node-version: '20' + node-version: '24' cache: 'npm' cache-dependency-path: '**/package.json' - run: npm install diff --git a/.github/workflows/schedule_tests.yml b/.github/workflows/schedule_tests.yml index 1d5c5410226f..23b157e51609 100644 --- a/.github/workflows/schedule_tests.yml +++ b/.github/workflows/schedule_tests.yml @@ -79,9 +79,9 @@ jobs: with: persist-credentials: false - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: - node-version: '20' + node-version: '24' cache: 'npm' cache-dependency-path: '**/package.json' - run: npm install diff --git a/.github/workflows/schedules.yml b/.github/workflows/schedules.yml index 72ebf52f9c5a..73bd239e4bdc 100644 --- a/.github/workflows/schedules.yml +++ b/.github/workflows/schedules.yml @@ -22,7 +22,7 @@ jobs: branch: - main steps: - - uses: actions/github-script@v8 + - uses: actions/github-script@v9 with: github-token: ${{secrets.SCHEDULE_WORKFLOW_TOKEN}} script: | diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml index 851ad6b94d3e..a3e587b30bbd 100644 --- a/.github/workflows/screenshots.yml +++ b/.github/workflows/screenshots.yml @@ -43,7 +43,7 @@ jobs: run: python -Wall runtests.py --verbosity=2 --noinput --selenium=chrome --headless --screenshots --settings=test_sqlite --parallel=1 - name: Cache oxipng - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.cargo/ key: ${{ runner.os }}-cargo diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b0742eba6965..435117a461c3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -53,9 +53,9 @@ jobs: with: persist-credentials: false - name: Set up Node.js - uses: actions/setup-node@v5 + uses: actions/setup-node@v6 with: - node-version: '20' + node-version: '24' cache: 'npm' cache-dependency-path: '**/package.json' - run: npm install diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1ff03378495e..eecac4eacc8f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/psf/black-pre-commit-mirror - rev: 26.1.0 + rev: 26.5.1 hooks: - id: black exclude: \.py-tpl$ @@ -9,11 +9,11 @@ repos: hooks: - id: blacken-docs additional_dependencies: - - black==26.1.0 + - black==26.5.1 files: 'docs/.*\.txt$' args: ["--rst-literal-block"] - repo: https://github.com/PyCQA/isort - rev: 7.0.0 + rev: 8.0.1 hooks: - id: isort - repo: https://github.com/PyCQA/flake8 @@ -21,11 +21,11 @@ repos: hooks: - id: flake8 - repo: https://github.com/biomejs/pre-commit - rev: v2.4.12 + rev: v2.4.15 hooks: - id: biome-check - additional_dependencies: ["@biomejs/biome@2.4.12"] + additional_dependencies: ["@biomejs/biome@2.4.15"] - repo: https://github.com/zizmorcore/zizmor-pre-commit - rev: v1.19.0 + rev: v1.25.2 hooks: - id: zizmor diff --git a/biome.json b/biome.json index aaf9d31b16cc..e767b616b3b8 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.4.12/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json", "files": { "includes": [ "django/contrib/admin/static/admin/css/**/*.css", diff --git a/django/contrib/admin/static/admin/css/base.css b/django/contrib/admin/static/admin/css/base.css index 8f72023ea171..8a526f5c73f0 100644 --- a/django/contrib/admin/static/admin/css/base.css +++ b/django/contrib/admin/static/admin/css/base.css @@ -124,12 +124,12 @@ a:focus { } a:not( - [role="button"], - #header a, - #nav-sidebar a, - #content-main.app-list a, - .object-tools a - ) { + [role="button"], + #header a, + #nav-sidebar a, + #content-main.app-list a, + .object-tools a +) { text-decoration: underline; } diff --git a/docs/internals/contributing/writing-code/coding-style.txt b/docs/internals/contributing/writing-code/coding-style.txt index 499866defaee..a792e137aa53 100644 --- a/docs/internals/contributing/writing-code/coding-style.txt +++ b/docs/internals/contributing/writing-code/coding-style.txt @@ -137,7 +137,7 @@ Imports .. console:: - $ python -m pip install "isort >= 7.0.0" + $ python -m pip install "isort >= 8.0.1" $ isort . This runs ``isort`` recursively from your current directory, modifying any diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index d19616e323fc..b6bfd5875da4 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -81,11 +81,11 @@ default environments can be seen as follows: py3 black blacken-docs - flake8>=3.7.0 + flake8 docs - isort>=7.0.0 + isort lint-docs - zizmor>=1.19.0 + zizmor Testing other Python versions and database backends ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/package.json b/package.json index 3c3dd5a99b6e..2c79999414ce 100644 --- a/package.json +++ b/package.json @@ -9,11 +9,11 @@ "npm": ">=1.3.0" }, "devDependencies": { - "@biomejs/biome": "2.4.12", - "puppeteer": "^24.22.0", - "grunt": "^1.6.1", + "@biomejs/biome": "2.4.15", + "puppeteer": "^25.0.4", + "grunt": "^1.6.2", "grunt-cli": "^1.5.0", - "grunt-contrib-qunit": "^10.1.1", - "qunit": "^2.24.1" + "grunt-contrib-qunit": "^10.2.0", + "qunit": "^2.25.0" } } diff --git a/tests/requirements/py3.txt b/tests/requirements/py3.txt index cf89b65b3a38..6603e94a2c63 100644 --- a/tests/requirements/py3.txt +++ b/tests/requirements/py3.txt @@ -2,7 +2,7 @@ aiosmtpd >= 1.4.5 asgiref >= 3.9.1 argon2-cffi >= 23.1.0 bcrypt >= 4.1.1 -black >= 26.1.0 +black >= 26.5.1 docutils >= 0.22 geoip2 >= 4.8.0 jinja2 >= 2.11.0 diff --git a/tox.ini b/tox.ini index 8f534a035b6a..7aed526a7cb0 100644 --- a/tox.ini +++ b/tox.ini @@ -66,7 +66,7 @@ commands = [testenv:flake8] basepython = python3 usedevelop = false -deps = flake8 >= 3.7.0 +deps = flake8 >= 7.3.0 changedir = {toxinidir} commands = flake8 . @@ -86,7 +86,7 @@ commands = [testenv:isort] basepython = python3 usedevelop = false -deps = isort >= 7.0.0 +deps = isort >= 8.0.1 changedir = {toxinidir} commands = isort --check-only --diff django tests scripts @@ -113,7 +113,7 @@ commands = [testenv:zizmor] basepython = python3 usedevelop = false -deps = zizmor >= 1.19.0 +deps = zizmor >= 1.25.2 changedir = {toxinidir} commands = zizmor .