Matplotlib
is a widely used, well regarded, and powerful visualization
library that has dominated the Python visualization stack for
over a decade. However, to maintain that position, matplotlib
must continue to evolve. Complementary or alternative
libraries are appearing at an increasing rate, including
browser-based plotting and GPU acceleration. To maintain its
leadership position for the next decade, Matplotlib must
interface with these alternatives while simultaneously
expanding its capabilities and becoming easier to use and
learn.
Matplotlib’s
large existing user base (greater than 50,000) means that new
developments need to be carefully balanced with maintaining
existing interfaces. With the large user and code base comes
a significant maintenance and user-support burden. These
responsibilities currently account for a majority of the
core-developer time spent on matplotlib and has resulted in
both the code base and community being in a healthier state
than ever before. Even 6 years ago there was no automated
testing to speak of and the number of contributors continues
to soar on github. However, this effort is, for the most part,
done on a volunteer basis in the nights and weekends of the
core developers. To go beyond this maintenance level—to make
step-change improvements for the benefit of matplotlib’s
users—will require funding for full-time developers. Inspired
and encouraged by the example of IPython, we would like to
begin the process of fundraising.
Managing
funding on the needed scale is a complex and time-consuming
process. Thankfully, NumFOCUS, a 501©3 charity organisation
co-founded by John Hunter, offers a fiscal sponsorship
agreement to minimize the administrative and legal burden on
open source projects. We would like to enlist NumFOCUS as our
agents in all legal and financial matters, including banking,
accepting donations as a non-profit, payroll, and access to
legal counsel. As part of the agreement, NumFOCUS would
charge a percentage of all funds raised to cover their costs.
The full text of the agreement is attached.
To
comply with the legal and accounting requirements of a
non-profit, matplotlib needs to form an administrative body to
interact with NumFOCUS and direct the disbursement of any
funds. The proposed initial members of the body, are myself
(Mike Droettboom), Eric Firing, Phil Elson, and Thomas
Caswell, with Thomas acting as the point of contact with
NumFOCUS.
In
practice, signing an FSA will have very little impact on the
matplotlib project itself - it will still be BSD-licensed and
community-driven as it has always been, and the only
motivation for doing this is to give us an opportunity to
apply for funding to do more work on matplotlib. We’d like to
canvas the community’s opinion on the matter, but to put a
concrete timeline on the discussion, we would like to propose
signing an FSA with NumFOCUS in 3 weeks (Feb 10th 2015) unless
there is a major community discomfort with us doing so.
Cheers,
Michael Droettboom
NumFOCUS-FSA.pdf (211 KB)
···
-- Michael Droettboom
Science Software Branch
Space Telescope Science Institute