Don't be the bottleneck of your open source project!

42
Don't be the bottleneck Moving forward with Open Source Communities Julien Pivotto (@roidelapluie) Codemotion Berlin, October 2017

Transcript of Don't be the bottleneck of your open source project!

Don't be the bottleneck

Moving forward with Open Source Communities

Julien Pivotto (@roidelapluie)

Codemotion Berlin, October 2017

Julien PivottoSysadmin at inuits

Into Open-Source for 10+ years

Contributing code in python, go, java,javascript, puppet, ruby ... to lots of projects

Member of Vox Pupuli

(security officer of Vox Pupuli)

inuits

Open-SourceEveryone is using open-source softwarenowadays

Github is where most of the things happen: 24millions developers working on 67 millionsrepos

source: https://octoverse.github.com/

@roidelapluie

Awesome project!

@roidelapluie

Wait ...

Pull request: Sending a piece of code to a project

@roidelapluie

Okay ... So many people usethis... Must be a maintained

version somewhere?

@roidelapluie

@roidelapluie

What is going on ?

Life happens. Open Source takes time. Workprojects change. Sometimes all at the same time.

@roidelapluie

Bottleneck"Bottleneck literally refers to the top narrow part ofa bottle. In engineering, it refers to a phenomenonwhere the performance or capacity of an entiresystem is limited by a single or small number ofcomponents or resources." -- Wikipediahttps://en.wikipedia.org/wiki/Bottleneck

@roidelapluie

How not to be a bottleneckAs maintainer

As community

As contributor

As user

@roidelapluie

1. Set the rulesLicense

Code of conduct

Expectations (style guide, testing, ...)

@roidelapluie

@roidelapluie

@roidelapluie

@roidelapluie

source: github.com

@roidelapluie

@roidelapluie

@roidelapluie

Ready to get contributions :)

@roidelapluie

2. Test/AutomateFree services for open source projects:CircleCI, TravisCI.

Write tests ... They will be run on each pullrequest

Acceptance tests too

More important: test YOUR usecase

@roidelapluie

@roidelapluie

@roidelapluie

@roidelapluie

3. Share your burden

@roidelapluie

Transfering repoGithub allows you to transfer a repo. Use thatfeature! it will redirect PR, Issues, ...

don't:

@roidelapluie

PS: Do all of it while your project is starting or atfull speed ; do not wait for your project to beabandoned.

@roidelapluie

Vox PupuliCreative Commons Attribution-ShareAlike 4.0 https://github.com/voxpupuli/logos@roidelapluie

Vox PupuliA community around "puppet modules"

Puppet modules are small reusable pieces ofcode to manage infrastructure (servers,services, deployments, ...)

Vox Pupuli was created to deal with theseproblems of maintainership

@roidelapluie

Some numbers (oct 12 2017)107 people

136 repositories

4027 issues (1061 open)

9885 PR (321 open)

@roidelapluie

Why are we not the bottleneck?License

Code of Conduct

Readme's

Tests

Sharing the burden

Yes that is what I said before -- except at scale

@roidelapluie

OrganisationEverything is written down:https://github.com/voxpupuli/plumbing/https://github.com/voxpupuli/plumbing/blob/master/share/governance.md

Because it is in git you can send pull request,check history...

@roidelapluie

Code of ConductWe have a PMC (Project managementcomittee) elected on a yearly basis

Main task is to enforce the COC

Maintaining a welcoming atmosphere foreveryone

COC useless if not enforced

@roidelapluie

Single stop for security issuesSingle page with single point of contact:https://voxpupuli.org/security/

@roidelapluie

AutomationModulesynchttps://github.com/voxpupuli/modulesync

Share files between repos / create pull requests onchange

Align CI settings

Align code of conduct, contributing rules...

@roidelapluie

@roidelapluie

Sharing the burdenMigration guide:https://voxpupuli.org/docs/

Welcome projects

Blocked PR? Hang on IRC, twitter, ... And see whocan help.

@roidelapluie

@roidelapluie

Who invests in Vox Pupuli?Contributors coming from many companies

Hobbyists

Puppet Inc.

@roidelapluie

NamespaceWorking in our own github namespace ensure thateven if contributors switches priorities, changework, ... the repo stays at the same place.If you think your project will last in time, put it inan organisation.

@roidelapluie

ConclusionRules matter ; licence, coc, style guide

Testing is important ; many tools out there arefree for OSS projects

For specific areas, creating communities isrelevant

@roidelapluie

Where to find us?github.com/voxpupuli

[email protected]

voxpupuli.org

Documentationhttps://voxpupuli.org/docs/

https://voxpupuli.org/security/

@roidelapluie

Julien Pivottoroidelapluie

[email protected]

Inuitshttps://[email protected]