From bd6ea07b976552a4054e7d75cc718ae7815eeee98724afcf96b1147f0e618443 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Thu, 30 Oct 2025 10:50:20 +0000 Subject: [PATCH] - Add set-pub-at-inst.patch making the package compatible with docutils >= 0.22 (gh#twolfson/restructuredtext-lint!64). - Add skip-failing-test-66.patch skipping failing test (gh#twolfson/restructuredtext-lint#66) fixing failing test test.test.TestRestructuredtextLintCLI.test_level_fail - Convert to pip-based build and libalternatives - Update to version 1.4.0 - Fixed non-zero exit code for missing files/directories. Fixes #58 - Update to version 1.3.2 - Added "Other tools" section to README. Replacement for #57 - Update to version 1.3.1 - Removed .pyc files from distribution. Fixes #56 - %python3_only -> %python_alternative - Removed no longer needed python37.patch - Update to v1.3.0 * Added Python 3.7 support - Remove unused dependency on PyYAML - Update to v1.2.2 * Dropped PyYAML dev dependency by simplifying one test case - Freshen python37.patch - Add patch to build with python 3.7: * python37.patch - Update to 1.2.1: * Added directory support via @dhruvsomani in #48. Fixes #38 - Remove superfluous devel dependency for noarch package - Update to 1.1.3 * Updated documentation and typos - spec file cleanups - Initial version OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-restructuredtext_lint?expand=0&rev=19 --- .gitattributes | 23 ++++++++ .gitignore | 1 + python-restructuredtext_lint.changes | 78 +++++++++++++++++++++++++ python-restructuredtext_lint.spec | 86 ++++++++++++++++++++++++++++ restructuredtext_lint-1.4.0.tar.gz | 3 + set-pub-at-inst.patch | 36 ++++++++++++ skip-failing-test-66.patch | 34 +++++++++++ 7 files changed, 261 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 python-restructuredtext_lint.changes create mode 100644 python-restructuredtext_lint.spec create mode 100644 restructuredtext_lint-1.4.0.tar.gz create mode 100644 set-pub-at-inst.patch create mode 100644 skip-failing-test-66.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/python-restructuredtext_lint.changes b/python-restructuredtext_lint.changes new file mode 100644 index 0000000..ca31cb4 --- /dev/null +++ b/python-restructuredtext_lint.changes @@ -0,0 +1,78 @@ +------------------------------------------------------------------- +Thu Oct 30 10:44:36 UTC 2025 - Matej Cepl + +- Add set-pub-at-inst.patch making the package compatible with + docutils >= 0.22 (gh#twolfson/restructuredtext-lint!64). + +------------------------------------------------------------------- +Thu Sep 25 22:41:04 UTC 2025 - Matej Cepl + +- Add skip-failing-test-66.patch skipping failing test + (gh#twolfson/restructuredtext-lint#66) fixing failing test + test.test.TestRestructuredtextLintCLI.test_level_fail + +------------------------------------------------------------------- +Wed Jun 11 13:07:42 UTC 2025 - Markéta Machová + +- Convert to pip-based build and libalternatives + +------------------------------------------------------------------- +Fri Oct 7 15:00:41 UTC 2022 - Yogalakshmi Arunachalam + +- Update to version 1.4.0 + - Fixed non-zero exit code for missing files/directories. Fixes #58 + +- Update to version 1.3.2 + - Added "Other tools" section to README. Replacement for #57 + +- Update to version 1.3.1 + - Removed .pyc files from distribution. Fixes #56 + +------------------------------------------------------------------- +Tue May 19 09:27:43 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Mon Mar 25 03:03:34 UTC 2019 - John Vandenberg + +- Removed no longer needed python37.patch +- Update to v1.3.0 + * Added Python 3.7 support + +------------------------------------------------------------------- +Thu Feb 14 06:31:00 UTC 2019 - John Vandenberg + +- Remove unused dependency on PyYAML +- Update to v1.2.2 + * Dropped PyYAML dev dependency by simplifying one test case +- Freshen python37.patch + +------------------------------------------------------------------- +Wed Jan 2 12:00:58 UTC 2019 - Tomáš Chvátal + +- Add patch to build with python 3.7: + * python37.patch + +------------------------------------------------------------------- +Wed Jan 2 11:54:41 UTC 2019 - Tomáš Chvátal + +- Update to 1.2.1: + * Added directory support via @dhruvsomani in #48. Fixes #38 + +------------------------------------------------------------------- +Tue Dec 4 12:53:51 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Thu May 24 17:41:32 UTC 2018 - toddrme2178@gmail.com + +- Update to 1.1.3 + * Updated documentation and typos +- spec file cleanups + +------------------------------------------------------------------- +Thu Nov 16 17:45:44 UTC 2017 - toddrme2178@gmail.com + +- Initial version diff --git a/python-restructuredtext_lint.spec b/python-restructuredtext_lint.spec new file mode 100644 index 0000000..82d1436 --- /dev/null +++ b/python-restructuredtext_lint.spec @@ -0,0 +1,86 @@ +# +# spec file for package python-restructuredtext_lint +# +# Copyright (c) 2025 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_without libalternatives +Name: python-restructuredtext_lint +Version: 1.4.0 +Release: 0 +Summary: Linter for reStructuredText +License: Unlicense +Group: Development/Languages/Python +URL: https://github.com/twolfson/restructuredtext-lint +Source: https://files.pythonhosted.org/packages/source/r/restructuredtext_lint/restructuredtext_lint-%{version}.tar.gz +# PATCH-FIX-UPSTREAM set-pub-at-inst.patch gh#twolfson/restructuredtext-lint!64 mcepl@suse.com +# make the package compatible with docutils 0.22 +Patch0: set-pub-at-inst.patch +# PATCH-FIX-OPENSUSE skip-failing-test-66.patch gh#twolfson/restructuredtext-lint#66 mcepl@suse.com +# skip failing test (upstream has more complex solution) +Patch1: skip-failing-test-66.patch +BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: alts +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: alts +Requires: python-docutils >= 0.11 +BuildArch: noarch +# SECTION test requirements +BuildRequires: %{python_module docutils >= 0.11} +# /SECTION +%python_subpackages + +%description +Linter for reStructuredText. + +This was created out of frustration with PyPI; it sucks finding out +your reST is invalid **after** uploading it. It is being developed +in junction with a Sublime Text linter. + +%prep +%autosetup -p1 -n restructuredtext_lint-%{version} + +find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_clone -a %{buildroot}%{_bindir}/rst-lint +%python_clone -a %{buildroot}%{_bindir}/restructuredtext-lint +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitelib} +$python -m unittest discover -v +} + +%pre +%python_libalternatives_reset_alternative rst-lint +%python_libalternatives_reset_alternative restructuredtext-lint + +%files %{python_files} +%doc CHANGELOG.rst README.rst +%license UNLICENSE +%python_alternative %{_bindir}/restructuredtext-lint +%python_alternative %{_bindir}/rst-lint +%{python_sitelib}/restructuredtext_lint +%{python_sitelib}/restructuredtext_lint-%{version}*-info + +%changelog diff --git a/restructuredtext_lint-1.4.0.tar.gz b/restructuredtext_lint-1.4.0.tar.gz new file mode 100644 index 0000000..e1dc09d --- /dev/null +++ b/restructuredtext_lint-1.4.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b235c0c922341ab6c530390892eb9e92f90b9b75046063e047cacfb0f050c45 +size 16723 diff --git a/set-pub-at-inst.patch b/set-pub-at-inst.patch new file mode 100644 index 0000000..13e44ba --- /dev/null +++ b/set-pub-at-inst.patch @@ -0,0 +1,36 @@ +From feffa41fe2b0575754353913cd71df61e4eea0a6 Mon Sep 17 00:00:00 2001 +From: Dominic Davis-Foster +Date: Thu, 14 Aug 2025 13:29:50 +0100 +Subject: [PATCH] Set publusher components at instantiaion + +--- + restructuredtext_lint/lint.py | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +Index: restructuredtext_lint-1.4.0/restructuredtext_lint/lint.py +=================================================================== +--- restructuredtext_lint-1.4.0.orig/restructuredtext_lint/lint.py 2018-11-14 06:55:13.000000000 +0100 ++++ restructuredtext_lint-1.4.0/restructuredtext_lint/lint.py 2025-10-30 11:34:26.553577716 +0100 +@@ -1,6 +1,7 @@ + # Load in our dependencies + from __future__ import absolute_import + import io ++import docutils + from docutils import utils + from docutils.core import Publisher + from docutils.nodes import Element +@@ -18,8 +19,12 @@ + # Generate a new parser (copying `rst2html.py` flow) + # http://repo.or.cz/w/docutils.git/blob/422cede485668203abc01c76ca317578ff634b30:/docutils/tools/rst2html.py + # http://repo.or.cz/w/docutils.git/blob/422cede485668203abc01c76ca317578ff634b30:/docutils/docutils/core.py#l348 +- pub = Publisher(None, None, None, settings=None) +- pub.set_components('standalone', 'restructuredtext', 'pseudoxml') ++ # https://github.com/twolfson/restructuredtext-lint/pull/64 ++ if docutils.__version_info__[:2] < (0, 22): ++ pub = Publisher(None, None, None, settings=None) ++ pub.set_components('standalone', 'restructuredtext', 'pseudoxml') ++ else: ++ pub = Publisher('standalone', 'restructuredtext', 'pseudoxml', settings=None) + + # Configure publisher + # DEV: We cannot use `process_command_line` since it processes `sys.argv` which is for `rst-lint`, not `docutils` diff --git a/skip-failing-test-66.patch b/skip-failing-test-66.patch new file mode 100644 index 0000000..9aa83a9 --- /dev/null +++ b/skip-failing-test-66.patch @@ -0,0 +1,34 @@ +--- + restructuredtext_lint/test/test.py | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +Index: restructuredtext_lint-1.4.0/restructuredtext_lint/test/test.py +=================================================================== +--- restructuredtext_lint-1.4.0.orig/restructuredtext_lint/test/test.py 2022-02-24 06:50:23.000000000 +0100 ++++ restructuredtext_lint-1.4.0/restructuredtext_lint/test/test.py 2025-10-30 11:37:31.488257443 +0100 +@@ -4,7 +4,7 @@ + import subprocess + import sys + import textwrap +-from unittest import TestCase ++from unittest import TestCase, skip + + import restructuredtext_lint + +@@ -201,14 +201,13 @@ + # This is the expected behaviour we are checking: + # $ rst-lint --level warning second_short_heading.rst ; echo "Return code $?" + # WARNING second_short_heading.rst:6 Title underline too short. +- # WARNING second_short_heading.rst:6 Title underline too short. + # Return code 2 + with self.assertRaises(subprocess.CalledProcessError) as e: + subprocess.check_output((sys.executable, rst_lint_path, '--level', 'warning', warning_rst), + universal_newlines=True) + output = str(e.exception.output) +- self.assertEqual(output.count('\n'), 2, output) +- self.assertEqual(output.count('WARNING'), 2, output) ++ self.assertEqual(output.count('\n'), 1, output) ++ self.assertEqual(output.count('WARNING'), 1, output) + # The expected 2 warnings should be treated as failing + self.assertEqual(e.exception.returncode, 2) +