Forking Successfully or do you think a branch will work better? Learn from history, see what's current, etc. Presented at OSCON London 2016. This is forking beyond the github generation. And if you're going to do it, some tips on how you could be successful.
1. Forking Successfully
Colin Charles, Chief Evangelist, Percona Inc.
colin.charles@percona.com / byte@bytebot.net
http://bytebot.net/blog/ | @bytebot on Twitter
OSCON London, United Kingdom
17 October 2016
2. whoami
• Chief Evangelist (in the CTO office), Percona Inc
• Founding team of MariaDB Server (2009-2016),
previously at Monty Program Ab, merged with SkySQL
Ab, now MariaDB Corporation
• Formerly MySQL AB (exit: Sun Microsystems)
• Past lives include Fedora Project (FESCO),
OpenOffice.org
• MySQL Community Contributor of the Year Award winner
2014
3. Agenda
• Forks
• GitHub generation
• GNU Emacs and XEmacs
• MySQL, MariaDB Server, and Percona Server
• Drizzle?
• Other forks
6. Fork
In software engineering, a project fork happens
when developers take a copy of source code from
one software package and start independent
development on it, creating a distinct and separate
piece of software.
https://en.wikipedia.org/wiki/Fork_(software_development)
7. GitHub generation
• Watch: Notifications for active participants
• Star: Bookmarking + “light” appreciation
• Fork: a copy of a repository; make your changes
• Pull request: encouraging to merge your
changes with the upstream project
8. First open source fork…
• POSTGRES?
• 1986, when Michael Stonebraker wanted the
‘after Ingres’ database
• Today this has given you PostgreSQL
17. October 2005 - late 2005
• October 2005: 5.0 becomes GA*
• Late 2005: Maria project starts
18. MySQL fast-forward
• January 2008: acquired by Sun Microsystems
• June 2008: Drizzle — fork of MySQL 6.0 — modular, fast,
microkernel architecture, UTF8, etc.
• November 2008: Percona Server (patchset ~July)
• April 2009: Oracle proposes acquisition of Sun Microsystems
(and MySQL)
• January 2010: Oracle completes acquisition of Sun
Microsystems
• October 2009: MariaDB 5.1 Beta release
19. MariaDB
• Developed at Monty Program Ab
• February 2010: MariaDB 5.1 GA release
• November 2010: MariaDB 5.2 GA release
• February 2012: MariaDB 5.3 GA (GIS, replication
improvements, optimiser)
• April 2012: MariaDB 5.5 GA
• November 2012: Announcement of MariaDB Foundation
22. Community Developed
• MariaDB: takes external contributors/committers,
Google Summer of Code
• MySQL: contributions welcome, commits not
• MySQL Community Contributor Award
Program
• Percona: bug reports/feature requests welcome,
commits not (pull requests accepted)
23. Distribution matters
• Being available matters
• Linux distributions, clouds, containers, etc.
• Security matters - fix those CVEs quickly, and
say what got fixed
24.
25. Branch or Fork?
• MySQL 5.5 — Percona Server 5.5 — MariaDB
Server 5.5 - drop-in compatible
• MySQL 5.6 — Percona Server 5.6 - drop-in
compatible
• MySQL 5.7 — Percona Server 5.7 - drop-in
compatible
26.
27.
28. Drizzle
• Drizzle: 2008 - 2012 (R.I.P.)
• Aggressive about standards — utf8 was first
class, FRM files were gone, no MEDIUMINTs,
etc.
• Drizzle - single company open source project
(Rackspace). Most went on to work at
OpenStack
29. LibreOffice/OpenOffice.org
• LibreOffice started as ooo-build for the large
codebase
• Document Foundation backed (28 Sep 2010)
• March 2015 LWN.net - “LibreOffice has won the
battle for developer participation”
• Apache Foundation got OpenOffice.org -> Apache
OpenOffice
• Lack of active developers and code contributions
44. Naming
• Pick a good one that focuses on values
• Beware of trademarks
45. Takeaways
• Community matters
• Developers matter
• Limit end-user friction
• Sustainable development methodology
• Fork as a last resort
• Clear fork focus
46. As a user what should you
use?
• Think about innovation today
• Beware vendor lock-in - freedom from vendor
independence is crucial
• Ensure you are well supported