@@ -3,10 +3,10 @@ NEP 36 — Fair play
33==================
44
55:Author: Stéfan van der Walt <
[email protected] >
6- :Status: Draft
6+ :Status: Accepted
77:Type: Informational
88:Created: 2019-10-24
9- :Resolution: Draft
9+ :Resolution: https://mail.python.org/pipermail/numpy-discussion/2021-June/081890.html
1010
1111
1212Abstract
@@ -26,31 +26,34 @@ troublesome, bothersome, and unacceptable.
2626Motivation
2727----------
2828
29- We sometimes learn of NumPy versions modified and circulated by outsiders.
30- These patched versions can cause problems for the NumPy community.
29+ Every so often, we learn of NumPy versions modified and circulated by outsiders.
30+ These patched versions can cause problems for the NumPy community
31+ (see, e.g., [#erf ]_ and [#CVE-2019-6446 ]_).
32+ When issues like these arise, our developers waste time identifying
33+ the problematic release, locating alterations, and determining an
34+ appropriate course of action.
3135
32- - In December 2018, a `bug report
33- <https://github.com/numpy/numpy/issues/12515> `__ was filed against
34- `np.erf ` -- a function that didn't exist in the NumPy distribution.
35- It came to light that a company had published a NumPy version with
36- an extended API footprint. After several months of discussion, the
37- company agreed to make its patches public, and we added a label to
38- the NumPy issue tracker to identify issues pertaining to that
39- distribution.
40-
41- - In another case, after a security issue (CVE-2019-6446) was filed
42- against NumPy, distributions put in their own fixes, most often by
43- changing a default keyword value. As a result the NumPy API was
44- inconsistent across distributions.
45-
46- When issues arise in cases like these, our developers waste time
47- identifying the problematic release, locating alterations,
48- and determining an appropriate course of action.
36+ In addition, packages on the Python Packaging Index are sometimes
37+ named such that users assume they are sanctioned or maintained by
38+ NumPy. We wish to reduce the number of such incidents.
4939
5040During a community call on `October 16th, 2019
5141<https://github.com/numpy/archive/blob/main/status_meetings/status-2019-10-16.md> `__
52- the community resolved to draft guidelines on the distribution of
53- modified NumPy versions.
42+ the community resolved to draft guidelines to address these matters.
43+
44+ .. [#erf ] In December 2018, a
45+ `bug report <https://github.com/numpy/numpy/issues/12515 >`__
46+ was filed against `np.erf ` -- a function that didn't exist in the
47+ NumPy distribution. It came to light that a company had published
48+ a NumPy version with an extended API footprint. After several
49+ months of discussion, the company agreed to make its patches
50+ public, and we added a label to the NumPy issue tracker to identify
51+ issues pertaining to that distribution.
52+
53+ .. [#CVE-2019-6446 ] After a security issue (CVE-2019-6446) was filed
54+ against NumPy, distributions put in their own fixes, most often by
55+ changing a default keyword value. As a result the NumPy API was
56+ inconsistent across distributions.
5457
5558 Scope
5659-----
@@ -100,15 +103,16 @@ Fair play rules
100103 '1.17.2+mycompany.15`
101104
102105 We understand that minor patches are often required to make a
103- library work under a certain distribution. E.g., Debian may patch
106+ library work inside of a distribution. E.g., Debian may patch
104107 NumPy so that it searches for optimized BLAS libraries in the
105- correct locations. But we ask that no substantive changes are
106- made.
108+ correct locations. This is acceptable, but we ask that no
109+ substantive changes are made.
107110
108- 3. Do not extend NumPy's API footprint .
111+ 3. Do not extend or modify NumPy's API.
109112
110113 If you absolutely have to break rule two, please do not add
111- additional functions to the namespace. NumPy's API is already
114+ additional functions to the namespace, or modify the API of
115+ existing functions. NumPy's API is already
112116 quite large, and we are working hard to reduce it where feasible.
113117 Having additional functions exposed in distributed versions is
114118 confusing for users and developers alike.
@@ -121,7 +125,7 @@ Fair play rules
121125 <https://numpy.org/neps/nep-0018-array-function-protocol.html> `__
122126 were designed to help external packages interact more easily with
123127 NumPy. E.g., the latter allows objects from foreign libraries to
124- pass through NumPy unharmed . We actively encourage using any of
128+ pass through NumPy. We actively encourage using any of
125129 these "officialy sanctioned" mechanisms for overriding or
126130 interacting with NumPy.
127131
0 commit comments