written on Thursday, July 3, 2014
The last year has been very challenging for me with regards to my Open Source projects for me which I have been writing about a little bit (Emotional Programming). It however came to my realization how much people are actually dependent on software I wrote that there needs to be a more stable and predictable process around them. I have been bitten myself by unmaintained software before so I don't want my libraries to fall victim to this.
So here is my attempt to fix this issue.
So here is the problem. There are actual users of Flask out there that run their businesses on it. As cool as it is, it's also a scary thought because it means that there is a certain level of quality that is expected and to consistently deliver to this is tricky. I think this went well in the first years of Flask and my libraries but it no longer scales because I am too protective in many regards.
There are ridiculous amounts of pull requests open and there are not enough releases. I also have too many projects going at the same time next to work which is not helping either.
Essentially I need help. The good news is that help is constantly being offered. The bad news is that I did not manage to accept the help because there was no process for it. That goes for very simple things such as there not being a good communication channel for contributors across the different projects as well as there being too much reliance on things that need me (no server access, no PyPI access for projects, no oversight that contributors do not disappear, that everything goes well etc).
I do not want to make some sort of Flask Software Foundation because I would not even know how to achieve that, but a small form of that will be what I'm aiming for. Essentially Metaflask will be a meta project on github which will be used for communication across the different Flask projects and volunteers.
The idea is that there is one clear place of communication and canonical information for maintainers of Flask and extensions. Ideally all important projects can codify the state of development there and document where help is needed and appreciated. If people want to participate in this I cannot judge yet, but at least for my own Flask projects I will put all the information there.
The second part is money related. In the past I was a bit hesitant to accept monetary contributions for my projects because my track record of fixing problems has been spotty or unreliable. The truth of it is that even if you work in a company that gives you 20% time (which Splash Damage / Fireteam do) that does not go enough for maintaining software.
So instead I am changing things around now that I can clearer separate things. The biggest change is that I work now remotely and will ensure I can set a fixed amount of time each week apart for my libraries.
Once I have ensured that works properly I would like to explore the concept of some structured bounty system for individual bugs and feature requests as a way to "buy support" for Flask if there is demand for it. It would allow companies to feel more comfortable about using the libraries and benefit the whole community. I'm still exploring the details of that.
If you are using Flask and interested in helping out in any way, start monitoring the metaflask project on github.