Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Which open source projects have kind, supportive, talented teams?
247 points by mikemajzoub on Nov 28, 2015 | hide | past | favorite | 281 comments
Hi HN -

I'm looking to get more involved with open source projects. From your experience, are there any projects that you have been involved with where you are impressed by how kind, supportive, talented, and effective the group of people are that work on the project?

Thanks, Mike

Elixir and its ecosystem (plug, ecto and phoenix) has been above and beyond every time I've contributed. Helpful, patient and kind, and also very smart guys.





Last April I decided to work on open source every day for a month. I saw a gap in the Elixir ecosystem (a driver for RethinkDB) and I just started hacking on it. The help and feedback I've gotten from the community have been fantastic. It's a community where I can tag José (the creator of Elixir) on a github issue for my driver and he'll chime in with very useful feedback. Imagine pinging Guido or Matz about the right way to do connection pooling and them responding. It's a pretty awesome community.

Agreed. Elixir is my first foray into functional programming and the paradigm is obviously different from OO.

The Elixir community on both IRC and Slack have been incredibly patient and helpful for a hack like me. Both in solving specific problems and teaching how to solve future issues myself the next time around.

+1. The community is a big part of the Elixir ecosystem.

Another vote for Elixir. Very enjoyable community to participate in.

Find the projects that speak to you then check in on the communities. Contributing to open source is first and foremost _work_. A community can turn you off from participating, but the motivation to contribute only comes from the product.

And you might be surprised at the difference between what it's like to contribute to any random project compared to what a "news" blogger that needs to generate hits wants you to think the average project is like.

This is really the correct answer: Why do you want to participate in an open-source project in the first place?

If it's to gain brownie points for your CV, it's quite likely that you'll get nowhere, because that's a motivation right along with "earn money".

The difference to just getting a random software development job for earning money is that at the random job, you will be in a team where tasks will naturally flow towards you. In a random open source project, this will not be the case. So most people will not stick with it unless they have a better motivation for contributing to the project in the first place.

So try to find a project that you find interesting first. You should actually be able to find many of those if you're into software development, and then take a look at the communities yourself.

Another tack: look for employers that have already demonstrated a commitment to open source software / hardware. (This is, of course, a difficult chicken-and-egg problem for those looking to bolster a CV.)

I think starting at the language level, and then digging deeper for sub-projects in your interest sphere is a good strategy. I'm partial to the Perl and Python communities. Both have BDFLs that are kind people who lead by example. Projects associated with these languages often seem more accessible (IMO), and I think Larry and Guido deserve a lot of credit for that.

I'll also throw in a plug for jabber.org and telehash.org because Jeremie is one of the nicest people I've ever met.

edit: and exercism.io because Katrina is brilliant and dedicated to community building.

This, so much this.

Working on Open Source absolutely requires individual contributors to be self-starting. New contributors who lack drive require constant direction and/or hand-holding, undermining the time/effort commitment of existing contributors.

Most Open Source projects invest a lot of time/effort coaching new contributors. If a new contributor receives the coaching but doesn't produce anything useful; it's a net loss for the project, users, and community.

I always tell people who want to start contributing to OSS to start with simple/easy tasks like documentation updates. It minimizes the negative impact of poor quality contributions and allows existing devs to identify and correct workflow inconsistencies during peer review.

The other growing pain is new contributors who bring their 'ideas' but put zero effort toward contributing. 'Ideas' are like assholes, meaning everybody has one. They're not particularly useful unless there's a person ready/willing to implement them. Even then, a new idea may not follow the intent of the project and/or its culture.

Endlessly discussing the 'future possibilities' of a project is extremely counterproductive and distracting to existing developers.

I have somewhat different perspectives on "ideas". People discuss ideas first because if they do the implementation first, there is a large risk of wasted effort because it "may not follow the intent of the project". Discussion is in part effort to divine the intent of the project.

As a concrete example, I implemented break and continue for OCaml compiler because having for loop without break/continue seems to me obviously a bad idea. Although I learned a lot about OCaml compiler internals, this went nowhere. I learned my lesson, and now I will certainly "endlessly discuss" possibilities of break/continue first, without writing a single line of code. In my opinion, berating people for this is placing undue burden on contributors.


An idea followed by an implementation is awesome and exactly what OSS projects need from contributors.

"I learned my lesson..."

I read the mailing list and don't see how that was a negative experience. Only one of the contributors had an unfavorable response.

Even if they don't implement your code as-is, it looks like you had a good idea including a good implementation that led to a lot of productive discussion.

Only one of the contributors had a strong objection and despite that, the conversation continued.

Don't take it personal if your code isn't directly incorporated into a project. Despite that, your contribution led to further discussion and helped better focus the intent of the project.

Working on an OSS project is very much about collaboration. Code contributions may not always be incorporated into the codebase, especially on projects like ocaml that have a specific focus and changes have far-reaching impacts on the userbase.

That's not a bad thing. You did well.

:cringe: Apparently I, need to expand the comment text field and re-read my comments before posting. Hopefully, you could infer my meaning from the word vomit.

It was hard for me to find projects I found interesting enough to contribute to.

It wasn't until I had an overarching purpose that I found success. It took about 5 years.

I understand where you're coming from but the open source community as a whole has a reputation (though whether it deserves this is another question) for being a potentially toxic thing to interact with.

I guess I read it as implicit in the question that they're looking for a bunch of open source projects that will be supportive of their contributions to then select one that they find interesting in order to avoid picking an interesting project, working on an issue couple of days only to be told to go %&@# themselves because the PR isn't formatted correctly or something.

Some big projects (Fedora, OpenBSD etc.) are deserving of their reputations for having toxic communities.

I've never experienced such condescension online as from the pricks on the Fedora IRC channels.

I spend my life first and foremost in a community. I think it makes perfect sense to look for a good community first and then check in on their project.

That said, I've noticed that all of my favorite communities are centered around good work, and that good work makes it easy to find and share joy. A great community isn't going to be working on something stupid.

To answer the question asked: I've been on the LLVM mailing list for a few months now, and been highly impressed both by the technical quality of the project and by the competence and supportiveness of the people involved.

To address a meta-question: I disagree with the people who claim that you shouldn't contribute to a project for any reason other than intrinsic interest in the product itself. Most people, after all, work for extrinsic reasons; it's a normal part of life. There is nothing wrong with contributing to an open source project to improve your programming skills, boost your resume or pay some of your karmic debt to your species for the gift of your life. These are all valid reasons, and all are flexible regarding the specific nature of the project.

I guess the flip side of "don't contribute to a project unless you are intrinsically interested in it" is "don't contribute to a project you aren't interested in unless you are capable of significantly helping it."

Someone inexperienced but strongly interested in a project can be taught to be useful. And a knowledgeable resume-padder can very well spearhead useful changes. But if you are both uninterested in the project and incapable of helping it, you're more likely to hurt the project than help it. And, sorry to say, but if you don't know where to help, then you're most likely on the "not imminently useful" side and should be looking for things you're legitimately passionate about instead of wasting peoples' time.

EDIT: Does anyone remember an article or comment from a few weeks ago about how many open source projects tend to lose their focus and become more about justifying the existence of a social group than achieving a goal? It seems kinda relevant to me.

Another interesting aspect is someone may not realize they're interested in a project until they've spent sometime in the code.

That's a great point. I wonder if anybody has curated a list of projects that are good for learning how to work on software. As opposed to perhaps a broader list of projects that are simply good communities.

meta-meta-discussion: The question implies an ordering on priorities:

  1) kind
  2) supportive
  3) talented
  4) effective
Granted, the original poster may not have intended it quite that strongly, but it raises an important issue when evaluating open source projects.

Not necessarily. For example, OP might figure effectiveness is easy to judge from a quick Google search and it's the other things that benefit more from asking about personal experiences.

What about my post are you saying "not necessarily" to?

That the OP implies an ordering on priorities.

Have you heard of Mozilla? http://mozilla.org

I'm a Mozillian myself and I can tell you I wouldn't have been one if the community wouldn't have showed me such a great and kind support since the first minute I decided to step in a introduce myself. Plus we breathe OSS and have multiple talents of every kind.

Mozilla works serving, promoting and protecting the Open Web, and provides the tools to do so by ourselves. Firefox is -mostly- a community effort, with translators, designers, and coders from all around the world.

If you decide to join, feel free to say Hi in the forums of the community: https://discourse.mozilla-community.org/

>Mozilla works serving, promoting and protecting the Open Web.

I used to believe this until they started including proprietary/non-open services (Hello & Pocket) by default and that too in an update. Not sure what they were thinking as it clearly goes against their motto. It wasn't even a requested feature of the community! Regardless, that ruined Firefox for me. :(

Just be careful if you don't share their political views. They just might go digging through everything you've ever said and every cause you've ever donated to and start a witch hunt. Even if you invented Javascript.

A litmus test of a great community is how they deal with people who are technically useful but socially reprehensible.

