Jump to: navigation, search

Difference between revisions of "OpenStack Upstream Training/Info/ja"

(OpenStack 貢献のワークフローおよびツール (3時間、2時間の実習を含む))
(Created page with "概要")
Line 1: Line 1:
== はじめに ==
 
  
OpenStack は、最も巨大なコラボレーション型ソフトウェア開発プロジェクトの一つです。世界中の80か国以上から2000人を超える開発者が参加しています。その規模によりもたらされる、社会規範や技術的な習慣における多様性が特徴的です。新規参入者が自身のロードマップと OpenStack プロジェクトとの統合を成功するまでに、かなり時間がかかってしまう可能性があります。
+
概要
  
プロフェッショナル開発者がこのハードルを乗り越える支援をするために、トレーニングプログラムを用意しました。バグ修正や機能追加ができる限り早く OpenStack プロジェクトにきちんと取り込まれるための方法を説明します。この教育プログラムは、受講者が、2日間の集合教育とオンラインのメンタリングを通して、OpenStack に取り込まれるまで、実際にバグ修正や新機能追加に取り組む必要があります。プロジェクトの技術的なツールやコミュニティとの関わりの複雑さについて、2日間の集合教育で説明します。フォローアップセッションでは、受講者が何か疑問に感じた点を解決するために、個々のオンラインセッションを受けられます。
+
With over 2000 developers from 80 different companies worldwide, OpenStack is one of the largest collaborative software-development projects. Because of its size, it is characterized by a huge diversity in social norms and technical conventions.  These can significantly slow down the speed at which newcomers are successful at integrating their own roadmap into that of the OpenStack project.
  
== 目的 ==
+
We've designed a training program to help professional developers negotiate this hurdle.  It shows them how to ensure their bug fix or feature is accepted in the OpenStack project in a minimum amount of time.  The educational program requires students to work on real-life bug fixes or new features during two days of real-life classes and online mentoring, until the work is accepted by OpenStack. The live two-day class teaches them to navigate the intricacies of the project's technical tools and social interactions. In a followup session, the students benefit from individual online sessions to help them resolve any remaining problems they might have.
  
* 商用製品のロードマップと OpenStack のリリースサイクルを迅速に統合する
+
== Objectives ==
* 実際に OpenStack コンポーネントにパッチを一つ貢献する
 
* 技術ツールをマスターする
 
* OpenStack 貢献のワークフローと社会規範を理解する
 
  
== 対象読者 ==
+
* 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
  
* 開発者
+
== Target Audience ==
* システム管理者
 
  
== 必要条件 ==
+
* Developers
 +
* System administrators
  
* 技術レベルの英語の読み書きできること
+
== Prerequisites ==
* コード貢献の場合、プロジェクトのバグ修正を実行できる技術的に習熟していること
 
* ドキュメント貢献の場合、プロジェクトが使用している環境でドキュメントを作成できること
 
* 少なくとも週 8 時間は、プログラミングやコミュニティとのコミュニケーションのために、プロジェクトに専念できること
 
  
== 期間 ==
+
* Being able to read and write English at a technical level.
 +
* If contributing code, being technically proficient enough to carry out simple bug fixes in the project.
 +
* If contributing documentation, being able to produce documents in the project's chosen infrastructure.
 +
* Having at least 8 hours a week to dedicate to the project, be it through programming or through interacting with the community.
  
* 集合実習: 2 日間
+
== Duration ==
* オンライン実習: 4 ~ 10 週間にわたる 10 回の 1 時間メンタリング
 
  
= コース概要 =
+
* Face-to-face section: 2 days
 +
* Online section: 10 one-hour individual mentoring sessions over a period of 4 to 10 weeks
  
== 1日目 ==
+
== Infrastructure ==  
  
