engaging the xen developer comminity
DESCRIPTION
The Xen community can be a great resource for people wishing both to use and to improve Xen, and contributing to it can be rewarding both to individuals and to corporations. But they have a culture all their own, and like any foreign culture, it's a minefiled of potential misunderstandings and miscommunications. This talk will talk about the cultural values and norms of the Xen community, and how you can most effectively interact with them.TRANSCRIPT
![Page 1: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/1.jpg)
Sponsored by:
& &
&
Engaging the Xen Developer Community
George Dunlap
Citrix Systems UK
![Page 2: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/2.jpg)
Introduction
Hardware Vendors
Software vendors
Academic
Public cloud providers
Private cloud providers
![Page 3: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/3.jpg)
Why might people not be involved?
Don’t know what there is to do
Don’t know the benefits of engaging the community
Don’t know how to engage community effectively
![Page 4: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/4.jpg)
Goal:Enable you to engage developer
community
![Page 5: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/5.jpg)
Outline
Ways that you can contribute to Xen development
Benefits and costs
Practical steps
Good bug reports
Good questions
Good patches
Running an open development project
![Page 6: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/6.jpg)
How can you contribute?
![Page 7: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/7.jpg)
How you can contribute
Testing on your hardware / software
Submitting bug fixes
Suggesting interfaces / features
Submitting patches for interface changes
Development
Running an out-of-tree incubator project
![Page 8: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/8.jpg)
Testing
Need testing on a wide array of hardware / software
Test the functionality you use
Performance testing as well
What to test
Xen release candidates
Linux pvops release candidates
xen-unstable (occasionally)
![Page 9: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/9.jpg)
Reporting
Good bug report is good
Better yet: Patches!
![Page 10: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/10.jpg)
Features
Developers don’t see the learning curve
Suggest changes / clarifications to interface
Suggest new features which might be useful to you
Better yet: Patches!
![Page 11: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/11.jpg)
Upstreaming your changes
Standard practice: Freeze and fork
Main xen branch moves forward
What to do with a fork?
Stay forked
Forward-port patches
Back-port new features / fixes
Submit upstream
![Page 12: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/12.jpg)
Why not upstream?
A lot of extra work
Time constraints
Product deadlines
Academic deadlines
Required changes not acceptable upstream
![Page 13: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/13.jpg)
Good bug reports
What to include
Detailed hardware, software, steps to reproduce
As much error as you can
Serial console
Wiki page: ReportingBugs
![Page 14: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/14.jpg)
Asking a question is asking someone else to work for you
![Page 15: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/15.jpg)
Asking good questionsDo as much work as you can yourself first
Search GoogleRead the code
ContextWho are you?What are you trying to accomplish
Make it specificShow how you’ve tried to solve it yourselfWiki page: AskingXenDevelQuestions
![Page 16: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/16.jpg)
Sending code upstream
Wiki page: SubmittingXenPatches
![Page 17: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/17.jpg)
Three people to think aboutPerson reviewing the patch
Does it do the right thing?Are there any mistakes?
Person scanning through changesetsDo I need to look at this patch?
Archaeologist6 months, 1 year, 2 years, 5 yearsWhy is the code the way it is now?
![Page 18: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/18.jpg)
GuidelinesBreak your change into a series of patches
One logical change per patchNo regressions
Don’t fix a bug in one patch in a later patch!Separate clean-up from functional changes
Even if it’s just a one-line changeOne-line summary easy to scanDescription says what the patch does and why
![Page 19: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/19.jpg)
Requirements
Patch must apply
Beware of mailer mangling
Mercurial PatchBomb extension
Signed-off-by
Coding style
![Page 20: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/20.jpg)
Interpreting responses
American Culture: “Praise sandwich”
Hacker culture: Direct and to the point
“I don’t think this is the right way to do this”
“This is ugly”
“This is unmaintainable”
Detailed criticism means “I want this patch accepted”
Ignoring is much worse than criticism
![Page 21: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/21.jpg)
Open development
![Page 22: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/22.jpg)
Project lifecycleInitial code dump
Basic functionality and frameworkIncubation
Active development towards maturityGrowing community development
Project maturityReady to be used by othersActively maintained
Retired / Archived
![Page 23: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/23.jpg)
Types of projects
In-tree
“Tech preview”
Fairly self-contained
Example: Paging, page sharing, Remus
Out-of-tree
Major changes
Example: xen-arm
![Page 24: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/24.jpg)
Open development: Theory
Criteria
Movement towards upstreaming
Encouragement of a development community
Principles
Anyone should be able to influence
Influence should correlate to contribution
![Page 25: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/25.jpg)
Open development: Practice
One public shared repository
Handful of committers
One to begin with
Committers added based on contribution
All patches posted and discussed publicly
Technical decisions made in public
Private discussions must end with public proposal
![Page 26: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/26.jpg)
Outline
Ways that you can contribute to Xen development
Benefits and costs
Practical steps
Good bug reports
Good questions
Good patches
Running an open development project
![Page 27: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/27.jpg)
Goal:Enable you to engage developer
community
![Page 28: Engaging the Xen Developer Comminity](https://reader036.vdocuments.net/reader036/viewer/2022062616/54959829b4795915158b4667/html5/thumbnails/28.jpg)
Questions?