jsconfuy: the node.js project (rvagg)

39
April 16, 2016 The Node.js Project Rod Vagg @rvagg

Upload: rvagg

Post on 20-Feb-2017

1.607 views

Category:

Software


2 download

TRANSCRIPT

April 16, 2016

The Node.js ProjectRod Vagg@rvagg

© 2016 NodeSource

Who am I?

Who am I? • Chief Node Officer @ NodeSource

• Member of the Node.js TSC & CTC

• Open software governance aficionado

2

© 2016 NodeSource

Wut?

What this talk is about • Trends toward greater openness in open source

• The Node.js project’s transition to open governance

• Getting involved

3

© 2016 NodeSource

Open Governance

4

© 2016 NodeSource

Open source history

Open source history can be defined by its tools

5

© 2016 NodeSource

Open source history

SCM tools

CVS

Subversion

Git

6

© 2016 NodeSource

Open source history

Source code hosting, sharing & “social”

Wild West / self-hosted

SourceForge (and Freshmeat?)

GitHub

7

© 2016 NodeSource

CVS

SVN

Git

Self-hosted

SourceForge

GitHub

Open source history

8

Trend

Reduced collaboration frictionFocus on community / social

Openness and visibility

© 2016 NodeSource

Open source history

9

CVS

SVN

Git

What’s next?

Self-hosted

SourceForge

GitHub

What’s next?

© 2016 NodeSource

Open source history

With a trend toward reduced friction, increased community and greater openness,

the future of open source

looks more like a wiki

10

© 2016 NodeSource

“OPEN Open Source”An example open governance

model

11

© 2016 NodeSource

OPEN Open Source

“Individuals making significant and valuable contributions are given commit-access to a project to contribute as they see fit. A project is more like an open wiki than a standard guarded open source project.”

12

http://openopensource.org/

© 2016 NodeSource

OPEN Open Source

Basic guidelines • Don’t mess with Git history

• Internal pull requests for all changes

• Consensus-seeking for everything

• New contributors get equal ownership and a seat at the decision-making table

• No BDFL (“benevolent dictator for life”); respect and moral authority are earned

13

© 2016 NodeSource

Open Governance in Practice

14

© 2016 NodeSource

Open governance in practice

Impact: projects better reflect their users Projects are driven by the people and groups that value them the most

Those who put in the most resources get influence: encourages participation

15

© 2016 NodeSource

Open governance in practice

Impact: restraint by consensus-seeking The need to work toward consensus:

• Forces restraint, compromise and stability

• Increases the scope of discussion to include diverse user perspectives

• Provides a key touch-point for community building

16

© 2016 NodeSource

Open governance in practice

Impact: increased focus on key areas The need to work toward consensus:

• Forces discussion of what really matters

• Highlights the areas of difference

• Encourages dialog with the other

17

© 2016 NodeSource

Open governance in practice

18

Impact: openness Openness begets openness

• More welcoming of new contributors

• More embracing of a diversity of perspectives

• Focus on discussion and consensus-seeking rather than dictates and imposition

© 2016 NodeSource

Open Governance and Node.js

19

© 2016 NodeSource

Node.js: v0.10 and beyond

20

Com

mits

per

mon

th

0

100

200

300

400

Rele

ases

per

mon

th

0

3

6

9

12

Uniq

ue co

mm

iters

per m

onth

0

23

46

69

92

Mar 2013 Jun 2013 Sep 2013 Dec 2013 Mar 2014 Jun 2014 Sep 2014 Dec 2014 Mar 2015 Jun 2015 Sep 2015 Dec 2015

Fork Convergence

Node.jsv4.0.0

Node.jsv0.10.0

Node.jsv0.12.0

Open Governance

© 2016 NodeSource

Node.js: v0.10 and beyond

21

Uniq

ue co

mm

iters

per m

onth

0

23

46

69

92

Mar 2013 Jun 2013 Sep 2013 Dec 2013 Mar 2014 Jun 2014 Sep 2014 Dec 2014 Mar 2015 Jun 2015 Sep 2015 Dec 2015

Fork Convergence

Open Governance

Node.jsv4.0.0

Node.jsv0.10.0

Node.jsv0.12.0

© 2016 NodeSource

Node.js open governance

22

Node.js Open Governance • Managed by 65 “Collaborators”

(18 Core Technical Team “CTC” members)

• 9 individuals authorised to publish releases

• Contributors control and own the project

• No single point of failure

• Diversity of perspectives, backgrounds and expertise

© 2016 NodeSource

