Don't accidentally treat "~= X.0" requirement as "~= X"
Don't canonicalize the version twice. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1977060
This commit is contained in:
		
							parent
							
								
									5470f5688e
								
							
						
					
					
						commit
						2abcad96dd
					
				| @ -6,7 +6,7 @@ License:        MIT | ||||
| 
 | ||||
| # Keep the version at zero and increment only release | ||||
| Version:        0 | ||||
| Release:        41%{?dist} | ||||
| Release:        42%{?dist} | ||||
| 
 | ||||
| # Macro files | ||||
| Source001:      macros.pyproject | ||||
| @ -104,6 +104,10 @@ export HOSTNAME="rpmbuild"  # to speedup tox in network-less mock, see rhbz#1856 | ||||
| %license LICENSE | ||||
| 
 | ||||
| %changelog | ||||
| * Tue Jun 29 2021 Miro Hrončok <mhroncok@redhat.com> - 0-42 | ||||
| - Don't accidentally treat "~= X.0" requirement as "~= X" | ||||
| - Fixes rhzb#1977060 | ||||
| 
 | ||||
| * Mon Jun 28 2021 Miro Hrončok <mhroncok@redhat.com> - 0-41 | ||||
| - Don't leak %%{_pyproject_builddir} to pytest collection | ||||
| - Fixes rhzb#1935212 | ||||
|  | ||||
| @ -25,7 +25,7 @@ class EndPass(Exception): | ||||
| 
 | ||||
| try: | ||||
|     from packaging.requirements import Requirement, InvalidRequirement | ||||
|     from packaging.utils import canonicalize_name, canonicalize_version | ||||
|     from packaging.utils import canonicalize_name | ||||
| except ImportError as e: | ||||
|     print_err('Import error:', e) | ||||
|     # already echoed by the %pyproject_buildrequires macro | ||||
| @ -119,14 +119,13 @@ class Requirements: | ||||
|                 requirement.specifier, | ||||
|                 key=lambda s: (s.operator, s.version), | ||||
|             ): | ||||
|                 version = canonicalize_version(specifier.version) | ||||
|                 if not VERSION_RE.fullmatch(str(specifier.version)): | ||||
|                     raise ValueError( | ||||
|                         f'Unknown character in version: {specifier.version}. ' | ||||
|                         + '(This is probably a bug in pyproject-rpm-macros.)', | ||||
|                     ) | ||||
|                 together.append(convert(python3dist(name, python3_pkgversion=self.python3_pkgversion), | ||||
|                                         specifier.operator, version)) | ||||
|                                         specifier.operator, specifier.version)) | ||||
|             if len(together) == 0: | ||||
|                 print(python3dist(name, | ||||
|                                   python3_pkgversion=self.python3_pkgversion)) | ||||
|  | ||||
| @ -81,10 +81,13 @@ Build system dependencies in pyproject.toml with extras: | ||||
|         "foo", | ||||
|         "bar[bAz] > 5", | ||||
|         "ne!=1", | ||||
|         "ge>=1.2", | ||||
|         "ge>=1.2.0", | ||||
|         "le <= 1.2.3", | ||||
|         "lt < 1.2.3.4      ", | ||||
|         "    gt > 1.2.3.4.5", | ||||
|         "compatible ~= 0.4.0", | ||||
|         "equal == 0.5.0", | ||||
|         "arbitrary_equal === 0.6.0", | ||||
|         "multi[Extras1,Extras2] == 6.0", | ||||
|         "combo >2, <5, != 3.0.0", | ||||
|         "invalid!!ignored", | ||||
| @ -100,6 +103,9 @@ Build system dependencies in pyproject.toml with extras: | ||||
|     python3dist(le) <= 1.2.3 | ||||
|     python3dist(lt) < 1.2.3.4 | ||||
|     python3dist(gt) > 1.2.3.4.5 | ||||
|     (python3dist(compatible) >= 0.4 with python3dist(compatible) < 0.5) | ||||
|     python3dist(equal) = 0.5 | ||||
|     python3dist(arbitrary-equal) = 0.6 | ||||
|     python3dist(multi) = 6 | ||||
|     python3dist(multi[extras1]) = 6 | ||||
|     python3dist(multi[extras2]) = 6 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user