collaboration in open source - examples from mariadb

41
© 2015 MariaDB Foundation 1 * * Collaboration in open source Examples from MariaDB Otto Kekäläinen 22.4.2016 Tampere, Finland

Upload: otto-kekaelaeinen

Post on 21-Jan-2017

280 views

Category:

Government & Nonprofit


1 download

TRANSCRIPT

Page 1: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation1* *

Collaboration in open sourceExamples from MariaDB

Otto Kekäläinen 22.4.2016

Tampere, Finland

Page 2: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation2* *

What competitive advantage do the human species possess that made us able to conqueror the planet?

Page 3: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation3* *

Symbols that can transfer complex information across any distance or time with great accuracy

Page 4: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation4* *

Symbols extend our memory beyond our brain.

Code extends our thinking process beyond our brain.

Page 5: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation5* *

Towards the best solution in the worldOpen source software development is exciting

Page 6: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation6* *

Funded by MariaDB.com, Booking.com, Visma, Automattic (WordPress.com), Odin/Parallels, Verkkokauppa.com...

Page 7: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation7* *

Ensuring continuity and open collaboration

Page 8: Collaboration in open source - examples from MariaDB

© 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).

Page 9: Collaboration in open source - examples from MariaDB

© 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

Page 10: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation10

Open collaboration

The Foundation is open, inclusive and enables everybody to contribute and

collaborate on equal basis.

Page 11: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation11* *

Open source is an opportunity

● Freedom to use● Freedom to study● Freedom to improve● Freedom to redistribute

Freedoms, not obligations

Page 12: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation12

Open source vs. closed sourceis like democracy vs. totalitarism

Even the best strategy does not guarantee successful execution

Page 13: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation13

Collaboration

Give and get

Page 14: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation14* *

All contributions are valuable

● code● testing● translations● documentation● graphics, design● packaging and distribution● marketing, advocacy● good bug report, feedback, ideas

Page 15: Collaboration in open source - examples from MariaDB

© 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

Page 16: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation16

Reasons to contribute

Scratch your own itch!

Page 17: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation17

Reasons to contribute

Page 18: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation18

Reasons to contribute

Page 19: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation19

Reasons to contribute

Page 20: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation20

Also for the fun of it!

Page 21: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation21

Cost vs benefit in contributions

Keep it simple(but not too simple)

Page 22: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation22

Page 23: Collaboration in open source - examples from MariaDB

© 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

Page 24: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation24

How does one manage a big project with millions of lines of code?

You don't.

Page 25: Collaboration in open source - examples from MariaDB

© 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.

Page 26: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation26* *

Be inclusive

Page 27: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation27* *

Be inclusive

Page 28: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation28* *

Be inclusive

Page 29: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation29

Collaboration problems?

Support requests and random ideasvs

Real contributions and talent

Page 30: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation30

Collaboration problems?

Automatic testing to help review contributions and focus human time on best contributions

Page 31: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation31

Collaboration opportunities?

”Given enough eyeballs all bugs are shallow” – Linus law

Page 32: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation32* *

How to contribute to the MariaDB project?

Page 33: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation33

Read the docs!

Page 34: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation34

Read the source!

Page 35: Collaboration in open source - examples from MariaDB

© 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

Page 36: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation36

Legal requirements

● Signed MariaDB Contributor Agreement (MCA) sent to [email protected]

Page 37: Collaboration in open source - examples from MariaDB

© 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

Page 38: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation38

Big or small – everything counts

Page 39: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation39

Big or small – everything counts

Page 40: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation40* *

Your contributions are welcome!

Page 41: Collaboration in open source - examples from MariaDB

© 2015 MariaDB Foundation41

Thanks!

mariadb.org

@[email protected]