From 4872b3a81bb73d43e6323b3c928a6fcba1919824 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Wed, 30 Oct 2024 14:00:01 -0600 Subject: [PATCH 01/11] Version 0.16.0 - Rework method of unbundling fontawesome-fonts - Run tests verbosely --- ...ta-sphinx-theme-0.16.0-vendor-licenses.txt | 11 +- python-pydata-sphinx-theme-fontawesome.patch | 102 +++++------------- python-pydata-sphinx-theme.spec | 26 +++-- sources | 4 +- 4 files changed, 57 insertions(+), 86 deletions(-) rename pydata-sphinx-theme-0.15.4-vendor-licenses.txt => pydata-sphinx-theme-0.16.0-vendor-licenses.txt (69%) diff --git a/pydata-sphinx-theme-0.15.4-vendor-licenses.txt b/pydata-sphinx-theme-0.16.0-vendor-licenses.txt similarity index 69% rename from pydata-sphinx-theme-0.15.4-vendor-licenses.txt rename to pydata-sphinx-theme-0.16.0-vendor-licenses.txt index dbeeeab..d590d8d 100644 --- a/pydata-sphinx-theme-0.15.4-vendor-licenses.txt +++ b/pydata-sphinx-theme-0.16.0-vendor-licenses.txt @@ -1,16 +1,17 @@ yarn run v1.22.22 $ /tmp/node_modules/.bin/license-checker --summary -├─ MIT: 263 -├─ ISC: 36 +├─ MIT: 265 +├─ ISC: 32 ├─ BSD-2-Clause: 15 -├─ BSD-3-Clause: 6 -├─ Apache-2.0: 4 +├─ BSD-3-Clause: 7 +├─ Apache-2.0: 5 ├─ CC0-1.0: 2 ├─ (CC-BY-4.0 AND OFL-1.1 AND MIT): 1 ├─ MPL-2.0: 1 ├─ CC-BY-4.0: 1 +├─ (WTFPL OR MIT): 1 ├─ CC-BY-3.0: 1 ├─ (MIT AND CC-BY-3.0): 1 └─ 0BSD: 1 -Done in 0.65s. +Done in 0.60s. diff --git a/python-pydata-sphinx-theme-fontawesome.patch b/python-pydata-sphinx-theme-fontawesome.patch index d4763ac..01354ba 100644 --- a/python-pydata-sphinx-theme-fontawesome.patch +++ b/python-pydata-sphinx-theme-fontawesome.patch @@ -1,77 +1,33 @@ ---- pydata-sphinx-theme-0.14.0/webpack.config.js.orig 2023-09-15 00:05:14.000000000 -0600 -+++ pydata-sphinx-theme-0.14.0/webpack.config.js 2023-09-15 08:31:37.188931403 -0600 -@@ -29,12 +29,8 @@ exec(`pybabel compile -d ${localePath} - - * Paths for various assets (sources and destinations) - */ +--- pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/scripts/fontawesome.js.orig 2024-10-22 08:12:14.000000000 -0600 ++++ pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/scripts/fontawesome.js 2024-10-22 11:56:22.498337454 -0600 +@@ -1,4 +1,4 @@ + // TODO: @trallard might end up moving this to the main JS file + // Define the custom behavior of the page --const vendorVersions = {fontAwesome: require("@fortawesome/fontawesome-free/package.json").version}; -- - const scriptPath = resolve(__dirname, "src/pydata_sphinx_theme/assets/scripts"); - const staticPath = resolve(__dirname,"src/pydata_sphinx_theme/theme/pydata_sphinx_theme/static"); --const vendorPath = resolve(staticPath, "vendor"); --const faPath = {fontAwesome: resolve(vendorPath, "fontawesome", vendorVersions.fontAwesome)}; +-import "@fortawesome/fontawesome-free/js/all.min.js"; ++import "/usr/share/fontawesome/js/all.min.js"; +--- pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss.orig 2024-10-22 08:12:14.000000000 -0600 ++++ pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss 2024-10-22 11:59:15.112153082 -0600 +@@ -2,10 +2,10 @@ + @import "~bootstrap/scss/bootstrap"; - /******************************************************************************* - * functions to load the assets in the html head -@@ -60,15 +56,15 @@ const theme_scripts = [ - "scripts/pydata-sphinx-theme.js", - ]; - const fa_stylesheets = [ -- `vendor/fontawesome/${vendorVersions.fontAwesome}/css/all.min.css`, -+ `file:///usr/share/fontawsome/css/all.min.css`, - ]; - const fa_scripts = [ -- `vendor/fontawesome/${vendorVersions.fontAwesome}/js/all.min.js`, -+ `file:///usr/share/fontawesome/js/all.min.js`, - ]; - const fa_fonts = [ -- `vendor/fontawesome/${vendorVersions.fontAwesome}/webfonts/fa-solid-900.woff2`, -- `vendor/fontawesome/${vendorVersions.fontAwesome}/webfonts/fa-brands-400.woff2`, -- `vendor/fontawesome/${vendorVersions.fontAwesome}/webfonts/fa-regular-400.woff2`, -+ `file:///usr/share/fonts/fontawesome-6-free-solid-fonts/Font Awesome 6 Free-Solid-900.otf`, -+ `file:///usr/share/fonts/fontawesome-6-brands-fonts/Font Awesome 6 Brands-Regular-400.otf`, -+ `file:///usr/share/fonts/fontawesome-6-free-fonts/Font Awesome 6 Free-Regular-400.otf`, - ]; + // Import FontAwesome from _node_modules +-@import "~@fortawesome/fontawesome-free/scss/fontawesome"; +-@import "~@fortawesome/fontawesome-free/scss/solid"; +-@import "~@fortawesome/fontawesome-free/scss/regular"; +-@import "~@fortawesome/fontawesome-free/scss/brands"; ++@import "/usr/share/fontawesome/scss/fontawesome"; ++@import "/usr/share/fontawesome/scss/solid"; ++@import "/usr/share/fontawesome/scss/regular"; ++@import "/usr/share/fontawesome/scss/brands"; - /******************************************************************************* -@@ -120,31 +116,6 @@ const htmlWebpackPlugin = new HtmlWebpac - templateContent: macroTemplate, - }); + // Variables + @import "variables/bootstrap"; +--- pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss.orig 2024-10-22 08:12:14.000000000 -0600 ++++ pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss 2024-10-24 09:11:44.167831794 -0600 +@@ -44,4 +44,4 @@ html { + } --const copyPlugin = new CopyPlugin({ // fontawesome -- patterns: [ -- { -- context: "./node_modules/@fortawesome/fontawesome-free", -- from: "LICENSE.txt", -- to: resolve(faPath.fontAwesome, "LICENSE.txt"), -- }, -- { -- context: "./node_modules/@fortawesome/fontawesome-free/css", -- from: "all.min.css", -- to: resolve(faPath.fontAwesome, "css"), -- }, -- { -- context: "./node_modules/@fortawesome/fontawesome-free/js", -- from: "all.min.js", -- to: resolve(faPath.fontAwesome, "js"), -- }, -- { -- context: "./node_modules/@fortawesome/fontawesome-free", -- from: "webfonts", -- to: resolve(faPath.fontAwesome, "webfonts"), -- }, -- ] --}); -- - module.exports = { - mode: "production", - devtool: "source-map", -@@ -164,7 +135,7 @@ module.exports = { - ], - }], - }, -- plugins: [htmlWebpackPlugin, copyPlugin, new MiniCssExtractPlugin({ -+ plugins: [htmlWebpackPlugin, new MiniCssExtractPlugin({ - filename: "styles/[name].css" - })], - experiments: { + $line-height-body: 1.65; +-$fa-font-path: "vendor/fontawesome/webfonts/"; ++$fa-font-path: "/usr/share/fontawesome/webfonts/"; diff --git a/python-pydata-sphinx-theme.spec b/python-pydata-sphinx-theme.spec index d4a5877..d116903 100644 --- a/python-pydata-sphinx-theme.spec +++ b/python-pydata-sphinx-theme.spec @@ -1,12 +1,12 @@ # Documentation can no longer be built in Fedora due to missing python modules: -# ablog, myst-nb, sphinx-togglebutton +# ablog and sphinx-togglebutton # This also means that doctests cannot be run. %bcond docs 0 %global giturl https://github.com/pydata/pydata-sphinx-theme Name: python-pydata-sphinx-theme -Version: 0.15.4 +Version: 0.16.0 Release: %autorelease Summary: Bootstrap-based Sphinx theme from the PyData community @@ -30,12 +30,12 @@ Source3: pydata-gallery.tar.xz Patch: %{name}-fontawesome.patch BuildRequires: fontawesome-fonts-all +BuildRequires: fontawesome-fonts-web BuildRequires: gcc-c++ BuildRequires: make BuildRequires: nodejs-devel BuildRequires: nodejs-npm BuildRequires: python3-devel -BuildRequires: %{py3_dist pytest-regressions} BuildRequires: yarnpkg Provides: bundled(js-bootstrap) = 5.3.3 @@ -67,6 +67,7 @@ See https://pydata-sphinx-theme.readthedocs.io/ for documentation.} %package -n python3-pydata-sphinx-theme Summary: Bootstrap-based Sphinx theme from the PyData community Requires: fontawesome-fonts-all +Requires: fontawesome-fonts-web %description -n python3-pydata-sphinx-theme %_description @@ -106,10 +107,23 @@ nodeenv --node=system --prebuilt --clean-src $PWD/.nodeenv %pyproject_wheel %install +%define instdir %{buildroot}%{python3_sitelib}/pydata_sphinx_theme +%define themedir %{instdir}/theme/pydata_sphinx_theme/static %pyproject_install -%pyproject_save_files pydata_sphinx_theme +%pyproject_save_files -L pydata_sphinx_theme sed -i '/\.gitignore/d' %{pyproject_files} -rm %{buildroot}%{python3_sitelib}/pydata_sphinx_theme/theme/pydata_sphinx_theme/static/.gitignore +rm %{themedir}/.gitignore + +# More work is required to fully unbundle the fontawesome fonts +sed -i 's,pydata_sphinx_theme/\.\./\.\./\.\./\.\./\.\.,,g' \ + %{themedir}/scripts/fontawesome.js.map \ + %{themedir}/styles/pydata-sphinx-theme.css.map +sed -e 's,url.*fa-solid-900\.woff2.*format("truetype"),local("fontawesome-free-fonts/Font Awesome 6 Free-Solid-900") format("opentype"),g' \ + -e 's,url.*fa-regular-400\.woff2.*format("truetype"),local("fontawesome-free-fonts/Font Awesome 6 Free-Regular-400") format("opentype"),g' \ + -e 's,url.*fa-brands-400\.woff2.*format("truetype"),local("fontawesome-brands-fonts/Font Awesome 6 Brands-Regular-400") format("opentype"),g' \ + -i %{themedir}/styles/pydata-sphinx-theme.css +sed -i '/vendor/d' %{pyproject_files} +rm -fr %{themedir}/vendor %if %{with docs} # We need an installed tree before documentation building works properly @@ -121,7 +135,7 @@ cd - %check # Translation does not work correctly in an uninstalled tree -%pytest -k 'not test_translations' +%pytest -v -k 'not test_translations' %files -n python3-pydata-sphinx-theme -f %{pyproject_files} %doc README.md diff --git a/sources b/sources index d4609d7..62da1b1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (pydata-sphinx-theme-0.15.4.tar.gz) = 5cdedfa182a75c0735773627bbe738f31b36bc812051d4848676b33acf3b2a55d2bd59b1171c4deb4e7c29e8968bcade1f1abfa901c3c4dc8caeaf9e47cbba28 -SHA512 (pydata-sphinx-theme-0.15.4-vendor.tar.xz) = 444db95e25c739247478e579a16dd358af1d26c4775883518140fd5b9aebace9c537a0536810bb5bda6cec916b1826a08237e7c902cc9b262e78d816f234b9b6 +SHA512 (pydata-sphinx-theme-0.16.0.tar.gz) = 4f5c48708d5aae21ed8f1827a4d805c893652b02612699468875d283180087c2193b4dd12b8cbe24a1cee1a748d5de9ebbe378d1ff0b07b2a57c0b349ea3c173 +SHA512 (pydata-sphinx-theme-0.16.0-vendor.tar.xz) = 4b2d641bf0e18126a4cfc9b091efdd7ee4bf14c9c9dd1ffe339c6f8e97870e21f19c7e789adf322014acebf7b1a4501ef19235f1c447731a4e18c976d9fca049 From 597f2fcb0d07eb50164714d4b506d6c72447ab86 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 17 Dec 2024 10:04:43 -0700 Subject: [PATCH 02/11] Version 0.16.1 - Fix building and testing translations --- ...ydata-sphinx-theme-0.16.1-vendor-licenses.txt | 4 ++-- python-pydata-sphinx-theme-fontawesome.patch | 16 ++++++++-------- python-pydata-sphinx-theme.spec | 6 +++--- sources | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) rename pydata-sphinx-theme-0.16.0-vendor-licenses.txt => pydata-sphinx-theme-0.16.1-vendor-licenses.txt (91%) diff --git a/pydata-sphinx-theme-0.16.0-vendor-licenses.txt b/pydata-sphinx-theme-0.16.1-vendor-licenses.txt similarity index 91% rename from pydata-sphinx-theme-0.16.0-vendor-licenses.txt rename to pydata-sphinx-theme-0.16.1-vendor-licenses.txt index d590d8d..9b6c01c 100644 --- a/pydata-sphinx-theme-0.16.0-vendor-licenses.txt +++ b/pydata-sphinx-theme-0.16.1-vendor-licenses.txt @@ -1,6 +1,6 @@ yarn run v1.22.22 $ /tmp/node_modules/.bin/license-checker --summary -├─ MIT: 265 +├─ MIT: 267 ├─ ISC: 32 ├─ BSD-2-Clause: 15 ├─ BSD-3-Clause: 7 @@ -14,4 +14,4 @@ $ /tmp/node_modules/.bin/license-checker --summary ├─ (MIT AND CC-BY-3.0): 1 └─ 0BSD: 1 -Done in 0.60s. +Done in 0.61s. diff --git a/python-pydata-sphinx-theme-fontawesome.patch b/python-pydata-sphinx-theme-fontawesome.patch index 01354ba..5eda863 100644 --- a/python-pydata-sphinx-theme-fontawesome.patch +++ b/python-pydata-sphinx-theme-fontawesome.patch @@ -1,14 +1,14 @@ ---- pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/scripts/fontawesome.js.orig 2024-10-22 08:12:14.000000000 -0600 -+++ pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/scripts/fontawesome.js 2024-10-22 11:56:22.498337454 -0600 +--- pydata-sphinx-theme-0.16.1/src/pydata_sphinx_theme/assets/scripts/fontawesome.js.orig 2024-12-17 03:38:01.000000000 -0700 ++++ pydata-sphinx-theme-0.16.1/src/pydata_sphinx_theme/assets/scripts/fontawesome.js 2024-12-17 09:09:44.347458128 -0700 @@ -1,4 +1,4 @@ // TODO: @trallard might end up moving this to the main JS file // Define the custom behavior of the page -import "@fortawesome/fontawesome-free/js/all.min.js"; +import "/usr/share/fontawesome/js/all.min.js"; ---- pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss.orig 2024-10-22 08:12:14.000000000 -0600 -+++ pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss 2024-10-22 11:59:15.112153082 -0600 -@@ -2,10 +2,10 @@ +--- pydata-sphinx-theme-0.16.1/src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss.orig 2024-12-17 03:38:01.000000000 -0700 ++++ pydata-sphinx-theme-0.16.1/src/pydata_sphinx_theme/assets/styles/pydata-sphinx-theme.scss 2024-12-17 09:10:32.401619489 -0700 +@@ -7,10 +7,10 @@ @import "~bootstrap/scss/bootstrap"; // Import FontAwesome from _node_modules @@ -22,9 +22,9 @@ +@import "/usr/share/fontawesome/scss/brands"; // Variables - @import "variables/bootstrap"; ---- pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss.orig 2024-10-22 08:12:14.000000000 -0600 -+++ pydata-sphinx-theme-0.16.0/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss 2024-10-24 09:11:44.167831794 -0600 + @import "variables/layout"; +--- pydata-sphinx-theme-0.16.1/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss.orig 2024-12-17 03:38:01.000000000 -0700 ++++ pydata-sphinx-theme-0.16.1/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss 2024-12-17 09:10:57.682173950 -0700 @@ -44,4 +44,4 @@ html { } diff --git a/python-pydata-sphinx-theme.spec b/python-pydata-sphinx-theme.spec index d116903..759df44 100644 --- a/python-pydata-sphinx-theme.spec +++ b/python-pydata-sphinx-theme.spec @@ -6,7 +6,7 @@ %global giturl https://github.com/pydata/pydata-sphinx-theme Name: python-pydata-sphinx-theme -Version: 0.16.0 +Version: 0.16.1 Release: %autorelease Summary: Bootstrap-based Sphinx theme from the PyData community @@ -29,6 +29,7 @@ Source3: pydata-gallery.tar.xz # Fedora-only patch: unbundle the fontawesome fonts Patch: %{name}-fontawesome.patch +BuildRequires: babel BuildRequires: fontawesome-fonts-all BuildRequires: fontawesome-fonts-web BuildRequires: gcc-c++ @@ -134,8 +135,7 @@ cd - %endif %check -# Translation does not work correctly in an uninstalled tree -%pytest -v -k 'not test_translations' +%pytest -v %files -n python3-pydata-sphinx-theme -f %{pyproject_files} %doc README.md diff --git a/sources b/sources index 62da1b1..fa6f89a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (pydata-sphinx-theme-0.16.0.tar.gz) = 4f5c48708d5aae21ed8f1827a4d805c893652b02612699468875d283180087c2193b4dd12b8cbe24a1cee1a748d5de9ebbe378d1ff0b07b2a57c0b349ea3c173 -SHA512 (pydata-sphinx-theme-0.16.0-vendor.tar.xz) = 4b2d641bf0e18126a4cfc9b091efdd7ee4bf14c9c9dd1ffe339c6f8e97870e21f19c7e789adf322014acebf7b1a4501ef19235f1c447731a4e18c976d9fca049 +SHA512 (pydata-sphinx-theme-0.16.1.tar.gz) = a72d5be0dfdd11ffac8ed60521121053343869234b7fc1a5d2ac3b5a78cc3b00afdb7875608bd7cdb455d1bfa92dfdffcf541310aed211f6eb49a6ce29f2c045 +SHA512 (pydata-sphinx-theme-0.16.1-vendor.tar.xz) = 60e59e3105d07273ddce5756a9699cf2e46e555666db5c915de385bc59f65ca6778df6cba877a3b0e319b1f1fd3dee262d6e3bece43f0a0aabeae3d756567d58 From c9017b72b9e98d20aa31a593e8f500b34f309485 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 18 Jan 2025 17:39:50 +0000 Subject: [PATCH 03/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 1e05b923ba76c9a1de06ae3be04b7af052e9645a Mon Sep 17 00:00:00 2001 From: Karolina Surma Date: Wed, 5 Mar 2025 12:39:32 +0100 Subject: [PATCH 04/11] Enable compatibility with Pygments 2.19+ --- 2091.patch | 311 ++++++++++++++++++++++++++++++++ python-pydata-sphinx-theme.spec | 4 + 2 files changed, 315 insertions(+) create mode 100644 2091.patch diff --git a/2091.patch b/2091.patch new file mode 100644 index 0000000..4cafad9 --- /dev/null +++ b/2091.patch @@ -0,0 +1,311 @@ +From e1f763310e99d4c048d86c76b61073f3822aa981 Mon Sep 17 00:00:00 2001 +From: "pre-commit-ci[bot]" + <66853113+pre-commit-ci[bot]@users.noreply.github.com> +Date: Mon, 6 Jan 2025 17:40:47 +0000 +Subject: [PATCH 1/6] [pre-commit.ci] pre-commit autoupdate hooks +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +updates: +- [github.com/pycontribs/mirrors-prettier: v3.3.3 → v3.4.2](https://github.com/pycontribs/mirrors-prettier/compare/v3.3.3...v3.4.2) +- [github.com/astral-sh/ruff-pre-commit: v0.8.1 → v0.8.6](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.1...v0.8.6) +- [github.com/asottile/pyupgrade: v3.19.0 → v3.19.1](https://github.com/asottile/pyupgrade/compare/v3.19.0...v3.19.1) +- [github.com/Riverside-Healthcare/djLint: v1.36.3 → v1.36.4](https://github.com/Riverside-Healthcare/djLint/compare/v1.36.3...v1.36.4) +- [github.com/thibaudcolas/pre-commit-stylelint: v16.11.0 → v16.12.0](https://github.com/thibaudcolas/pre-commit-stylelint/compare/v16.11.0...v16.12.0) +--- + .pre-commit-config.yaml | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml +index 0d7c67c84..209a6d3e2 100644 +--- a/.pre-commit-config.yaml ++++ b/.pre-commit-config.yaml +@@ -13,7 +13,7 @@ default_language_version: + + repos: + - repo: "https://github.com/pycontribs/mirrors-prettier" +- rev: v3.3.3 ++ rev: v3.4.2 + hooks: + - id: prettier + # Exclude the HTML, since it doesn't understand Jinja2 +@@ -22,20 +22,20 @@ repos: + exclude: .+\.html|webpack\.config\.js|tests/test_a11y/ + + - repo: "https://github.com/astral-sh/ruff-pre-commit" +- rev: "v0.8.1" ++ rev: "v0.8.6" + hooks: + - id: ruff + args: [--exit-non-zero-on-fix] + - id: ruff-format + + - repo: "https://github.com/asottile/pyupgrade" +- rev: v3.19.0 ++ rev: v3.19.1 + hooks: + - id: pyupgrade + args: [--py37-plus] + + - repo: "https://github.com/Riverside-Healthcare/djLint" +- rev: v1.36.3 ++ rev: v1.36.4 + hooks: + - id: djlint-jinja + types_or: ["html"] +@@ -56,7 +56,7 @@ repos: + - id: remove-metadata + + - repo: "https://github.com/thibaudcolas/pre-commit-stylelint" +- rev: v16.11.0 ++ rev: v16.12.0 + hooks: + - id: stylelint + # automatically fix .scss files where possible + +From 3e5aa9b4137445b288d6b287b36c8785c8c861b9 Mon Sep 17 00:00:00 2001 +From: "pre-commit-ci[bot]" + <66853113+pre-commit-ci[bot]@users.noreply.github.com> +Date: Mon, 6 Jan 2025 17:41:49 +0000 +Subject: [PATCH 2/6] [pre-commit.ci] Automatic linting and formatting fixes + +--- + .../styles/abstracts/_accessibility.scss | 6 +++-- + .../assets/styles/variables/_color.scss | 24 +++++++------------ + .../assets/styles/variables/_fonts.scss | 6 ++--- + 3 files changed, 15 insertions(+), 21 deletions(-) + +diff --git a/src/pydata_sphinx_theme/assets/styles/abstracts/_accessibility.scss b/src/pydata_sphinx_theme/assets/styles/abstracts/_accessibility.scss +index bc5cf74b7..53aa6aef0 100644 +--- a/src/pydata_sphinx_theme/assets/styles/abstracts/_accessibility.scss ++++ b/src/pydata_sphinx_theme/assets/styles/abstracts/_accessibility.scss +@@ -70,8 +70,10 @@ + $rgb-col: map.merge( + $rgb-col, + ( +- $channel: +- math.pow(math.div((math.div($value, 255) + 0.055), 1.055), 2.4), ++ $channel: math.pow( ++ math.div((math.div($value, 255) + 0.055), 1.055), ++ 2.4 ++ ), + ) + ); + } +diff --git a/src/pydata_sphinx_theme/assets/styles/variables/_color.scss b/src/pydata_sphinx_theme/assets/styles/variables/_color.scss +index 6553f0b24..5efe04989 100644 +--- a/src/pydata_sphinx_theme/assets/styles/variables/_color.scss ++++ b/src/pydata_sphinx_theme/assets/styles/variables/_color.scss +@@ -26,8 +26,7 @@ + /* Assign base colors for the PyData theme */ + $color-palette: ( + // Primary color +- "teal": +- ( ++ "teal": ( + "50": #f4fbfc, + "100": #e9f6f8, + "200": #d0ecf1, +@@ -40,8 +39,7 @@ $color-palette: ( + "900": #021b1f, + ), + // Secondary color +- "violet": +- ( ++ "violet": ( + "50": #f4eefb, + "100": #e0c7ff, + "200": #d5b4fd, +@@ -54,8 +52,7 @@ $color-palette: ( + "900": #1e0e39, + ), + // Neutrals +- "gray": +- ( ++ "gray": ( + "50": #f9f9fa, + "100": #f3f4f5, + "200": #e5e7ea, +@@ -68,8 +65,7 @@ $color-palette: ( + "900": #14181e, + ), + // Accent color +- "pink": +- ( ++ "pink": ( + "50": #fcf8fd, + "100": #fcf0fa, + "200": #f8dff5, +@@ -161,8 +157,7 @@ $pst-semantic-colors: ( + "bg-dark": #002f17, + ), + // This is based on the warning color +- "attention": +- ( ++ "attention": ( + "light": var(--pst-color-warning), + "bg-light": var(--pst-color-warning-bg), + "dark": var(--pst-color-warning), +@@ -229,15 +224,13 @@ $pst-semantic-colors: ( + // DEPTH COLORS - you can see the elevation colours and shades + // in the Figma file https://www.figma.com/file/rUrrHGhUBBIAAjQ82x6pz9/PyData-Design-system---proposal-for-implementation-(2)?node-id=1492%3A922&t=sQeQZehkOzposYEg-1 + // background: color of the canvas / the furthest back layer +- "background": +- ( ++ "background": ( + "light": #{map-deep-get($color-palette, "foundation", "white")}, + "dark": #{map-deep-get($color-palette, "foundation", "black")}, + ), + // on-background: provides slight contrast against background + // (by use of shadows in light theme) +- "on-background": +- ( ++ "on-background": ( + "light": #{map-deep-get($color-palette, "foundation", "white")}, + "dark": #{map-deep-get($color-palette, "gray", "800")}, + ), +@@ -246,8 +239,7 @@ $pst-semantic-colors: ( + "dark": #{map-deep-get($color-palette, "gray", "700")}, + ), + // on_surface: object on top of surface object (without shadows) +- "on-surface": +- ( ++ "on-surface": ( + "light": #{map-deep-get($color-palette, "gray", "800")}, + "dark": $foundation-light-gray, + ), +diff --git a/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss b/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss +index 5b76b37ed..9a16122ea 100644 +--- a/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss ++++ b/src/pydata_sphinx_theme/assets/styles/variables/_fonts.scss +@@ -33,9 +33,9 @@ html { + + // Font family + // These are adapted from https://systemfontstack.com/ */ +- --pst-font-family-base-system: -apple-system, "BlinkMacSystemFont", "Segoe UI", +- "Helvetica Neue", "Arial", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", +- "Segoe UI Symbol"; ++ --pst-font-family-base-system: -apple-system, "BlinkMacSystemFont", ++ "Segoe UI", "Helvetica Neue", "Arial", sans-serif, "Apple Color Emoji", ++ "Segoe UI Emoji", "Segoe UI Symbol"; + --pst-font-family-monospace-system: "SFMono-Regular", "Menlo", "Consolas", + "Monaco", "Liberation Mono", "Lucida Console", monospace; + --pst-font-family-base: var(--pst-font-family-base-system); + +From 402b8613ffbf5248471b94437592f05b98257592 Mon Sep 17 00:00:00 2001 +From: Daniel McCloy +Date: Wed, 8 Jan 2025 10:54:28 -0600 +Subject: [PATCH 3/6] update caniuse-lite + +--- + package-lock.json | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/package-lock.json b/package-lock.json +index fef417f7c..5688e1834 100644 +--- a/package-lock.json ++++ b/package-lock.json +@@ -709,9 +709,9 @@ + } + }, + "node_modules/caniuse-lite": { +- "version": "1.0.30001609", +- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz", +- "integrity": "sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==", ++ "version": "1.0.30001690", ++ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", ++ "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", + "dev": true, + "funding": [ + { +@@ -726,7 +726,8 @@ + "type": "github", + "url": "https://github.com/sponsors/ai" + } +- ] ++ ], ++ "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + +From f43024ded15bf55ea61e2bbaec8612d8b8631645 Mon Sep 17 00:00:00 2001 +From: Daniel McCloy +Date: Wed, 8 Jan 2025 11:01:22 -0600 +Subject: [PATCH 4/6] improve test + +--- + tests/test_build.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/test_build.py b/tests/test_build.py +index 7a005fa4a..170a29a83 100644 +--- a/tests/test_build.py ++++ b/tests/test_build.py +@@ -891,8 +891,8 @@ def test_pygments_fallbacks(sphinx_build_factory, style_names, keyword_colors) - + # see if our warnings worked + if style_names[0].startswith("fake"): + assert len(warnings) == 2 +- re.match(r"Color theme fake_foo.*tango", warnings[0]) +- re.match(r"Color theme fake_bar.*monokai", warnings[1]) ++ assert re.search(r"Highlighting style fake_foo.*tango", warnings[0]) ++ assert re.search(r"Highlighting style fake_bar.*monokai", warnings[1]) + else: + assert warnings == [""] + # test that the rendered HTML has highlighting spans + +From 513729664b1c2c51c68d2c6086a9f05cea1976c1 Mon Sep 17 00:00:00 2001 +From: Daniel McCloy +Date: Wed, 8 Jan 2025 11:23:46 -0600 +Subject: [PATCH 5/6] show info why test fails + +--- + tests/test_build.py | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/tests/test_build.py b/tests/test_build.py +index 170a29a83..0d2f861f7 100644 +--- a/tests/test_build.py ++++ b/tests/test_build.py +@@ -907,11 +907,9 @@ def test_pygments_fallbacks(sphinx_build_factory, style_names, keyword_colors) - + lines = css_file.readlines() + assert lines[0].startswith('html[data-theme="light"]') + for mode, color in dict(zip(["light", "dark"], keyword_colors)).items(): +- regexp = re.compile( +- r'html\[data-theme="' + mode + r'"\].*\.k .*color: ' + color +- ) +- matches = [regexp.match(line) is not None for line in lines] +- assert sum(matches) == 1 ++ regexp = re.compile(rf'html\[data-theme="{mode}"\].*\.k .*color:\s?{color}') ++ matches = [regexp.search(line) is not None for line in lines] ++ assert sum(matches) == 1, f"expected {mode}: {color}\n" + "\n".join(lines) + + + def test_deprecated_build_html(sphinx_build_factory, file_regression) -> None: + +From d73887b5c73e805b28d8c7cd865c8f8e58a85745 Mon Sep 17 00:00:00 2001 +From: Daniel McCloy +Date: Wed, 8 Jan 2025 11:28:43 -0600 +Subject: [PATCH 6/6] ignorecase + +--- + tests/test_build.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/tests/test_build.py b/tests/test_build.py +index 0d2f861f7..8444da330 100644 +--- a/tests/test_build.py ++++ b/tests/test_build.py +@@ -907,7 +907,10 @@ def test_pygments_fallbacks(sphinx_build_factory, style_names, keyword_colors) - + lines = css_file.readlines() + assert lines[0].startswith('html[data-theme="light"]') + for mode, color in dict(zip(["light", "dark"], keyword_colors)).items(): +- regexp = re.compile(rf'html\[data-theme="{mode}"\].*\.k .*color:\s?{color}') ++ regexp = re.compile( ++ r'html\[data-theme="' + mode + r'"\].*\.k .*color:\s?' + color, ++ re.IGNORECASE, ++ ) + matches = [regexp.search(line) is not None for line in lines] + assert sum(matches) == 1, f"expected {mode}: {color}\n" + "\n".join(lines) + diff --git a/python-pydata-sphinx-theme.spec b/python-pydata-sphinx-theme.spec index 759df44..86d5e8c 100644 --- a/python-pydata-sphinx-theme.spec +++ b/python-pydata-sphinx-theme.spec @@ -20,6 +20,10 @@ Source0: %{giturl}/archive/v%{version}/pydata-sphinx-theme-%{version}.tar # Source1 and Source2 created with ./prepare_vendor.sh Source1: pydata-sphinx-theme-%{version}-vendor.tar.xz Source2: pydata-sphinx-theme-%{version}-vendor-licenses.txt + +# Compatibility with Pygments 2.19+ +Patch: https://github.com/pydata/pydata-sphinx-theme/pull/2091.patch + %if %{with docs} # Generating image files requires network access. Instead, we scrape these from # https://pydata-sphinx-theme.readthedocs.io/en/latest/_images. See From 82e0d2bd044d972ff6e2cfc4b38347ac2a889737 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 23:35:16 +0200 Subject: [PATCH 05/11] Rebuilt for Python 3.14 From 0fe2a8140ae5cbd197408ad7cbb200e20f71ef07 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Fri, 18 Jul 2025 20:54:18 -0600 Subject: [PATCH 06/11] Update bundled bootstrap to version 5.3.7 - Use the pyproject declarative buildsystem --- python-pydata-sphinx-theme.spec | 33 ++++++++++++++++----------------- sources | 2 +- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/python-pydata-sphinx-theme.spec b/python-pydata-sphinx-theme.spec index 86d5e8c..ff734d7 100644 --- a/python-pydata-sphinx-theme.spec +++ b/python-pydata-sphinx-theme.spec @@ -13,7 +13,6 @@ Summary: Bootstrap-based Sphinx theme from the PyData community # This project is BSD-3-Clause. # The bundled bootstrap JavaScript library is MIT. License: BSD-3-Clause AND MIT -BuildArch: noarch URL: https://pydata-sphinx-theme.readthedocs.io/ VCS: git:%{giturl}.git Source0: %{giturl}/archive/v%{version}/pydata-sphinx-theme-%{version}.tar.gz @@ -33,6 +32,11 @@ Source3: pydata-gallery.tar.xz # Fedora-only patch: unbundle the fontawesome fonts Patch: %{name}-fontawesome.patch +BuildArch: noarch +BuildSystem: pyproject +BuildOption(install): -L pydata_sphinx_theme +BuildOption(generate_buildrequires): -x test%{?with_docs:,doc} + BuildRequires: babel BuildRequires: fontawesome-fonts-all BuildRequires: fontawesome-fonts-web @@ -43,18 +47,12 @@ BuildRequires: nodejs-npm BuildRequires: python3-devel BuildRequires: yarnpkg -Provides: bundled(js-bootstrap) = 5.3.3 - -%if %{without docs} -Obsoletes: %{name}-doc < 0.13.0-1 -%endif - %global _description %{expand: This package contains a Sphinx extension for creating document components optimized for HTML+CSS. - The panels directive creates panels of content in a grid layout, - utilizing both the Bootstrap 4 grid system, and cards layout. + utilizing both the Bootstrap 5 grid system, and cards layout. - The link-button directive creates a clickable button, linking to a URL or reference, and can also be used to make an entire panel clickable. @@ -73,6 +71,11 @@ See https://pydata-sphinx-theme.readthedocs.io/ for documentation.} Summary: Bootstrap-based Sphinx theme from the PyData community Requires: fontawesome-fonts-all Requires: fontawesome-fonts-web +Provides: bundled(js-bootstrap) = 5.3.7 + +%if %{without docs} +Obsoletes: %{name}-doc < 0.13.0-1 +%endif %description -n python3-pydata-sphinx-theme %_description @@ -86,6 +89,8 @@ Documentation for pydata-sphinx-theme. %prep %autosetup -n pydata-sphinx-theme-%{version} -p1 -a1 + +%conf cp -p %{SOURCE2} . %if %{with docs} @@ -98,24 +103,18 @@ sed -i 's,https://pydata-sphinx-theme\.readthedocs\.io/en/latest/,,' docs/conf.p # Substitute the installed nodejs version for the requested version sed -i 's,^\(node-version = \)".*",\1"%{nodejs_version}",' pyproject.toml +%generate_buildrequires -p # The Fedora sphinx package does not provide sphinx[test] sed -i 's/\(sphinx\)\[test\]/\1/' pyproject.toml -%generate_buildrequires -%pyproject_buildrequires -x test%{?with_docs:,doc} - -%build +%build -p export YARN_CACHE_FOLDER="$PWD/.package-cache" yarn install --offline nodeenv --node=system --prebuilt --clean-src $PWD/.nodeenv -%pyproject_wheel - -%install +%install -a %define instdir %{buildroot}%{python3_sitelib}/pydata_sphinx_theme %define themedir %{instdir}/theme/pydata_sphinx_theme/static -%pyproject_install -%pyproject_save_files -L pydata_sphinx_theme sed -i '/\.gitignore/d' %{pyproject_files} rm %{themedir}/.gitignore diff --git a/sources b/sources index fa6f89a..73825cf 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (pydata-sphinx-theme-0.16.1.tar.gz) = a72d5be0dfdd11ffac8ed60521121053343869234b7fc1a5d2ac3b5a78cc3b00afdb7875608bd7cdb455d1bfa92dfdffcf541310aed211f6eb49a6ce29f2c045 -SHA512 (pydata-sphinx-theme-0.16.1-vendor.tar.xz) = 60e59e3105d07273ddce5756a9699cf2e46e555666db5c915de385bc59f65ca6778df6cba877a3b0e319b1f1fd3dee262d6e3bece43f0a0aabeae3d756567d58 +SHA512 (pydata-sphinx-theme-0.16.1-vendor.tar.xz) = 4072d122b19db93fce3b33fb4368fe37c7f55c5d2a0ef81782bfef375a23e17abac847bb9edb0476bc6c1601a3ebe5ec067be0773173612b63c12134afb60910 From 31062250ccf3749e6bd87235548df438a217d1f9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 09:34:23 +0000 Subject: [PATCH 07/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From ce90274552613110cf09c9b1909187f6337cdb2d Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 14:28:43 +0200 Subject: [PATCH 08/11] Rebuilt for Python 3.14.0rc2 bytecode From 295e69321dbd296299760318a79d78d588bcfa79 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 14:04:20 +0200 Subject: [PATCH 09/11] Rebuilt for Python 3.14.0rc3 bytecode From 5d9e552654d88d9a0ee96823ba736343e3c70a8e Mon Sep 17 00:00:00 2001 From: Jerry James Date: Mon, 3 Nov 2025 17:06:06 -0700 Subject: [PATCH 10/11] Do not run code coverage tools --- python-pydata-sphinx-theme.spec | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/python-pydata-sphinx-theme.spec b/python-pydata-sphinx-theme.spec index ff734d7..a9a2dee 100644 --- a/python-pydata-sphinx-theme.spec +++ b/python-pydata-sphinx-theme.spec @@ -44,18 +44,22 @@ BuildRequires: gcc-c++ BuildRequires: make BuildRequires: nodejs-devel BuildRequires: nodejs-npm -BuildRequires: python3-devel BuildRequires: yarnpkg -%global _description %{expand: -This package contains a Sphinx extension for creating document components +Provides: bundled(js-bootstrap) = 5.3.3 + +%if %{without docs} +Obsoletes: %{name}-doc < 0.13.0-1 +%endif + +%global _description %{expand:This package contains a Sphinx extension for creating document components optimized for HTML+CSS. -- The panels directive creates panels of content in a grid layout, - utilizing both the Bootstrap 5 grid system, and cards layout. +- The panels directive creates panels of content in a grid layout, utilizing + both the Bootstrap 5 grid system, and cards layout. -- The link-button directive creates a clickable button, linking to a URL - or reference, and can also be used to make an entire panel clickable. +- The link-button directive creates a clickable button, linking to a URL or + reference, and can also be used to make an entire panel clickable. - The dropdown directive creates content that can be toggled. @@ -65,7 +69,8 @@ optimized for HTML+CSS. See https://pydata-sphinx-theme.readthedocs.io/ for documentation.} -%description %_description +%description +%_description %package -n python3-pydata-sphinx-theme Summary: Bootstrap-based Sphinx theme from the PyData community @@ -77,7 +82,8 @@ Provides: bundled(js-bootstrap) = 5.3.7 Obsoletes: %{name}-doc < 0.13.0-1 %endif -%description -n python3-pydata-sphinx-theme %_description +%description -n python3-pydata-sphinx-theme +%_description %if %{with docs} %package doc @@ -106,6 +112,8 @@ sed -i 's,^\(node-version = \)".*",\1"%{nodejs_version}",' pyproject.toml %generate_buildrequires -p # The Fedora sphinx package does not provide sphinx[test] sed -i 's/\(sphinx\)\[test\]/\1/' pyproject.toml +# Do not run code coverage tools +sed -i 's/, "pytest-cov"//' pyproject.toml %build -p export YARN_CACHE_FOLDER="$PWD/.package-cache" From 4d6a96274c5a3de4a39df9bf732c8b55de57358b Mon Sep 17 00:00:00 2001 From: Jerry James Date: Tue, 9 Dec 2025 16:37:34 -0700 Subject: [PATCH 11/11] Adapt to removal of %{nodejs_version} - Update the nodejs packages --- pydata-sphinx-theme-0.16.1-vendor-licenses.txt | 2 +- python-pydata-sphinx-theme.spec | 3 ++- sources | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pydata-sphinx-theme-0.16.1-vendor-licenses.txt b/pydata-sphinx-theme-0.16.1-vendor-licenses.txt index 9b6c01c..fa65162 100644 --- a/pydata-sphinx-theme-0.16.1-vendor-licenses.txt +++ b/pydata-sphinx-theme-0.16.1-vendor-licenses.txt @@ -4,7 +4,7 @@ $ /tmp/node_modules/.bin/license-checker --summary ├─ ISC: 32 ├─ BSD-2-Clause: 15 ├─ BSD-3-Clause: 7 -├─ Apache-2.0: 5 +├─ Apache-2.0: 6 ├─ CC0-1.0: 2 ├─ (CC-BY-4.0 AND OFL-1.1 AND MIT): 1 ├─ MPL-2.0: 1 diff --git a/python-pydata-sphinx-theme.spec b/python-pydata-sphinx-theme.spec index a9a2dee..163a622 100644 --- a/python-pydata-sphinx-theme.spec +++ b/python-pydata-sphinx-theme.spec @@ -46,7 +46,7 @@ BuildRequires: nodejs-devel BuildRequires: nodejs-npm BuildRequires: yarnpkg -Provides: bundled(js-bootstrap) = 5.3.3 +Provides: bundled(js-bootstrap) = 5.3.8 %if %{without docs} Obsoletes: %{name}-doc < 0.13.0-1 @@ -107,6 +107,7 @@ sed -i 's,https://pydata-sphinx-theme\.readthedocs\.io/en/latest/,,' docs/conf.p %endif # Substitute the installed nodejs version for the requested version +%global nodejs_version %(%{_bindir}/node -v | sed s/v//) sed -i 's,^\(node-version = \)".*",\1"%{nodejs_version}",' pyproject.toml %generate_buildrequires -p diff --git a/sources b/sources index 73825cf..9561b12 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (pydata-sphinx-theme-0.16.1.tar.gz) = a72d5be0dfdd11ffac8ed60521121053343869234b7fc1a5d2ac3b5a78cc3b00afdb7875608bd7cdb455d1bfa92dfdffcf541310aed211f6eb49a6ce29f2c045 -SHA512 (pydata-sphinx-theme-0.16.1-vendor.tar.xz) = 4072d122b19db93fce3b33fb4368fe37c7f55c5d2a0ef81782bfef375a23e17abac847bb9edb0476bc6c1601a3ebe5ec067be0773173612b63c12134afb60910 +SHA512 (pydata-sphinx-theme-0.16.1-vendor.tar.xz) = 601ccbd08a688fbc46635e72c05e4ce134286b0f4a6ab45e8cb8ccdc3bc1f407dc0e12508343c4eb240e9d0f8adb25b4734f2f472a4036fddc29eb63130bd4a7