Page MenuHomeSoftware Heritage

D6748.diff
No OneTemporary

D6748.diff

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

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

Event Timeline