KEMBAR78
OpenFest.org: MariaDB and open source collaboration | PDF
© 2015 MariaDB Foundation1
* *
Collaboration in open source -
how does it really work?
Practical examples from
MariaDB development
Otto Kekäläinen
OpenFest 7.11.2015
Sofia, Bulgaria
© 2015 MariaDB Foundation2
* *
What competitive advantage do the human species
possess that made us able to conqueror the planet?
© 2015 MariaDB Foundation3
* *
Symbols that can transfer complex information
across any distance or time with great accuracy
© 2015 MariaDB Foundation4
* *
Towards the best solution in the world
Open source software development is exiting
© 2015 MariaDB Foundation5
* *
Funded by MariaDB.com, Booking.com,
Visma, Automattic (WordPress.com),
Odin/Parallels, Verkkokauppa.com...
© 2015 MariaDB Foundation6
* *
Continuity and open collaboration
© 2015 MariaDB Foundation7
* *
Continuity
● The Foundation has the relevant
technical assets and tools (website
mariadb.org, version control repository,
build and release systems).
● The Foundation has copyright via staff
work and contributor work (CLA). For the
rest (some copyrights, trademark etc) the
Foundation has irrevocable licenses to
use (e.g. GPL, BSD).
© 2015 MariaDB Foundation8
* *
Foundation staff
● 6 persons, including ”Monty” Widenius
● Makes MariaDB available to as many
users as possible (porting, packaging)
● Single contact point for collaboration and
contributions
– The Foundation makes sure all pull
requests and patches are reviewed
© 2015 MariaDB Foundation9
Open collaboration
The Foundation is open, inclusive and
enables everybody to contribute and
collaborate on equal basis.
© 2015 MariaDB Foundation10
* *
Open source is an opportunity
● Freedom to use
● Freedom to study
● Freedom to improve
● Freedom to redistribute
Freedoms, not obligations
© 2015 MariaDB Foundation11
Open source vs. closed source
is like democracy vs. totalitarism
Even the best strategy
does not guarantee
successful execution
© 2015 MariaDB Foundation12
Collaboration
Give and get
© 2015 MariaDB Foundation13
* *
All contributions are valuable
● code
● testing
● translations
● documentation
● graphics, design
● packaging and distribution
● marketing, advocacy
● good bug report, feedback, ideas
© 2015 MariaDB Foundation14
* *
Who are the contributors?
● codership.com
● freesa.org
● galeracluster.com
● gmail.com
● google.com
● hotmail.com
● iki.fi
● mariadb.com
● mariadb.org
git log | grep Author
See https://mariadb.com/kb/en/mariadb/log-of-mariadb-contributions/ for details
● mongosearch.org
● openquery.com
● oracle.com
● primebase.org
● skysql.com
● suse.com
● tokutek.com
● twitter.com
● xiphis.org
● yahoo.com
© 2015 MariaDB Foundation15
Reasons to contribute
Scratch your own itch!
© 2015 MariaDB Foundation16
Reasons to contribute
© 2015 MariaDB Foundation17
Reasons to contribute
© 2015 MariaDB Foundation18
Reasons to contribute
© 2015 MariaDB Foundation19
Reasons to contribute
© 2015 MariaDB Foundation20
Cost vs benefit in contributions
Keep it simple
(but not too simple)
© 2015 MariaDB Foundation21
© 2015 MariaDB Foundation22
* *
Facilitate collaboration, be inclusive
● Publish code in real time, not just at release time
● Discuss and plan on public mailing list
● Chat in the public (e.g. IRC online, meetings offline)
● Public bug tracker, transparent progress and
priorities
● Respond quickly to pull requests on Github and to
bug reports that have patches attached
● Keep documentation up-to-date, develop
documentation alongside code and allow also
contributions in documentation
© 2015 MariaDB Foundation23
How does one manage a big project
with millions of lines of code?
You don't.
© 2015 MariaDB Foundation24
Interfaces and APIs
● Divide and conqueror: modularize everything
● Split long files into separate files.
– Easier to read and grasp, easier to merge in git.
● Define clear interfaces between components so that
anybody using the interface does not have to care
what happens “behind the wall”.
● Use semantic version numbers (1.0, 1.0.1, 1.1, 2.0.,
2.2...) and other common conventions.
● Contracts and promises that the interfaces will
continue to work in the future too.
© 2015 MariaDB Foundation25
* *
Be inclusive
© 2015 MariaDB Foundation26
* *
Be inclusive
© 2015 MariaDB Foundation27
* *
Be inclusive
© 2015 MariaDB Foundation28
Collaboration problems?
Support requests and random ideas
vs
Real contributions and talent
© 2015 MariaDB Foundation29
Collaboration problems?
Automatic testing to help review contributions and focus human time on best contributions
© 2015 MariaDB Foundation30
Collaboration opportunities?
”Given enough eyeballs all
bugs are shallow” – Linus law
© 2015 MariaDB Foundation31
Also for the fun of it!
© 2015 MariaDB Foundation32
* *
Symbols extend our memory beyond
our brain.
Code extends our thinking process
beyond our brain.
© 2015 MariaDB Foundation33
Thanks!
mariadb.org
@ottokekalainen
otto@mariadb.org

