[openstack-dev] Interested in attracting new contributors?

Ben Nemec openstack at nemebean.com
Thu Feb 13 19:56:46 UTC 2014


On 2014-02-12 15:34, Adrian Otto wrote:
> On Feb 12, 2014, at 12:41 PM, Ben Nemec <openstack at nemebean.com>
>  wrote:
> 
>> On 2014-02-12 13:48, Adrian Otto wrote:
>>> On Feb 12, 2014, at 10:13 AM, Ben Nemec <openstack at nemebean.com>
>>> wrote:
>>>> On 2014-02-12 09:51, Jesse Noller wrote:
>>>>> On Feb 12, 2014, at 8:30 AM, Julie Pichon <jpichon at redhat.com> 
>>>>> wrote:
>>>>>> Hi folks,
>>>>>> Stefano's post on how to make contributions to OpenStack easier 
>>>>>> [1]
>>>>>> finally stirred me into writing about something that vkmc and 
>>>>>> myself
>>>>>> have been doing on the side for a few months to help new 
>>>>>> contributors
>>>>>> to get involved.
>>>>>> Some of you may be aware of OpenHatch [2], a non-profit dedicated 
>>>>>> to
>>>>>> helping newcomers get started in open-source. About 6 months ago 
>>>>>> we
>>>>>> created a project page for Horizon [3], filled in a few high level
>>>>>> details, set ourselves up as mentors. Since then people have been
>>>>>> expressing interest in the project and a number of them got a 
>>>>>> patch
>>>>>> submitted and approved, a couple are sticking around (often 
>>>>>> helping out
>>>>>> with bug triaging, as confirming new bugs is one of the few tasks 
>>>>>> one
>>>>>> can help out with when only having limited time).
>>>>>> I can definitely sympathise with the comment in Stefano's article 
>>>>>> that
>>>>>> there are not enough easy tasks / simple issues for newcomers. 
>>>>>> There's
>>>>>> a lot to learn already when you're starting out (git, gerrit, 
>>>>>> python,
>>>>>> devstack, ...) and simple bugs are so hard to find - something 
>>>>>> that
>>>>>> will take a few minutes to an existing contributor will take much
>>>>>> longer for someone who's still figuring out where to get the code
>>>>>> from. Unfortunately it's not uncommon for existing contributors to 
>>>>>> take
>>>>>> on tasks marked as "low-hanging-fruit" because it's only 5 minutes 
>>>>>> (I
>>>>>> can understand this coming up to an RC but otherwise 
>>>>>> low-hanging-fruits
>>>>>> are often low priority nits that could wait a little bit longer). 
>>>>>> In
>>>>>> Horizon the low-hanging-fruits definitely get snatched up quickly 
>>>>>> and I
>>>>>> try to keep a list of typos or other low impact, trivial bugs that
>>>>>> would make good first tasks for people reaching out via OpenHatch.
>>>>>> OpenHatch doesn't spam, you get one email a week if one or more 
>>>>>> people
>>>>>> indicated they want to help. The initial effort is not 
>>>>>> time-consuming,
>>>>>> following OpenHatch's advice [4] you can refine a nice "initial
>>>>>> contact" email that helps you get people started and understand 
>>>>>> what
>>>>>> they are interested in quickly. I don't find the time commitment 
>>>>>> to be
>>>>>> too much so far, and it's incredibly gratifying to see someone
>>>>>> submitting their first patch after you answered a couple of 
>>>>>> questions
>>>>>> or helped resolve a hairy git issue. I'm happy to chat about it 
>>>>>> more,
>>>>>> if you're curious or have any questions.
>>>>>> In any case if you'd like to attract more contributors to your 
>>>>>> project,
>>>>>> and/or help newcomers get started in open-source, consider adding 
>>>>>> your
>>>>>> project to OpenHatch too!
>>>>>> Cheers,
>>>>>> Julie
>>>>> +10
>>>>> There’s been quite a bit of talk about this - but not necessarily 
>>>>> on
>>>>> the dev list. I think openhatch is great - mentorship programs in
>>>>> general go a *long* way to help raise up and gain new people. Core
>>>>> Python has had this issue for awhile, and many other large OSS
>>>>> projects continue to suffer from it (“barrier to entry too high”).
>>>>> Some random thoughts:
>>>>> I’d like to see something like Solum’s Contributing page:
>>>>> https://wiki.openstack.org/wiki/Solum/Contributing
>>>>> Expanded a little and potentially be the recommended “intro to
>>>>> contribution” guide -
>>>>> https://wiki.openstack.org/wiki/How_To_Contribute is good, but a 
>>>>> more
>>>>> accessible version goes a long way. You want to show them how easy 
>>>>> /
>>>>> fast it is, not all of the options at once.
>>>> So, glancing over the Solum page, I don't see anything specific to 
>>>> Solum in there besides a few paths in examples.  It's basically a 
>>>> condensed version of https://wiki.openstack.org/wiki/GerritWorkflow 
>>>> sans a lot of the detail.  This might be a good thing to add as a 
>>>> QuickStart section on that wiki page (which is linked from the how 
>>>> to contribute page, although maybe not as prominently as it should 
>>>> be).  But, a lot of that detail is needed before a change is going 
>>>> to be accepted anyway.  I'm not sure giving a new contributor just 
>>>> the bare minimum is actually doing them any favors.  Without letting 
>>>> them know things like how to format a commit message and configure 
>>>> their ssh keys on Gerrit, they aren't going to be able to get a 
>>>> change accepted anyway and IMHO they're likely to just give up 
>>>> anyway (and possibly waste some reviewer time in the process).
>>> The key point I'd like to emphasize is that we should not optimize 
>>> for
>>> the ease and comfort of the incumbent OpenStack developers and
>>> reviewers. Instead, we should focus effort on welcoming new
>>> contribution. I like to think about this through a long term lens. I
>>> believe that long lived organizations thrive based size and diversity
>>> of their membership. I'm not saying we disregard quality and
>>> efficiency of our conduct, but we should place a higher value on
>>> making OpenStack a community that people are delighted to join.
>> 
>> I'm not disagreeing, but there has to be a balance.  tldr: there are a 
>> lot of pitfalls in the submission process, and if they aren't 
>> well-documented they're going to frustrate new contributors to no end.
>> 
>> For example, let's say someone reads through just the Solum page (if 
>> they follow the link to GerritWorkflow then they're back to the big, 
>> scary documentation we have now).  They try to submit their change.  
>> It fails because they have no ssh keys on Gerrit so they can't 
>> connect.  Casual contributors probably give up here because they 
>> followed the instructions and they didn't work.
>> 
>> But let's assume they visit review.openstack.org and get an ssh key 
>> registered on Gerrit.  They try again.  This time they fail due to an 
>> unsigned CLA.  Okay, sign the CLA (assuming their employer doesn't 
>> restrict them from doing that, but that's a whole other discussion).  
>> Hooray, Gerrit will accept their submissions now!
>> 
>> But wait, now they put the entire commit message in one block of text 
>> because they don't know any better.  Let's say worst-case-scenario 
>> that they're submitting to a project that's gated on Tempest so it 
>> takes an hour or more for Jenkins to vote, and an hour later it fails 
>> due to the pep8 violation in the commit message (note that there 
>> doesn't seem to be a mention of running tox before submitting in 
>> either set of documentation).  Fair enough, they fix their commit 
>> message to have a first line <72 characters as pep8 tells them to.
>> 
>> They submit again.  Their submission sits for a week because the 
>> project they're working on has a long review queue.  Maybe a reviewer 
>> comes along and notices their commit message has an improper bug 
>> reference and -1's.  At this point I'd be throwing things around the 
>> room. :-)
>> 
>> Granted, this is a very pessimistic scenario, but I'd bet most new 
>> contributors hit some subset of these issues on their first submission 
>> because our existing documentation is either too concise and doesn't 
>> cover these steps, or is too long and rambling and therefore they miss 
>> important details.  As I said below, as simple as possible, but no 
>> simpler.  Where that line is probably varies by person, but I think we 
>> can all agree we're missing the mark right now.
> 
> Agreed.
> 
>>> Focused efforts like the one outlined by Julie Pichon are exactly 
>>> what
>>> OpenStack needs to make on-boarding smoother, and more pleasant. 
>>> Thank
>>> you Julie for sharing what you are learning, and helping us improve.
>> 
>> Absolutely +1!
>> 
>>>> That said, the GerritWorkflow page definitely needs some updates and 
>>>> maybe a little condensing of its own.  For example, do we really 
>>>> need distro-specific instructions for installing git-review?  How 
>>>> about just "Install pip through your distro's package management 
>>>> tool of choice and then run pip install git-review"?  I would hope 
>>>> anyone planning to contribute to OpenStack is capable of following 
>>>> that.
>>> Optimize public facing documentation for throughput of attracting new
>>> members, not maximizing efficiency of the existing ones. We can 
>>> decide
>>> how to deal with internal inefficiency as it presents as a problem.
>>> Our default mode should be welcoming.
>> 
>> No argument here, but I still think we should be able to assume a 
>> certain level of competency in our prospective contributors.  In a 
>> process as complex as the one we're dealing with, a digression to 
>> discuss every possible way a package might be installed is just noise 
>> IMHO.  Right now the length of GerritWorkflow is not welcoming.
>> 
>>>> I guess my main point is that our contributing docs could use work, 
>>>> but there's also that "as simple as possible, but no simpler" thing 
>>>> to consider.  And I certainly don't like that we seem to be 
>>>> duplicating effort on this front.
>>> All efforts that result in more open source, and more community
>>> participation should be encouraged. Don't worry as much about
>>> duplication of recruiting efforts. Trying a few different approaches,
>>> and seeing what works best is a great approach to something like 
>>> this.
>>> Attracting a community is not a science. It's an art form. Making art
>>> is about trying a bunch of things, and seeing what works best.
>> 
>> Sure, but it's a wiki.  Rather than creating a completely separate 
>> page that almost entirely duplicates an existing one, why not fix up 
>> what we already have so everyone benefits?  Right now the Solum page 
>> is only useful if you're looking for Solum information, and the 
>> instructions there apply to every single OpenStack project.  And if 
>> someone disagrees with your changes they're welcome to make their own. 
>>  It's the wiki way. :-)
> 
> I thought you were somehow suggesting that OpenHatch was a bad idea,
> which struck me as alarming. I see now that you are referring to the
> wiki content. We can work to merge some of that.