The Node.js core team

23

Ben Noordhuis Сковорода Никита Андреевич Chris Dickinson Colin Ihrig Evan Lucas Jeremiah Senkpiel Fedor Indutny James M Snell Michael Dawson

Julien Gilli Brian White Ali Ijaz Sheikh Alexis Campailla Bert Belder Rod Vagg Shigeki Ohtsu Trevor Norris Rich Trott

Anna Henningsen Andreas Madsen Benjamin Gruenbaum Brendan Ashworth Calvin Metcalf Claudio Rodriguez Domenic Denicola Wyatt Preul Rebecca Turner

Isaac Z. Schlueter Imran Iqbal Johan Bergström João Reis Julian Duque Minwoo Jung Aleksey Smolenchuk Matthew Loring Matteo Collina

Nicu Micleușanu Mikeal Rogers Christopher Monsanto Oleg Elifantiev Petka Antonov Phillip Johnsen Stephen Belanger Alex Kocharin Ryan Graham

Robert Kowalski Roman Klauke Saúl Ibarra Corretgé Sam Roberts Santiago Gimeno Nikolai Vavilov Roman Reiss Steven R Loomis Stefan Budeanu

Michaël Zasso Christian Tellnes Myles Borins Sakthipriyan Vairamani Glen Keane Thorsten Lorenz Mike Tunnicliffe Vladimir Kurchatkin Jeremy Whitlock

Yosuke Furukawa Kat Marchán

© 2016 NodeSource

Open governance & Node.js

Node.js uses a variant of OPEN Open Source • Two-tiered governance structure for making difficult

decisions

• CTC as a backstop, Collaborators for everything else

24

© 2016 NodeSource

Open governance & Node.js

Node.js CTC (Core Technical Committee) • Has a ¼ company membership rule

• Meets weekly to address concerns that have been elevated to it on GitHub

• Often pushes decisions back to Collaborators

• Is self-selecting

- Seeks diversity in perspective, skill and background

- Recognises technical and organisational merit

25

© 2016 NodeSource

Open governance & Node.js

Node.js Collaborators • Are effectively self-selecting—nominate new

members based on contribution

• Operate via pull request and discussion, require minimum sign-off but allow maximum input

• Must recognise objections and concerns and work in a consensus-seeking process, no railroading!

26

© 2016 NodeSource

Open governance & Node.js

Node.js Collaborators • Organically form interest and expertise groups

• Earn respect and deference from other Collaborators in different areas of the project, e.g.: - crypto - C++ - V8 - Windows - build / systems - testing - documentation - … even grammar!

27

© 2016 NodeSource

Entering the Beast

28

© 2016 NodeSource

Node.js Foundation Structure

29

Executive

Community managerEducation coordinator

MarketingEvents

Commercial relationships and strategy

Assistance fromLinux Foundation

BoardMember company

representation

TSCTechnicalSteering

Committee

Technicaladministration byopen governance

Technical Team

HTTP WGStreams

WGAPI WG

BechmarkingWG

InclusivityWG

Node.js Core Project CollaboratorsCTC

Build WG

LegalCommittee

FinanceCommittee

MarketingCommittee

EducationAdvisory

Group

© 2016 NodeSource

Node.js Foundation Structure

30

TSCTechnicalSteering

Committee

Technicaladministration byopen governance

Technical Team

HTTP WGStreams

WGAPI WG

BechmarkingWG

InclusivityWG

Node.js Core Project CollaboratorsCTC

Build WG

© 2016 NodeSource

Core working groups

Working groups

Streams Benchmarking Build / infrastructure HTTP LTS Documentation Evangelism

31

Docker Post-mortem Intl and internationalisation Testing Website Addon API …

© 2016 NodeSource

How to contribute

32

© 2016 NodeSource

Contributing: hints

Start in the shallow end

Lurk, learn the culture, watch for easy ways to

contribute

33

© 2016 NodeSource

Contributing: hints

Obvious entry points

Documentation Tests

Benchmarks

34

© 2016 NodeSource

Contributing: hints

Other entry points

Find a working group, contribute around the

outside of core

35

© 2016 NodeSource

Contributing: hints

Keep it simple!

Big changes are very hard, ease in

36

© 2016 NodeSource

Contributing: hints

Prepare for discussion

Be constructive, collaborate and prepare

for compromise

37

© 2016 NodeSource

Contributing: hints

Ask for help!

Learn from experts, they are willing to teach

38

Thank you.Rod Vagg

[email protected]@rvagg