OpenFest.org: MariaDB and open source collaboration

  • 1.
    © 2015 MariaDBFoundation1 * * Collaboration in open source - how does it really work? Practical examples from MariaDB development Otto Kekäläinen OpenFest 7.11.2015 Sofia, Bulgaria
  • 2.
    © 2015 MariaDBFoundation2 * * What competitive advantage do the human species possess that made us able to conqueror the planet?
  • 3.
    © 2015 MariaDBFoundation3 * * Symbols that can transfer complex information across any distance or time with great accuracy
  • 4.
    © 2015 MariaDBFoundation4 * * Towards the best solution in the world Open source software development is exiting
  • 5.
    © 2015 MariaDBFoundation5 * * Funded by MariaDB.com, Booking.com, Visma, Automattic (WordPress.com), Odin/Parallels, Verkkokauppa.com...
  • 6.
    © 2015 MariaDBFoundation6 * * Continuity and open collaboration
  • 7.
    © 2015 MariaDBFoundation7 * * Continuity ● The Foundation has the relevant technical assets and tools (website mariadb.org, version control repository, build and release systems). ● The Foundation has copyright via staff work and contributor work (CLA). For the rest (some copyrights, trademark etc) the Foundation has irrevocable licenses to use (e.g. GPL, BSD).
  • 8.
    © 2015 MariaDBFoundation8 * * Foundation staff ● 6 persons, including ”Monty” Widenius ● Makes MariaDB available to as many users as possible (porting, packaging) ● Single contact point for collaboration and contributions – The Foundation makes sure all pull requests and patches are reviewed
  • 9.
    © 2015 MariaDBFoundation9 Open collaboration The Foundation is open, inclusive and enables everybody to contribute and collaborate on equal basis.
  • 10.
    © 2015 MariaDBFoundation10 * * Open source is an opportunity ● Freedom to use ● Freedom to study ● Freedom to improve ● Freedom to redistribute Freedoms, not obligations
  • 11.
    © 2015 MariaDBFoundation11 Open source vs. closed source is like democracy vs. totalitarism Even the best strategy does not guarantee successful execution
  • 12.
    © 2015 MariaDBFoundation12 Collaboration Give and get
  • 13.
    © 2015 MariaDBFoundation13 * * All contributions are valuable ● code ● testing ● translations ● documentation ● graphics, design ● packaging and distribution ● marketing, advocacy ● good bug report, feedback, ideas
  • 14.
    © 2015 MariaDBFoundation14 * * Who are the contributors? ● codership.com ● freesa.org ● galeracluster.com ● gmail.com ● google.com ● hotmail.com ● iki.fi ● mariadb.com ● mariadb.org git log | grep Author See https://mariadb.com/kb/en/mariadb/log-of-mariadb-contributions/ for details ● mongosearch.org ● openquery.com ● oracle.com ● primebase.org ● skysql.com ● suse.com ● tokutek.com ● twitter.com ● xiphis.org ● yahoo.com
  • 15.
    © 2015 MariaDBFoundation15 Reasons to contribute Scratch your own itch!
  • 16.
    © 2015 MariaDBFoundation16 Reasons to contribute
  • 17.
    © 2015 MariaDBFoundation17 Reasons to contribute
  • 18.
    © 2015 MariaDBFoundation18 Reasons to contribute
  • 19.
    © 2015 MariaDBFoundation19 Reasons to contribute
  • 20.
    © 2015 MariaDBFoundation20 Cost vs benefit in contributions Keep it simple (but not too simple)
  • 21.
    © 2015 MariaDBFoundation21
  • 22.
    © 2015 MariaDBFoundation22 * * Facilitate collaboration, be inclusive ● Publish code in real time, not just at release time ● Discuss and plan on public mailing list ● Chat in the public (e.g. IRC online, meetings offline) ● Public bug tracker, transparent progress and priorities ● Respond quickly to pull requests on Github and to bug reports that have patches attached ● Keep documentation up-to-date, develop documentation alongside code and allow also contributions in documentation
  • 23.
    © 2015 MariaDBFoundation23 How does one manage a big project with millions of lines of code? You don't.
  • 24.
    © 2015 MariaDBFoundation24 Interfaces and APIs ● Divide and conqueror: modularize everything ● Split long files into separate files. – Easier to read and grasp, easier to merge in git. ● Define clear interfaces between components so that anybody using the interface does not have to care what happens “behind the wall”. ● Use semantic version numbers (1.0, 1.0.1, 1.1, 2.0., 2.2...) and other common conventions. ● Contracts and promises that the interfaces will continue to work in the future too.
  • 25.
    © 2015 MariaDBFoundation25 * * Be inclusive
  • 26.
    © 2015 MariaDBFoundation26 * * Be inclusive
  • 27.
    © 2015 MariaDBFoundation27 * * Be inclusive
  • 28.
    © 2015 MariaDBFoundation28 Collaboration problems? Support requests and random ideas vs Real contributions and talent
  • 29.
    © 2015 MariaDBFoundation29 Collaboration problems? Automatic testing to help review contributions and focus human time on best contributions
  • 30.
    © 2015 MariaDBFoundation30 Collaboration opportunities? ”Given enough eyeballs all bugs are shallow” – Linus law
  • 31.
    © 2015 MariaDBFoundation31 Also for the fun of it!
  • 32.
    © 2015 MariaDBFoundation32 * * Symbols extend our memory beyond our brain. Code extends our thinking process beyond our brain.
  • 33.
    © 2015 MariaDBFoundation33 Thanks! mariadb.org @ottokekalainen otto@mariadb.org