[Numpy-discussion] Proposal to add clause to license prohibiting use by oil and gas extraction companies

Stanley Seibert sseibert at anaconda.com
Wed Jul 1 15:16:12 EDT 2020

I think it is important to acknowledge that, regardless of the merits of
such a license change on its own, NumPy's position in the dependency stack
of PyData makes a license change that restricts an existing class of users
impossible without causing a lot of chaos for non-NumPy developers who may
not be involved in the decision.

Imagine if NumPy switched to GPL (which also conflicts with the IT policy
for many companies).  This would immediately trigger a fork of NumPy at the
last BSD licensed release.  Ignoring the trademark issues, let's assume the
fork is called "numpy-nogpl".  Now every single PyData package that depends
on NumPy now has to decide whether to depend on numpy or numpy-nogpl.  A
project sticking with "numpy" effectively means they are now forcing their
user base to accept GPL software (even though their own package license has
not changed), so likely many will have to push out a release that
depends on numpy-nogpl, at least until they can decide whether they are
willing to lose some of their users.  Now every PyData package (of which
there are many) is trying to decide which NumPy fork to depend on, and
those packages that aren't updated have a new user policy forced on them.
This is not unlike the problem with NumPy releasing a backward incompatible
API change and breaking downstream packages, but in this case the
incompatibility is legal, rather than functional.  The deeper a project is
in the dependency stack, the bigger the collateral disruption will be.

I think the only way to do something like this would be for the NumPy
development community to choose to fork themselves, pick a new project
name, stop working on the original NumPy, and then lobby the community to
switch to their fork.

On Wed, Jul 1, 2020 at 1:35 PM John Preston <gizmoguy1 at gmail.com> wrote:

> Hello all,
> The following proposal was originally issue #16722 on GitHub but at
> the request of Matti Picus I am moving the discussion to this list.
> "NumPy is the fundamental package needed for scientific computing with
> Python."
> I am asking the NumPy project to leverage its position as a core
> dependency among statistical, numerical, and ML projects, in the
> pursuit of climate justice. It is easy to identify open-source
> software used by the oil and gas industry which relies on NumPy [1]
> [2] , and it is highly likely that NumPy is used in closed-source and
> in-house software at oil and gas extraction companies such as Aramco,
> ExxonMobil, BP, Shell, and others. I believe it is possible to use
> software licensing to discourage the use of NumPy and dependent
> packages by companies such as these, and that doing so would frustrate
> the ability of these companies to identify and extract new oil and gas
> reserves.
> I propose NumPy's current BSD 3-Clause license be extended to include
> the following conditions, in line with the Climate Strike License [3]
> :
>     * The Software may not be used in applications and services that
> are used for or
>        aid in the exploration, extraction, refinement, processing, or
> transportation
>        of fossil fuels.
>     * The Software may not be used by companies that rely on fossil
> fuel extraction
>        as their primary means of revenue. This includes but is not
> limited to the
>        companies listed at https://climatestrike.software/blocklist
> I accept that there are issues around adopting such a proposal, including
> that:
> addition of such clauses violates the Open Source Initiative's
> canonical Open Source Definition, which explicitly excludes licenses
> that limit re-use "in a specific field of endeavor", and therefore if
> these clauses were adopted NumPy would no longer "be open-source" by
> this definition;
> there may be collateral damage among the wider user base and project
> sponsorship, due to the vague nature of the first clause, and this may
> affect the longevity of the project and its standing within the
> Python, numerical, statistical, and ML communities.
> My intention with the opening of this issue is to promote constructive
> discussion of the use of software licensing -- and other measures --
> for working towards climate justice -- and other forms of justice --
> in the context of NumPy and other popular open-source libraries. Some
> people will say that NumPy is "just a tool" and that it sits
> independent of how it is used, but due to its utility and its
> influence as a major open-source library, I think it is essential that
> we consider the position of the Climate Strike License authors, that
> "as tech workers, we should take responsibility in how our software is
> used".
> Many thanks to all of the contributors who have put so much time and
> energy into NumPy. ✨ ❤️ 😃
> [1] https://github.com/gazprom-neft/petroflow
> [2] https://github.com/climate-strike/analysis
> [3] https://github.com/climate-strike/license
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20200701/d34285ba/attachment.html>

More information about the NumPy-Discussion mailing list