Jump to: navigation, search

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

(OpenStack 貢献のワークフローおよびツール (3時間、2時間の実習を含む))
m
 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
== はじめに ==
 
  
OpenStack は、最も巨大なコラボレーション型ソフトウェア開発プロジェクトの一つです。世界中の80か国以上から2000人を超える開発者が参加しています。その規模によりもたらされる、社会規範や技術的な習慣における多様性が特徴的です。新規参入者が自身のロードマップと OpenStack プロジェクトとの統合を成功するまでに、かなり時間がかかってしまう可能性があります。
+
概要
 +
 
 +
OpenStack は、最も巨大なコラボレーション型ソフトウェア開発プロジェクトの 1 つです。世界中の 80 か国以上から 2000 人を超える開発者が参加しています。その規模によりもたらされる、社会規範や技術的な習慣における多様性が特徴的です。新規参入者が自身のロードマップと OpenStack プロジェクトとの統合を成功するまでに、かなり時間がかかってしまう可能性があります。
  
 
プロフェッショナル開発者がこのハードルを乗り越える支援をするために、トレーニングプログラムを用意しました。バグ修正や機能追加ができる限り早く OpenStack プロジェクトにきちんと取り込まれるための方法を説明します。この教育プログラムは、受講者が、2日間の集合教育とオンラインのメンタリングを通して、OpenStack に取り込まれるまで、実際にバグ修正や新機能追加に取り組む必要があります。プロジェクトの技術的なツールやコミュニティとの関わりの複雑さについて、2日間の集合教育で説明します。フォローアップセッションでは、受講者が何か疑問に感じた点を解決するために、個々のオンラインセッションを受けられます。
 
プロフェッショナル開発者がこのハードルを乗り越える支援をするために、トレーニングプログラムを用意しました。バグ修正や機能追加ができる限り早く OpenStack プロジェクトにきちんと取り込まれるための方法を説明します。この教育プログラムは、受講者が、2日間の集合教育とオンラインのメンタリングを通して、OpenStack に取り込まれるまで、実際にバグ修正や新機能追加に取り組む必要があります。プロジェクトの技術的なツールやコミュニティとの関わりの複雑さについて、2日間の集合教育で説明します。フォローアップセッションでは、受講者が何か疑問に感じた点を解決するために、個々のオンラインセッションを受けられます。
  
== 目的 ==
+
== 目的 ==  
  
 
* 商用製品のロードマップと OpenStack のリリースサイクルを迅速に統合する
 
* 商用製品のロードマップと OpenStack のリリースサイクルを迅速に統合する
Line 12: Line 13:
 
* OpenStack 貢献のワークフローと社会規範を理解する
 
* OpenStack 貢献のワークフローと社会規範を理解する
  
== 対象読者 ==
+
== 対象読者 ==  
  
 
* 開発者
 
* 開発者
 
* システム管理者
 
* システム管理者
  
== 必要条件 ==
+
== 前提 ==  
  
 
* 技術レベルの英語の読み書きできること
 
* 技術レベルの英語の読み書きできること
Line 24: Line 25:
 
* 少なくとも週 8 時間は、プログラミングやコミュニティとのコミュニケーションのために、プロジェクトに専念できること
 
* 少なくとも週 8 時間は、プログラミングやコミュニティとのコミュニケーションのために、プロジェクトに専念できること
  
== 期間 ==
+
== 期間 ==  
  
 
* 集合実習: 2 日間
 
* 集合実習: 2 日間
 
* オンライン実習: 4 ~ 10 週間にわたる 10 回の 1 時間メンタリング
 
* オンライン実習: 4 ~ 10 週間にわたる 10 回の 1 時間メンタリング
  
= コース概要 =
+
== トレーニング環境 ==  
  
== 1日目 ==
+
日本のトレーニングでは、主催者が用意したクラウド環境に [[OpenStack_Upstream_Training/Setup_DevStack|devstack]] を用いて、OpenStack 環境を構築します。
 +
受講者は、クラウド環境を利用できるノート PC を用意する必要があります。
 +
* Wi-Fiネットワークに接続できること
 +
* SSH クライアント
  
=== はじめに ===
+
= コース概要 =  
* 初日の 1 週間前: 各参加者によるメール経由での、貢献対象の選択
 
  
 +
== 1 日目 ==
 +
 +
=== はじめに ===
 +
 +
* 1 日目の 1 週間前: 各参加者による、貢献対象の選択、メール利用
 
* 1 日目: OpenStack はどのように作られるのか
 
* 1 日目: OpenStack はどのように作られるのか
* 1 日目: git、gerrit、IRC の学習と実践
+
* 1 日目: git, gerrit, IRC の学習と実践
  
 
* 2 日目: 貢献の理論
 
