Merge ~cjwatson/launchpad:soss-source-metadata into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 3d4492d4be566d628c50aa090471430ba86ef667
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:soss-source-metadata
Merge into: launchpad:master
Diff against target: 164 lines (+58/-24)
2 files modified
lib/lp/archivepublisher/artifactory.py (+14/-10)
lib/lp/archivepublisher/tests/test_artifactory.py (+44/-14)
Reviewer Review Type Date Requested Status
Jürgen Gmach Approve
Review via email: mp+427567@code.launchpad.net

Commit message

Add soss.{source_url,commit_id} Artifactory properties to sources

Description of the change

When I initially implemented these properties I'd intended for them to cover both sources and binaries, but I hadn't finished implementing source publication to Artifactory at the time.

To post a comment you must log in.
Revision history for this message
Jürgen Gmach (jugmac00) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/lib/lp/archivepublisher/artifactory.py b/lib/lp/archivepublisher/artifactory.py
2index 9d0320a..e39e6f5 100644
3--- a/lib/lp/archivepublisher/artifactory.py
4+++ b/lib/lp/archivepublisher/artifactory.py
5@@ -242,17 +242,21 @@ class ArtifactoryPoolEntry:
6 # Additional metadata per
7 # https://docs.google.com/spreadsheets/d/15Xkdi-CRu2NiQfLoclP5PKW63Zw6syiuao8VJG7zxvw
8 # (private).
9- if IBinaryPackageFile.providedBy(self.pub_file):
10+ if ISourcePackageReleaseFile.providedBy(self.pub_file):
11+ ci_build = self.pub_file.sourcepackagerelease.ci_build
12+ elif IBinaryPackageFile.providedBy(self.pub_file):
13 ci_build = self.pub_file.binarypackagerelease.ci_build
14- if ci_build is not None:
15- properties.update(
16- {
17- "soss.source_url": [
18- ci_build.git_repository.getCodebrowseUrl()
19- ],
20- "soss.commit_id": [ci_build.commit_sha1],
21- }
22- )
23+ else:
24+ ci_build = None
25+ if ci_build is not None:
26+ properties.update(
27+ {
28+ "soss.source_url": [
29+ ci_build.git_repository.getCodebrowseUrl()
30+ ],
31+ "soss.commit_id": [ci_build.commit_sha1],
32+ }
33+ )
34 return properties
35
36 def addFile(self):
37diff --git a/lib/lp/archivepublisher/tests/test_artifactory.py b/lib/lp/archivepublisher/tests/test_artifactory.py
38index c08de53..54ce290 100644
39--- a/lib/lp/archivepublisher/tests/test_artifactory.py
40+++ b/lib/lp/archivepublisher/tests/test_artifactory.py
41@@ -626,8 +626,18 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
42 )
43 for _ in range(2)
44 ]
45+ das = self.factory.makeDistroArchSeries(distroseries=dses[0])
46+ ci_build = self.factory.makeCIBuild(distro_arch_series=das)
47+ spr = self.factory.makeSourcePackageRelease(
48+ archive=pool.archive,
49+ sourcepackagename="foo",
50+ version="1.0",
51+ format=SourcePackageType.CI_BUILD,
52+ ci_build=ci_build,
53+ )
54 spph = self.factory.makeSourcePackagePublishingHistory(
55 archive=pool.archive,
56+ sourcepackagerelease=spr,
57 distroseries=dses[0],
58 pocket=PackagePublishingPocket.RELEASE,
59 component="main",
60@@ -658,6 +668,10 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
61 "launchpad.release-id": ["source:%d" % spr.id],
62 "launchpad.source-name": ["foo"],
63 "launchpad.source-version": ["1.0"],
64+ "soss.source_url": [
65+ ci_build.git_repository.getCodebrowseUrl()
66+ ],
67+ "soss.commit_id": [ci_build.commit_sha1],
68 },
69 path.properties,
70 )
71@@ -670,6 +684,10 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
72 "launchpad.channel": list(
73 sorted("%s:edge" % ds.name for ds in dses)
74 ),
75+ "soss.source_url": [
76+ ci_build.git_repository.getCodebrowseUrl()
77+ ],
78+ "soss.commit_id": [ci_build.commit_sha1],
79 },
80 path.properties,
81 )
82@@ -689,11 +707,27 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
83 )
84 for ds in dses
85 ]
86+ ci_build = self.factory.makeCIBuild(distro_arch_series=dases[0])
87 spr = self.factory.makeSourcePackageRelease(
88 archive=pool.archive,
89 sourcepackagename="foo",
90 version="1.0",
91 format=SourcePackageType.CI_BUILD,
92+ ci_build=ci_build,
93+ )
94+ bpn = self.factory.makeBinaryPackageName(name="foo")
95+ bpr = self.factory.makeBinaryPackageRelease(
96+ binarypackagename=bpn,
97+ version="1.0",
98+ ci_build=ci_build,
99+ binpackageformat=BinaryPackageFormat.WHL,
100+ )
101+ bpf = self.factory.makeBinaryPackageFile(
102+ binarypackagerelease=bpr,
103+ library_file=self.factory.makeLibraryFileAlias(
104+ filename="foo-1.0-py3-none-any.whl"
105+ ),
106+ filetype=BinaryPackageFileType.WHL,
107 )
108 bpph = self.factory.makeBinaryPackagePublishingHistory(
109 archive=pool.archive,
110@@ -706,14 +740,6 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
111 architecturespecific=False,
112 channel="edge",
113 )
114- bpr = bpph.binarypackagerelease
115- bpf = self.factory.makeBinaryPackageFile(
116- binarypackagerelease=bpr,
117- library_file=self.factory.makeLibraryFileAlias(
118- filename="foo-1.0-py3-none-any.whl"
119- ),
120- filetype=BinaryPackageFileType.WHL,
121- )
122 bpphs = [bpph]
123 bpphs.append(
124 getUtility(IPublishingSet).copyBinaries(
125@@ -725,9 +751,7 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
126 )[0]
127 )
128 transaction.commit()
129- pool.addFile(
130- None, bpr.sourcepackagename, bpr.sourcepackageversion, bpf
131- )
132+ pool.addFile(None, bpph.pool_name, bpph.pool_version, bpf)
133 path = pool.rootpath / "foo" / "1.0" / "foo-1.0-py3-none-any.whl"
134 self.assertTrue(path.exists())
135 self.assertFalse(path.is_symlink())
136@@ -736,12 +760,14 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
137 "launchpad.release-id": ["binary:%d" % bpr.id],
138 "launchpad.source-name": ["foo"],
139 "launchpad.source-version": ["1.0"],
140+ "soss.source_url": [
141+ ci_build.git_repository.getCodebrowseUrl()
142+ ],
143+ "soss.commit_id": [ci_build.commit_sha1],
144 },
145 path.properties,
146 )
147- pool.updateProperties(
148- bpr.sourcepackagename, bpr.sourcepackageversion, [bpf], bpphs
149- )
150+ pool.updateProperties(bpph.pool_name, bpph.pool_version, [bpf], bpphs)
151 self.assertEqual(
152 {
153 "launchpad.release-id": ["binary:%d" % bpr.id],
154@@ -750,6 +776,10 @@ class TestArtifactoryPoolFromLibrarian(TestCaseWithFactory):
155 "launchpad.channel": list(
156 sorted("%s:edge" % ds.name for ds in dses)
157 ),
158+ "soss.source_url": [
159+ ci_build.git_repository.getCodebrowseUrl()
160+ ],
161+ "soss.commit_id": [ci_build.commit_sha1],
162 },
163 path.properties,
164 )

Subscribers

People subscribed via source and target branches

to status/vote changes: