1. OpenStack Upstream Training Report
June/19/2014
Shuichiro Makigaki
Datastore Platform Group,
System Platform Development Section,
Global Infrastructure Development Department
5. 5
Upstream
Training
Conference
In Atlanta
Design
Summit
What is Upstream Training?
Upstream (software development)
In software development, upstream refers to a direction toward the
original authors or maintainers of software that is distributed as source
code, and is a qualification of either a bug or a patch.
From Wikipedia, the free encyclopedia
7. 7
Objectives
Faster integration of the companies product roadmap into the
OpenStack release cycle
Successfully contribute one real world patch to an OpenStack
component
Master the technical tools
Understand the OpenStack contribution workflow and social norms
In addition,
• Make connection
• Introduce the training to your boss!
• Leaded by developers, not sales person.
8. 8
Objectives
× Learn architecture of OpenStack components
× Learn source code structure
× Learn hidden parameters
× Learn actual operation know-how
× Learn the best management practice
9. 9
Training Schedule
Online mentoring 1A week before Day 1
• Choice of a contribution, via email, with each participant
How OpenStack is madeDay 1
• Learn and practice git, gerrit, IRC
The theory of contributionDay 2
• Lego contribution simulation
• Individual presentation of the contribution plan
Online mentoring 2A week after Day 2
11. 11
A week before
Training
Day 1
Training
Day 2
Conference
A week
after Day 2
A week before Day 1
Pick a few (3 or so) bugs from the low hanging fruit list or elsewhere (it
is up to you) look like good candidates for you to work on during the
training
• Mentor will help you pick one.
It is best to chose a contribution that looks easy.
• The goal of the training will be to get your work accepted
upstream.
• Even the simplest work is an opportunity to learn.
12. 12
A week before
Training
Day 1
Training
Day 2
Conference
A week
after Day 2
Day 1 (Morning)
How OpenStack is made
(3h including 1h30 exercises)
1. Release cycle
2. Relevant actors
3. Technical Committee
4. Program ecosystem
5. Design summits
6. IRC meetings
13. 13
A week before
Training
Day 1
Training
Day 2
Conference
A week
after Day 2
Day 1 (Afternoon)
Workflow of an OpenStack
contribution and tools
(3h including 2h exercises)
1. devstack
2. How to contribute
3. launchpad
4. gerrit workflow
5. Branching model
6. reviewing
7. writing a commit message
8. jenkins
14. 14
A week before
Training
Day 1
Training
Day 2
Conference
A week
after Day 2
Day 2
1. The Contribution Process (3 hours)
2. Agile for Contributors (15 min)
3. Contribution Simulation (1 hour)
4. Contribution Planning (2 hours)
15. 15
A week before
Training
Day 1
Training
Day 2
Conference
A week
after Day 2
Day2 - The Contribution Process
Philosophy of open source contribution
Project pulse
Who's behind ?
Project social groups
Assess your approach
Engage immediately
Play with your network
Smaller tasks
Choosing a question
Code of conduct
Disagree
Understanding the Conventions
Explain what you do
Prepare the backport
Local and upstream
Good workflow
Bad workflow
Quantify the delta
Speeding the acceptance
Timeframe
Building karma
Parallelizing
From easy to difficult
Archive and collect
16. 16
A week before
Training
Day 1
Training
Day 2
Conference
A week
after Day 2
Day 2 - Lego: What agile is.
Upstream project : a Lego town
Company deadline : Lego exhibition
Epic : become a major contributor and
demonstrate the company skills during
the exhibition
• planning (5 min) → building (15
min) → reviewing (5 min)
Actor
• Upstream (Board, Technical Committee, Core)
• Company (CEO, Product owner, Scrum Master, Team members)
• Free Software contributors (Distracted, Controversial, Agreeable…)
17. 17
References
Training materials are available at:
https://wiki.openstack.org/wiki/OpenStack_Upstream_Training/Info
You can re-experience the training by reading them all.
19. 19
Language barrier
Contribution is not just about being technically savvy. It's also about
cooperation and you will get an opportunity to practice from day one :-) For
instance, the language barrier is a handicap and an opportunity to help
or receive help. Native english speakers already noticed I'm not a native
english speaker and kindly refrained from criticizing me. I acknowledge
this problem and from time to time I'll ask for help to clarify an explanation. If
it turns out that my english is better than someone else, I'll return the favor
and gladly help rewrite a mail or rephrase a sentence.
From mentor’s email
20. 20
Language barrier
Lack of English listening ability
Can not understand lecture completely
• Mottainai!
Can not understand Exercise completely
However, can not ask a question!
But, anyone is kind basically even if you speak slowly.
• Keep accuracy, honesty and professionalism
Nervous is not a problem, but don’t hesitate.
21. 21
Import the training to Japan!
Required
• All!
• including free drink & lunch
Should be considered
• Lego: Alternative agile training
• Exercise: Make it clear. Sometimes vague…
Wanted
• Choose bugs carefully that will be fixed
• How to write better emails to community mailing list
• How to dive source code (gnu global, IDE, call graph…)
• How about other opensouce community style?
(Linux kernel, …, Github, bugzilla)
• How about other contribution way? (documentation, infra)
22. 22
Others
Communication
• Don’t depend on Launchpad and mailing list
• Instead, use IRC!
• Push codes to gerrit, as well as discussing
• Try other contribution ways
• Documentation, code review, comments…
• Keep accuracy, honesty and professionalism
Don’t hesitate
• Everyone is kind
, and never give up
• recheck no bug, recheck bug,…
• Ignored? Say “Hello, again!” on IRC
http://openstackreactions.enovance.com/2014/01/keep-hitting-recheck-no-bug-in-reviews/