"Don't expect patches to the core. It's just too complex for external developers." Nearly twenty years ago, that was the broadly-held opinion at MySQL AB. Now, with MariaDB, there are 174 contributors to the server alone and Monty isn't the top contributor by commits or even LoC. Clearly, some things have changed, but what are they and how much impact have they had? In this fast-paced session Zak Greant, MySQL's first community advocate, will walk through some of the critical changes over the years and share some of the best (and worst) practices.
In the early days of MySQL, we had the idea that people didn't contribute to the core because the code base was too difficult to get into. Perhaps this was correct at the time, perhaps not. Nearly twenty years later, the MariaDB project sees contributions from a wide range of contributors and to many different parts of the project - including the MariaDB server. Clearly, many things have changed in this time. In this session, I'll present some of the key macro and micro changes, and present conclusions about how they have come about.
For instance, if the server was the most difficult part of the MySQL/MariaDB code to contribute to, why are there so many more contributors and contributions now? Potential causes could include:
- the widespread adoption of MySQL and MariaDB
- the popularity and maturity of the projects
- the change in corporate control
- maturation of the broad Free Software/Open Source community
- improvements in collaborative development infrastructure
- better community management practices
- more senior project members or senior project members having more time to mentor contributors
- better incentives for contribution
- better contribution management processes
- the long time span has let people learn the code base better (as many contributors were or are MySQL/Oracle/MariaDB Corp. staff)
I'll support the talk with a written report and I'll share my research, including:
- analysis of commits and contributors over time
- maps of contributors journeys over time (eg. what did one have to do to get a patch into MySQL in ca. 2000 vs. MariaDB in 2018)
- a timeline of changes to key policies, contribution infrastructure, corporate involvement, etc.