On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I...

58
On the Importance of Upstreaming Robin Sheat <[email protected]>// 5 th November 2014

Transcript of On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I...

Page 1: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

On the Importance of Upstreaming

Robin Sheat<[email protected]>// 5th November 2014

Page 2: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

AboutMe

I AKohaDeveloperI At Catalyst ITI Spoilt by company policy

Page 3: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

AboutMe

I AKohaDeveloper

I At Catalyst ITI Spoilt by company policy

Page 4: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

AboutMe

I AKohaDeveloperI At Catalyst IT

I Spoilt by company policy

Page 5: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

AboutMe

I AKohaDeveloperI At Catalyst ITI Spoilt by company policy

Page 6: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Where’d this talk come from?

I A few years ago, I ran a Kohaworkshop inMalaysia...

Page 7: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Where’d this talk come from?

I A few years ago, I ran a Kohaworkshop inMalaysia...

Page 8: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper
Page 9: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Where’d this talk come from?

I People were stuck on very old versions

I They no longer had an upgrade path

Page 10: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Where’d this talk come from?

I People were stuck on very old versionsI They no longer had an upgrade path

Page 11: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

What is upstreaming?

Page 12: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

What is upstreaming?

I Getting fixes/improvements into the original project

I Not just throwing them over the wallI Shepherding them through the process

Page 13: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

What is upstreaming?

I Getting fixes/improvements into the original projectI Not just throwing them over the wall

I Shepherding them through the process

Page 14: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

What is upstreaming?

I Getting fixes/improvements into the original projectI Not just throwing them over the wallI Shepherding them through the process

Page 15: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?

Page 16: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?

Stop having tomaintain your own patches!

Page 17: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Stop having tomaintain your own patches

I Maintaining your own patches can be a lot of work

I Losing patches is easy to doI Let upstream take care of it

Page 18: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Stop having tomaintain your own patches

I Maintaining your own patches can be a lot of workI Losing patches is easy to do

I Let upstream take care of it

Page 19: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Stop having tomaintain your own patches

I Maintaining your own patches can be a lot of workI Losing patches is easy to doI Let upstream take care of it

Page 20: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?

Contribute to the betterness of the world!

Page 21: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Contribute to the betterness of theworld

I Give people something they find useful

I Maybe they’ll improve on it

Page 22: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Contribute to the betterness of theworld

I Give people something they find usefulI Maybe they’ll improve on it

Page 23: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?

Become upstream!

Page 24: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Become upstream

I Become a core developer, releasemaintainer, etc.

I Help guide the future of the project

Page 25: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Become upstream

I Become a core developer, releasemaintainer, etc.I Help guide the future of the project

Page 26: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?

Vanity!

Page 27: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Vanity

I It’s nice to see people using things youmade

I Get your name in the projectI Get your company’s name out there

Page 28: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Vanity

I It’s nice to see people using things youmadeI Get your name in the project

I Get your company’s name out there

Page 29: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why should you upstream?Vanity

I It’s nice to see people using things youmadeI Get your name in the projectI Get your company’s name out there

Page 30: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?

Page 31: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?

It is a lot of work!

Page 32: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?It is a lot of work

I Getting things acceptedmay be time consumingI Especially on big projects

I Matching coding guidelines, test coverage, make it notimpact other use cases, etc., etc.

Page 33: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?It is a lot of work

I Getting things acceptedmay be time consumingI Especially on big projects

I Matching coding guidelines, test coverage, make it notimpact other use cases, etc., etc.

Page 34: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?

Fear!

Page 35: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Fear!

I Legal liability

I Competitive advantageI Trade secrets

Page 36: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Fear!

I Legal liabilityI Competitive advantage

I Trade secrets

Page 37: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Fear!

I Legal liabilityI Competitive advantageI Trade secrets

Page 38: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Fear!

I Are the claims valid?

I Could it be solvedwith education?

Page 39: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Fear!

I Are the claims valid?I Could it be solvedwith education?

Page 40: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?

Totally local customisations!

Page 41: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Totally local customisations

I Can they be generalised?

I Might be able to reduce overheadI Sometimes you can’t

Page 42: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Totally local customisations

I Can they be generalised?I Might be able to reduce overhead

I Sometimes you can’t

Page 43: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

Why shouldn’t you upstream?Totally local customisations

I Can they be generalised?I Might be able to reduce overheadI Sometimes you can’t

Page 44: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy forcontributors?

Page 45: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?

Small projects

Page 46: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Small projects

I Use a public trackerI Gitorious, Github, etc.

I Keep an eye on issues and pull requests

Page 47: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Small projects

I Use a public trackerI Gitorious, Github, etc.

I Keep an eye on issues and pull requests

Page 48: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?

Large projects

Page 49: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Have awell documented process

I Guides for setting up developer environmentsI Guides for submitting a patch

Page 50: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Have awell documented processI Guides for setting up developer environments

I Guides for submitting a patch

Page 51: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Have awell documented processI Guides for setting up developer environmentsI Guides for submitting a patch

Page 52: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Help newcomers

I Let them bypass parts of the processI Fix the smaller issues

I Rather than just rejecting it

Page 53: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Help newcomersI Let them bypass parts of the process

I Fix the smaller issuesI Rather than just rejecting it

Page 54: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Help newcomersI Let them bypass parts of the processI Fix the smaller issues

I Rather than just rejecting it

Page 55: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Be nice

I Handhold where you can

Page 56: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Be niceI Handhold where you can

Page 57: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Recognise people for their contribution

I Entice people back by giving them a good experience

Page 58: On the Importance of Upstreaming · AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper I AtCatalystIT I Spoiltbycompanypolicy. AboutMe I AKohaDeveloper

How can youmake it easy for contributors?Large projects

I Recognise people for their contributionI Entice people back by giving them a good experience