Explaining the Python Software Foundation (PSF) Part 1

April 17th, 2011 § 1 comment

Intro­duc­tion

It’s been over a year since I was elected by the PSF mem­ber­ship to be a mem­ber of the board of direc­tors of the Python Soft­ware Foun­da­tion — this past week, I was lucky to be reelected. In that year, and even in the years prior to my elec­tion, I’ve long wanted to write down my thoughts and feel­ings about the foun­da­tion. This includes what it is, what it does and what it should do. You’d be stunned how many peo­ple — PSF mem­bers included — who don’t know the answer to these three things. Worse still, you’d prob­a­bly be even more sur­prised to find out many peo­ple who don’t think the PSF should exist — or even that it exists at all.

Before we start, I want to clar­ify a few things:

  • What fol­lows is my opin­ion; and may be shared by some — or none — of the cur­rent 13 PSF board members.
  • What fol­lows is not the opin­ion of my employer (not that I need to say that…).
  • What fol­lows has no rela­tion or bear­ing on my role as co-chair and pro­gram com­mit­tee chair of PyCon.
  • What fol­lows may be incom­plete, I reserve the right to amend or make clar­i­fy­ing statements.
  • None of this is meant as a crit­i­cism of any past direc­tors, mem­bers, etc.

With that pile of dis­claimers done, I will state this: what fol­lows is my offi­cial opin­ion of the PSF and it’s duties and role in the Python Com­mu­nity as a direc­tor of the PSF — this means that if you are a PSF mem­ber, and dis­agree with what fol­lows, con­sider vot­ing against me when the elec­tion comes up this year. I will state that it is my goal to not only express what I think the PSF is, does and should do but also to pro­vide some­thing that:

  • Helps explain the fun­da­men­tals of the PSF.
  • Helps explain what the Board of Direc­tors is.
  • Helps make the argu­ment why com­pa­nies should become sponsors.
  • Helps make the argu­ment as to why you should donate to the PSF.

Much of what I will be writ­ing may be a sim­pli­fied or updated ver­sion of the infor­ma­tion that is also on the main Python Soft­ware Foun­da­tion page. I’d like to note that this post has spanned sev­eral months of on-and-off writ­ing — and PyCon 2011 right in the mid­dle of it, so there is some infor­ma­tion shear as time passed.

Part one: What is the PSF

The first ques­tion to answer is the one I get the most often — “what is the PSF”. The answer is actu­ally pretty sim­ple — the PSF (Python Soft­ware Foun­da­tion) is a legally rec­og­nized non profit orga­ni­za­tion (501©(3)) in the United States. It has a list of mem­bers, a board of direc­tors, bank accounts and lawyers. PSF mem­bers are nom­i­nated and elected by exist­ing PSF mem­bers, mean­ing that an exist­ing PSF mem­ber says “I think this per­son should be a mem­ber” and then a vote is held and that per­son is (usu­ally) voted in as a member.

It has a board of direc­tors: this is a group of cur­rently 13 peo­ple — not all of whom have to be PSF mem­bers — who are voted into office by exist­ing PSF mem­bers. This elec­tion hap­pens yearly, nor­mally around the time of PyCon US (March, this year). Due to the PSF being a legal entity, we are required that all records be pub­licly acces­si­ble, includ­ing the list of directors/officers and mem­ber­ship. You can see the list of cur­rent directors/officers and mem­bers here. We are legally bound that all finan­cial records be pub­lished. We have monthly board meet­ings — the min­utes of past meet­ings are acces­si­ble from the PSF sec­tion of python.org.

The PSF legal entity accepts dona­tions on behalf of the Python com­mu­nity from pub­lic sources, as well as “spon­sor mem­bers” — these are com­pa­nies whom pay an annual dona­tion to sup­port Python, and the PSF. The PSF holds the trade­marks (logo, name, etc) for Python (the lan­guage) and dic­tates how those trade­marks should be used via the trade­marks com­mit­tee. The PSF also main­tains the “intel­lec­tual prop­erty” aspects of Python the lan­guage. Namely, it obtains (through licens­ing — see the con­trib­u­tor agree­ment) the nec­es­sary legal rights to redis­trib­ute the code, and if needed defend the open source state of Python the lan­guage in court.

To quote the some­what dated exec­u­tive sum­mary:

