@@ -165,9 +165,11 @@ should ideally extend to these processes as well.
165165Support building against system dependencies
166166--------------------------------------------
167167
168+
168169Why?
169170~~~~
170171
172+
171173Some Python projects have non-Python dependencies, such as libraries written
172174in C or C++. Trying to use the system versions of these dependencies
173175in 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
202204have good reasons to prefer dynamically linking to system dependencies.
203205In 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:
231237How?
232238~~~~
233239
240+
234241A good compromise between the needs of both parties is to provide a switch
235242between using vendored and system dependencies. Ideally, if the package has
236243multiple 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
243250the opportunity to notice their mistake and a chance to consciously decide
244251how 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.
246258Note that it is reasonable for upstream projects to leave *testing * of building with
247259system dependencies to their downstream repackagers. The goal of these guidelines
248260is to facilitate more effective collaboration between upstream projects and downstream
@@ -254,9 +266,11 @@ are better equipped to handle.
254266Support downstream testing
255267--------------------------
256268
269+
257270Why?
258271~~~~
259272
273+
260274A variety of downstream projects run some degree of testing on the packaged
261275Python projects. Depending on the particular case, this can range from minimal
262276smoke testing to comprehensive runs of the complete test suite. There can
@@ -291,6 +305,7 @@ that they report**.
291305How?
292306~~~~
293307
308+
294309There are a number of things that upstream projects can do to help downstream
295310repackagers test their packages efficiently and effectively, including some of the suggestions
296311already mentioned above. These are typically improvements that make the test suite more
0 commit comments