That's an awfully strong judgment to make on the sole basis of a $1000 donation to a popular cause (one that won the election, no less). It's not like he was a leader of the anti- gay-marriage movement. If he didn't bring his politics to work, there was no good reason for anyone else to. There's no evidence that his views on gay marriage affected how he treated anyone at Mozilla. Not a single complaint as far as I've heard, and I'm sure that he interacted with a lot of people given that he was a co-founder of Mozilla.

Magnanimity in victory is a virtue for a democratic society. Do you really think that it's good to have political witch hunts every time the winds change on a social issue?

Agree 100%. It is shameful the way they treated the man.I wont encourage anyone to participate in open source work in Mozilla.

> Magnanimity in victory is a virtue for a democratic society.

The word for this used to be "tolerance".

Was Eich intolerant? Or were his views just unpopular? I haven't seen any evidence of intolerance from his side of things.

Making a political donation toward a popular opinion (7 million people agreed with Eich) means that you are socially reprehensible?

I disagree with him, but I would not let a dissenting opinion on a single controversial political subject lead me to conclude that a person is "reprehensible" in any way.

Just before Eich's donation, Obama was against gay marriage too and even said marriage was not a civil right:


The difference is that Eich never actually apologized, or said his opinion changed. It was always, "Don't worry, Mozilla will be fine!" He argued that accepting bigotry is a form of inclusion. So, all signs point to him remaining a bigot.

Ironically, pretty much all of us are bigots in various ways, we just don't know it because we believe we're right. Eat meat? Drive a car? Pay taxes to a militarily aggressive and murderous government? Buy luxury goods while poor people starve, even though you could have saved them with the same money? Think people should be prohibited from earning money if they weren't born in the right place or to the right parents? Opposing gay marriage is buried in a giant smelly pile of bigotries.

So, I agree with the X-parent saying it's wrong to kick someone out for supporting a popular and controversial political idea. It really isn't clear what the truly right answer is, and those same people doing the kicking will be holding "wrong" opinions in other areas.

He does not need to apologize on his donation.Apologize over what?.It is folks like you that are creating problem where none exits.

I don't see any signs at all that Eich is a bigot.

It's only "socially reprehensible" because you're holding the pen that draws the line.

Curious what you think the response should be.

If the person is toxic, and nothing will change that, get rid of them before any more damage is done.

I could argue that even if they're 10x more productive, they will drive off far more than 10 contributors.

But really you do it because it's the right thing to do.

The ultimate and delicious irony of your comment is that you endorse a behavior that is in and of itself toxic -- publicly crucifying somebody because you don't agree with their beliefs.

This line of thinking is not only dangerous, it's downright disgusting.

The flip side, which you seem to endorse, is that people should have no way to censure (in the realm of public discourse or social opinion, not any legal sense) those whose views they don't agree with.

Obviously, Eich had some widely unpopular views, and much of the country didn't agree with his beliefs.

No one sued him, no one jailed him, people who didn't agree with him on a widely-debated social issue of the day just created a media campaign to draw attention to his retrograde views.

I'm curious, though. If he were donating to a more offensive cause, like the KKK or something, would you hold the same position that his political views should be beyond discussion?

Yes. In my opinion, as long as someone doesn't try to preach KKK value in the community or come to community gathering wearing KKK robe, whether someone donates to KKK is beyond discussion.

On what basis do you think that someone's political views should be beyond mere discussion?

I'm trying to figure out why--discussing the views held by your fellow citizen--that is a bad thing. I'm trying to understand how that advances any sort of democratic principle, to draw the line at "you can't talk about what I donate to".

I find it very significant that Eich's supporters always reference "his beliefs" in the vaguest possible sense, and never "his belief that gay Americans ought to be denied various legal rights."

Denying legal rights to a group of people is not compatible with Mozilla's mission or spirit.

> ought to be denied various legal rights

I think you have to be a little more specific. If merely removing a former legal right is evil, who were the bad guys when a Maryland referendum removed the right to own slaves[0]? Yes, I went there, but hear me out. I think you need to talk about moral rights, not legal rights, because some legal rights came about because of bad laws or the court evolving the laws contrary to the voters' wishes. (By referring to the voters' wishes, I'm not endorsing "might makes right" per se but noting that voters essentially, if indirectly, define what is "legal" so you ought to appeal to morality instead.)

Also, if the correct position is that marriage in any shape is a legal right, are we going to crucify people who made polygamy illegal?[1] Or since they're dead now, can we hold it against any current official who does not actively support this kind of marriage equality? Is tolerating an unjust status quo less evil than changing it for the worse? Or, what argument can you make to prohibit polygamy that won't sound awfully like the arguments against gay marriage?

I'm maybe being crippled by idealism and naivety here, but I guess I'm bothered by people adopting fashionable causes as a reason to hate people who don't believe in them, when we're all hypocrites and there's injustice everywhere if you have an open mind.

[0] https://www.washingtonpost.com/local/md-politics/the-not-qui... [1] https://en.wikipedia.org/wiki/Edmunds%E2%80%93Tucker_Act

    I think you have to be a little more specific. If 
    merely removing a former legal right is evil, who 
    were the bad guys when a Maryland referendum removed 
    the right to own slaves
I think the answer to that is clear if you subscribe to the principal that one person's rights end where another person's rights begin.

It's certainly true that the slaveowners had the rug pulled out from under them in a sense but their legal right to own slaves infringed (to put it mildly) on pretty much every single human right the slaves had.

With same-sex marriage, on the other hand, it's very difficult to see how one person's consensual marriage could possibly infringe on another person's rights.

    Also, if the correct position is that marriage in any 
    shape is a legal right, are we going to crucify people 
    who made polygamy illegal?
You're absolutely right: the polygamy question is very tricky. I can't give you a single objective reason why it shouldn't be legal.[1]

It's incredibly fallacious, though, to suggest that same-sex couples shouldn't have the right to marry simply because there's another tricky marriage-rights question out there. (If we discover that there's a wrongfully-convicted person serving time in a state prison, should we make him stay there because we haven't figured out what to do with the prisoners in Guantanamo Bay?)

    are we going to crucify people who made polygamy illegal?
I'd say that we should consider their views in the context of the times in which they lived. The human race has come a long way in the last couple of centuries in terms of recognizing human rights.

Hopefully some things that you and I believe today will be viewed as positively caveman-like in 200 years. That's the price of progress.

    I'm bothered by people adopting fashionable causes as a 
    reason to hate people who don't believe in them
This and the "crucify" thing are really straw man arguments. I'm certain there are some exceptions out there but during the entire Eich/Mozilla public debate, I didn't see anybody (certainly not anybody prominent) claiming that Eich was a terrible person or that we should hate him.

I certainly don't hate Brendan Eich; he seems like a good person in general. Even if it was the right thing to do, which I think it was, nobody "won" that whole mess. The Mozilla community lost a great contributor.


[1] I believe you should be able to legally designate whomever you like as a family member and assign whatever family-related rights you want to them. The government should generally stay out of the morality business as long as everything is between consenting adults.

