engaging the xen developer community€¦ · engaging the xen developer community george dunlap...

28
Sponsored by: & & & Engaging the Xen Developer Community George Dunlap [email protected] Citrix Systems UK

Upload: others

Post on 25-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Sponsored by:

& &

&

Engaging the Xen Developer Community

George Dunlap

[email protected]

Citrix Systems UK

Page 2: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Introduction

Hardware Vendors

Software vendors

Academic

Public cloud providers

Private cloud providers

Page 3: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Goal: Enable you to engage developer

community

Page 5: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

How can you contribute?

Page 7: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Reporting

Good bug report is good

Better yet: Patches!

Page 10: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Asking a question is asking someone else to work for you

Page 15: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Asking good questions

Do as much work as you can yourself first

Search Google

Read the code

Context

Who are you?

What are you trying to accomplish

Make it specific

Show how you’ve tried to solve it yourself

Wiki page: AskingXenDevelQuestions

Page 16: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Sending code upstream

Wiki page: SubmittingXenPatches

Page 17: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Three people to think about

Person reviewing the patch

Does it do the right thing?

Are there any mistakes?

Person scanning through changesets

Do I need to look at this patch?

Archaeologist

6 months, 1 year, 2 years, 5 years

Why is the code the way it is now?

Page 18: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Guidelines

Break your change into a series of patches

One logical change per patch

No 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 change

One-line summary easy to scan

Description says what the patch does and why

Page 19: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Requirements

Patch must apply

Beware of mailer mangling

Mercurial PatchBomb extension

Signed-off-by

Coding style

Page 20: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Open development

Page 22: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Project lifecycle

Initial code dump

Basic functionality and framework

Incubation

Active development towards maturity

Growing community development

Project maturity

Ready to be used by others

Actively maintained

Retired / Archived

Page 23: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

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 Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Goal: Enable you to engage developer

community

Page 28: Engaging the Xen Developer Community€¦ · Engaging the Xen Developer Community George Dunlap george.dunlap@eu.citrix.com Citrix Systems UK ... Running an open development project

Questions?