Skip to content

Commit 16288af

Browse files
mgornyncoghlan
andauthored
Apply more suggestions from code review
Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
1 parent 24b0346 commit 16288af

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

source/discussions/downstream-packaging.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,11 @@ should ideally extend to these processes as well.
165165
Support building against system dependencies
166166
--------------------------------------------
167167

168+
168169
Why?
169170
~~~~
170171

172+
171173
Some Python projects have non-Python dependencies, such as libraries written
172174
in C or C++. Trying to use the system versions of these dependencies
173175
in upstream packaging may cause a number of problems for end users:
@@ -202,6 +204,10 @@ However, none of these issues apply to downstream packaging, and downstreams
202204
have good reasons to prefer dynamically linking to system dependencies.
203205
In particular:
204206

207+
- in many cases, reliably sharing dynamic dependencies between components is a large part
208+
of the *purpose* of a downstream packaging ecosystem. Helping to support that makes it
209+
easier for users of those systems to access upstream projects in their preferred format.
210+
205211
- in many cases, reliably sharing dynamic dependencies between components is a large part
206212
of the *purpose* of a downstream packaging ecosystem. Helping to support that makes it
207213
easier for users of those systems to access upstream projects in their preferred format.
@@ -231,6 +237,7 @@ In particular:
231237
How?
232238
~~~~
233239

240+
234241
A good compromise between the needs of both parties is to provide a switch
235242
between using vendored and system dependencies. Ideally, if the package has
236243
multiple vendored dependencies, it should provide both individual switches
@@ -243,6 +250,11 @@ message rather than fall back to a vendored version. This gives the packager
243250
the opportunity to notice their mistake and a chance to consciously decide
244251
how to solve it.
245252

253+
Note that it is reasonable for upstream projects to leave *testing* of building with
254+
system dependencies to their downstream repackagers. The goal of these guidelines
255+
is to facilitate more effective collaboration between upstream projects and downstream
256+
repackagers, not to suggest upstream projects take on tasks that downstream repackagers
257+
are better equipped to handle.
246258
Note that it is reasonable for upstream projects to leave *testing* of building with
247259
system dependencies to their downstream repackagers. The goal of these guidelines
248260
is to facilitate more effective collaboration between upstream projects and downstream
@@ -254,9 +266,11 @@ are better equipped to handle.
254266
Support downstream testing
255267
--------------------------
256268

269+
257270
Why?
258271
~~~~
259272

273+
260274
A variety of downstream projects run some degree of testing on the packaged
261275
Python projects. Depending on the particular case, this can range from minimal
262276
smoke testing to comprehensive runs of the complete test suite. There can
@@ -291,6 +305,7 @@ that they report**.
291305
How?
292306
~~~~
293307

308+
294309
There are a number of things that upstream projects can do to help downstream
295310
repackagers test their packages efficiently and effectively, including some of the suggestions
296311
already mentioned above. These are typically improvements that make the test suite more

0 commit comments

Comments
 (0)