From a purely legal standpoint, titles like "wife" or "brother" or "cousin" are really just titles that confer various sets of default rights and establish a default order of precedence for inheritance and power of attorney. (On a personal level those titles mean much more to me than that, but that's my business)

> it's very difficult to see how one person's consensual marriage could possibly infringe on another person's rights.

Maybe to you, but others argue that it's bad for society etc. It wasn't so "settled" in 2008 when Eich donated and that cause won the election. I'm not even sure a significant portion calling for his resignation would have supported an apology, if he decided to change his position. This is the opposite of a free, healthy, diverse society.

> It's incredibly fallacious, though, to suggest that same-sex couples shouldn't have the right to marry simply because there's another tricky marriage-rights question out there.

My intention wasn't to suggest that, but to note that for some reason gay rights are popular and polyamorous rights aren't. If Eich had donated to keep polygamy illegal, not nearly as many people would have cared IMO. People are being denied rights in both cases, but only one is fashionable to support right now. That hypocrisy bothers me, not the legal status of same-sex couples.

This is veering further off-topic, but BTW I can think of one reason to not give all the same legal rights to polygamous marriages: it's maybe too easy to "abuse" by marrying yourself to every friend you want to give a piece of your insurance coverage, tax breaks, etc.

> Hopefully some things that you and I believe today will be viewed as positively caveman-like in 200 years. That's the price of progress.

But if you weren't on the right side just 6 years ago, you're viewed just as caveman-like and don't deserve your job?

> This and the "crucify" thing are really straw man arguments.

Perhaps it's hyperbolic. On the other hand, the counter-arguments invoking the KKK are too. There's a difference between going out in a mob and killing people, or donating money to a reasonably controversial cause that is part of our political process.

    > Maybe to you, but others argue that it's bad for society etc. 
    > It wasn't so "settled" in 2008 when Eich donated and that cause
    > won the election. I'm not even sure a significant portion calling
    > for his resignation would have supported an apology, if he 
    > decided to change his position. 
I think a lot of people would gladly have accepted a change of heart. I know I would have - perhaps for selfish reasons, since I used to think gay marriage wasn't the best idea. [1] Certainly the public has shown a willingness to vote for politicians who've changed their minds.

   > This is the opposite of a free, healthy, diverse society.
The executives of a company are held to a different standard because they represent their companies to a much greater extent than the average employee.

I do not expect every Mozilla employee or contributor to subscribe to a specific set of political views, and I've never heard anybody calling for such a thing when it comes to Mozilla nor any other company. But I'm not going to be eager to support a corporation whose CEO has views I dislike. As we saw, a lot of other people felt that way as well.

Think about it: nobody would really blink an eye if they saw their Pepsi delivery man drinking a bottle of Coke - but surely we can understand how it would be big news if Pepsi's CEO drank Coke in public, and if it kept happening it might lead people to question whether or not he/she is the best person to lead PepsiCo.

   > all the same legal rights to polygamous marriages: 
   > it's maybe too easy to "abuse" by marrying yourself 
   > to every friend you want to give a piece of your
   > insurance coverage, tax breaks, etc.
Yeah, it would certainly be a logistical nightmare! Imagine all the software that would need to be rewritten. We are probably talking about a mess to rival Y2K. Relative to the Y2K thing, less software would need to be changed. But the affected software would need to be changed pretty drastically.


[1] I thought legally recognized civil unions were a better idea, but then I decided it'd be "separate but equal" all over again and that didn't work the first time.

He has fucked up personal beliefs-- this is a fact. These personal beliefs could have been kept in a box in his mind, but when he spoke on this publicly and loudly as a public figure, well.....

It'd be nice if we could all do work that allows us to voice our exact thoughts at every moment.... or would it?

> He has fucked up personal beliefs-- this is a fact.

You find them distasteful. That's your opinion, not fact. His support of Prop 8 and the legal ramifications of Prop 8, are the facts here.

> These personal beliefs could have been kept in a box in his mind, but when he spoke on this publicly and loudly as a public figure

So you're only allowed to believe something if you don't actually act on that belief in a way that internet stalkers can find? Hmm, hopefully there's never an unpopular belief someone has that you would say is good, because they'll decide to keep it to themselves instead of risking getting fired. I'm not sure his position was public or loud, at least not until people dragged it into public. All he did was donate, thus getting himself on a legally-required list of donors.

There could be dozens of employees at Mozilla, even some execs, who voted for Prop 8 (voting against gay marriage) but didn't fund advocacy groups so that nobody knows. If Brendan Eich hadn't donated but voted and if nobody thought to publicly ask his belief and got an honest answer, he would still be at Mozilla to this day, quietly oppressing employees and infecting the world with his anti-gay views through Firefox. Or not, because I haven't heard any accounts of his political views actually entering the workplace until activists forced them to. To the public and to Mozilla employees, it was pretty much indistinguishable from "kept in a box in his mind."

> Denying legal rights to a group of people is not compatible with Mozilla's mission or spirit.

1. What about denying freedom of expression? (Is it OK if society is repressive if the laws are liberal?)

2. The case for special provision for heterosexual couples has never really been considered since it's generally shut down as hateful (or awkward... most people put a premium on seeming nice) before the conversation even starts.

"you endorse a behavior that is in and of itself toxic -- publicly crucifying somebody because you don't agree with their beliefs... it's downright disgusting."

Lol, didn't take you long to become a hypocrite on that one!

But seriously, "someone" and "CEO of a major corporation that relies on its good image" are different things. We rightly hold them to different standards. Holding unpopular (and exclusionary) political beliefs is incompatible with leading a company like Mozilla.

I disagree sempai. Holding a CEO to a different standard than a common employee is a recipe for elitism.

I will reiterate that a person's beliefs have no bearing on their ability.

You hold CEOs to a different standard because they are the public face of an organization; their personal brand impacts the brand of the company. That's not elitism, that's common sense. If a common employee holds some unpopular opinion, why should anyone care? But if the CEO does, it damages the company, and the company should care about that.

Well, and go one further: if a common employee does hold an unpopular opinion and they publicize it widely, think how long they'll last at the company anyway.

Take a totally fictional example, a product manager at Intel who, on the weekends, has been leading neo-nazi marches and getting on the news. The reporters ask him, "what do you do to pay for all these flags and banners and tattoos?" "Oh, I work at Intel during the week. I'm a product manager in the networking hardware division."

Think how many weekends they'd give out that interview answer before Intel let them go for whatever reason.

I see what you did there.

So, would you accept a known racist in your community?

Let's flip this question around:

If the project owner is a known racist, should they accept a pro-equality person into their project?

Are you arguing that people should close off their communities to people with differing opinions, or are you arguing that people should close off their communities to people who you personally disagree with?

If it is the former, then you are short-sighted and petty, and if it is the latter, then YOU are what is wrong with the open-source world.

One of the major ideas behind the hacker ethic and the open-source collaborative ideal is that ANYONE skilled enough can contribute to projects, get their ideas heard, and improve the community effort. No amount of fascist and self-flagellating political bullying will make your walled-garden alternative a better idea than a truly all-inclusive community.

Yes, If a contributor spouts their political opinions on mailing lists or developer forums and derails discussions, then it is obvious that they are having a negative impact on the community. But kicking out a well-behaved and technically adept contributor simply because you don't like their views? By doing that, you have made your project appear FAR worse to potential contributors than accepting contributions from a "known racist" ever could.

The REAL "toxic people" in a community are those who try to get skilled and reasonable contributors thrown out because of childish political quibbles.

I would accept a demon that worked, rather than an angel that spoke.

A person's beliefs have nothing to do with the quality of their work.

You are an embodiment of tech's diversity problem.

> You are an embodiment

Personal attacks are not allowed on HN, even if someone's view is wrong.

No, I am the embodiment of logic and reason in a world where nepotism reigns. Except the nepotism isn't derived from hereditary privilege or income; it is derived from a particularly virulent philosophy that is not rooted in reality.

Also, I am an Indian-American male, second generation.

Please don't speak for me when you have no idea how it feels to be a minority in the US. I'm not some mascot you can parade around to make yourself feel justified in your flawed philosophy and ideals.

Would you work at a company where your boss doesn't think Indians should be allowed to marry?

Despite donating to campaigns to outlaw it, he promises it won't affect your job.

I already work at a company (a "major one" like the Narrator of Fight Club references) where someone like me shouldn't marry a white woman (or even an Asian one for that matter).

That doesn't stop me from achieving my goals. [0]

[0] http://youtu.be/1QSFQoOL92A

Getting involved with open source should likely not be done of how a community is, but rather because you love the product itself, and want to make it better. If the community is nice, that's a huge plus, but in my opinion it should not really be a deciding factor unless the community is outright hostile.

Just try to ask in general, see applications you use frequently: Desktop, web, and browser based. Programming languages, and websites you find yourself in frequently. See if any of those are open source, and then send the author(s) an email, ask if they accept contributions.

Do make sure to ask, I've had cases where I asked an author if they accepted PRs in general, and the response was "I'm sorry no, I would much rather maintain full control over the codebase", which is perfectly fine, in general, find something you are passionate about, and then try to help.

I would really advise against starting open source contributions just for the sake of contributing to open source.

When you go into a project the existing contributors will likely have to spend time, and effort grooming you into someone who can properly navigate the code base, in my experience people who join a project just for the sake of joining something, or because they want to have "Contribute to Open software in my free time" in their resume tend to drop out pretty frequently, and it's just painful for all parties involved.

Drupal's community is what got me into OSS, even though the language (PHP) community seems to be at a strange crossroads currently.

I've also been somewhat involved in Ansible's community, and it's been nothing but a positive experience so far.

It's interesting to compare some of the different communities; some seem to value technical competence over diversity, some UX over architecture, etc. It's probably easiest to dip your toes in the water and just make sure you can get help early on—jump into IRC or forums and see how people react to some initial questions you have about the project.

As a counter-point: I've found it impossible to penetrate the Drupal community. I have filed several tickets over the years, including patches, which have often gone entirely without comment for sometimes months. Including a bug report and patch against a core include file. IRC is sometimes helpful, but usually not. In my experience, it's just really hard to get any questions answered or bugs fixed in Drupal.

I initially liked my experience with the Drupal community.

One of the things that drove me away (5+ years ago), beyond the direction the project took around Drupal 6 [1], was being stuck on Drupal.org for development.

In 2009, GitHub already offered everything the community would need, but instead developers were stuck with (poorly) custom made solutions. Last time I checked, it was still the case.

[1]: http://teddy.fr/2013/01/25/dropping-the-drop/

I have always had a mixed experience, and I think I mostly agree with that blog post, for the most part. I know our most recent migration to Drupal 7 (still ongoing, about a year after I started working on it in my spare time; it's the most painful migration I've ever worked on, including migrations across CMS and languages...this particular site has been migrated from OpenACS->Joomla->Drupal 6, all of those jumps were faster and easier than the jump to Drupal 7).

I'm very uncomfortable with the direction of Drupal (the willingness to break backward compatibility without credible paths forward for users being the most painful for me). I've always assumed mostly it's due to my own ignorance, but this blog post confirms some of that discomfort is not just me not knowing what's going on. There's been a big move of putting things into the database that once resided in code, and this makes it really challenging to figure out how anything works. The abstraction runs really, really, deep, almost absurdly so. Trying to figure out what makes a page happen is an exercise in frustration a lot of the time, as it has pieces that are in code, pieces that are in Views, and pieces that come from other mysterious locations (there's stuff that I just assume will always remain beyond my kin).

