
Rules for Open Source Success - c-rack
http://hintjens.com/blog:95
======
lighthawk
"1\. People Before Code"

Agreed, but if you are the only user, serve yourself first on the project. If
you determine that you can't serve yourself and others at the same time, it
might be a bad road you are going down.

"2\. Use a Share-Alike License"

First, RMS hates the term "open-source", so it's funny that the idea is to
promote GPL here. On top of that, you call for a share-alike license, which is
a term used mostly for creative commons licenses, which are usually for
creative works.

The license matters, but most people suggest Apache. (L)GPL v3 (not v2) is
also great if you don't want it to be integrated into business products. I'm
not sure why you'd want to use MPL v2 unless you are writing something for a
Mozilla product? If you don't give a crap about your rights, choose MIT. Then,
use a Creative Commons license for creative works that aren't free.

"3\. Use an Zero-Consensus Process"

"Merge first, fix later"

No, don't do that. I understand you are trying to keep other forks from taking
over, but you shouldn't allow everything. I've rejected some bad PRs before
because the developer didn't understand what they were doing. There's no
reason to merge that and then undo it. Explain to them what they are doing
wrong and refuse the merge- then they will either fix it or you save yourself
the trouble of having to undo it.

"4\. Problem, then Solution"

"Every patch must be a minimal solution to a solid problem" is wrong. New
features may not relate to a problem you or others are trying to solve.

"5\. Contracts Before Internals"

Not every project needs its API documented to be successful.

"7\. Write Down the Rules"

Those rules for ZeroMQ are really aggressive sounding. You don't have to use
those. I think it's fine to just point people to docs about the PR process and
information on how to build, test, release, etc.

~~~
belorn
> (L)GPL v3 (not v2) is also great if you don't want it to be integrated into
> business products.

Starcraft 2 has LGPLv3 libraries in it. Its hard to not see Blizzard as a
business nor SC2 as a product.

~~~
_puk
I understood that was the point of LGPL over GPL; it stops the GPL licence
bleeding into other areas if you are simply using a library as is.

This makes it viable to integrate LGPL libraries into commercial products.

~~~
quadrangle
you can use GPL in commercial products. Just follow the GPL. It's not ant-
commerce. Oh, you meant "proprietary" products? The set of commercial and
proprietary is not a union, it only overlaps.

------
pif
> I'm speaking about free software aka open source

After 25 years of experience, one would expect some acknowledgement of the
difference between the two concepts.

~~~
amirouche
The point of view of Peter Hinjens about free software licensing versus open-
source, IIRC: with most open source license people can lock you out of your
work via free software or proprietary licenses whereas with free software
licenses your are protected against that. Also big companies devaluate what's
code worth through very liberal licensing because any fork can be pulled back
into their master because they have the required labor force to merge back
changes, in a way or another, but you don't. So individual and small companies
are better protected with free licenses. IIRC he doesn't stress the so called
"philosophical" stand of free software license are.

~~~
derekp7
This is something I never understood. If I put a piece of code out there under
a BSD style license, how can others lock me out of my code? Yes, they can add
non-free code to their copy and distribute it, but my original copy is still
there. Unless they add a feature that I was also planning on adding, and they
patent that feature, which would keep me from adding the same functionality to
my copy of the code. But how likely is that to happen?

~~~
yarrel
You can find yourself using a computer that is running code you've written but
that you are not free to modify because you are either only provided with
binaries or actively prevented by the software from modifying it.

See iOS for how common this is, which is to say very.

------
stared
I am totally for Open Source (and Open Science), but I dislike copyleft
licenses (cf. "2\. Use a Share-Alike License").

And while Share Alike have their (good) use-cases, IMHO it is bad to recommend
them as the default; the best standard is CC-BY or MIT/BSD.

Why? For me "open" means "open" \- i.e. can be used by anyone, for anything
(not "open, but only for the openness believers... and only of the same
creed"). All share-alike clauses have issues:

\- viriality (you have to get infec... I mean: accept another license instead
of the one you are using),

\- kosher rules (e.g. you can't combine GPL with CC-BY-SA).

So, with the openness, you can't beat the WTFPL
([http://www.wtfpl.net/](http://www.wtfpl.net/)).

~~~
agwa
> So, with the openness, you can't beat the WTFPL
> ([http://www.wtfpl.net/](http://www.wtfpl.net/)).

Please, please, please, do not use the WTFPL, especially if you say you care
about "openness" and "kosher rules." The WTFPL is so poorly written no one
knows what it really means. Consequentially, legally-sensitive
people/organizations may actually have a harder time using a WTFPL-licensed
project than a GPL-licensed project.

If you want a public domain-style license, use CC0
([https://creativecommons.org/about/cc0](https://creativecommons.org/about/cc0))
instead.

~~~
jordigh
The WTFPL is approved both by OSI and the FSF, both of whom had lawyers look
at it. It looks like they do know what it means.

I'm more of a GNU GPL guy myself, but the WTFPL isn't a bad license.

Edit: Ah oops, OSI did not approve WTFPL. Oh well.

~~~
reubenmorais
In addition, OSI does not recommend using CC0 for software:
[http://opensource.org/faq#cc-zero](http://opensource.org/faq#cc-zero)

~~~
agwa
They don't approve of WTFPL either...

~~~
reubenmorais
You're right, I was fooled by the GP comment who said they do.

------
mpdehaan2
Lots of advice I disagree with here, testing coverage completely matters. It's
not the most important thing, but it's very important.

I stopped reading at "merge first, fix later". OUCH!

~~~
anarazel
Yes, that made me cringe as well.

I think wether such an approach works heavily depends on the kind of project
(and as such shouldn't be posted as a general rule). For something relatively
new and/or small it may work very well, but as soon as you reach a certain
complexity it's unsustainable; at least if core components are involved.

~~~
amirouche
This is his writing style, he does shortcuts to keep thing _readable_ and you
have sort out the real world constraints yourself. That said the book is
readable but some arguments that are difficult to understand.

------
jakobegger
The title is very misleading. Yes, those ten rules may work well for one
project. But they are not at all applicable in general. The Open Source world
is way more heterogenous than that.

For example, my current favourite Open Source project uses a permissive
license, always finds consensus on the mailing list before pushing to master,
and is huge. Which is in blatant violation of rules 2,3 and 9 from the
article. And it's been growing in popularity for decades.

There is no such thing as general rules for Open Source projects.

------
davexunit
Came here expecting all of the HN startup people to dismiss copyleft. Wasn't
disappointed.

I don't like the "merge first, fix later" advice, but I'm happy to see someone
promoting the use of copyleft licenses. Thank you! You get it.

------
barbs
> "10\. Be Happy and Pleasant"

Glad to see this one in here. It seems like too many open-source project
communities are incredibly hostile to newcomers or people with differing
opinions. Linus Torvalds comes to mind.

~~~
cosarara97
Torvalds is mostly hostile to people responsible for important parts of the
kernel who do Bad Things, eg. breaking userspace. Oh, and that one guy who
called stupid his decision to use C instead of C++ for git.

~~~
barbs
I don't think that kind of hostility and deprecation is ever justified. The
worst part is that he publicly defends his way of dealing with people online
and sets a terrible example.

------
jsargiox
Try to match these rules with the linux kernel project... you'll be
surprised...

------
blainesch
When did submodules become "fancy" ?

------
jevgeni
If you love it, public domain it.

~~~
yarrel
If you love its users, copyleft it.

~~~
jevgeni
So your users can't use it commercially?

