Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F7124314
D6748.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Subscribers
None
D6748.diff
View Options
diff --git a/docs/package-loader-specifications.rst b/docs/package-loader-specifications.rst
--- a/docs/package-loader-specifications.rst
+++ b/docs/package-loader-specifications.rst
@@ -39,14 +39,17 @@
- ``metadata.get("Date")``
- metadata is intrinsic
* - debian
- - passed as arg (eg. ``stretch/contrib/0.7.2-3``)
+ - =``version``
- ``release_name(version)``
- - =version
- - standard message (using full version)
+ - =``version``
+ - standard message (using ``i_version``)
- true
- ``metadata.changelog.person``
- ``metadata.changelog.date``
- metadata is intrinsic. Old revisions have ``dsc`` as type
+ ``i_version`` is the intrinsic version (eg. ``1.0.0``) while ``version``
+ contains the debian suite name (eg. ``stretch/contrib/0.7.2-3``) and is
+ passed as arg
* - deposit
- HEAD
- only HEAD
diff --git a/swh/loader/package/debian/loader.py b/swh/loader/package/debian/loader.py
--- a/swh/loader/package/debian/loader.py
+++ b/swh/loader/package/debian/loader.py
@@ -71,13 +71,18 @@
files = attr.ib(type=Dict[str, DebianFileMetadata])
"""Metadata of the files (.deb, .dsc, ...) of the package."""
name = attr.ib(type=str)
- full_version = attr.ib(type=str)
- """eg. stretch/contrib/0.7.2-3"""
+ intrinsic_version = attr.ib(type=str)
+ """eg. ``0.7.2-3``, while :attr:`version` would be ``stretch/contrib/0.7.2-3``"""
@classmethod
def from_metadata(
cls, a_metadata: Dict[str, Any], url: str, version: str
) -> "DebianPackageInfo":
+ intrinsic_version = a_metadata["version"]
+ assert "/" in version and "/" not in intrinsic_version, (
+ version,
+ intrinsic_version,
+ )
return cls(
url=url,
filename=None,
@@ -88,7 +93,7 @@
for (file_name, file_metadata) in a_metadata.get("files", {}).items()
},
name=a_metadata["name"],
- full_version=a_metadata["version"],
+ intrinsic_version=intrinsic_version,
)
def extid(self) -> Optional[PartialExtID]:
@@ -227,7 +232,7 @@
msg = (
f"Synthetic release for Debian source package {p_info.name} "
- f"version {p_info.full_version}\n"
+ f"version {p_info.intrinsic_version}\n"
)
author = prepare_person(intrinsic_metadata.changelog.person)
@@ -338,7 +343,7 @@
if dsc_name:
raise DscCountError(
"Package %s_%s references several dsc files."
- % (p_info.name, p_info.version)
+ % (p_info.name, p_info.intrinsic_version)
)
dsc_url = fileinfo.uri
dsc_name = filename
@@ -463,7 +468,7 @@
return IntrinsicPackageMetadata(
name=p_info.name,
- version=str(p_info.version),
+ version=str(p_info.intrinsic_version),
changelog=changelog,
maintainers=maintainers,
)
diff --git a/swh/loader/package/debian/tests/test_debian.py b/swh/loader/package/debian/tests/test_debian.py
--- a/swh/loader/package/debian/tests/test_debian.py
+++ b/swh/loader/package/debian/tests/test_debian.py
@@ -282,7 +282,9 @@
def test_debian_download_package(datadir, tmpdir, requests_mock_datadir):
tmpdir = str(tmpdir) # py3.5 work around (LocalPath issue)
- p_info = DebianPackageInfo.from_metadata(PACKAGE_FILES, url=URL, version="0.7.2-3")
+ p_info = DebianPackageInfo.from_metadata(
+ PACKAGE_FILES, url=URL, version="stretch/contrib/0.7.2-3"
+ )
all_hashes = download_package(p_info, tmpdir)
assert all_hashes == {
"cicero_0.7.2-3.diff.gz": {
@@ -328,7 +330,9 @@
def test_debian_dsc_information_ok():
fname = "cicero_0.7.2-3.dsc"
- p_info = DebianPackageInfo.from_metadata(PACKAGE_FILES, url=URL, version="0.7.2-3")
+ p_info = DebianPackageInfo.from_metadata(
+ PACKAGE_FILES, url=URL, version="stretch/contrib/0.7.2-3"
+ )
dsc_url, dsc_name = dsc_information(p_info)
assert dsc_url == PACKAGE_FILES["files"][fname]["uri"]
@@ -337,7 +341,9 @@
def test_debian_dsc_information_not_found():
fname = "cicero_0.7.2-3.dsc"
- p_info = DebianPackageInfo.from_metadata(PACKAGE_FILES, url=URL, version="0.7.2-3")
+ p_info = DebianPackageInfo.from_metadata(
+ PACKAGE_FILES, url=URL, version="stretch/contrib/0.7.2-3"
+ )
p_info.files.pop(fname)
dsc_url, dsc_name = dsc_information(p_info)
@@ -352,7 +358,9 @@
for package_metadata in package_files["files"].values():
del package_metadata["md5sum"]
- p_info = DebianPackageInfo.from_metadata(package_files, url=URL, version="0.7.2-3")
+ p_info = DebianPackageInfo.from_metadata(
+ package_files, url=URL, version="stretch/contrib/0.7.2-3"
+ )
for debian_file_metadata in p_info.files.values():
assert not debian_file_metadata.md5sum
@@ -365,7 +373,9 @@
file_bytes = requests.get(package_metadata["uri"]).content
package_metadata["sha1"] = hashlib.sha1(file_bytes).hexdigest()
- p_info = DebianPackageInfo.from_metadata(package_files, url=URL, version="0.7.2-3")
+ p_info = DebianPackageInfo.from_metadata(
+ package_files, url=URL, version="stretch/contrib/0.7.2-3"
+ )
for debian_file_metadata in p_info.files.values():
assert debian_file_metadata.sha1
@@ -374,7 +384,9 @@
def test_debian_dsc_information_too_many_dsc_entries():
# craft an extra dsc file
fname = "cicero_0.7.2-3.dsc"
- p_info = DebianPackageInfo.from_metadata(PACKAGE_FILES, url=URL, version="0.7.2-3")
+ p_info = DebianPackageInfo.from_metadata(
+ PACKAGE_FILES, url=URL, version="stretch/contrib/0.7.2-3"
+ )
data = p_info.files[fname]
fname2 = fname.replace("cicero", "ciceroo")
p_info.files[fname2] = data
@@ -391,7 +403,9 @@
requests_mock_datadir, datadir, tmp_path
):
tmp_path = str(tmp_path) # py3.5 compat.
- p_info = DebianPackageInfo.from_metadata(PACKAGE_FILES, url=URL, version="0.7.2-3")
+ p_info = DebianPackageInfo.from_metadata(
+ PACKAGE_FILES, url=URL, version="stretch/contrib/0.7.2-3"
+ )
logger.debug("p_info: %s", p_info)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Dec 21 2024, 6:20 AM (11 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3218319
Attached To
D6748: debian: Fix confusion between the two versions
Event Timeline
Log In to Comment