Drupal 8 seems to be further down that path. Certainly there are improvements, but it just requires so much knowledge to even begin to work on anything in Drupal that it's incredibly frustrating for someone that dips in every week or so, to add new functionality or fix a bug on my company website.

Earlier in this migration, and at several stages along the way, I've assessed whether I could move our site to something else with less effort and end up with something nicer (both for users and to maintain). I opted not to at several points along the path, but I'm still not convinced that was a wise choice, even as close as I am now to launching a D7 version. Frankly, I dread working on the damned thing. It's just not fun.

As for github, I don't actually blame an OSS project for not wanting to move into a proprietary source hosting platform. I have uneasy feelings about my own projects being hosted there, and plan to work on a gitlab or Phabricator or something else deployment eventually, so we are not beholden to a proprietary third party (github is a great product and they seem like great people, but so was SourceForge at one time).

Anyway, if there were some other thing (I don't like using the term CMS, because people often assume I'm wanting a CMS...when "content management" is effectively 0% of my use case for Drupal) that had integrated forums, ticket tracker, shopping cart with subscriptions and licensing, and a way to manage docs, and it didn't require mountains of custom code, I would have already moved away from Drupal. I've considered building something custom with a framework, but this isn't my core competency or interest; I just want to put some pieces together and sell and support the software I do want to work on full-time.

after almost a decade building everything with Drupal, i realized that only one site (a community blogging site) really benefitted from it.

From what I've seen of D8 it is going to be so different that it will almost certainly be cheaper to rewrite it in a simpler way (something like laravel for instance) than attempt the migration. For all but the most trivial sites, that is.

*edit: Oh, and are you aware of backdropcms? it is a fork of drupal 6 that is maintained.


Spent too many hours with drupal over the years and I will stick with it, D8 has similar interfaces with D7 though the framework is totally revamped.

I also failed to find a good alternative, tried many but always came back to Drupal

How recently was that? They made a big public effort during the Drupal 8 project to become more open, welcoming, and responsive, and it would interesting to know if that made a difference.

My most recent interaction with the Drupal community was today. I finally got a response on a couple of patches I submitted a few weeks ago (one committed, one got useful feedback, which is great!), and I followed up on a patch that I'd contributed that someone else used and found to resolve their problem (but still has no response from the maintainer, after a few weeks), and checked on that core include patch, which has no reply, even though I submitted a patch against D8 in hopes of getting a reply (I figured maybe all the core people were bored of Drupal 6 and Drupal 7).

So, no. The recent push hasn't changed much in my experience. It could just be bad luck, and my own inability to spend more time on the problem of introducing myself or being involved. Drupal will never be my core job or something I can spend significant time on. But, I've never had such a hard time getting feedback on patches before, with any still active project I can think of, and I've been submitting little patches and making bug reports against OSS projects for a long time.

If Drupal has a welcoming and helpful community I've had trouble finding where they hang out. It is definitely not in their issue tracker.

I am sorry. The issue tracker is a really vast place and it is indeed not the best place to start. I would recommend https://www.drupal.org/core-office-hours for example. However: right now is perhaps not the best time, we just had Drupal 8 out and everyone is resting. And there's Thanksgiving and then Christmas upcoming. I am in #drupal-migrate on freenode, however , very very often and looking for contributors to that effort :) #drupal-contribute is a good place too, it might look quiet now but try saying the magic words "I am new here and I'd like to contribute". Sooner or later (again, it's thanksgiving weekend) those words will conjure a welcoming guide :)

Thanks for the pointers.

I think this may be where part of the breakdown comes in. I don't want to be a "Drupal developer", don't want to devote huge amounts of time to the project (though I may release a couple of modules of the stuff I develop for my own use at some point), and don't necessarily want a guide (though someone that answers my questions about the incredibly complex abstractions in Drupal would certainly be helpful, I don't believe I'm entitled to such).

I want to fix bugs and add missing functionality that prevent me from launching my site, send the patches to fix those bugs to the people who maintain the component or module, and then move on to the next problem in my deployment. When I send those patches in, it's because I hope to never have to deal with the problem again. I've been casually poking my head into Drupal every now and then for years. I'd almost be willing to say the problem of casual contribution is worse than it was, say, 7 years ago.

That sort of casual contribution has rarely been an issue in the past with other projects; I've got patches in dozens, maybe hundreds, of OSS projects at this point. I don't mean to overvalue it and say this is priceless knowledge I'm imparting. Often it's just a couple of lines of code or a documentation correction, but each one adds up to a slightly better project. And, it's kinda how this stuff is supposed to work. Enough eyes makes all bugs shallow, that kind of thing. If I have to maintain a custom fork of several modules, and a piece of core, just to keep my site going, my experience becomes drastically less pleasant, and my reasons for using Drupal become less compelling. Much of the automation I have in place for staying on top of updates and such breaks down at that point.

I'm sounding grumpier about it than I actually am, probably, as I don't begrudge anyone not doing something for free. I'm happy to have all of these components that mostly work well together, and do useful stuff, for free. And, I'm willing to put in the work to make it suit my needs. But, when I see the suggestion that it's an excellent example of a helpful community, I have to take exception, as it's definitely not been my experience. Drupal forums and ticket tracker responses can be downright dismissive, at times, particularly when someone is coming from another system or framework and doesn't understand the Drupal jargon (which is vast, confusing, and often weird).

Again: I am sorry. This is something the project needs to figure out: how do you deal with thousands upon thousands of issues? Just of major issues there are more than a thousand! So if you post a random patch the chances are , alas, very high it'll be lost in this vast sea. Again: this is not ideal, hopefully we will figure something out.

OTOH, if you need help http://drupal.stackexchange.com/ is a good place to ask.

Believe me, I'm sympathetic. I work on a project with a million or so users, and a very small team supporting it. I'll try to find ways to follow up more directly on stuff like this. As I said, IRC (and the specific IRC channels of the modules I use, like drupal-commerce) has been occasionally helpful, and can occasionally nudge someone into looking at my tickets/patches. I've got a handful of new patches that I'd like to submit, will try to follow up more directly with the relevant devs, rather than just dropping them in the issue tracker and forgetting about them.

And this is where being a contributor pays off: if $random_guy comes in and says hey look at this patch, people might or might not and it might get in or might not. It's an entirely different thing when someone we know does the same, for so many reasons. One, there's the whole karma thing. Second, if I know this is not your first rodeo then I will be much more willing to invest my time in it (hint: time is the scarce resource hence the currency in open source world) because I'll know you already have coding standards, obvious API usage etc down pat.

All true...but also makes it not friendly to new people. ;-)

You need to give us a chance to be friendly. If you a drop a patch in a queue which has 10K other patches and then, as you said, move on then the chances of this patch being picked up is quite low.

Quite funny, but I had an experience with Ansible that's similar to the one the other commenter had with Drupal. I have a very trivial pull request[0] which I have been trying to get reviewed & merged since March. It's only around 20 lines of code, but I've been asked to rebase it due to merge conflicts multiple times. I did so, but nothing came out of it on either of those occasions.

[0]: https://github.com/ansible/ansible-modules-core/pull/901

Yeah, that's the risk with having a process with exactly one reviewer for a component. There really should be some way to have someone else take over if the main maintainer isn't able to complete it.

Seconded. It's not for nothing that drupal has the catchphrase "Come for the code, stay for the community."

But as others note here, it's not that the support forum gets particularly snappy response for every contributed module. It's the in-person community that people talk about. Drupal meetups, local events, and conventions, are far and away the most welcoming and FUN environment I've seen in any OSS project. We do large, mentored sprints for first time contributors, the top contributors are always happy to help out random newbies... And the whole experience is so friendly that we write musicals about it (no joke!) . I've encountered other communities that are friendly, but none that go as far as Drupal in the personal connection department.

React. I'm constantly impressed by Ben Alpert's[1] patience and response time and ability to answer questions all over the internet.

1. http://stackoverflow.com/tags/reactjs/topusers

I appreciate you saying that. Thank you.

How do you do this?

I try to be helpful whenever I have a chance. When I first adopted React, my coworkers were frustrated that whenever they Googled for errors they didn't find anything, so I committed myself to writing answers to all the reactjs questions on Stack Overflow for a few months. I do my best to be helpful when responding to issues too -- though I've had less time to spend on maintaining our GitHub repo lately and consequently been less helpful.

The reasoning behind that question doesn't make any sense. The idea of contributing to a project that you're not personally interested in, solely based on an external reason seems wrong to me. That's true for-pay software development, but is even more true when it comes to open source development.

I think you'd be a lot better off looking at projects you are currently using, or in areas that are interesting to you, and hanging out in their IRC channels, reading their mailing lists for a while, checking their bug tracker, and tinkering with their code.

At the very least, you should clarify how you want to help out, what you're interested in doing, and what your skill set is.

The way it's phrased right now, you'd get more meaningful answers just randomly clicking projects on GitHub.