=== はじめに ===
+
[[OpenStack_Upstream_Training/Setup_DevStack|ready to use devstack VM]] for participants with network connectivity but troubles with their laptop
* 初日の 1 週間前: 各参加者によるメール経由での、貢献対象の選択
 
  
* 1 日目: OpenStack はどのように作られるのか
+
= Course Outline =
* 1 日目: git、gerrit、IRC の学習と実践
 
  
* 2 日目: 貢献の理論
+
== First day ==
* 2 日目: Lego 貢献シミュレーション
 
* 2 日目: 貢献の計画の個人プレゼンテーション
 
* 2 日目: オンラインメンタリング
 
  
=== OpenStack はどのように作られるか (3時間、1時間30分の実習を含む) ===
+
=== Introduction ===  
  
* [https://wiki.openstack.org/wiki/Release_Cycle リリースサイクル] ( [http://dachary.org/loic/openstack-training/release-cycle.odp slides.odp] [http://dachary.org/loic/openstack-training/release-cycle.pdf slides.pdf] )
+
* A week before Day 1: choice of a contribution, via email, with each participant
** [https://wiki.openstack.org/wiki/Release_Cycle#Planning_.28Design.2C_Discuss_and_Target.29 計画 (設計、議論、目標)]
+
* Day 1: How OpenStack is made
** [https://wiki.openstack.org/wiki/Release_Cycle#Implementation_.28Milestone_iterations.29 実装 (マイルストーンの反復)]
+
* Day 1: Learn and practice git, gerrit, IRC
** [https://wiki.openstack.org/wiki/Release_Cycle#Pre-release_.28Release_Candidates_dance.29 プレリリース (Release Candidates dance)]
+
 
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_candidate_1 リリース候補版 1]
+
* Day 2: The theory of contribution
*** [https://wiki.openstack.org/wiki/Release_Cycle#Other_release_candidates 他のリリース候補版]
+
* Day 2: Lego contribution simulation
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_day リリース日]
+
* Day 2: Individual presentation of the contribution plan
** 実習: based on the [https://wiki.openstack.org/wiki/Icehouse_Release_Schedule Icehouse release schedule] find the URL of a document or a patch that belongs to each of the above steps.
+
* Day 2: Online mentoring
* 関係者 ( [http://dachary.org/loic/openstack-training/relevant-actors.odp slides.odp] [http://dachary.org/loic/openstack-training/relevant-actors.pdf slides.pdf] )
+
 
** [http://www.stackalytics.com/?release=icehouse&metric=commits&project_type=integrated&module=&company=&user_id= コミッター] 企業
+
=== How OpenStack is made (3h including 1h30 exercises) ===
** [http://www.stackalytics.com/?release=icehouse&metric=commits&project_type=integrated&module=&company=&user_id= コミッター] 個人
+
 
** あなたのマネージャー
+
* [https://wiki.openstack.org/wiki/Release_Cycle Release cycle] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/01-release-cycle.rst slides] )
* [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee Technical Committee (技術委員会)] ( [http://dachary.org/loic/openstack-training/technical-committee.odp slides.odp] [http://dachary.org/loic/openstack-training/technical-committee.pdf slides.pdf] )
+
** [https://wiki.openstack.org/wiki/Release_Cycle#Planning_.28Design.2C_Discuss_and_Target.29 Planning (Design, Discuss and Target)]
 +
** [https://wiki.openstack.org/wiki/Release_Cycle#Implementation_.28Milestone_iterations.29 Implementation (Milestone iterations)]
 +
** [https://wiki.openstack.org/wiki/Release_Cycle#Pre-release_.28Release_Candidates_dance.29 Pre-release (Release Candidates dance)]
 +
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_candidate_1 Release candidate 1]
 +
*** [https://wiki.openstack.org/wiki/Release_Cycle#Other_release_candidates Other release candidates]
 +
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_day Release day]
 +
** Exercise: based on the [https://wiki.openstack.org/wiki/Juno_Release_Schedule Juno release schedule] find the URL of a document or a patch that belongs to each of the above steps.
 +
* Relevant actors ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/02-relevant-actors.rst slides] )
 +
** [http://www.stackalytics.com/?release=juno&metric=commits&project_type=integrated&module=&company=&user_id= commiters] companies
 +
** [http://www.stackalytics.com/?release=juno&metric=commits&project_type=integrated&module=&company=&user_id= commiters] individuals (bottom of the page)
 +
** Your management
 +
* [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee Technical Committee] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/03-technical-committee.rst slides] )
 
** Decide what is an [https://wiki.openstack.org/wiki/Programs OpenStack Program]
 
** Decide what is an [https://wiki.openstack.org/wiki/Programs OpenStack Program]
** [https://wiki.openstack.org/wiki/Governance/TechnicalCommittee ミーティング]  
+
** [https://wiki.openstack.org/wiki/Governance/TechnicalCommittee meetings]  
** 実習: read [http://eavesdrop.openstack.org/meetings/tc/2014/tc.2014-04-01-20.03.log.html archived] and briefly comment on [https://etherpad.openstack.org/p/keystone-incubation-integration-requirements keystone document]
+
** Exercise: read [http://eavesdrop.openstack.org/meetings/tc/2014/tc.2014-04-01-20.03.log.html archived] and briefly comment on [https://etherpad.openstack.org/p/keystone-incubation-integration-requirements keystone document]
 
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Program_Leads PTLs]
 
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Program_Leads PTLs]
 
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Voters_for_PTL_seats_.28.22APC.22.29 APC]
 
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Voters_for_PTL_seats_.28.22APC.22.29 APC]
 
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Voters_for_TC_seats_.28.22ATC.22.29 ATC]
 
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Voters_for_TC_seats_.28.22ATC.22.29 ATC]
** 実習: each APC / ATC in the class add a URL to the etherpad proving it
+
** Exercise: each APC / ATC in the class add a URL to the etherpad proving it
* [https://wiki.openstack.org/wiki/Governance/NewProjects プログラムのエコシステム]  ( [http://dachary.org/loic/openstack-training/program-ecosystem.odp slides.odp] [http://dachary.org/loic/openstack-training/program-ecosystem.pdf slides.pdf] )
+
* [https://wiki.openstack.org/wiki/Governance/NewProjects Program ecosystem]  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/04-program-ecosystem.rst slides] )
 
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Incubation Incubated]
 
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Incubation Incubated]
 
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Integrated Integrated]
 
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Integrated Integrated]
 
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Core_.3F Core]
 
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Core_.3F Core]
 
** [http://ci.openstack.org/stackforge.html Stackforge]
 
** [http://ci.openstack.org/stackforge.html Stackforge]
** 実習: What kind of Program do you contribute to ?
+
** Exercise: What kind of Program do you contribute to ?
* [https://wiki.openstack.org/wiki/Summit Design summits]  ( [http://dachary.org/loic/openstack-training/design-summit.odp slides.odp] [http://dachary.org/loic/openstack-training/design-summit.pdf slides.pdf] )
+
* [https://wiki.openstack.org/wiki/Summit Design summits]  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/05-design-summit.rst slides] )
 
** [https://wiki.openstack.org/wiki/Summit#Propose_sessions propose sessions]
 
** [https://wiki.openstack.org/wiki/Summit#Propose_sessions propose sessions]
 
** [https://wiki.openstack.org/wiki/Summit#At_the_Design_Summit attend or lead a session]
 
** [https://wiki.openstack.org/wiki/Summit#At_the_Design_Summit attend or lead a session]
** 実習: Add a session proposal regarding your contribution in an etherpad, review two proposals
+
** [https://wiki.openstack.org/wiki/Summit/Kilo/Etherpads Kilo Summit Etherpads]
* [https://wiki.openstack.org/wiki/Meetings IRC ミーティング]  ( [http://dachary.org/loic/openstack-training/irc-meetings.odp slides.odp] [http://dachary.org/loic/openstack-training/irc-meetings.pdf slides.pdf] )
+
** Exercise: Add a session proposal regarding your contribution in an etherpad, review two proposals
 +
* [https://wiki.openstack.org/wiki/Meetings IRC meetings]  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/06-irc-meetings.rst slides] )
 
** [http://ci.openstack.org/meetbot.html modified] [http://wiki.debian.org/MeetBot meetbot]
 
** [http://ci.openstack.org/meetbot.html modified] [http://wiki.debian.org/MeetBot meetbot]
 
** #info - Add an info item to the minutes. People should liberally use this for important things they say, so that they can be logged in the minutes.  
 
** #info - Add an info item to the minutes. People should liberally use this for important things they say, so that they can be logged in the minutes.  
 
** #action - Document an action item in the minutes. Include any nicknames in the line, and the item will be assigned to them. (nicknames are case-sensitive)  
 
** #action - Document an action item in the minutes. Include any nicknames in the line, and the item will be assigned to them. (nicknames are case-sensitive)  
 
** #help - Add a "Call for Help" to the minutes. Use this command when you need to recruit someone to do a task. (Counter-intuitively, this doesn't provide help on the bot)
 
** #help - Add a "Call for Help" to the minutes. Use this command when you need to recruit someone to do a task. (Counter-intuitively, this doesn't provide help on the bot)
** 実習: lunch menu online meeting
+
** Exercise: lunch menu online meeting
  
<br />
+
=== Workflow of an OpenStack contribution and tools (3h including 2h exercises) ===
  
=== OpenStack 貢献のワークフローおよびツール (3時間、2時間の実習を含む) ===
+
* [http://devstack.org/ devstack] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/11-devstack.rst slides] )
 
+
** Ubuntu or Fedora
* [http://devstack.org/ devstack] ( [http://dachary.org/loic/openstack-training/devstack.odp slides.odp] [http://dachary.org/loic/openstack-training/devstack.pdf slides.pdf] )
 
** Ubuntu または Fedora
 
 
** git clone https://github.com/openstack-dev/devstack.git
 
** git clone https://github.com/openstack-dev/devstack.git
** [http://devstack.org/configuration.html 最小限の設定]
+
** [http://devstack.org/configuration.html minimal configuration]
 
** cd devstack; ./stack.sh
 
** cd devstack; ./stack.sh
** 実習: get the code for the targeted contribution
+
** Exercise: get the code for the targeted contribution
* [[How_To_Contribute|HOW to contribute URL]] ( [http://dachary.org/loic/openstack-training/howtocontribute.odp slides.odp] [http://dachary.org/loic/openstack-training/howtocontribute.pdf slides.pdf] )
+
* [[How_To_Contribute|HOW to contribute URL]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/12-howtocontribute.rst slides] )
 
** [[Puppet-openstack#Contributing_to_the_modules|puppet stackforge]]
 
** [[Puppet-openstack#Contributing_to_the_modules|puppet stackforge]]
** [[Documentation/HowTo|ドキュメント]]
+
** [[Documentation/HowTo|documentation]]
** [http://docs.openstack.org/training-guides/content/under-construction.html トレーニングガイド]
+
** [http://docs.openstack.org/training-guides/content/under-construction.html training guides]
** 実習: Apply for individual membership and sign the CLA
+
** Excercise: Apply for individual membership and sign the CLA
* [https://help.launchpad.net/ launchpad] ( [http://dachary.org/loic/openstack-training/launchpad.odp slides.odp] [http://dachary.org/loic/openstack-training/launchpad.pdf slides.pdf] )
+
* [https://help.launchpad.net/ launchpad] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/13-launchpad.rst slides] )
** [[Blueprints|ブループリント]]
+
** [[Blueprints|blueprints]]
** [[Bugs|バグ]]
+
** [[Bugs|bugs]]
*** [[Bugs#Bugs_reference|状態、重要度、担当者、マイルストーン、タグ]]
+
*** [[Bugs#Bugs_reference|Status, Importance, Assigned To, Milestone, Tags]]
*** [[Bugs#Reporting|バグの報告]]
+
*** [[Bugs#Reporting|reporting a bug]]
*** [[Bugs#Confirming_.26_prioritizing|確認と優先度付け]]
+
*** [[Bugs#Confirming_.26_prioritizing|confirming and prioritizing]]
*** [[Bugs#Debugging_.28optional.29|デバッグ]]
+
*** [[Bugs#Debugging_.28optional.29|debugging]]
*** [[Bugs#Bugfixing|バグ修正]]
+
*** [[Bugs#Bugfixing|bugfixing]]
** 実習: review other launchpad bugs and improve yours
+
** Exercise: review other launchpad bugs and improve yours
* [[GerritWorkflow|gerrit workflow]] ( [http://dachary.org/loic/openstack-training/gerrit.odp slides.odp] [http://dachary.org/loic/openstack-training/gerrit.pdf slides.pdf] )
+
* [[GerritWorkflow|gerrit workflow]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/14-gerrit.rst slides] )
** [[GerritWorkflow#Account_Setup|アカウントのセットアップ]]
+
** [[GerritWorkflow#Account_Setup|account setup]]
** [[GerritWorkflow#Git_Review_Installation|git review のインストール]]
+
** [[GerritWorkflow#Git_Review_Installation|git review installation]]
** [[GerritWorkflow#SSH_Setup|SSH のセットアップ]]
+
** [[GerritWorkflow#SSH_Setup|ssh setup]]
** [[GerritWorkflow#Project_Setup|プロジェクトのセットアップ]]
+
** [[GerritWorkflow#Project_Setup|project setup]]
** [[GerritWorkflow#Normal_Workflow|gerrit ワークフロー]]
+
** [[GerritWorkflow#Normal_Workflow|gerrit workflow]]
** [[Testing#Unit_Tests|ユニットテストの実行]]
+
** [[Testing#Unit_Tests|running unit tests]]
 
** [http://www.mediawiki.org/wiki/Gerrit/Advanced_usage review dependencies]
 
** [http://www.mediawiki.org/wiki/Gerrit/Advanced_usage review dependencies]
** 実習: push a wip or draft and invite reviewers
+
** Exercise: push a wip or draft and invite reviewers
* ブランチモデル ( [http://dachary.org/loic/openstack-training/branching-model.odp slides.odp] [http://dachary.org/loic/openstack-training/branching-model.pdf slides.pdf] )
+
* Branching model ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/15-branching-model.rst slides] )
** [[BranchModel|開発版]]
+
** [[BranchModel|development]]
** [[StableBranch|安定版]]
+
** [[StableBranch|stable]]
** 実習: 最新の安定版ブランチのチェックアウト
+
** Exercise: checkout the latest stable branch
* [[GerritJenkinsGit#Reviewing_a_Change|reviewing]]  ( [http://dachary.org/loic/openstack-training/reviewing.odp slides.odp] [http://dachary.org/loic/openstack-training/reviewing.pdf slides.pdf] )
+
* [[GerritJenkinsGit#Reviewing_a_Change|reviewing]]  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/16-reviewing.rst slides] )
* [[GerritWorkflow#Committing_Changes|writing a commit message]] ( [http://dachary.org/loic/openstack-training/commit-message.odp slides.odp] [http://dachary.org/loic/openstack-training/commit-message.pdf slides.pdf] )
+
* [[GerritWorkflow#Committing_Changes|writing a commit message]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/17-commit-message.rst slides] )
** バグやブループリントの参照
+
** reference to a bug or a blueprint
** コミットメッセージの修正
+
** amending a commit message
** 実習: review each other messages on the draft
+
** Exercise: review each other messages on the draft
* [[GerritJenkinsGit|jenkins]]  ( [http://dachary.org/loic/openstack-training/jenkins.odp slides.odp] [http://dachary.org/loic/openstack-training/jenkins.pdf slides.pdf] )
+
* [[GerritJenkinsGit|jenkins]]  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/18-jenkins.rst slides] )
** 実習: add an error and match it to the jenkins message
+
** Exercise: add an error and match it to the jenkins message
  
== 2日目 ==
+
== Second day ==  
  
=== 貢献プロセス (3時間) ===
+
=== The Contribution Process (1 hour) ===  
  
  ( [http://dachary.org/loic/openstack-training/training-contribution-process.odp] [http://dachary.org/loic/openstack-training/training-contribution-process.pdf] )
+
  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/19-training-contribution-process.rst slides] )
 
* Take the pulse of the project.
 
* Take the pulse of the project.
 
* Figure out who's behind it.
 
* Figure out who's behind it.
Line 140: Line 144:
 
* Play with your network.
 
* Play with your network.
 
* Perform the smaller tasks.
 
* Perform the smaller tasks.
* 質問の選択
+
* Choose a question.
 
* Familiarize yourself with the code of conduct.
 
* Familiarize yourself with the code of conduct.
 
* Understand the conventions.
 
* Understand the conventions.
Line 147: Line 151:
 
* Learn what's local and what's upstream.
 
* Learn what's local and what's upstream.
 
* Learn what distinguishes good work flow from bad work flow.
 
* Learn what distinguishes good work flow from bad work flow.
* 差分の定量化
+
* Quantify the delta.
* 受け入れのスピードアップ
+
* Speed up the acceptance.
* 時間軸の決定
+
* Determine the time frame.
* カルマの最大化
+
* Maximize karma.
* 並行作業
+
* Work in parallel.
 
* Archive and collect.
 
* Archive and collect.
  
=== 貢献者向けアジャイル (15分) ===
+
=== Agile for Contributors (15 min) ===  
 +
 
 +
( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/20-training-agile-for-contributors.rst slides] )
 +
* Apply agile
 +
* Who is the customer?
 +
* Company & Upstream product owner
 +
* Sprint review presentation to Upstream
  
( [http://dachary.org/loic/openstack-training/training-agile-for-contributors.odp] [http://dachary.org/loic/openstack-training/training-agile-for-contributors.pdf] )
+
=== Contribution Simulation (2 hour) ===
* アジャイルの適用
 
* 顧客は誰か?
 
* 企業とアップストリームの製品オーナー
 
* アップストリームへのスプリントレビュープレゼンテーション
 
  
=== 貢献のシミュレーション (1時間) ===
+
The students make a virtual contribution simulation using Lego bricks as props, with the goal of expanding a Lego town, built by upstream. They are divided into teams; the teacher is by turns the product owner in the company and the upstream.
  
受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した Lego タウンを拡張することを目標にします。受講者はチームに分けられます。講師は、企業の製品オーナーとアップストリームを交互に実施します。
+
=== Contribution Planning (2 hours) ===
  
=== 貢献の計画 (2時間) ===
+
( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp odp slides] [http://dachary.org/loic/openstack-training/training-student-project-sample.pdf pdf slides] )
  
( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp] [http://dachary.org/loic/openstack-training/training-student-project-sample.pdf] )
 
  
* 受講者は、スライドのテンプレートを使用して、計画した貢献に関する 5 分間のプレゼンテーションを準備します。
+
* The students use template slides to prepare a 5-minute presentation of their planned contribution.
* プレゼンテーションのサンプルが、講師により例として提供されます。
+
* A sample presentation is given by the teacher, as an example.
* 受講者の各グループは、以下を記載したプレゼンテーションを準備します。
+
* Each student group prepares a presentation describing:
** オンラインセッション中に取り組む予定の貢献内容
+
** the contribution they plan to work on during the online sessions,
** アップストリームに関与する方法
+
** how they will engage with the Upstream,
** 企業の予定に貢献する方法
+
** how it contributes to the company's agenda
** 一緒に取り組む人
+
** and whom they will be working with.
* 受講者の各グループは、スライドをクラスに提供します。
+
* Each student group presents its slides to the class
  
 +
=== Etherpad ===
  
このページは、原文の [https://wiki.openstack.org/w/index.php?title=OpenStack_Upstream_Training/Info&oldid=52057 2014年5月11日 20:32 版] を日本語翻訳しています。
+
https://etherpad.openstack.org/p/kilo-upstream-training

Revision as of 04:37, 17 December 2014

概要

With over 2000 developers from 80 different companies worldwide, OpenStack is one of the largest collaborative software-development projects. Because of its size, it is characterized by a huge diversity in social norms and technical conventions. These can significantly slow down the speed at which newcomers are successful at integrating their own roadmap into that of the OpenStack project.

We've designed a training program to help professional developers negotiate this hurdle. It shows them how to ensure their bug fix or feature is accepted in the OpenStack project in a minimum amount of time. The educational program requires students to work on real-life bug fixes or new features during two days of real-life classes and online mentoring, until the work is accepted by OpenStack. The live two-day class teaches them to navigate the intricacies of the project's technical tools and social interactions. In a followup session, the students benefit from individual online sessions to help them resolve any remaining problems they might have.

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

Target Audience

  • Developers
  • System administrators

Prerequisites

  • Being able to read and write English at a technical level.
  • If contributing code, being technically proficient enough to carry out simple bug fixes in the project.
  • If contributing documentation, being able to produce documents in the project's chosen infrastructure.
  • Having at least 8 hours a week to dedicate to the project, be it through programming or through interacting with the community.

Duration

  • Face-to-face section: 2 days
  • Online section: 10 one-hour individual mentoring sessions over a period of 4 to 10 weeks

Infrastructure

ready to use devstack VM for participants with network connectivity but troubles with their laptop

Course Outline

First day

Introduction

  • A week before Day 1: choice of a contribution, via email, with each participant
  • Day 1: How OpenStack is made
  • Day 1: Learn and practice git, gerrit, IRC
  • Day 2: The theory of contribution
  • Day 2: Lego contribution simulation
  • Day 2: Individual presentation of the contribution plan
  • Day 2: Online mentoring

How OpenStack is made (3h including 1h30 exercises)

Workflow of an OpenStack contribution and tools (3h including 2h exercises)

Second day

The Contribution Process (1 hour)

( slides )
  • Take the pulse of the project.
  • Figure out who's behind it.
  • Determine the project's social groups.
  • Assess your approach.
  • Engage immediately.
  • Play with your network.
  • Perform the smaller tasks.
  • Choose a question.
  • Familiarize yourself with the code of conduct.
  • Understand the conventions.
  • Explain what you do.
  • Prepare the backport.
  • Learn what's local and what's upstream.
  • Learn what distinguishes good work flow from bad work flow.
  • Quantify the delta.
  • Speed up the acceptance.
  • Determine the time frame.
  • Maximize karma.
  • Work in parallel.
  • Archive and collect.

Agile for Contributors (15 min)

( slides )
  • Apply agile
  • Who is the customer?
  • Company & Upstream product owner
  • Sprint review presentation to Upstream

Contribution Simulation (2 hour)

The students make a virtual contribution simulation using Lego bricks as props, with the goal of expanding a Lego town, built by upstream. They are divided into teams; the teacher is by turns the product owner in the company and the upstream.

Contribution Planning (2 hours)

( odp slides pdf slides )


  • The students use template slides to prepare a 5-minute presentation of their planned contribution.
  • A sample presentation is given by the teacher, as an example.
  • Each student group prepares a presentation describing:
    • the contribution they plan to work on during the online sessions,
    • how they will engage with the Upstream,
    • how it contributes to the company's agenda
    • and whom they will be working with.
  • Each student group presents its slides to the class

Etherpad

https://etherpad.openstack.org/p/kilo-upstream-training