Upload
otto-kekaelaeinen
View
277
Download
1
Embed Size (px)
Citation preview
© 2015 MariaDB Foundation1* *
Collaboration in open sourceExamples from MariaDB
Otto Kekäläinen 22.4.2016
Tampere, Finland
© 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* *
Symbols extend our memory beyond our brain.
Code extends our thinking process beyond our brain.
© 2015 MariaDB Foundation5* *
Towards the best solution in the worldOpen source software development is exciting
© 2015 MariaDB Foundation6* *
Funded by MariaDB.com, Booking.com, Visma, Automattic (WordPress.com), Odin/Parallels, Verkkokauppa.com...
© 2015 MariaDB Foundation7* *
Ensuring continuity and open collaboration
© 2015 MariaDB Foundation8* *
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 Foundation9* *
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 Foundation10
Open collaboration
The Foundation is open, inclusive and enables everybody to contribute and
collaborate on equal basis.
© 2015 MariaDB Foundation11* *
Open source is an opportunity
● Freedom to use● Freedom to study● Freedom to improve● Freedom to redistribute
Freedoms, not obligations
© 2015 MariaDB Foundation12
Open source vs. closed sourceis like democracy vs. totalitarism
Even the best strategy does not guarantee successful execution
© 2015 MariaDB Foundation13
Collaboration
Give and get
© 2015 MariaDB Foundation14* *
All contributions are valuable
● code● testing● translations● documentation● graphics, design● packaging and distribution● marketing, advocacy● good bug report, feedback, ideas
© 2015 MariaDB Foundation15* *
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 AuthorSee 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 Foundation16
Reasons to contribute
Scratch your own itch!
© 2015 MariaDB Foundation17
Reasons to contribute
© 2015 MariaDB Foundation18
Reasons to contribute
© 2015 MariaDB Foundation19
Reasons to contribute
© 2015 MariaDB Foundation20
Also for the fun of it!
© 2015 MariaDB Foundation21
Cost vs benefit in contributions
Keep it simple(but not too simple)
© 2015 MariaDB Foundation22
© 2015 MariaDB Foundation23* *
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 Foundation24
How does one manage a big project with millions of lines of code?
You don't.
© 2015 MariaDB Foundation25
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 Foundation26* *
Be inclusive
© 2015 MariaDB Foundation27* *
Be inclusive
© 2015 MariaDB Foundation28* *
Be inclusive
© 2015 MariaDB Foundation29
Collaboration problems?
Support requests and random ideasvs
Real contributions and talent
© 2015 MariaDB Foundation30
Collaboration problems?
Automatic testing to help review contributions and focus human time on best contributions
© 2015 MariaDB Foundation31
Collaboration opportunities?
”Given enough eyeballs all bugs are shallow” – Linus law
© 2015 MariaDB Foundation32* *
How to contribute to the MariaDB project?
© 2015 MariaDB Foundation33
Read the docs!
© 2015 MariaDB Foundation34
Read the source!
© 2015 MariaDB Foundation35
Technical requirements
● Clearly defined problem with an unarguable solution
● No regressions or draw-backs
● The code might have been difficult to write, but it should not be difficult to read
● Running code and test cases makes the best evidence (example mysql-test/suite/encryption/t/create_or_replace.test)
● File issue at jira.mariadb.org
– attach patch or
– link to git branch
© 2015 MariaDB Foundation36
Legal requirements
● Signed MariaDB Contributor Agreement (MCA) sent to [email protected]
© 2015 MariaDB Foundation37
Quality
● Quality of submission
– the benefit must be big enough to spark interest
● Quality of submitter
– clear and active communication
– resilience
– reputation from previous submissions
© 2015 MariaDB Foundation38
Big or small – everything counts
© 2015 MariaDB Foundation39
Big or small – everything counts
© 2015 MariaDB Foundation40* *
Your contributions are welcome!