Yeah, sorry.  I kind of hijacked this email thread to rant about 
documentation.  OpenHatch definitely sounds interesting. :-)

> 
>> I guess I see the Solum page as a sort of cheat-sheet for people who 
>> have already been through the longer form Gerrit workflow page, and I 
>> do think that would be useful.  I just think it would be useful to 
>> everyone, not only Solum developers.
> 
> Back in October, when we made the contributor page, we only
> contemplated being an OpenStack Related project. So, we needed a place
> to indicate what our governance setup is (since we have no TC, no
> Board, etc.). Members of the project wanted to keep things simple. We
> were rapidly attracting new contributors from outside the OpenStack
> ecosystem, and tried to summarize the contribution process so that
> people could conceptualize it. I received guidance from stakeholders
> (one even from the OpenStack Board of Directors) that it was important
> to show that Solum was a Stackforge project, and not part of
> OpenStack's core/integrated family of projects. What you see today is
> my attempt at trying to satisfy the interests of a growing contributor
> community, and the wishes of the OpenStack community to provide
> clarity about the nature of various projects.
> 
> I am happy to work with you to help refine the OpenStack on-boarding
> materials, and find a ways to express the process in summary, and with
> links to supporting detail. I began hearing just this week, that
> community members liked the style of the Solum/Contributing page. If
> that's resonating with newcomers, then let's use what we are learning
> from it.

I will try to find some time to sit down and make some edits to 
GerritWorkflow, and then maybe we can work on integrating the Solum 
instructions?

> 
> Cheers,
> 
> Adrian
> 
> 
> 
> 
>> 
>>> Thanks,
>>> Adrian
>>>> /2 cents
>>>> -Ben




More information about the OpenStack-dev mailing list