* 2 日目: 貢献の理論
Line 44: Line 52:
 
* 2 日目: オンラインメンタリング
 
* 2 日目: オンラインメンタリング
  
=== OpenStack はどのように作られるか (3時間、1時間30分の実習を含む) ===
+
=== OpenStack はどのように作られるか (3時間、1時間30分の実習を含む) ===  
  
* [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] )
+
* [https://wiki.openstack.org/wiki/Release_Cycle リリースサイクル] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/01-release-cycle.rst スライド] )
 
** [https://wiki.openstack.org/wiki/Release_Cycle#Planning_.28Design.2C_Discuss_and_Target.29 計画 (設計、議論、目標)]
 
** [https://wiki.openstack.org/wiki/Release_Cycle#Planning_.28Design.2C_Discuss_and_Target.29 計画 (設計、議論、目標)]
 
** [https://wiki.openstack.org/wiki/Release_Cycle#Implementation_.28Milestone_iterations.29 実装 (マイルストーンの反復)]
 
** [https://wiki.openstack.org/wiki/Release_Cycle#Implementation_.28Milestone_iterations.29 実装 (マイルストーンの反復)]
** [https://wiki.openstack.org/wiki/Release_Cycle#Pre-release_.28Release_Candidates_dance.29 プレリリース (Release Candidates dance)]
+
** [https://wiki.openstack.org/wiki/Release_Cycle#Pre-release_.28Release_Candidates_dance.29 プレリリース (リリース候補版の準備)]
 
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_candidate_1 リリース候補版 1]
 
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_candidate_1 リリース候補版 1]
 
*** [https://wiki.openstack.org/wiki/Release_Cycle#Other_release_candidates 他のリリース候補版]
 
*** [https://wiki.openstack.org/wiki/Release_Cycle#Other_release_candidates 他のリリース候補版]
 
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_day リリース日]
 
*** [https://wiki.openstack.org/wiki/Release_Cycle#Release_day リリース日]
** 実習: 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.
+
** 演習: based on the [https://wiki.openstack.org/wiki/Juno_Release_Schedule Juno リリース・スケジュール] find the URL of a document or a patch that belongs to each of the above steps.
* 関係者 ( [http://dachary.org/loic/openstack-training/relevant-actors.odp slides.odp] [http://dachary.org/loic/openstack-training/relevant-actors.pdf slides.pdf] )
+
* 関係者 ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/02-relevant-actors.rst スライド] )
** [http://www.stackalytics.com/?release=icehouse&metric=commits&project_type=integrated&module=&company=&user_id= コミッター] 企業
+
** [http://www.stackalytics.com/?release=juno&metric=commits&project_type=integrated&module=&company=&user_id= コミッター] 企業
** [http://www.stackalytics.com/?release=icehouse&metric=commits&project_type=integrated&module=&company=&user_id= コミッター] 個人
+
** [http://www.stackalytics.com/?release=juno&metric=commits&project_type=integrated&module=&company=&user_id= コミッター] 個人 (ページ下部)
 
** あなたのマネージャー
 
** あなたのマネージャー
* [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/Governance/Foundation/TechnicalCommittee Technical Committee] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/03-technical-committee.rst スライド] )
** Decide what is an [https://wiki.openstack.org/wiki/Programs OpenStack Program]
+
** Decide what is an [https://wiki.openstack.org/wiki/Programs OpenStack プログラム]
 
** [https://wiki.openstack.org/wiki/Governance/TechnicalCommittee ミーティング]  
 
** [https://wiki.openstack.org/wiki/Governance/TechnicalCommittee ミーティング]  
** 実習: 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 ドキュメント]
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Program_Leads PTLs]
+
** [https://wiki.openstack.org/wiki/Governance/Foundation/TechnicalCommittee#Program_Leads PTL]
 
** [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 スライド] )
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Incubation Incubated]
+
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Incubation 育成]
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Integrated Integrated]
+
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Integrated 統合]
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Core_.3F Core]
+
** [https://wiki.openstack.org/wiki/Governance/NewProjects#Core_.3F コア]
 
** [http://ci.openstack.org/stackforge.html Stackforge]
 
** [http://ci.openstack.org/stackforge.html Stackforge]
** 実習: 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 スライド] )
** [https://wiki.openstack.org/wiki/Summit#Propose_sessions propose sessions]
+
** [https://wiki.openstack.org/wiki/Summit#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 セッションへの参加とリード]
** 実習: Add a session proposal regarding your contribution in an etherpad, review two proposals
+
** [https://wiki.openstack.org/wiki/Summit/Kilo/Etherpads Kilo Summit Etherpad]
* [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] )
+
** 演習: Add a session proposal regarding your contribution in an etherpad, review two proposals
 +
* [https://wiki.openstack.org/wiki/Meetings IRC ミーティング]  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/06-irc-meetings.rst スライド] )
 
** [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
+
** 演習: ランチメニューのオンラインミーティング
  
<br />
+
=== OpenStack 貢献のワークフローおよびツール (3時間、2時間の演習を含む) ===
  
=== OpenStack 貢献のワークフローおよびツール (3時間、2時間の実習を含む) ===
+
* [http://devstack.org/ devstack] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/11-devstack.rst スライド] )
 
 
* [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
 
** 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 最小限の設定]
 
** cd devstack; ./stack.sh
 
** cd devstack; ./stack.sh
** 実習: 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 スライド] )
 
** [[Puppet-openstack#Contributing_to_the_modules|puppet stackforge]]
 
** [[Puppet-openstack#Contributing_to_the_modules|puppet stackforge]]
 
** [[Documentation/HowTo|ドキュメント]]
 
** [[Documentation/HowTo|ドキュメント]]
** [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 スライド] )
** [[Blueprints|blueprints]]
+
** [[Blueprints|ブループリント]]
** [[Bugs|bugs]]
+
** [[Bugs|バグ]]
*** [[Bugs#Bugs_reference|状態、重要度、担当者、マイルストーン、タグ]]
+
*** [[Bugs#Bugs_reference|Status, Importance, Assigned To, Milestone, Tags]]
*** [[Bugs#Reporting|バグの報告]]
+
*** [[Bugs#Reporting|バグ報告]]
*** [[Bugs#Confirming_.26_prioritizing|確認と優先度付け]]
+
*** [[Bugs#Confirming_.26_prioritizing|確認および優先度付け]]
 
*** [[Bugs#Debugging_.28optional.29|デバッグ]]
 
*** [[Bugs#Debugging_.28optional.29|デバッグ]]
 
*** [[Bugs#Bugfixing|バグ修正]]
 
*** [[Bugs#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 スライド] )
** [[GerritWorkflow#Account_Setup|account setup]]
+
** [[GerritWorkflow#Account_Setup|アカウントのセットアップ]]
** [[GerritWorkflow#Git_Review_Installation|git review installation]]
+
** [[GerritWorkflow#Git_Review_Installation|git review のインストール]]
** [[GerritWorkflow#SSH_Setup|ssh setup]]
+
** [[GerritWorkflow#SSH_Setup|ssh のセットアップ]]
** [[GerritWorkflow#Project_Setup|project setup]]
+
** [[GerritWorkflow#Project_Setup|プロジェクトのセットアップ]]
** [[GerritWorkflow#Normal_Workflow|gerrit workflow]]
+
** [[GerritWorkflow#Normal_Workflow|gerrit ワークフロー]]
** [[Testing#Unit_Tests|running unit tests]]
+
** [[Testing#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
+
** 演習: add an error and match it to the jenkins message
  
== 2日目 ==
+
== 2 日目 ==  
  
=== 貢献プロセス (3時間) ===
+
=== 貢献プロセス (1 時間) ===  
  
  ( [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 スライド] )
 
* 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 147:
 
* 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 154:
 
* 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分) ===
+
=== 貢献者向けアジャイル (15分) ===  
  
  ( [http://dachary.org/loic/openstack-training/training-agile-for-contributors.odp] [http://dachary.org/loic/openstack-training/training-agile-for-contributors.pdf] )
+
  ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/20-training-agile-for-contributors.rst スライド] )
 
* アジャイルの適用
 
* アジャイルの適用
 
* 顧客は誰か?
 
* 顧客は誰か?
Line 162: Line 169:
 
* アップストリームへのスプリントレビュープレゼンテーション
 
* アップストリームへのスプリントレビュープレゼンテーション
  
=== 貢献のシミュレーション (1時間) ===
+
=== 貢献のシミュレーション (2 時間) ===  
  
 
受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した Lego タウンを拡張することを目標にします。受講者はチームに分けられます。講師は、企業の製品オーナーとアップストリームを交互に実施します。
 
受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した Lego タウンを拡張することを目標にします。受講者はチームに分けられます。講師は、企業の製品オーナーとアップストリームを交互に実施します。
  
=== 貢献の計画 (2時間) ===
+
=== 貢献の計画 (2時間) ===  
 +
 
 +
( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp ODP形式スライド]、[http://dachary.org/loic/openstack-training/training-student-project-sample.pdf PDF形式スライド] )
  
( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp] [http://dachary.org/loic/openstack-training/training-student-project-sample.pdf] )
 
  
 
* 受講者は、スライドのテンプレートを使用して、計画した貢献に関する 5 分間のプレゼンテーションを準備します。
 
* 受講者は、スライドのテンプレートを使用して、計画した貢献に関する 5 分間のプレゼンテーションを準備します。
Line 177: Line 185:
 
** 企業の予定に貢献する方法
 
** 企業の予定に貢献する方法
 
** 一緒に取り組む人
 
** 一緒に取り組む人
* 受講者の各グループは、スライドをクラスに提供します。
+
*受講者の各グループは、スライドをクラスに提供します。
  
 +
=== 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/upstream-training-jp

Latest revision as of 05:31, 24 December 2014

概要

OpenStack は、最も巨大なコラボレーション型ソフトウェア開発プロジェクトの 1 つです。世界中の 80 か国以上から 2000 人を超える開発者が参加しています。その規模によりもたらされる、社会規範や技術的な習慣における多様性が特徴的です。新規参入者が自身のロードマップと OpenStack プロジェクトとの統合を成功するまでに、かなり時間がかかってしまう可能性があります。

プロフェッショナル開発者がこのハードルを乗り越える支援をするために、トレーニングプログラムを用意しました。バグ修正や機能追加ができる限り早く OpenStack プロジェクトにきちんと取り込まれるための方法を説明します。この教育プログラムは、受講者が、2日間の集合教育とオンラインのメンタリングを通して、OpenStack に取り込まれるまで、実際にバグ修正や新機能追加に取り組む必要があります。プロジェクトの技術的なツールやコミュニティとの関わりの複雑さについて、2日間の集合教育で説明します。フォローアップセッションでは、受講者が何か疑問に感じた点を解決するために、個々のオンラインセッションを受けられます。

目的

  • 商用製品のロードマップと OpenStack のリリースサイクルを迅速に統合する
  • 実際に OpenStack コンポーネントにパッチを一つ貢献する
  • 技術ツールをマスターする
  • OpenStack 貢献のワークフローと社会規範を理解する

対象読者

  • 開発者
  • システム管理者

前提

  • 技術レベルの英語の読み書きできること
  • コード貢献の場合、プロジェクトのバグ修正を実行できる技術的に習熟していること
  • ドキュメント貢献の場合、プロジェクトが使用している環境でドキュメントを作成できること
  • 少なくとも週 8 時間は、プログラミングやコミュニティとのコミュニケーションのために、プロジェクトに専念できること

期間

  • 集合実習: 2 日間
  • オンライン実習: 4 ~ 10 週間にわたる 10 回の 1 時間メンタリング

トレーニング環境

日本のトレーニングでは、主催者が用意したクラウド環境に devstack を用いて、OpenStack 環境を構築します。 受講者は、クラウド環境を利用できるノート PC を用意する必要があります。

  • Wi-Fiネットワークに接続できること
  • SSH クライアント

コース概要

1 日目

はじめに

  • 1 日目の 1 週間前: 各参加者による、貢献対象の選択、メール利用
  • 1 日目: OpenStack はどのように作られるのか
  • 1 日目: git, gerrit, IRC の学習と実践
  • 2 日目: 貢献の理論
  • 2 日目: Lego 貢献シミュレーション
  • 2 日目: 貢献の計画の個人プレゼンテーション
  • 2 日目: オンラインメンタリング

OpenStack はどのように作られるか (3時間、1時間30分の実習を含む)

OpenStack 貢献のワークフローおよびツール (3時間、2時間の演習を含む)

2 日目

貢献プロセス (1 時間)

( スライド )
  • 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.

貢献者向けアジャイル (15分)

( スライド )
  • アジャイルの適用
  • 顧客は誰か?
  • 企業とアップストリームの製品オーナー
  • アップストリームへのスプリントレビュープレゼンテーション

貢献のシミュレーション (2 時間)

受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した Lego タウンを拡張することを目標にします。受講者はチームに分けられます。講師は、企業の製品オーナーとアップストリームを交互に実施します。

貢献の計画 (2時間)

( ODP形式スライドPDF形式スライド )


  • 受講者は、スライドのテンプレートを使用して、計画した貢献に関する 5 分間のプレゼンテーションを準備します。
  • プレゼンテーションのサンプルが、講師により例として提供されます。
  • 受講者の各グループは、以下を記載したプレゼンテーションを準備します。
    • オンラインセッション中に取り組む予定の貢献内容
    • アップストリームに関与する方法
    • 企業の予定に貢献する方法
    • 一緒に取り組む人
  • 受講者の各グループは、スライドをクラスに提供します。

Etherpad

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