Difference between revisions of "OpenStack Upstream Training/Info/ja"
(Created page with "受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した...") |
m |
||
(17 intermediate revisions by the same user not shown) | |||
Line 32: | Line 32: | ||
== トレーニング環境 == | == トレーニング環境 == | ||
− | + | 日本のトレーニングでは、主催者が用意したクラウド環境に [[OpenStack_Upstream_Training/Setup_DevStack|devstack]] を用いて、OpenStack 環境を構築します。 | |
+ | 受講者は、クラウド環境を利用できるノート PC を用意する必要があります。 | ||
+ | * Wi-Fiネットワークに接続できること | ||
+ | * SSH クライアント | ||
= コース概要 = | = コース概要 = | ||
Line 44: | Line 47: | ||
* 1 日目: git, gerrit, IRC の学習と実践 | * 1 日目: git, gerrit, IRC の学習と実践 | ||
− | 2 日目: 貢献の理論 | + | * 2 日目: 貢献の理論 |
− | 2 日目: Lego 貢献シミュレーション | + | * 2 日目: Lego 貢献シミュレーション |
− | 2 日目: 貢献の計画の個人プレゼンテーション | + | * 2 日目: 貢献の計画の個人プレゼンテーション |
− | 2 日目: オンラインメンタリング | + | * 2 日目: オンラインメンタリング |
− | === OpenStack はどのように作られるか (3時間、1時間30分の実習を含む) | + | === OpenStack はどのように作られるか (3時間、1時間30分の実習を含む) === |
− | |||
− | * [https://wiki.openstack.org/wiki/Release_Cycle | + | * [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 | + | ** [https://wiki.openstack.org/wiki/Release_Cycle#Pre-release_.28Release_Candidates_dance.29 プレリリース (リリース候補版の準備)] |
− | *** [https://wiki.openstack.org/wiki/Release_Cycle#Release_candidate_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/Juno_Release_Schedule Juno リリース・スケジュール] find the URL of a document or a patch that belongs to each of the above steps. |
− | * | + | * 関係者 ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/02-relevant-actors.rst スライド] ) |
− | ** [http://www.stackalytics.com/?release=juno&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=juno&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] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/03-technical-committee.rst | + | * [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 | + | ** 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 ミーティング] |
− | ** 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 | + | ** 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 | + | ** [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] | ||
** Exercise: 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 Program ecosystem] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/04-program-ecosystem.rst | + | * [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 | + | ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Incubation 育成] |
− | ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Integrated | + | ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Integrated 統合] |
− | ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Core_.3F | + | ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Core_.3F コア] |
** [http://ci.openstack.org/stackforge.html Stackforge] | ** [http://ci.openstack.org/stackforge.html Stackforge] | ||
− | ** | + | ** 演習: どの種類のプログラムに貢献したいですか ? |
− | * [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 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 | + | ** [https://wiki.openstack.org/wiki/Summit#Propose_sessions 提案セッション] |
− | ** [https://wiki.openstack.org/wiki/Summit#At_the_Design_Summit | + | ** [https://wiki.openstack.org/wiki/Summit#At_the_Design_Summit セッションへの参加とリード] |
− | ** [https://wiki.openstack.org/wiki/Summit/Kilo/Etherpads Kilo Summit | + | ** [https://wiki.openstack.org/wiki/Summit/Kilo/Etherpads Kilo Summit Etherpad] |
− | ** | + | ** 演習: Add a session proposal regarding your contribution in an etherpad, review two proposals |
− | * [https://wiki.openstack.org/wiki/Meetings IRC | + | * [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) | ||
− | ** | + | ** 演習: ランチメニューのオンラインミーティング |
− | === OpenStack 貢献のワークフローおよびツール ( | + | === 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] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/11-devstack.rst スライド] ) |
− | ** Ubuntu | + | ** 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 | ||
− | ** | + | ** 演習: 貢献予定のコードの取得 |
− | * [[How_To_Contribute|HOW to contribute URL]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/12-howtocontribute.rst | + | * [[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 training guides] | ** [http://docs.openstack.org/training-guides/content/under-construction.html training guides] | ||
** Excercise: Apply for individual membership and sign the CLA | ** Excercise: Apply for individual membership and sign the CLA | ||
− | * [https://help.launchpad.net/ launchpad] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/13-launchpad.rst | + | * [https://help.launchpad.net/ launchpad] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/13-launchpad.rst スライド] ) |
− | ** [[Blueprints| | + | ** [[Blueprints|ブループリント]] |
− | ** [[Bugs| | + | ** [[Bugs|バグ]] |
*** [[Bugs#Bugs_reference|Status, Importance, Assigned To, Milestone, Tags]] | *** [[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|バグ修正]] |
** Exercise: review other launchpad bugs and improve yours | ** Exercise: review other launchpad bugs and improve yours | ||
− | * [[GerritWorkflow|gerrit workflow]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/14-gerrit.rst | + | * [[GerritWorkflow|gerrit workflow]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/14-gerrit.rst スライド] ) |
− | ** [[GerritWorkflow#Account_Setup| | + | ** [[GerritWorkflow#Account_Setup|アカウントのセットアップ]] |
− | ** [[GerritWorkflow#Git_Review_Installation|git review | + | ** [[GerritWorkflow#Git_Review_Installation|git review のインストール]] |
− | ** [[GerritWorkflow#SSH_Setup|ssh | + | ** [[GerritWorkflow#SSH_Setup|ssh のセットアップ]] |
− | ** [[GerritWorkflow#Project_Setup| | + | ** [[GerritWorkflow#Project_Setup|プロジェクトのセットアップ]] |
− | ** [[GerritWorkflow#Normal_Workflow|gerrit | + | ** [[GerritWorkflow#Normal_Workflow|gerrit ワークフロー]] |
− | ** [[Testing#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] | ||
** Exercise: push a wip or draft and invite reviewers | ** Exercise: push a wip or draft and invite reviewers | ||
Line 131: | Line 133: | ||
** Exercise: review each other messages on the draft | ** Exercise: review each other messages on the draft | ||
* [[GerritJenkinsGit|jenkins]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/18-jenkins.rst slides] ) | * [[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 |
== 2 日目 == | == 2 日目 == | ||
Line 137: | Line 139: | ||
=== 貢献プロセス (1 時間) === | === 貢献プロセス (1 時間) === | ||
− | ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/19-training-contribution-process.rst | + | ( [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 161: | Line 163: | ||
=== 貢献者向けアジャイル (15分) === | === 貢献者向けアジャイル (15分) === | ||
− | ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/20-training-agile-for-contributors.rst | + | ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/20-training-agile-for-contributors.rst スライド] ) |
− | * | + | * アジャイルの適用 |
− | * | + | * 顧客は誰か? |
− | * | + | * 企業とアップストリームの製品オーナー |
− | * | + | * アップストリームへのスプリントレビュープレゼンテーション |
− | === | + | === 貢献のシミュレーション (2 時間) === |
受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した Lego タウンを拡張することを目標にします。受講者はチームに分けられます。講師は、企業の製品オーナーとアップストリームを交互に実施します。 | 受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した Lego タウンを拡張することを目標にします。受講者はチームに分けられます。講師は、企業の製品オーナーとアップストリームを交互に実施します。 | ||
Line 173: | Line 175: | ||
=== 貢献の計画 (2時間) === | === 貢献の計画 (2時間) === | ||
− | ( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp | + | ( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp ODP形式スライド]、[http://dachary.org/loic/openstack-training/training-student-project-sample.pdf PDF形式スライド] ) |
Latest revision as of 05:31, 24 December 2014
概要
OpenStack は、最も巨大なコラボレーション型ソフトウェア開発プロジェクトの 1 つです。世界中の 80 か国以上から 2000 人を超える開発者が参加しています。その規模によりもたらされる、社会規範や技術的な習慣における多様性が特徴的です。新規参入者が自身のロードマップと OpenStack プロジェクトとの統合を成功するまでに、かなり時間がかかってしまう可能性があります。
プロフェッショナル開発者がこのハードルを乗り越える支援をするために、トレーニングプログラムを用意しました。バグ修正や機能追加ができる限り早く OpenStack プロジェクトにきちんと取り込まれるための方法を説明します。この教育プログラムは、受講者が、2日間の集合教育とオンラインのメンタリングを通して、OpenStack に取り込まれるまで、実際にバグ修正や新機能追加に取り組む必要があります。プロジェクトの技術的なツールやコミュニティとの関わりの複雑さについて、2日間の集合教育で説明します。フォローアップセッションでは、受講者が何か疑問に感じた点を解決するために、個々のオンラインセッションを受けられます。
Contents
目的
- 商用製品のロードマップと 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分の実習を含む)
- リリースサイクル ( スライド )
- 計画 (設計、議論、目標)
- 実装 (マイルストーンの反復)
- プレリリース (リリース候補版の準備)
- 演習: based on the Juno リリース・スケジュール find the URL of a document or a patch that belongs to each of the above steps.
- 関係者 ( スライド )
- Technical Committee ( スライド )
- Decide what is an OpenStack プログラム
- ミーティング
- Exercise: read archived and briefly comment on keystone ドキュメント
- PTL
- APC
- ATC
- Exercise: each APC / ATC in the class add a URL to the etherpad proving it
- Program ecosystem ( スライド )
- 育成
- 統合
- コア
- Stackforge
- 演習: どの種類のプログラムに貢献したいですか ?
- Design summits ( スライド )
- 提案セッション
- セッションへの参加とリード
- Kilo Summit Etherpad
- 演習: Add a session proposal regarding your contribution in an etherpad, review two proposals
- IRC ミーティング ( スライド )
- modified 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.
- #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)
- 演習: ランチメニューのオンラインミーティング
OpenStack 貢献のワークフローおよびツール (3時間、2時間の演習を含む)
- devstack ( スライド )
- Ubuntu または Fedora
- git clone https://github.com/openstack-dev/devstack.git
- 最小限の設定
- cd devstack; ./stack.sh
- 演習: 貢献予定のコードの取得
- HOW to contribute URL ( スライド )
- puppet stackforge
- ドキュメント
- training guides
- Excercise: Apply for individual membership and sign the CLA
- launchpad ( スライド )
- gerrit workflow ( スライド )
- アカウントのセットアップ
- git review のインストール
- ssh のセットアップ
- プロジェクトのセットアップ
- gerrit ワークフロー
- ユニットテストの実行
- review dependencies
- Exercise: push a wip or draft and invite reviewers
- Branching model ( slides )
- development
- stable
- Exercise: checkout the latest stable branch
- reviewing ( slides )
- writing a commit message ( slides )
- reference to a bug or a blueprint
- amending a commit message
- Exercise: review each other messages on the draft
- jenkins ( slides )
- 演習: add an error and match it to the jenkins message
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 分間のプレゼンテーションを準備します。
- プレゼンテーションのサンプルが、講師により例として提供されます。
- 受講者の各グループは、以下を記載したプレゼンテーションを準備します。
- オンラインセッション中に取り組む予定の貢献内容
- アップストリームに関与する方法
- 企業の予定に貢献する方法
- 一緒に取り組む人
- 受講者の各グループは、スライドをクラスに提供します。