Announcing: Python Sprint Sponsorship

by jesse in ,


Otherwise known as "from psf import sprints".

Awhile ago, I started wondering if there was a way that the Python Software Foundation (the PSF) could reach out, and help encourage python development a little bit more than it currently does (it actually does a lot of stuff). I then spent a fair amount of time thinking about core contribution, and ways of getting people not just to become contributors to say, python-core, but also to the "ecosystem" of big-P-Python. It's part of my job now that I volunteered to be on the PSF Board.

Then, a few weeks ago, I asked the question - "Why aren't you contributing (to python)?" - that post alone got my little blog here about 30,000 hits in around 48 hours. Pretty impressive for navel gazing (not even controversial navel gazing, at that). In the days following that post, I've had a lot of public and private discussions with people about various ways to help improve things, what could work, what wouldn't work, etc.

One thing has been stuck in my head - sprints - sprints are places where a bunch of programmers and hackers of all skill levels, sit in a room and work on a particular code domain, it could be a website, it could be python bugs, it could be a module, library, or anything, really. The point is getting a bunch of people together in a room, feed them, water them and enable the hacking.

And finally - there's Python 3.

Python 3 is a bit of an interesting animal - and while it is the future of the language, and a much brighter one at that, the rate at which people are porting to Python 3 is a little slower than many of us would like. Porting libraries to Python 3 can be relatively simple, but it can also be boring, tedious and require mentorship and guidance.

Given these itches of mine - I've decided to try to find (or at least, start the formulation) of a cure. A few weeks ago, I approached the rest of the Python Software Foundation board, and presented them with a "sponsored sprint" proposal. The short version being that the PSF would spin up a committee which would accept and evaluate sprint proposals from the world as a whole, and give each sprint a relatively set amount of money.

The sprints themselves are relatively focused - Python-core, the Python website, docs, bugs - and finally, porting Python 2 libraries to Python 3.

So - all of that said, I'm officially publicly announcing the new program. I'm still working on initial committee membership, and putting together things like the mailing list, but I will soon be announcing a call for applications. Below, you will find the full proposal - please feel free to post comments, or send me private email (jnoller at python dot org) about questions or concerns. If you want to help - please please contact me - I can not possibly make this a success on my own.

"from python import sprint"

This proposal outlines a global "focused sprint" initiative for the Python community (including Python core). The initiative outlined in this proposal is designed to help raise both the profile of the PSF, while also encouraging community, Python 3 adoption, and possible python-core contributions. This proposal does not identify any sort of return on investment or profit for the foundation; nor does it attempt to identify metrics of success. The success of this proposal is determined by the social "buzz", patches, new contributors, etc. We hope that this will naturally raise the awareness of the PSF, as well as bringing in an overall more diverse contributor group.

This proposal suggests that the PSF-Board approves the following:

  • A small monthly fund, to a maximum of 400 USD per month (to a project maximum of 5000 USD), for "sponsored" sprints, this fund will be allocated by the project committee.
  • Creation of a "Sprint Committee" - the purpose of which is the allocation of the project funds to sprint coordinators, reviewing and approval of sprint applications, and internal and external communications. This committee is part of, and acts on the behalf of, the Python Software Foundation.

Focus of the sprints are:

  • Python Core bug triage and patch submission (on-boarding new contributors)
  • Python Core documentation (including process documentation) improvements
  • Porting libraries/applications to Python 3
  • Python website/wiki content improvements
  • PyPI packaging hosting site improvements
  • Contribution to other "core" projects, such as packaging related issues.

Committee Outline:

  • The "Sprint Committee" will be formed of one or more PSF-Board members, PSF Members, and possibly external volunteers.
  • A blog and/or website will be started by the committee for the external communication and "showcasing" of sprints which have occurred.
  • The committee will be responsible for the coordination and review and approval of sprint proposals.
  • The committee's head/lead will be responsible for monthly reports to the PSF-Board.
  • A "Sprint Bundle" including the following items will be created, by the committee and other volunteers:
    • "Sprint Guide", meant to serve as a how-to for coaching sprints
    • "Beginners Guide to Python Core work", meant to act as handout material for sprint participants
    • "Beginners Guide to Porting to Python 3", meant to act as handout material for sprint participants
    • "Beginners Guide to the Python Website", meant to act as handout material for helping out with the website, for sprint participants
    • A page on the Python Wiki will be dedicated for free form "lessons learned from previous sprints" so that participants may provide advice to future participants.
  • Note: The PSF-Members list will be solicited for volunteers and committee members to help with this initiative and generation of collateral. Additionally, members will be asked to be initial Sprint Leaders, or Sprint Coach points of contact/facilitator. In other words, someone to help with issues such as the python bug tracker, and other domains.
  • Note: As needed for legal reasons, the Committee may use an intermediary entity to donate funds to local user groups.

Sprint Details:

  • 1-2 Proposals per month are targeted for approval. If the fund is increased either by the PSF, or external donations, then the number of sprints may be increased keeping the target of ~200USD per sprint (e.g. More smaller ones).
  • The requirements of the proposal would be:
    • Location
    • Number of participants
    • What the focus and goals of the sprint are (e.g. core contribution; porting a project to Python 3, website content)
  • As part of being approved, the sprint leads/coaches agree that they will deliver a report (hopefully, with pictures!) of the sprint to the Sprint Committee, for distribution on the Sprint Team's and/or the PSF's blog and websites.
  • Expenses will be handled post-facto. Unless a sprint lead specifically requests funding in advance, they will be asked to submit receipts and they will be reimbursed in a timely manner (as soon as possible).
  • The planning, and execution are the sole responsibility of the sprint coordinator/proposer. The PSF, nor the committee, will execute or directly plan any sprints.

Notes:

  • Status of the initiative will be provided to the board at each PSF Board Meeting by Primary Coordinator.
  • PSF sponsors, or other external companies, will be allowed (possibly solicited) to donate into this fund. If funding is provided externally, that additional funding will be used, if interest and applications permit, to host more sprints per month rather than returning money to the PSF.
  • The scope of the solicited sprints - namely, Python 3 porting, core and website work - may be expanded to other projects or initiative upon approval from the PSF Board, and only by the PSF Board. If the scope is expanded, the membership will be notified accordingly. Note that this may require additional materials to be made available.
    • Such expansions may include a Django sprint, a Twisted sprint, etc.
  • We may be able to solicit (from the membership) the creation of a bare-bones dedicated website with a blog and news updates for this project.