The impor­tant thing to note here is that the PSF can demon­strate that Python con­tains only code licensed to it by orga­ni­za­tions and indi­vid­u­als that had the nec­es­sary rights to the code in order to make that license legally valid. Python’s case is fur­ther strength­ened by the exis­tence of an intact revi­sion con­trol record that dates back to its very begin­ning, and exten­sive email and other records that help to estab­lish when and by whom the code was devel­oped. This body of evi­dence makes any legal claim against Python’s open source sta­tus dif­fi­cult and very unlikely to succeed.

Now, there’s some debate about the above state­ment — Python’s his­tory (see here) means that there are some poten­tial snarls (see the FAQ as well) rep­re­sent­ing unan­swered ques­tions. It is more accu­rate to state that it is rel­a­tively unlikely that Python’s sta­tus under copy­right or its open source license would be chal­lenged, and that the chance of suc­cess by a chal­lenger would be rel­a­tively low.

While the PSF is a pri­mar­ily US based orga­ni­za­tion, we have direc­tors and mem­bers from all over the world, and our mis­sion (more on that later) is a global mis­sion — not a US only mission.

Now, you might ask your­self, ‘why do we need this?’ That’s a valid ques­tion, and can be answered in part by look­ing around the open source world at sim­i­lar orga­ni­za­tions such as the Apache Soft­ware Foun­da­tion, Free Soft­ware Foun­da­tion, FreeBSD foun­da­tion, and finally the Soft­ware Free­dom Con­ser­vancy. All of these orga­ni­za­tions are well estab­lished and are very well known, and there are many more out in the wild.

Note: The SFC is spe­cial in that it acts as the proxy for smaller projects to accept dona­tions and pro­vide legal advice, hold trade­marks or copy­rights, etc. Twisted and PyPy, for exam­ple, are both SFC members.

Sim­ply put: these orga­ni­za­tions all oper­ate on the same gen­eral core as the PSF — they are the legal/administrative branch of one or more open source projects. The hold the money, trade­marks, and other things that are sec­ondary to the actual writ­ing of code, yet are still vastly impor­tant to large projects.

Besides the entire legal aspect (which while scary in some sense, is actu­ally quite small) — the PSF “keeps the lights on”. We pay for servers, band­width and other infra­struc­ture pieces that keep the Python web­site, PyPI, source servers, etc. online. Again — this is part of the legal/administrative aspect: the PSF, in the­ory takes care of all of this “other” stuff so that the devel­op­ment and evo­lu­tion of Python the lan­guage can con­tinue.

Addi­tion­ally, as a 501©(3) entity, we have a set of bylaws that dic­tate what, and how, we can do things. This applies espe­cially PSF direc­tors and board activ­i­ties. See here.

So in sum­mary: the PSF is a legal non-profit, with sev­eral hun­dred mem­bers from all over the world, elected by other mem­bers, with a board of direc­tors also elected by the mem­ber­ship, who hold the intel­lec­tual prop­erty, money and legal coun­sel for Python, the pro­gram­ming language.

Part two: What is a PSF member?

Tech­ni­cally (per the bylaws), there are three types of PSF mem­bers, these are:

  • Nom­i­nated Members
    • Nom­i­nated mem­bers are the mem­bers I am going to focus on describ­ing below. When I refer to “PSF mem­bers” these are what I am refer­ring to in this doc­u­ment. Nom­i­nated mem­bers have vot­ing rights within the PSF.
  • Spon­sor Members
    • Spon­sor mem­bers are like nor­mal PSF mem­bers, but pay a yearly fee to the PSF. I typ­i­cally refer to these as spon­sors, rather then mem­bers, but “Spon­sor mem­ber” is a rec­og­nized title. Spon­sor mem­bers apply to the PSF, and are voted in.
  • Emer­i­tus Members
    • These are inac­tive, non vot­ing mem­bers. A mem­ber may chose to be moved to emer­i­tus sta­tus due to, say, no longer being a Python user.

So what is a PSF mem­ber (Nom­i­nated Mem­ber officially):

I’m going to attempt to answer this ques­tion with­out heav­ily going into the mis­sion of the PSF. New PSF mem­bers are selected from the Python com­mu­nity based on their con­tri­bu­tions. Exist­ing PSF mem­bers nom­i­nate and vote on new mem­bers, select the board of direc­tors, and han­dle other legal or admin­is­tra­tive busi­ness related to run­ning the foundation.”