PostgreSQL (I've always been hugely impressed by the team, though not myself a contributor).

+1 for Postgres. It's one of the most awesome OSS project: great development team, community, large codebase (which is well organized and very modular), has a very good code and end-user documentation, always working with a significant number of important computer science problems and concepts (ranging from easy to very complex ones).

[Disclosure: I'm not a Postgres contributor myself. In the past, I had been working on Postgres core and related projects at EnterpriseDB (a Postgres company) for 5+ years].

This. I actually joined HN years ago just to praise Tom Lane for his outstanding support (I hope I remember this correctly).

Ditto. The community seems to have a remarkable ability to take the high road.

Definitely agree. The PostgreSQL Community began my serious involvement with Open Source Software, about 15 years ago. It's one of the best groups I've ever seen, due to their patience, friendliness, encouragement of others, and willingness to share info/experiences for mutual benefit.

It doesn't hurt that being very good with PostgreSQL is useful on a CV too. ;)

I'm the lead for LXQt, the Qt-based desktop environment: http://lxqt.org/

I'm very happy to say that everyone on our team is kind and supportive. I'm also happy to say this is not a unique trait of our team, it's something you'll see in a lot of open source projects.

Feel free to shoot me an email (in my profile) if you're interested in LXQt.

Hey nice, a new release, I was getting worried that the project was going down.

Nope, we're still active, but we're suffering from manpower shortage ;)

The JuliaOpt / JuMP (Julia for Mathematical Programming) team has been responsive and supportive. When I file a Github issue at a random hour, they respond in minutes. The quality of code and testing is outstanding, and frankly for a project started in academia that's rare. In the dynamic world of pre-1.0 Julia, they've set the standard for 3rd party libraries, accommodated deprecations from the language immediately as versions change, and overall driven the advancement of scientific computing.


Edit: Here's a great example of the JuMP team debugging somebody's particular script, running it, and benchmarking it - all because somebody filed a Github issue. https://github.com/JuliaOpt/JuMP.jl/issues/614

Rust has a great community: https://www.rust-lang.org

Seconding this. I think rust meets all criteria, and their issue labeling encourages newbies to get started fixing issues, where more experienced members will offer mentoring for fixing easier problems.

I thought Rust's community is infamously ultra-polticized and prone to witch hunts?

Any example of this?

Perhaps that was a broader comment about Mozilla?

Not sure. I didn't notice any witch hunts there.

Rust is generally awesome.

Also check out Servo (an experimental web rendering engine written in Rust), which shares a lot of the Rust community, and is beginning to prove out some of its components for inclusion in Firefox.

Rust's IRC channel is amazing - supportive, thoughtful, and non-condescending. This is in sharp contrast to the Go one, which is an absolute cesspit.

I remember enjoying Go's IRC room early on, but it has gotten …more difficult. I fear this is inevitable and will happen to Rust, but it hasn't yet, which is an extremely pleasant surprise.

Thankfully (but still unfortunately), the Go community Slack does a great job of replacing the IRC channel with more civilized/productive discussion.

The IRC channel, like many, is often not a friendly place.

If this is the case, I think Go people should remove IRC and add Slack from this page: https://golang.org/help/

No! No more slack!

* Rocketchat * Gitter * Let's Chat https://github.com/sdelements/lets-chat * Baloons https://github.com/rickyrauch/Balloons.IO * Friends https://github.com/moose-team/friends * Chats https://github.com/acani/Chats * HackChat https://github.com/AndrewBelt/hack.chat * Jabbr https://github.com/JabbR/JabbR * qTox https://github.com/tux3/qTox * TorChat https://github.com/prof7bit/TorChat

I bet that they can be just as friendly using an open source application on golang-based kubernetes clusters.

Agree 100%. The Rust community is excellent.

In my experience the Rust community exhibits a cloaked form of tyranny.

On the surface they are very vocal about supporting 'inclusiveness' and 'non-discrimination' and 'tolerance'.

Yet they use a rather harsh and subjective code of conduct to control and police the members of their community.

Last I knew they even had a moderation team who doled out punishment without any due process nor any oversight of significance.

It's also quite common to see any comment here (and at certain other discussion forums) that doesn't paint Rust in a glowing light to get modded down, even when the observations made are completely correct, valid and legitimate.

As long as what you believe fits within the scope of what they believe, or corresponds to their narrative, then things are fine.

But beware if you happen to hold a differing opinion!

In fact I'm posting this using a throwaway account because I anticipate that members of the Rust community won't react well to my observations, and will respond with downmods.

Disclaimer: I am on the Rust core team, although less active nowadays.

> Last I knew they even had a moderation team who doled out punishment without any due process nor any oversight of significance.

The oversight for the moderation team is documented here: https://github.com/rust-lang/rfcs/blob/master/text/1068-rust...

> It's also quite common to see any comment here (and at certain other discussion forums) that doesn't paint Rust in a glowing light to get modded down, even when the observations made are completely correct, valid and legitimate.

The moderation team isn't responsible for downvotes, so we should be careful to separate the issue of community moderation from downvotes on hacker forums. With that said, I should note:

• I rarely see comments critical of Rust downvoted on HN. I do reply to them if I disagree, but I never downvote them.

• On Reddit /r/rust, I rarely see comments downvoted ever—there's even a prominent warning not to use the downvote button for disagreements.

• I'm rarely ever on Reddit /r/programming at all, but my impression is that the moderation is all over the place no matter what the topic, so I don't see Rust as particularly special one way or another.

The Rust community is firm about technical correctness, like any good systems programming project. And, like any good and ambitious systems programming project, technical correctness is nonobvious and no one person is going to be right about everything all the time, because there's entirely too much to know and too much to keep track of.

Unlike many systems programming projects out there, the Rust community has an aversion to screaming matches, personality cults, and other attempts to enforce technical correctness via dominance tactics (not only because they're awful, but also because they don't work - see the things Ulrich Drepper got wrong in glibc, and Linus Torvalds got wrong in Linux, because people could not tell them that they were wrong). Responses to technically incorrect claims are usually firm but gentle, technically straightforward and non-insulting. If someone persists in those claims, they will not find a constant willingness to argue.

It is entirely possible that you have seen observations that were not correct, valid, and legitimate, made by people who are expecting to be told they are wrong in the ways that the old glibc community or the Linux community would tell them that they are wrong, and never took a quiet and friendly correction seriously.

As a member of the Rust community, I value your opinion, however I am not at all sure where you've observed the above described behaviour. The Rust community is the first one I joined without fears of being put down by the community because of my lack of experience.

The IRC channel is among the most helpful of any programming language I've seen so far, users.rust-lang.org gets multiple helpful responses to practically any question and the subreddit is very helpful for keeping up with the latest projects and take in community input.

I also observed that the Rust core team and community are very aware of its current shortcomings and are working on them with the community via the RFC process.

It's also very easy to contribute, you don't have to sign any CLA etc., and a member of the core team will even mentor you if you wish.

It would be helpful if you offered some concrete examples instead of being this generic.

I think I was being unclear since I think you're agreeing with me. As long as you're not insisting that you're right and everyone else is wrong, you will see a friendly and patient and helpful and vocal community. And, fortunately, most people are like that.

There are a few people who think they need to argue loudly and harshly to be listened to (possibly because they've learned that that works in other projects). Those are the folks who are likely to see little patience but also little argument; they'll get downvoted on Reddit and ignored on IRC. Which is good for the community, since any effort spent arguing with them can be spent working with people who are actually there to learn.

The easiest example to see might be when people show up on IRC picking a fight (whether against something Rust does, or technically in favor and deriding some other language). They'll get one reply saying "Yes, but there are always tradeoffs and other languages are great too", one reply saying they're off-topic, and no more engagement. Which is not to say you can't show up on IRC asking for a language feature! As long as you don't say that anyone who leaves the feature out is stupid -- and again, most people don't say that -- you'll get a helpful response.

> Last I knew they even had a moderation team who doled out punishment without any due process nor any oversight of significance.

Member of said moderation team (and partially behind its design)

We have due process. See https://github.com/rust-lang/rfcs/blob/master/text/1068-rust...

Yes, the code of conduct is a bit subjective. That is why there is an entire moderation team, as well as core team oversight. I don't find anything harsh in the code of conduct, though. Anything specific you'd like to point out?

Enforcement will mostly be done only in blatantly obvious cases anyway.

I'm not very involved in the community, and I have little experience with the language, but my impression with the rust community so far has been very positive. It's one of the few places I've been where unproductive conversation is moderated gently but firmly. The only squashing of opinions I've seen has generally been for pretty trolling or very rude (from beyond normal bluntness) behavior. Maybe I've not seen the same things as you but my experience has been overwhelmingly positive.

What sorts of subjective control and policing have you seen in the Rust community, exactly? It's certainly stricter about enforcing things that HN or Reddit would let slide, but I don't see that as a bad thing, necessarily.

For that matter, what sorts of valid criticism do you see get downvoted? In my experience the Rust community is relatively honest about the language and ecosystem's shortcomings.

Yeah, you're in the wrong.

The problem is that you believe that your opinion is the politically neutral one, and it isn't. It's just that the Rust community aren't a bunch of libertarians, which stands out considering how much of the tech community are, and how wildly that skews their perspective.

From a point of view outside of the tech industry, the Rust community don't do anything remotely unusual. Even much of the tech industry, outside of the SV reality distortion field, do much the same thing. They just try to keep garbage from the outside world from infesting the community and interfering with the work. Everyone else does that - it's really the only way to get anything done, short of having a totally homogeneous work environment.

Of course, a lot of you guys would prefer a totally homogeneous community. If Mozilla or the Rust community put you off... no big deal. It's not like there aren't plenty of others around who are quite happy to work with the Rust community because of their policies.

> But beware if you happen to hold a differing opinion!

If you hold a "differing opinion", and choose to take that into the Rust community with you... what do you expect? Keep your rubbish to yourself, and there won't be a problem.

FWIW holding differing opinions is fine. We try to keep discussions technical -- and differences in technical opinion are entertained. If a discussion does go into the social or political sphere (e.g. a discussion about the community itself, or the code or conduct), differences in the other opinions are entertained as long as the discussion is civil.

(Well, really, differences in any kind of opinion are entertained as long as the discussion is civil and your opinion isn't actively alienating someone else. "Difference of opinion" isn't something that affects your membership in the community at all, civility is)

Can you give an example?

I have some speculation as to what you're referring to, but it's easier if you just say.

I don't know the first thing about the Rust community and have no intention of ever writing a line of code in the language, but reading your post I'm reasonably sure you're in the wrong, whatever the situation was.

Aside: I'm trying to improve the newcomer experience in Rust, so if anyone has any pain points they'd like to mention, or general things which they think could be improved, let me know!

This applies both to Rust the compiler, and Rust the general community.

I just made my first PR for rust and it's been a pretty positive experience.

I've made small code contributions to Firefox and Servo, both Mozilla projects, and I have nothing but good things to say about everyone involved with the two projects. As a newcomer to both, the respective teams were very welcoming, helpful, and most of all, patient especially during the review process.

The ZeroMQ community is incredibly supportive towards newcomers and existing members alike. And ofcourse the people of the community are really smart, because you dont build a scalable and lightweight (and popular) messaging framework unless you are smart.

I have pitched in with a few (simple) commits once in a while and am looking to contribute more regularly.

Here's all the code: http://github.com/zeromq/

And a very comprehensive guide: http://zguide.zeromq.org/page:all

And, the contribution process followed is known as C4: http://rfc.zeromq.org/spec:22

You can get in touch via IRC, which is #zeromq on irc.freenode.net ; Try to linger around after asking your questions, and someone would eventually respond.

You may also send in your queries to the ZeroMQ mailing list. (http://lists.zeromq.org/mailman/listinfo/zeromq-dev)

Some of us also hang out in the #zeromq channel in the Slack group for Golang: http://gophers.slack.com/

I've contributed to a few Python projects, and the experience I had with the IPython and beets groups both stand out in my mind as very friendly. The patch I contributed to IPython was vanishingly trivial. It removed an unnecessary function call in a code path that wasn't even performance-sensitive (I just stumbled on it when looking into a more complex issue). I would have understood if the patch just lingered without being looked at for ages. It didn't address an existing issue, didn't impact the correctness of the code, and barely had any consequence to performance. But, it was quickly reviewed and accepted and the maintainers were thankful to have my contribution. I was very pleasantly surprised, and will certainly consider contributing to their project again when I have time. Likewise, I ran into a bug in the beets MP3 tagging/collection manager and was able to report the issue, discuss it with the author and other contributors to determine the preferred way to handle the situation, create a new unit test and fix, and get it accepted all within a couple of days. Everyone I spoke with was very inviting and helpful. I hope to be able to help them again in the future as well!

The Perl 6 development team is generally good-natured and work to be pleasant to each other and newcomers. http://perl6.org/

The Perl community, in general, has always been extremely friendly and welcoming. That seems to carry over to Perl 6. I can't think of any time I was unable to get guidance quickly via a variety of channels; Perl Monks, IRC, etc. are good places to go. Filing issues about CPAN modules can be a somewhat less satisfying thing (depends very much on the author), but usually also results in something good happening.

I was about to write the same thing. Perl 6 is a great community, and they really seem committed to keeping the community welcoming and engaging.

I fully agree. One of their mottos is "optimized for fun" or short -Ofun, and it shows. Drop by on IRC (irc.freenode.org #perl6) and join the fun!

Apache Tinkerpop: https://tinkerpop.incubator.apache.org

The TinkerPop project is thoroughly documented, questions in the user groups are answered fast, and the R&D keeps pushing the space forward. For example, check out this new paper by Marko Rodriguez (TinkerPop founder and creator of the Gremlin graph programming language):

"Quantum Walks with Gremlin" http://arxiv.org/pdf/1511.06278v1.pdf

Here's a quote from a community member:

  Something like 13 yrs ago, I was trying to do server-side Java.  It
  was a nightmare, until I discovered a thing called Apache JServ.

  It was simple, elegant and the developer group was wonderfully
  supportive and well organized.

  Just as with JServ, way back then, Tinkerpop has all the same
  characteristics, and gives me the same feeling of having hit on
  something really valuable that will take me a long way.

  Well ...  JServ morphed into TomCat, and I've used it consistently
  ever since.  I'm confident Tinkerpop is going the same way, so I'm
  only too pleased to help where I can.

  Sincerest regards,
Source: https://groups.google.com/d/msg/gremlin-users/pF577035UpY/M7...

Disclaimer: I am a TinkerPop contributor.

Off the top of my head:

    SCons (when I used it. I wouldn't recommend the project, but I do recommend the community)
    ffmpeg (mostly supportive, but expect you to be mannered too)

The open source project that needs you are the very ones that are unkind, not supportive with less talented teams. Someone needs to join them and lead, to show kindness, to teach how to be supportive of newbies, and to bring talent.

That sounds nice, but in practice it is likely to be an exercise in futility and frustration.

Agree to some extent, but it depends on the team though.

From what I've seen there are many projects that aren't kind, but they aren't too unkind either. Or if they are unkind, it's not by conscious choice -- just what happens when you get people coming from other unkind projects. Not people who want the project to be unkind, mind you, just people who are used to that and okay with it.

Such projects can benefit a lot from a few empathetic community members.

From what I've seen of you in the Rust community, you might be one of the people who has the chops to actually make a large positive impact on a project's community. But for me, at least right now, without practicing a bunch, I think it would be futile and frustrating, and I suspect most people are in that boat.


Yeah, I'm not suggesting that anyone throw themselves into a toxic environment with the goal of fixing things. I'm not one of those people either (but I have tremendous respect for those who are). Just saying that it's not a dichotomy -- there's a lot of space in between kind and unkind for communities which are tolerable and can be improved. YMMV though :)

Can't recommend http://www.onyxplatform.org/ highly enough. Tight core of extremely talented and passionate engineers who are working on an exciting project in a more exciting space.

Onyx really simplifies the idea of data processing. I would recommend anyone using it, since we can integrate with another storage, and processing engine easily :)

Ditto this. The felxibility of Onyx's design really makes it a powerful tool. And working with it feels very "Lispy" and "Clojure-y" - true to it's platform since it's written in Clojure.

I've always found the Haskell community very helpful and willing to go to great lengths to explain complicated concepts to newcomers.

I would definitely second this. I have never contributed to a Haskell project, so didn't mention it in my main reply, but I was nothing short of astonished and humbled by my experience with the Haskell community when I was learning it. I've never encountered any other community that was so welcoming and willing to bend over backwards for newbies. I honestly felt a little bit bad. I grew up online, and I consider myself skilled at integrating with established communities, being polite and reserved and not expecting to be accorded unearned respect and the like. But after just asking a couple questions in the Haskell IRC channel, I found people willing to have extended in-depth discussions with me even though I was a total unknown. I didn't feel deserving of such an investment of their time and I have never come across it before or since. I consider the Python community to be excellent in my experience, but Haskell is truly god-level tier. They changed what I even thought was possible for a programming language community.

Visit https://openhatch.org/ -- they exist to match people with good open source projects. Good luck!

FWIW, I've tried to find interesting things through this page a few times and have utterly failed. Maybe I'm missing something, but the search feature is a bad aggregator of issue trackers, without useful filtering or pre-selection.

+1 They also help specifically label contributions that would be good for newbies to try.

Looks down? :-(

I would encourage you to check out OpenStack[1]. As a community we are trying really hard to be welcoming and helpful to new contributors.



Great community, has a very friendly Gitter chat room where people collaborate, very nice maintainer as well.

syl20bnr bristles too easily at any criticism of the project though. I think he would do better ignoring reddit &c entirely instead of acting as PR manager.

Nightscout. Software for people with and affected by Type 1 diabetes by people with and affected by Type 1 diabetes. https://github.com/nightscout

TeX Live https://www.tug.org/texlive/ people are awesome, the output is very widely used, and here for the long haul.

I'm biased, but I'll say some stuff I work on and stuff that is general integrated into the openstack (and greater python) ecosystem(s) (each project in openstack IMHO has its own culture, so you may need to explore to find a match for you).



Any of the other libraries on:


We (myself and the rest of the oslo team) try to be friendly folks so feel free to drop by on freenode at the #openstack-oslo channel.

Other openstack projects:


The open source world is flouring in 2015.

There is no shortage of amazing teams working on amazing projects on the web.

Its hard to single out just one of them - so its best if we could know more about your background.

If you are unable to find anything that is good enough then just start your own !

Do not be be demotivated - as long as you find it useful - someone else somewhere will also find it useful.

Even simple logging libraries have their audience.

So good luck !

From my (limited) experience, I've been impressed wherever I interacted with developers of: python-requests, salt, rust.

The people working on the redox project have been awesome the times I have interacted with them and can always use additional hands. Everyone there seems to buy into the common goal idea. https://github.com/redox-os

Neo4j welcomes direct and indirect(drivers, frameworks, examples) contributors with open arms. Lots of our employees were community members first.

I'm the tech evangelist at Zalando and co-organize our Open Source Guild. Our engineers fit your criteria and would be open to your contributions:



We have projects in Go, Clojure, Python, Scala, Java ...

I'm a beginner-level coder and my colleagues have been extremely supportive, staying late to teach me JavaScript and reviewing my Python. Let us know if you end up contributing: @zalandotech. :)


I really do enjoy the Nylas team and are well receiving of any issues I find or any support I need developing a plugin.

Yes, I second this.

Rust language! One of the most supportive groups I've ever been involved with.

Right now ReactOS is doing better because they used Indiegogo funding to hire better developers: http://community.reactos.org/index.php/news/years-progress-t...

I tried to post a link to ReactOS via submit to find out I got the "Whoa you're submitting too fast" message, so I lost submit privileges somehow. I apologize if I submitted anything wrong.

Creating a free and open source alternative to Windows that uses Windows apps and Drivers, one that isn't based on Linux is really hard and need really talented people to keep compatibility with Windows.

I think when their 0.4 release is available, it will do better than the 0.3 releases. With Windows 10 giving people privacy concerns there needs to be an alternative that runs Windows apps to compete with Windows that uses Windows drivers.

They just got Steam to work with it and if they get some of the Dotnet libraries and DirectX to run some of the video games, they can put a dent into Microsoft Windows usage.


Yeah I know can run WINE with Linux, but ReactOS is targeted at people who can't figure out Linux but want a Windows type OS.

Why not start contribute to Mozilla?


I think fixing easy bugs are the easiest way to get around and interact.


I've always enjoyed contributing to the Debian community.

correct, debian really should be on the top here.

Qt and Qt3D. I haven't contributed as much to Qt as I've wanted to, but the little I did was met with support and great mentoring. They are a very talented group.

If you're interested in physics, mathematics or other sciences, I'd recommend SciPy. I attended one of their conferences and met many really nice, kind and talented people. (Open Source conferences and meet-ups are a great way to get to know people and kick-starting contributions.)

I've found that OS communities have largely come a LONG ways over the last few years. Most are helpful and are full of smart, nice people. That said, there are always going to be a few less than cordial people in every crowd.

When picking an OS project to get involved in, there are only two suggestions I have:

1. Make sure there's a fair sized community behind it with > 1 committer (not much worse than getting involved with a project that just dies) 2. Make sure it's something that's going to hold your attention for a good while and it's something you're passionate about. Generally, contributing to OS projects isn't really a fly by night thing (of course depending on the level of involvement you're looking for). If you get involved with a project that has a great community but isn't something you're actually passionate about, chances of long term involvement aren't really high.

From personal experience, the Python community has been the most enjoyable for me to date. Filled with academics and hackers, scientists and CRUD so developers, I have yet to see another community filled with such diversity from which comes intelligent, positive discussion and results.

It's hard to just "pick a project" and start contributing. You need a little bit of passion, excitement, or just plain need. Look at the tools that you already use and depend on and start there.

Odds are you know how to set them up, configure a few things, and the like. In most cases, a few pull requests to the docs are not just welcome but greatly appreciated.

(I've been managing projects since 2007 and participating since 2001.)

Awesome open source crews:

* Rancher - https://github.com/rancher * Weave - https://github.com/weave.works * OpenStack (IRC) - irc.freenode.net #openstack * Kubernetes - https://github.com/kubernetes/kubernetes * Docker - https://github.com/docker * EmileVague - https://github.com/EmileVauge/traefik * Enspiral - enspiral.com * MetaMaps - metamaps.cc

....That's an incomplete list of projects whose teams have put up with me, and even gone so far as to ask for more. I've worked in OSS for a little over a year now, and I can heartily say that I haven't regretted the decision once.

I've been impressed with working on [syncthing][]. The team is very open to discuss anything that comes up, which makes it easier for me to tackle things.

I've also been impressed with the user experience of the product. Installation and configuration was much easier than I expected, and then it just runs!

[syncthing]: https://syncthing.net/

Epic's Unreal Engine 4 team and the community around it is an amazing kind, supportive, friendly and talented group of people.


Its one of the reasons I got back into game dev and chose to use this engine.

The engine itself is state-of-the-art and the improvements per each release is AWESOME.

As the engine is a commercial offering that is open source, there are a lot of people involved. This makes it easier for new people to get onboard. They twitch on a biweekly basis http://twitch.tv/unrealengine/

Have a look at the last two release notes for an example of what they get up too.



If I recall correctly, 4.11 is more a stability release then feature release. It is the release currently being developed. Check out the Trello board to see what features are being developed where


I'd advise to sign up for an account, link your github account, have a look through and join the forums.

I've got the same account name on there if you have any questions.

Is Unreal Engine really open source? Doesn't look like it to me.


Yes it is open source, but not libre / free. i.e: not GPL / BSD / MIT style etc...

If you want to view and modify the code you can.

So it is open in that sense.

That doesn't sound like the open source that I know.


Yep. ESR has opinions, and reasonable people disagree with them sometimes.

I think the pithy phrase you were looking for was "It's open source, but not Free Software.". :)

No, it is more like "The source code is available if you register but it is not Open Source and not Free Software".

Is the source code package you receive complete?

If it is, then you must remember that sending a snail-mail request to get a snail-mailed set of disks in return, and being required to send the money required to cover the cost of making a copy of the disks along with your request is a 100% permitted way to fulfil the source code distribution requirement of the GPLv2.

I haven't received the source code package and don't intend to do that.

The license on the Unreal Engine source code is not GPLv2, it is a EULA that does not meet the Open Source Definition.

https://www.unrealengine.com/eula https://opensource.org/osd

> The license on the Unreal Engine source code is not GPLv2...

I'm aware of that. I was making you aware that one of the canonical Free Software and Open Source licenses permits the source code provider to require requesters to use a rather inconvenient request method and cover the provider's actual duplication costs. This means that putting source code behind a free-of-charge authorization wall would still be 100% in compliance with the GPLv2's source code distribution requirement.

> ...it is a EULA that does not meet the Open Source Definition.

That doesn't make Unreal Engine closed source. Unreal Engine is open source. It just does not fit under the umbrella of ESR's Open Source philosophy.

Much ink was spilled decades ago about how shitty it was of ESR to name his philosophy in such a confusing way. I expect that we'll never be rid of the confusion.

It even got you confused! Notice how -in my reply to richardboegli- [0] I write "Free Software" with leading capitals (indicating that I mean libre software, rather than gratis software), but I do not write "open source" with leading capitals (indicating that I mean that the source code is available, but that it does not necessarily adhere to ESR's Open Source philosophy).

Make sense?

If my argument was not convincing, please do me the favor of answering the following question: "What is the English phrase that describes the opposite of 'closed source software', (that is, software whose source code is available for perusal, rather than software whose code is not)?".

[0] https://news.ycombinator.com/item?id=10643807

Thanks for the explanations, that explains your GPLv2 post well.

As far as I know there is no phrase that describes software whose source code has been intentionally publicly released under a license that doesn't meet the OSD/etc. I definitely wouldn't take the lower-case "open source" as meaning that. Perhaps "proprietary public source code"?

> As far as I know there is no phrase that describes software whose source code has been intentionally publicly released under a license that doesn't meet the OSD/etc.

Were you -perhaps- born in the 1990's or later? As I remember it, "open source" was commonly used to describe programs that were not "closed source". Additionally, I expect that if we were to ask a few thousand native English speakers either "What is the opposite of closed?" or "What is closed's antonym?", the overwhelming majority of them would reply "open".

I get that you don't want to concede the point, and that you might feel that acknowledging the validity and reasonableness of my position would serve to weaken your own position. However -in truth- this strengthens your assertions, as it indicates that you've put thought and consideration into your positions, and -crucially- are willing to revise your view of the world when it becomes clear that your view doesn't match reality.

Twitter "loves" zealots. [0] Most reasonable people don't.

[0] Note that a zealot is different from a hard-liner. RMS is a hard-liner who has put a lot of thought and consideration into his positions. A member of $SOCIAL_MOVEMENT who primarily interacts with the movement by frothing about it on $SOCIAL_MEDIA is a zealot.

Bingo, that is the concise version of what I was trying to say.

I think the SocketCluster community meets this description (I'm the main author). Especially on the kind/supportive side. It's relatively small (about 60 people in our chat group), we are not supported by VC funding of any kind so everyone is just doing it for fun (and to please the community). Based on the experience I've had using Gitter (chat) to get assistance on other projects, I'd say our helping/chat culture is among the best.

Also if you have a truly good idea, it will be heard and implemented.

Website: http://socketcluster.io/

Gitter (chat): https://gitter.im/SocketCluster/socketcluster

I think this 'niceness' comes from being a small, dedicated, growing community based around learning and having fun. If the community is already large and successful, you will just be a small cog in a big machine.

I'm not seeing this mentioned at the top level, so I'll say it. I'm impressed with the team and community of Go:


A few great points:



It's the first language/open source project for me that I consider having "the" community, or at least one I care about being a large part of. I was mostly doing C++ before Go, and that didn't feel like something that had a single unified community around - there might've been many different ones.

But yeah, I've really been enjoying Go, its community and the project's future prospects.

If you're into games at all, I would highly recommend the Godot Game Engine (http://www.godotengine.org). They are very active on IRC and in the forums. If you have a question, you'll almost certainly get an answer. They are also are very welcoming of contributions.


Django Under The Hood was primarily a conference about love and acceptance of all fellow beings, I think :-)

I second that, Django is the first word that popped into my mind when I read the question. I think Django exemplifies what a great Open-Source software community is.

Open edX, the stack powering edX.org, is a very interesting (and useful!) project to contribute to. The community and the reviewers are very friendly. There are byte-sized tasks available to get started, and you will get guidance on the tickets and PRs. It's a large Django code base, and changes you make impact millions of students within a week - as real and concrete as it gets. : )





Apache Mesos and it's ecosystem (Apache Aurora, Marathon, Apache Myriad, Chronos etc.) has been the most kind, supportive and talented ecosystem of open-source projects.

It's a community of individuals who are very talented, patient, helpful and inviting.

Disclaimer: I work at Mesosphere, and one of the co-founders of Apache Myriad.


Talent off the charts. Very nice people, and very supportive.

Mozilla: Firefox accounts content server is for example very awesome with an amazing team and a lot of bus for beginners


I found the community around Squeak (http://www.squeak.org/) to be extremely pleasant and supportive some years ago. I suspect the offshoot community around Pharo is similar.

Relative 'new comers' to the block, the Ionic Framework has an amazing hands on team behind it and the community as a whole is fantastic. http://ionicframework.com

If you're interested in iOS & Android dev / automation tools you should check out https://fastlane-tools and https://www.bitrise.io/cli . The two projects have a fair amount of overlap, but handle a couple of key concept differently (e.g. built in modules in fastlane vs decentralized step library in bitrise). I'm more than happy to help you get started if you would decide to contribute to bitrise

FreeBSD has a kind, international team of developers. It may be a scary project to contribute to for beginners to open source because it is an operating system, and people have some apprehension about improving operating systems.

www.KDE.org in general, Krita team is considered very friendly and supportive.

I've loved contributing to Krita. It's also heartwarming seeing the lead contributors doing things like sending out stacks of postcards to donors, and great that IRC is for both devs and users.

I'm pretty partial to RethinkDB. They were my first contribution to OSS.

PlatformIO: https://github.com/platformio/platformio

The author has gotten involved personally to help me with issues I was seeing. He provided advice on architecture and use case, and he does an extremely good job of keeping the product current.


Scikit-learn is pretty great.

Very appreciative, smart, and plenty of room for beginners.

Seconded. I found the scikit learn guys very helpful.

Although, they seem to get alot of requests "hey i'm new here, what can i do?" So try to start with a more concrete question than that.

I recommend looking into re:dash, which is an amazing and widely used data collaboration tool for your data. Arik Fraimovich is doing a great work with a growing community of contributors.

https://github.com/getredash/redash http://redash.io/

Disclaimer: I'm the founder of EverythingMe, re:dash was born in one of our hackathons but have since become its own beast.

Can I ask what are some of the differences between redash and a tool like Apache Zeppelin?

From my experience, SDL, Ogre3D, and Dragonfly BSD were great. There are other projects I've made contributions to, but many of them are a lot more challenging to engage with.


I've had very good experiences with the OpenBSD and the FreeBSD communities, too. As long as you do your homework and the answer you seek isn't in the documentation or FAQs, they'll go to the ends of the earth to help you out. This is really valuable for seriously hard problems.

You are kidding aren't you?

If you are interested in javascript, rackt[1] team is working on awesome stuff.

[1]: https://github.com/rackt

Octave and Mercurial. I'm involved in both. Come by, and if I see anybody being even slightly unpleasant, I'll be sure to call them out and help you feel welcome.

Hugo[1,2] is pretty nice. Very responsive team too.

I like the discuss forum[3] they have, it's not particularly high volume and people are pretty good to each other.

[1] http://gohugo.io/

[2] https://github.com/spf13/hugo

[3] https://discuss.gohugo.io/

No doubts: Elixir :)

Hope it helps

i had a fantastic time contributing some code to the ghost.org blog platform. they are incredibly well managed, fantastically transparent, and provide a great deal of support for people contributing to the codebase. very much an a+++++++ would contribute again situation.

Probably the thing that sets any receptive project is its ability to identify areas where it needs help and setting aside well defined (and documented) projects in those areas. In many projects, there's lots of work needed to be done but the priorities aren't obvious and so lots of contributions get left on the floor because they're just not in any way priorities for the active maintainers. it takes lots of work and maturity for a project to advertise this sort of stuff which is why these situations seem few and far between.

Regardless, try to invest time in filling in the current needs of projects rather than unsolicited work. some unsolicited work (bugfixes) is easily accepted, but features are often hard to incorporate especially if they're not aligned with the short term goals of the project.

@antirez is all of the above to an amazing extent, however redis is one of the hardest projects to contribute code to from my own experience.

The community is awesome and very friendly and helpful though, and I reckon most of my contribution to redis has been as a community member helping out others or getting involved in discussions of redis' future, which is also a great way to get involved.

Jinteki.net: a platform to play Netrunner in the browser. We welcome contributors and have a Slack where devs can ask questions. Send me an email if you want an invite.



openFrameworks is extremely supportive, built from the ground up using volunteers, receives regular contributions by artists giving code back, and is in constant need of quality control (so many platforms to support natively...)


It is a bit more than a open source project, but I really like the community around the https://indiewebcamp.com

I wrote in more detail about it half a year ago: https://jeena.net/indiewebcamp-2015

I'd have to say NetSurf (http://netsurf-browser.org).

I'd barely joined the IRC channel and was discussing UI enhancements when it was mentioned I could have my own branch on their private Git repo server if I wanted :D

That was hugely welcoming, in my book!

ScummVM does! - http://scummvm.org/

The http://hood.ie/ community is nice. Also, I was rather happy with etherpad’s community: http://etherpad.org/

I cant say this without bias, but being a welcoming project has been one of my main focuses with http://github.com/pouchdb/pouchdb

Most open source project teams are decent except Mozilla,which is vindictive at best.

SQLAlchemy - Great docs, well programmed, very extensible/flexible/powerful.

Lucee has a very active community and there isn't the division and disagreement I've seen in other projects.


Surprised that no one mentioned Facebook's Presto project: https://github.com/facebook/presto

Presto team is just awesome.

If you're interested in Python and Lisp, Hy (https://github.com/hylang/hy) is great. They're welcoming and funny.

Wine's an amazing open source project, a compatibility layer project for running windows applications on POSIX-compliant OS's (OSX, Linux, BSD etc) started 22 years ago and still going strong. The devs are super talented and contributions are always welcome.

I've been contributing there and my so far my personal experience has been positive, fun and challenging at the same time :D

There's literally a ton of different things that you can contribute on and while there is some initial friction in getting patches accepted, they always make sure to point you towards the right direction to get your patch accepted. They also hold annual conferences (wineconf).

Check out their website for more info http://winehq.org/

More important to me--Which companies have kind, supportive, talented teams?

This might be interesting as a similar "Ask HN" of its own.

I'm on it, once I figure out how to do an Ask HN!

I decided to ask this exact question!



XVim (XCode Pluggin for VIM-style bindings) https://github.com/XVimProject/XVim

In the author of Semantic UI, if you're interested in working on the project you can always email me personally and start a dialog jack@semantic-ui.com

If you're interested in code review / project management platforms, the ex-facebookers behind the long-running tool, Phabricator, are awesome.

GraphLab and Spark.

CakePHP. I'm not a big fan but when I was working on a project their chat room was the most supportive helpful I've ever seen.

It's a smaller project, but I've made small contributions to PyInstaller and found the lead people to be very agreeable.

This is the ideal we are striving for at https://github.com/amark/gun , and I hope our https://gitter.im/amark/gun is evidence of that.

We're an Open Source Firebase, with graph data structures and a decentralized architecture. Please give us an email so we can help, mine is mark@gunDB.io .

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact