Update to 2023.1 (close RHBZ#2158850)

This commit is contained in:
Benjamin A. Beasley 2023-01-07 10:13:14 -05:00
parent 44c30c16e6
commit e0d8399cab
4 changed files with 4 additions and 354 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
/gi-docgen-2021.8.tar.bz2 /gi-docgen-2021.8.tar.bz2
/gi-docgen-2022.1.tar.bz2 /gi-docgen-2022.1.tar.bz2
/gi-docgen-2022.2.tar.bz2 /gi-docgen-2022.2.tar.bz2
/gi-docgen-2023.1.tar.bz2

View File

@ -1,340 +0,0 @@
From 298e37032ddec9a07e6cb396df3327200134230c Mon Sep 17 00:00:00 2001
From: Seppo Yli-Olli <seppo.yliolli@gmail.com>
Date: Sat, 8 Oct 2022 22:36:49 +0300
Subject: [PATCH] Use tomllib in gi-docgen with fallback to tomli on older
Python
---
.gitlab-ci.yml | 11 ++++++++++-
gidocgen/config.py | 15 ++++++++++-----
meson.build | 10 +++++++++-
pyproject.toml | 2 +-
setup.cfg | 2 +-
5 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 780d46f..b55f150 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,7 +33,16 @@ pytest:
needs: []
image: fedora:latest
script:
- - dnf install -y pytest python3-markdown python3-jinja2 python3-pygments python3-toml python3-typogrify
+ - dnf install -y pytest python3-markdown python3-jinja2 python3-pygments python3-typogrify
+ - pytest --verbose
+
+pytest-tomli:
+ # Validates that tomli configuration works correctly
+ stage: check
+ needs: []
+ image: fedora:36
+ script:
+ - dnf install -y pytest python3-markdown python3-jinja2 python3-pygments python3-tomli python3-typogrify
- pytest --verbose
flake8:
diff --git a/gidocgen/config.py b/gidocgen/config.py
index 0047568..ca79428 100644
--- a/gidocgen/config.py
+++ b/gidocgen/config.py
@@ -3,7 +3,10 @@
import os
import re
-import toml
+try:
+ import tomllib
+except ImportError:
+ import tomli as tomllib
from urllib.parse import urljoin
@@ -19,8 +22,9 @@ class GIDocConfig:
if self._config_file is not None:
try:
log.debug(f"Reading configuration file: {self._config_file}")
- self._config = toml.load(self._config_file)
- except toml.TomlDecodeError as err:
+ with open(self._config_file, "rb") as f:
+ self._config = tomllib.load(f)
+ except tomllib.TOMLDecodeError as err:
log.error(f"Invalid configuration file: {self._config_file}: {err}")
@property
@@ -243,8 +247,9 @@ class GITemplateConfig:
self._config = {}
try:
log.debug(f"Reading template configuration file: {self._config_file}")
- self._config = toml.load(self._config_file)
- except toml.TomlDecodeError as err:
+ with open(self._config_file, "rb") as f:
+ self._config = tomllib.load(f)
+ except tomllib.TOMLDecodeError as err:
log.error(f"Invalid template configuration file: {self._config_file}: {err}")
@property
diff --git a/meson.build b/meson.build
index bee1558..d967fd3 100644
--- a/meson.build
+++ b/meson.build
@@ -13,7 +13,6 @@ py = import('python').find_installation('python3',
'markdown',
'markupsafe',
'pygments',
- 'toml',
'typogrify',
],
)
@@ -27,6 +26,15 @@ if not markdown_version.version_compare('>=3.2')
error('gi-docgen requires at least markdown >= 3.2')
endif
+if py.language_version().version_compare('<3.11')
+ tomli_version = run_command(
+ py, '-c', 'import tomli; print(tomli.__version__)',
+ ).stdout().strip()
+ if not tomli_version.version_compare('>=1.0')
+ error('tomli 1.0 or newer required on Python 3.10 and older')
+ endif
+endif
+
configure_file(
input: 'gi-docgen.py',
output: 'gi-docgen',
diff --git a/pyproject.toml b/pyproject.toml
index 2b88735..b0b18e4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -39,7 +39,7 @@ Markdown = "^3.2"
MarkupSafe = "^1"
Pygments = "^2"
Jinja2 = "^2"
-toml = "^0"
+tomli = { version = ">=1,<3" markers = "python_version < '3.11'" }
typogrify = "^2"
[tool.poetry.dev-dependencies]
diff --git a/setup.cfg b/setup.cfg
index e7afae1..141d5e1 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -56,7 +56,7 @@ install_requires =
MarkupSafe
Pygments
jinja2
- toml
+ tomli; python_version < '3.11'
typogrify
[options.entry_points]
--
GitLab
From 247818203cd948763349b42b9723d76ec637f91c Mon Sep 17 00:00:00 2001
From: Emmanuele Bassi <ebassi@gnome.org>
Date: Tue, 29 Nov 2022 12:11:49 +0000
Subject: [PATCH] Add a fallback for the old toml module
Even if it's deprecated, to ease the porting away from it inside CI
pipelines.
---
gidocgen/config.py | 49 +++++++++++++++++++++++++++++++++-------------
1 file changed, 35 insertions(+), 14 deletions(-)
diff --git a/gidocgen/config.py b/gidocgen/config.py
index ca79428..8863ac1 100644
--- a/gidocgen/config.py
+++ b/gidocgen/config.py
@@ -3,16 +3,45 @@
import os
import re
+
+toml_module = None
try:
- import tomllib
+ import tomllib as toml_lib
+ toml_module = 'tomlib'
except ImportError:
- import tomli as tomllib
+ try:
+ import tomli as toml_lib
+ toml_module = 'tomli'
+ except ImportError:
+ import toml as toml_lib
+ toml_module = 'toml'
from urllib.parse import urljoin
from . import core, log, utils
+class TomlConfig:
+ """Wrapper class for TOML loading"""
+
+ @staticmethod
+ def load(toml):
+ log.debug(f"Using TOML module: {toml_module}")
+ if toml_module is None:
+ log.error("No toml module found")
+ elif toml_module in ['tomlib', 'tomli']:
+ try:
+ with open(toml, "rb") as f:
+ return toml_lib.load(f)
+ except toml_lib.TOMLDecodeError as err:
+ log.error(f"Invalid configuration file: {toml}: {err}")
+ elif toml_module in ['toml']:
+ try:
+ return toml_lib.load(toml)
+ except toml_lib.TomlDecodeError as err:
+ log.error(f"Invalid configuration file: {toml}: {err}")
+
+
class GIDocConfig:
"""Load and represent the configuration for gidocgen"""
def __init__(self, config_file=None):
@@ -20,12 +49,8 @@ class GIDocConfig:
self._config = {}
if self._config_file is not None:
- try:
- log.debug(f"Reading configuration file: {self._config_file}")
- with open(self._config_file, "rb") as f:
- self._config = tomllib.load(f)
- except tomllib.TOMLDecodeError as err:
- log.error(f"Invalid configuration file: {self._config_file}: {err}")
+ log.debug(f"Reading configuration file: {self._config_file}")
+ self._config = TomlConfig.load(self._config_file)
@property
def library(self):
@@ -245,12 +270,8 @@ class GITemplateConfig:
self._config_file = os.path.join(templates_dir, template_name, f"{template_name}.toml")
self._config = {}
- try:
- log.debug(f"Reading template configuration file: {self._config_file}")
- with open(self._config_file, "rb") as f:
- self._config = tomllib.load(f)
- except tomllib.TOMLDecodeError as err:
- log.error(f"Invalid template configuration file: {self._config_file}: {err}")
+ log.debug(f"Reading template configuration file: {self._config_file}")
+ self._config = TomlConfig.load(self._config_file)
@property
def name(self):
--
GitLab
From add62bee3df2418fc13543023c3c6eca3e025d65 Mon Sep 17 00:00:00 2001
From: Emmanuele Bassi <ebassi@gnome.org>
Date: Tue, 29 Nov 2022 12:43:09 +0000
Subject: [PATCH 1/2] build: Check for toml fallback module
Emit a message when using tomli, and a warning when using toml.
---
meson.build | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index d967fd3..f48f19e 100644
--- a/meson.build
+++ b/meson.build
@@ -29,9 +29,20 @@ endif
if py.language_version().version_compare('<3.11')
tomli_version = run_command(
py, '-c', 'import tomli; print(tomli.__version__)',
+ check: true,
).stdout().strip()
- if not tomli_version.version_compare('>=1.0')
- error('tomli 1.0 or newer required on Python 3.10 and older')
+ if tomli_version.version_compare('>=1.0')
+ message('Falling back to toml on Python <3.11')
+ else
+ toml_version = run_command(
+ py, '-c', 'import toml; print(toml.__version__)',
+ check: true,
+ ).stdout().strip()
+ if toml_version.version_compare('>=0.10.2')
+ warning('Falling back to deprecated toml module; please update to tomli')
+ else
+ error('tomli 1.0 or newer required on Python 3.10 and older')
+ endif
endif
endif
--
GitLab
From 40212aaab05ef4d211ced0b54b4fe358626392bc Mon Sep 17 00:00:00 2001
From: Emmanuele Bassi <ebassi@gnome.org>
Date: Tue, 29 Nov 2022 12:48:54 +0000
Subject: [PATCH 2/2] ci: Add Meson build job to the pipeline
---
.gitlab-ci.yml | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b55f150..1538424 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,14 +7,15 @@ stages:
- check
- deploy
-#meson-build:
-# stage: build
-# needs: []
-# script:
-# - dnf install -y meson ninja-build pytest python3-flake8 python3-mypy python3-markdown python3-jinja2 python3-toml python3-typogrify
-# - meson _build .
-# - meson test -C _build
-#
+meson-build:
+ image: fedora:latest
+ stage: build
+ needs: []
+ script:
+ - dnf install -y meson ninja-build pytest python3-markdown python3-jinja2 python3-pygments python3-typogrify python3-flake8 python3-mypy
+ - meson _build .
+ - meson test -C _build
+
#pip-build:
# stage: build
# needs: []
--
GitLab
From de9d716d8919f1f8434539b5974fc0b86b5aa5c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
Date: Fri, 30 Dec 2022 17:48:30 +0100
Subject: [PATCH] Make pyproject.toml valid TOML
This avoids:
TOMLDecodeError: Unclosed inline table (at line 42, column 30)
When parsing the file with tomllib.
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index b0b18e4..4bf0712 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -39,7 +39,7 @@ Markdown = "^3.2"
MarkupSafe = "^1"
Pygments = "^2"
Jinja2 = "^2"
-tomli = { version = ">=1,<3" markers = "python_version < '3.11'" }
+tomli = { version = ">=1,<3", markers = "python_version < '3.11'" }
typogrify = "^2"
[tool.poetry.dev-dependencies]
--
GitLab

View File

@ -5,7 +5,7 @@
%bcond_without doc_pdf %bcond_without doc_pdf
Name: gi-docgen Name: gi-docgen
Version: 2022.2 Version: 2023.1
Release: %autorelease Release: %autorelease
Summary: Documentation tool for GObject-based libraries Summary: Documentation tool for GObject-based libraries
@ -70,18 +70,6 @@ Source0: %{url}/-/archive/%{version}/gi-docgen-%{version}.tar.bz2
# local system fonts. # local system fonts.
Patch: gi-docgen-2022.2-no-web-fonts.patch Patch: gi-docgen-2022.2-no-web-fonts.patch
# python3-toml is deprecated
# https://fedoraproject.org/wiki/Changes/DeprecatePythonToml
# Backport upstream changes to migrate to tomllib and fallback to tomli and toml
# We technically only need the following two:
# https://gitlab.gnome.org/GNOME/gi-docgen/-/merge_requests/168
# https://gitlab.gnome.org/GNOME/gi-docgen/-/merge_requests/174 (fixup of 168)
# But the following two were deemed necessary upstream as well:
# https://gitlab.gnome.org/GNOME/gi-docgen/-/merge_requests/172
# https://gitlab.gnome.org/GNOME/gi-docgen/-/merge_requests/173
# Patches trivially joined to one file with cat.
Patch: gi-docgen-2022.2-tomllib.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: python3-devel BuildRequires: python3-devel
@ -192,6 +180,7 @@ sphinx-build -b latex %{?_smp_mflags} docs %{_vpath_builddir}/_latex
%pyproject_save_files gidocgen %pyproject_save_files gidocgen
install -t '%{buildroot}%{_pkgdocdir}' -D -m 0644 -p \ install -t '%{buildroot}%{_pkgdocdir}' -D -m 0644 -p \
CHANGES.md \
CONTRIBUTING.md \ CONTRIBUTING.md \
docs/CODEOWNERS \ docs/CODEOWNERS \
README.md README.md

View File

@ -1 +1 @@
SHA512 (gi-docgen-2022.2.tar.bz2) = d52d993f040be621f967bd79c6413bda2184b68ec0a09ecd9191cb8cb40fee2a4298ebb3e91cfdda192a0a4673ce2cf23dfa7aaa2b4e643a7dfc676a94be6baa SHA512 (gi-docgen-2023.1.tar.bz2) = 27c484ff95efbf3e452c07aabcf4c598370fb936f505ccd4df15bc18eb868f129884de2566f807260477ecef224bf3f5bf89dc3a336cdc08fc7cedc5264f1310