PSF mem­bers do not nec­es­sar­ily need to be soft­ware devel­op­ers or con­trib­u­tors to Python’s source code. So pick a per­son — this per­son is an excel­lent writer, and has writ­ten thou­sands of words on Python the lan­guage, explain­ing a myr­iad of top­ics to peo­ple in numer­ous ways (books, arti­cles, etc). By doing so, she/he has enriched the Python com­mu­nity — not through code per­haps — but through his works. An exist­ing mem­ber feels that the writer’s con­tri­bu­tions war­rant that they nom­i­nate that per­son for PSF mem­ber­ship, as they feels that he is both a thought leader and they would be an excel­lent stew­ard and resource to man­age the PSF and fur­ther it’s mission.

After being elected, the new mem­ber gets access to the PSF wiki, and they are signed up for the psf-members mail­ing list, where dis­cus­sions about the PSF occurs. This is a pri­vate list, and open to only PSF mem­bers. They are then free to pro­pose PSF funded or guided activ­i­ties (but then again — so is every­one, even non mem­bers) and par­tic­i­pates in dis­cus­sions and vot­ing about nor­mal every­day PSF business.

Vot­ing hap­pens infre­quently, and for the most part, the PSF mem­bers list is quiet, except when hot top­ics (such as the diver­sity state­ment) come up.

The goal in hav­ing a gen­eral, and diverse mem­ber­ship is to help pro­vide a diverse guid­ing hand to the foundation’s activ­i­ties. If we had only 10 mem­bers, we would hardly be rep­re­sen­ta­tive of the Python com­mu­nity as a whole, and our per­spec­tives and views would be harshly lim­ited. Since the PSF’s mis­sion is broad, and global, it’s impor­tant that we have many mem­bers from a vari­ety of back­grounds as diverse as the com­mu­nity itself. This means we need peo­ple who do Python mar­ket­ing, python pro­gram­mers, frame­work authors, busi­ness peo­ple, etc.

The PSF mem­bers decide the fate of the entire foun­da­tion by select­ing the board of direc­tors. They are also a “resource pool”. Fre­quently when an ini­tia­tive (such as the sprints project, grants com­mit­tee (under dis­cus­sion) or the new PSF/Python Brochure being designed) comes up, they will be tapped, and asked to help lead and par­tic­i­pate in the project.

Sum­mary: PSF mem­bers vote on board mem­bers, spon­sor mem­bers, and dis­cuss ini­tia­tives in and for the com­mu­nity, such as grants pro­grams, the sprints project, infra­struc­ture changes, etc. They are fre­quently tapped to help seed a new project or initiative.

Part three: What is the PSF Board of Directors?

The PSF board is an elected (by the mem­ber­ship) group of 13 num­ber of direc­tors (the num­ber 13 came via a PSF mem­ber­ship vote in 2010) people who are meant to be a diverse selec­tion of peo­ple who do much of the heavy lift­ing of the foun­da­tion duties — including:

  • Vot­ing on and work­ing out the bud­get of the foundation.
  • Approv­ing trade­mark usage (via the trade­mark committee).
  • Deal­ing with legal issues (such as con­trib­u­tor agreements).
  • Cre­ation of new com­mit­tees (such as the sprints com­mit­tee, or grants committee).
  • Direct over­sight of PyCon US (they are the con­fer­ence chair’s boss, and approve the PyCon budget).
  • Approv­ing expen­di­tures — such as devel­oper grants, con­fer­ence grants, web­site devel­op­ment, etc.
  • Approve and insti­gate new infra­struc­ture improve­ments (via the infra­struc­ture committee).
  • Approve awards (such as the Frank Willi­son and com­mu­nity awards)

You can see this activ­ity in the min­utes, and the res­o­lu­tions. The direc­tors lis­ten to the mem­ber­ship, and act as lead­ers — we are the hands on the purse strings, keep the books, main­tain spon­sor rela­tion­ships, and so on. Main­tain­ing a board of direc­tors is a require­ment of the legal non­profit sta­tus held by the PSF. The PSF board of direc­tors are legal rep­re­sen­ta­tives of the foun­da­tion — what we say, when act­ing in offi­cial capac­ity is legally bind­ing. Our votes are bind­ing. What we say and do is pub­lic record (although much dis­cus­sion hap­pens on a pri­vate mail­ing list).

