No need to pull upstream changes (no merge conflicts)
How do you share your modifications?
Patch file (diff)
Goes stale
No review support
Pull Request
Send Pull Request
Committers review it
Fix any review comments
Committers merge it in blessed
Fork it!
My fork = my personal sandbox
Easy to fork
Blessed (official releases):
My fork:
My changes do not affect blessed.
Easy to pull upstream changes from blessed.
List of Pull Requests
Review
Merge a Pull Request
Fork merged to blessed
What makes (Open Source) projects mature?
4. Business model
Governance
Who controls an Open Source project?
Healthy Open Source project
Some of the committers needs to be payed to work on it full time.
Possible to buy support
Communication
Issue tracker
Mailing list
gmane.org (NNTP or web) avoids inbox flood
IRC (90s chat, like Slack)
Most Open Source projects are on Freenode
Bot mentions new commits/issues ⇒ sparks discussions
Video conferencing for complex discussions
Governance models
Multi-company model
Apache Foundation
Eclipse Community
One-company model
Red Hat
Pivotal
Oracle
Docker Inc.
...
Apache Foundation
Neutral ground
Infrastructure sponsored
Voting system:
+1: Do the change
+0: I don't care
-1: I veto the change (requires motivation)
Politics can kill successful projects
Log4J 1.x died when main committer got veto'ed
Maven 3 flatlined after dispute with main committing company (now mostly fixed)
Harder business model to assure sustainability
One company model
Clear, sustainable business model
Paid full-time committers
(Perceived) power abuse ⇒ Hostile fork
OpenOffice ⇒ LibreOffice
Hudson ⇒ Jenkins
Company hierarchy between committers
Potential conflict of interest
Depends on the business model
Project lead balances community vs company needs
Open Source business models
Dual-licensing (GPL/proprietary)
MySQL
Open Source business models
Dual-licensing (GPL/proprietary)
MySQL
Sell proprietary enterprise features
IntelliJ
Sell support/consultancy
Red Hat
Most Apache projects
Get external input (on not core business software)
Google
Facebook
In open source, talk is cheap and the software is free.
It's companies that commit resources to open source projects
that drive communities and offer value to their customers.
What makes (Open Source) projects mature?
5. Everything that makes proprietary projects mature
Typical quality indicators
Test coverage
Unit tests
Integration tests
Stress tests
Continuous integration
Documentation
Is an Open Source dependency always better than a proprietary one?