#87 F33: Automatically word-wrap the description of extras subpackages
Merged 3 years ago by churchyard. Opened 3 years ago by churchyard.
rpms/ churchyard/python-rpm-macros description_wrap  into  f33

file modified
+13 -3
@@ -202,9 +202,19 @@ 

          local rpmname = value_n .. '+' .. extras

          local pkgdef = '%package -n ' .. rpmname

          local summary = 'Summary: Metapackage for ' .. value_n .. ': ' .. extras .. ' extras'

-         local description = '%description -n ' .. rpmname .. '\\\n' ..

-                             'This is a metapackage bringing in ' .. extras .. ' extras requires for ' .. value_n .. '.\\\n' ..

-                             'It contains no code, just makes sure the dependencies are installed.\\\n'

+         local description = '%description -n ' .. rpmname .. '\\\n'

+         local current_line = 'This is a metapackage bringing in'

+         for _, word in ipairs({extras, 'extras', 'requires', 'for', value_n .. '.'}) do

+           local line = current_line .. ' ' .. word

+           if line:len() > 79 then

+             description = description .. current_line .. '\\\n'

+             current_line = word

+           else

+             current_line = line

+           end

+         end

+         description = description .. current_line .. '\\\n' ..

+                       'It contains no code, just makes sure the dependencies are installed.\\\n'

          local files = ''

          if value_i ~= '' then

              files = '%files -n ' .. rpmname .. '\\\n' .. '%ghost ' .. value_i

file modified
+8 -1
@@ -1,6 +1,6 @@ 

  Name:           python-rpm-macros

  Version:        3.9

- Release:        11%{?dist}

+ Release:        13%{?dist}

  Summary:        The common Python RPM macros

  

  # macros and lua: MIT, compileall2.py: PSFv2
@@ -107,6 +107,13 @@ 

  

  

  %changelog

+ * Fri Feb 05 2021 Miro Hrončok <mhroncok@redhat.com> - 3.9-13

+ - Automatically word-wrap the description of extras subpackages

+ - Fixes: rhbz#1922442

+ 

+ * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.9-12

+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

+ 

  * Tue Dec 08 2020 Miro Hrončok <mhroncok@redhat.com> - 3.9-11

  - Support defining %%py3_shebang_flags to %%nil

  

file modified
+36 -12
@@ -12,12 +12,8 @@ 

  # Handy environment variable you can use to run the tests

  # with modified macros files. Multiple files should be

  # separated by colon.

- # To get 'em all, run:

- # ls -1 macros.* | tr "\n" ":"

- # and then:

- # TESTED_FILES="<output of previous command>" pytest -v

- # or both combined:

- # TESTED_FILES=$(ls -1 macros.* | tr "\n" ":") pytest -v

+ # You can use * if you escape it from your Shell:

+ # TESTED_FILES='macros.*' pytest -v

  # Remember that some tests might need more macros files than just

  # the local ones.

  TESTED_FILES = os.getenv("TESTED_FILES", None)
@@ -340,7 +336,8 @@ 

          Summary: Metapackage for python3-setuptools_scm: toml extras

          Requires: python3-setuptools_scm = 6-7

          %description -n python3-setuptools_scm+toml

-         This is a metapackage bringing in toml extras requires for python3-setuptools_scm.

+         This is a metapackage bringing in toml extras requires for

+         python3-setuptools_scm.

          It contains no code, just makes sure the dependencies are installed.

  

          %files -n python3-setuptools_scm+toml
@@ -350,7 +347,8 @@ 

          Summary: Metapackage for python3-setuptools_scm: yaml extras

          Requires: python3-setuptools_scm = 6-7

          %description -n python3-setuptools_scm+yaml

-         This is a metapackage bringing in yaml extras requires for python3-setuptools_scm.

+         This is a metapackage bringing in yaml extras requires for

+         python3-setuptools_scm.

          It contains no code, just makes sure the dependencies are installed.

  

          %files -n python3-setuptools_scm+yaml
@@ -367,7 +365,8 @@ 

          Summary: Metapackage for python3-setuptools_scm: toml extras

          Requires: python3-setuptools_scm = 6-7

          %description -n python3-setuptools_scm+toml

-         This is a metapackage bringing in toml extras requires for python3-setuptools_scm.

+         This is a metapackage bringing in toml extras requires for

+         python3-setuptools_scm.

          It contains no code, just makes sure the dependencies are installed.

  

          %files -n python3-setuptools_scm+toml -f ghost_filelist
@@ -376,7 +375,8 @@ 

          Summary: Metapackage for python3-setuptools_scm: yaml extras

          Requires: python3-setuptools_scm = 6-7

          %description -n python3-setuptools_scm+yaml

-         This is a metapackage bringing in yaml extras requires for python3-setuptools_scm.

+         This is a metapackage bringing in yaml extras requires for

+         python3-setuptools_scm.

          It contains no code, just makes sure the dependencies are installed.

  

          %files -n python3-setuptools_scm+yaml -f ghost_filelist
@@ -392,7 +392,8 @@ 

          Summary: Metapackage for python3-setuptools_scm: toml extras

          Requires: python3-setuptools_scm = 6-7

          %description -n python3-setuptools_scm+toml

-         This is a metapackage bringing in toml extras requires for python3-setuptools_scm.

+         This is a metapackage bringing in toml extras requires for

+         python3-setuptools_scm.

          It contains no code, just makes sure the dependencies are installed.

  

  
@@ -401,12 +402,35 @@ 

          Summary: Metapackage for python3-setuptools_scm: yaml extras

          Requires: python3-setuptools_scm = 6-7

          %description -n python3-setuptools_scm+yaml

-         This is a metapackage bringing in yaml extras requires for python3-setuptools_scm.

+         This is a metapackage bringing in yaml extras requires for

+         python3-setuptools_scm.

          It contains no code, just makes sure the dependencies are installed.

          """).lstrip().splitlines()

      assert lines == expected

  

  

+ @pytest.mark.parametrize('basename_len', [1, 10, 30, 45, 78])

+ @pytest.mark.parametrize('extra_len', [1, 13, 28, 52, 78])

+ def test_python_extras_subpkg_description_wrapping(basename_len, extra_len):

+     basename = 'x' * basename_len

+     extra = 'y' * extra_len

+     lines = rpm_eval(f'%python_extras_subpkg -n {basename} -F {extra}',

+                      version='6', release='7')

+     for idx, line in enumerate(lines):

+         if line.startswith('%description'):

+             start = idx + 1

+     lines = lines[start:]

+     assert all(len(l) < 80 for l in lines)

+     assert len(lines) < 6

+     if len(" ".join(lines[:-1])) < 80:

+         assert len(lines) == 2

+     expected_singleline = (f"This is a metapackage bringing in {extra} extras "

+                            f"requires for {basename}. It contains no code, "

+                            f"just makes sure the dependencies are installed.")

+     description_singleline = " ".join(lines)

+     assert description_singleline == expected_singleline

+ 

+ 

  unversioned_macros = pytest.mark.parametrize('macro', [

      '%__python',

      '%python',

no initial comment

Build succeeded.

1 new commit added

  • fixup! Automatically word-wrap the description of extras subpackages
3 years ago

4 new commits added

  • fixup! Automatically word-wrap the description of extras subpackages
  • Tests: Amend the comment for TESTED_FILES
  • Automatically word-wrap the description of extras subpackages
  • - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
3 years ago

3 new commits added

  • Tests: Amend the comment for TESTED_FILES
  • Automatically word-wrap the description of extras subpackages
  • - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
3 years ago

Build succeeded.

Pull-Request has been merged by churchyard

3 years ago