The board are the overview and over­sight arm of the foun­da­tion. Between them, and the offi­cers (more on those next) the “work” of the foun­da­tion is done. Com­mit­tees (such as the sprints one) always have one board mem­ber act­ing on the com­mit­tee, as over­sight, and the rest of the com­mit­tee is usu­ally com­prised of other PSF mem­bers or other peo­ple in the community. More than one board mem­ber can be on a committee

In prac­tice: We debate. A lot. We vote — a lot. We have to make hard deci­sions, and should almost never com­pletely agree with one another. If we are in con­stant agree­ment, we are not rep­re­sen­ta­tive of the com­mu­nity and can eas­ily do more harm then good. Then again, there are many things that are no brain­ers, such as pro­vid­ing grants for con­fer­ences, hand­ing out awards, and things of that nature.

Most of the day-to-day work (mostly account­ing and admin­is­tra­tive) of the PSF is per­formed by the Offi­cers of the foun­da­tion. In a nor­mal com­pany or orga­ni­za­tion, the board is less proac­tive and more oversight-oriented. The offi­cers and mem­ber­ship (employ­ees) per­form most of the work, while the board acts as the over­sight com­mit­tee. The cur­rent PSF board lives in a state halfway between over­sight, and officers/employees/workers. More on that in the mis­sion section.

When I nom­i­nated, or rather, asked if I would stand, for the board of direc­tors, I was hon­ored to do so. I am hon­ored to serve, and hon­ored to have been elected. I’ve been very lucky to be able to enact some change, and act as one of the guid­ing mem­bers of the foun­da­tion. I have been able to vote on fund­ing con­fer­ences, com­mit­tees, etc. I have taken a very vocal role in the activ­i­ties of the foun­da­tion, and have had the lux­ury of help­ing change a few things over the past year of being a director.

Part four: What are the PSF officers?

PSF offi­cers are elected by the board to act as addi­tional legal rep­re­sen­ta­tives of the PSF and board. They typ­i­cally do not hold vot­ing posi­tions — mean­ing offi­cers can be elected by the board, but do not vote on pol­icy or res­o­lu­tions (except for the chair­man, who has vot­ing rights). Each offi­cer per­forms spe­cific duties based on their role. For exam­ple the Sec­re­tary — keep­ing our meet­ing min­utes, doing admin­is­tra­tive work for the board and foun­da­tion, etc  and the Trea­surer — who keeps the finan­cial records, pays the bills, and keeps us hon­est. These offi­cers are legal rep­re­sen­ta­tives of the foun­da­tion. Some offi­cers are paid — for exam­ple, the Sec­re­tary and Trea­surer are paid due to the sheer amount of work required by their roles.

The bylaws define the basic offi­cers we have to have:

Sec­tion 6.1. Offi­cers. The offi­cers of the cor­po­ra­tion shall con­sist of a Pres­i­dent, a Sec­re­tary and a Trea­surer, each of whom shall be elected by the Board of Direc­tors. A Chair­man of the Board, one or more Vice Chair­men, one or more Vice Pres­i­dents, and such other offi­cers and assis­tant offi­cers and agents as may be deemed nec­es­sary may be elected or appointed by the Board of Direc­tors from time to time. Any two (2) or more offices may be held by the same per­son, except the offices of Pres­i­dent and Secretary.

Here is a cur­rent list of officers:

  • Guido van Rossum, President
  • Steve Holden, Chairman
  • Pat Camp­bell, Secretary
  • Kurt Kaiser, Treasurer
  • Doug Hell­mann, Communications
  • Van Lind­berg, PyCon Chair

Offi­cers can sign con­tracts in the name of the PSF, spend money, etc., just as board mem­bers can.

We really don’t have that many. Guido is the pres­i­dent of the foun­da­tion, which is largely a formality/figurehead. He does not take an active role in the board’s activ­i­ties, votes, etc. We have “addi­tional slots” per the bylaws, but no real need at this time.

Part five: What is the mis­sion of the PSF?

I’ve inten­tion­ally avoided talk­ing about the phi­los­o­phy and mis­sion of the PSF until now. I wanted to explain the mechan­ics of it before I went into my more sub­jec­tive obser­va­tions. Recently, a thread on the PSF-Members mail­ing list came up where this ques­tion was asked, and a fair amount of debate and dis­cus­sion occurred. In that thread, I made a pretty pas­sion­ate state­ment, some of which became part of the on-boarding mate­ri­als for new PSF mem­bers — the wel­come page you can see here.

I intend to expand on that just a little.

