60

Because it's extra effort to create and maintain such a document, and too many people don't understand the associated benefits. Many programmers aren't good technical writers (although many are); they rarely write documents strictly for human consumption, therefore they don't have practice and don't like doing it. Writing a code overview takes time that you ...


25

You've worked really hard on this. Congrats on all the attention, but sorry it's not engaging. The first thing I notice is there are no issues. To get people to engage you have to be visible in their GitHub news feed. When you start an issue it'll show up for people following the project (not the ones who starred it). So you're community size is actually ...


22

It is actually a requirement of the GPL license to put such a copyright statement in your source files (see here). One point that is common among all copyright licenses is that you can't claim authorship for something you didn't write. This isn't always explicitly written down for contributions to a project, but if you contribute a significant piece of code,...


14

The dry, harsh truth? Documentation is not made because projects can do without it. Even open source projects often face stiff competition. Most of such projects don't start with large shoulders, they start off a bright idea, often a one man bright idea. As such, they can't afford the time and costs of hiring human documentors, even if they offered to ...


10

This is probably going to sound like a bit of a tautology, but if you want to become a major contributor of new features, use the product for a while, find a new feature that would improve it, write up the code to implement the feature, and contribute it. The reason people are advised to start out with bugfixes is that that gets them to dig around in the ...


10

There's no way to accurately do this. For example, who contributes more: someone who commits 1000 lines of code in a month, or someone who spent most of his time thinking really hard, and then committing 100 lines of code that replace the 1000 lines of code? Or how about somebody that goofed off most of the month, then found those same 100 lines of code in a ...


8

As stated by @Andrew - fair is a value statement. However, provided the conditions are clearly stated up front for all to see, it is fair - you have the choice to make if you wish to participate under those conditions, you participate, if not, you don't - what can be considered unfair about that? As far as full assignment - is it fair for a contributor ...


7

No, you may not. "Copyright (C) (year) (name): All Rights Reserved" is a copyright notice. A copyright notice states unequivocally that YOU own the work in question, and people desiring to use the work must deal with you. Note that the phrasing is High Magic: it must be phrased precisely this way. Google's Contributor License Agreement (CLA) means that ...


6

Overview documents such as you describe are rare even on commercial projects. They require extra effort with little value for the developers. Also developers tend not to write documentation unless they really need to. Some projects are lucky to have members who are good at technical writing, and as a result have good user documentation. Developer ...


6

It seems reasonable to me to assume that the dependency project should have its own AUTHORS file and the whole process would reduce down recursively. You are responsible for identifying the authors for code you wrote. The authors of the other libs should already be mentioned in the AUTHORS file of each lib.


6

The GPL does not explicitly make any statement about the licensing of code contributed code back to the project. It might be inferred that any contribution is covered by the GPL as it could be considered a derived work and thus must be licensed under the GPL but it is possible that the contribution is already licensed under an incompatible license and ...


5

Are there things like these and I'm missing them? Things that do the same job as I am describing? There is an excellent book called The Architecture of Open Source Applications that provides detailed descriptions of a variety of high-profile open source software projects. However, I'm not sure if it exactly fills the role you're imagining, because I ...


4

BSD allows derived works that are not, as a whole, BSD-licensed. The danger here is that a new contributor (or, really, any contributor) could submit a code contribution and then later claim that his contribution was not BSD-licensed. Whether this would hold up in court probably depends a lot on the exact circumstances of the transfer -- imagine an ambiguous ...


4

This is one of many topics covered in Producing Open Source Software - a free (e)book by Karl Fogel. If you want to lead an open source project and make it successful, this is very good place to start. It focuses mostly on the people side of a project and on how to present the project to the world.


4

There are no shortcuts. Open source projects are extremely merit based. When you have shown you are capable of handling smaller tasks, you will eventually be trusted with larger and larger tasks. Open source projects also have a lot of drive by contributors who contribute one or two patches then move on, and even more people who "contribute" one or two ...


4

The FSF assignment grants back an irrevocable and unlimited license to your contribution, so you may continue to use your code as you wish. Additionally, it places constraints upon the FSF requiring them to keep the source open. I think copyright assignment can definitely be made fair presuming the right language is put into the assignment not only to ...


4

Yes, a CLA will create resistance. It's meant to do that. The CLA will give your organization more posibilities with the source like, license the source commercially or make their own non-opensource products. But it's always a tradeoff: you lose potential contributors that would have contributed without a CLA. If that's worth it, is up to you and your ...


4

Because there are far more open-source programmers than open-source technical writers. Documentation takes maintenance and time to keep up to date. The more bulky the documentation, the more it takes. And documentation that isn't in sync with the code is worse than useless: it misleads and conceals instead of revealing. A well documented code base is ...


4

On GitHub (and probably other services as well), the standard practice is to include a CONTRIBUTING file in the root directory of the project, with information that contributors needs. GitHub even gives potential contributors easy access to the contents of this file when creating issues or pull requests. Prior to undertaking an effort with the intent of ...


3

A CLA does create a huge resistance for contributing. It requires the potential contributor -often a software developer- to lobby the lawyers and managers of his organization (which may means months of painful, boring, unpleasant, internal lobbying) and to get a legal document signed by official representatives of his organization (in a large corporation, it ...


3

It depends. If the single contribution ended up being half the project, then yes, of course the contributor should be listed as an author. However, that's probably not what you had in mind. It all depends on the fractional workload - how much that one person has contributed compared to everyone else. It doesn't matter if the contribution was a once-off ...


3

It is not uncommon in Open Source to have contributors agree to a contribution agreement which clarifies the copyright situation. You can formulate it either in a way that the contributors keep their copyright, which means that a license change is practically impossible without the permission of every single contributor. Or you can formulate it in a way ...


2

I agree with Martijn Verburg. You should start soliciting contributions right from the start. I wrote a little about this before. The summary of that post is that software rots. If you want to keep it fresh, you have to do maintenance. And the more popular a project gets, the more bugs are going to be found, the more features are going to be added, and the ...


2

You could look into distributed social networks, like Diaspora or Appleseed. Having monoliths like Facebook or Google controlling our online interactions could/has lead to bad places.


2

You can do this by getting to know those already in that position and demonstrating an interest to join them, which is best accomplished by fixing bugs, finding bugs, and participating in development.


2

The authors of your libraries dependencies are not authors of your project. As you have pointed out, not assuming that can get out of control. Typically you just list people who have contributed something directly to the project, in particular code and documentation. If, however, a particular dependency or person has significantly influenced your project, ...


2

Fair is a value judgement, and a little tricky to judge. BUT: As long as the intention is clear beforehand then it is probably understandable even if they go overboard to some persons viewpoint. If they go back on their word or stated intention, there might be a case to answer. And there are other avenues available. If the original was open sourced, then ...


2

The principle behind this strategy is perfectly sound: GPL-licensed projects include BSD-licensed components all the time. Imagine each contributor published his or her contributions on a personal repository, with a BSD license, without involving your project at all. Now imagine that you discovered the code later. You can take that code and include it in ...


1

As a hobbyist open source contributor I would never contribute for free to a project which makes me sign a CLA. When I contribute open source code in my free-time, I do so because I want to help the greater good. I don't want my voluntary contribution to get relicensed under a proprietary license later. Lack of a CLA guarantees to me that my work will stay ...


1

I don't think you can do this, at least in the sense you suggest. Bryan's answer, and several answers in the question linked by gnat discuss several intangible (perhaps we should call them "immeasurable" in this context) productive activities. Specifically, this: I'm trying to think of a workflow where a group of developers can work seamlessly ...


Only top voted, non community-wiki answers of a minimum length are eligible