So, let’s quote the PSF’s mis­sion statement:

The mis­sion of the Python Soft­ware Foun­da­tion is to pro­mote, pro­tect, and advance the Python pro­gram­ming lan­guage, and to sup­port and facil­i­tate the growth of a diverse and inter­na­tional com­mu­nity of Python programmers.

What this says… well — it’s pretty broad, and vague — to an extent it has to be this way, but it doesn’t give you much of an idea as to what the PSF does or should be doing. It’s inten­tion­ally unbounded, and can there­fore cause some con­fu­sion when peo­ple come look­ing for answers. After all, with some­thing that open ended — what should the foun­da­tion be doing, what could it be doing — what are PSF Mem­bers sup­posed to be doing, if anything?

Well, let’s back up a sec­ond. The PSF has the fol­low­ing assets:

  • Money
  • Lawyers
  • Mem­bers (includ­ing the board)

Seems pretty finite to me. We have some money, which we can spend, and we have some lawyers, which we can use to sue, or defend, or pro­vide legal coun­sel, and we have mem­bers, who “do stuff”. Really, it boils down to this (from a board per­spec­tive): We can spend money, and use a lawyer. But does spend­ing money, or using lawyers really ful­fill the spirit of that mis­sion state­ment? How does the money get spent? Do we really need a lawyer?

Let’s make this simpler:

The mis­sion of the Python Soft­ware Foun­da­tion is to move the entire Python ecosys­tem forward.

Each and every Python pro­gram­mer, author, and indi­vid­ual talk­ing about Python right now is per­form­ing the mis­sion of the PSF. Every bit of work (from writ­ing code and doc­u­men­ta­tion, to answer­ing a ques­tion) moves Python’s ecosys­tem for­ward. Every per­son read­ing this post or com­ment­ing about Python moves it for­ward. Essen­tially — if the ecosys­tem is a code­base — all of you have the com­mit bit.

PSF mem­bers have been nom­i­nated to be part of the focused, orga­nized mis­sion of the PSF (what I’m try­ing to define). Instead of “just” check­ing in code, bug fixes, mak­ing libraries or doc­u­men­ta­tion — things they do every day — some­one has said “not only is this per­son sup­port­ing the mis­sion, but they do it so well that they should have a say in the lead­er­ship of the PSF”. PSF mem­bers are the management/administration/activist com­po­nent of the ecosys­tem (The PSF).

The ecosys­tem is made up of python-core (devel­op­ment, IP, host­ing), PyCon and all of the other con­fer­ences through the world. It is user groups and every pack­age on PyPi, github or bit­bucket and source­forge. The ecosys­tem is every sin­gle cur­rent user or poten­tial user of Python in the world. You can paint the ecosys­tem quite broadly, which means the mis­sion of course, that if you look at the assets the PSF has (money, lawyers and mem­bers) — the mis­sion of the PSF is to:

… Spend money and pro­vide lead­er­ship, out­reach and pro­tec­tion where needed within the entire Python ecosystem.

Our mis­sion — as a foun­da­tion “under this ban­ner” is to make sure, beyond any doubt, that Python has a bright future — our mis­sion is to keep the servers run­ning, deal with legal things every so often and to reach out to every sin­gle pro­gram­mer and non pro­gram­mer on the face of this planet to teach them about Python. We are here to sup­port projects, peo­ple and ideas within the community.

The PSF com­pletes its mis­sion by dis­trib­ut­ing fund­ing, but more impor­tantly through the lead­er­ship of its mem­bers. The PSF is the non­pro­gram­ming arm of the entire Python com­mu­nity, not just for the core devel­op­ment team. Our job is to pro­vide resources to the entire Python ecosystem.

Clos­ing

In the next post; I will cover Part 6: Accom­plish­ing the Mis­sion — my def­i­n­i­tion of how we accom­plish what we have to do, how lawyers do, and do not play into it and addi­tional opin­ions I have about the cur­rent state of the PSF and mov­ing for­ward. I will also go into what the PSF has done over the past year or so which has directly ben­e­fited the com­mu­nity as a whole — some of which you might not know about.

For addi­tional infor­ma­tion you can see the Con­vore thread that helped me along in my thoughts and what ques­tions needed answering.

  • http://twitter.com/aclark4life Alex Clark

    Great write-up, thank you!

What's this?

You are currently reading Explaining the Python Software Foundation (PSF) Part 1 at jessenoller.com.

meta