Difference between revisions of "OpenStack Upstream Training/Info/ja"
m (→貢献プロセス (3時間)) |
(→OpenStack はどのように作られるか (3時間、1時間30分の実習を含む)) |
||
Line 53: | Line 53: | ||
*** [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. |
* 関係者 ( [http://dachary.org/loic/openstack-training/relevant-actors.odp slides.odp] [http://dachary.org/loic/openstack-training/relevant-actors.pdf slides.pdf] ) | * 関係者 ( [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= コミッター] 企業 | ** [http://www.stackalytics.com/?release=icehouse&metric=commits&project_type=integrated&module=&company=&user_id= コミッター] 企業 | ||
Line 61: | Line 61: | ||
** 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 ミーティング] | ||
− | ** | + | ** 実習: 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 |
* [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 プログラムのエコシステム] ( [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#Incubation Incubated] | ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Incubation Incubated] | ||
Line 71: | Line 71: | ||
** [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 ? |
* [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] ( [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#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/Meetings IRC ミーティング] ( [http://dachary.org/loic/openstack-training/irc-meetings.odp slides.odp] [http://dachary.org/loic/openstack-training/irc-meetings.pdf slides.pdf] ) | * [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] ) | ||
** [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] | ||
Line 81: | Line 81: | ||
** #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 /> | <br /> |
Revision as of 09:14, 12 September 2014
Contents
はじめに
OpenStack は、最も巨大なコラボレーション型ソフトウェア開発プロジェクトの一つです。世界中の80か国以上から2000人を超える開発者が参加しています。その規模によりもたらされる、社会規範や技術的な習慣における多様性が特徴的です。新規参入者が自身のロードマップと OpenStack プロジェクトとの統合を成功するまでに、かなり時間がかかってしまう可能性があります。
プロフェッショナル開発者がこのハードルを乗り越える支援をするために、トレーニングプログラムを用意しました。バグ修正や機能追加ができる限り早く OpenStack プロジェクトにきちんと取り込まれるための方法を説明します。この教育プログラムは、受講者が、2日間の集合教育とオンラインのメンタリングを通して、OpenStack に取り込まれるまで、実際にバグ修正や新機能追加に取り組む必要があります。プロジェクトの技術的なツールやコミュニティとの関わりの複雑さについて、2日間の集合教育で説明します。フォローアップセッションでは、受講者が何か疑問に感じた点を解決するために、個々のオンラインセッションを受けられます。
目的
- 商用製品のロードマップと OpenStack のリリースサイクルを迅速に統合する
- 実際に OpenStack コンポーネントにパッチを一つ貢献する
- 技術ツールをマスターする
- OpenStack 貢献のワークフローと社会規範を理解する
対象読者
- 開発者
- システム管理者
必要条件
- 技術レベルの英語の読み書きできること
- コード貢献の場合、プロジェクトのバグ修正を実行できる技術的に習熟していること
- ドキュメント貢献の場合、プロジェクトが使用している環境でドキュメントを作成できること
- 少なくとも週 8 時間は、プログラミングやコミュニティとのコミュニケーションのために、プロジェクトに専念できること
期間
- 集合実習: 2 日間
- オンライン実習: 4 ~ 10 週間にわたる 10 回の 1 時間メンタリング
コース概要
1日目
はじめに
- 初日の 1 週間前: 各参加者によるメール経由での、貢献対象の選択
- 1 日目: OpenStack はどのように作られるのか
- 1 日目: git、gerrit、IRC の学習と実践
- 2 日目: 貢献の理論
- 2 日目: Lego 貢献シミュレーション
- 2 日目: 貢献の計画の個人プレゼンテーション
- 2 日目: オンラインメンタリング
OpenStack はどのように作られるか (3時間、1時間30分の実習を含む)
- リリースサイクル ( slides.odp slides.pdf )
- 計画 (設計、議論、目標)
- 実装 (マイルストーンの反復)
- プレリリース (Release Candidates dance)
- 実習: based on the Icehouse release schedule find the URL of a document or a patch that belongs to each of the above steps.
- 関係者 ( slides.odp slides.pdf )
- Technical Committee ( slides.odp slides.pdf )
- Decide what is an OpenStack Program
- ミーティング
- 実習: read archived and briefly comment on keystone document
- PTLs
- APC
- ATC
- 実習: each APC / ATC in the class add a URL to the etherpad proving it
- プログラムのエコシステム ( slides.odp slides.pdf )
- Incubated
- Integrated
- Core
- Stackforge
- 実習: What kind of Program do you contribute to ?
- Design summits ( slides.odp slides.pdf )
- propose sessions
- attend or lead a session
- 実習: Add a session proposal regarding your contribution in an etherpad, review two proposals
- IRC ミーティング ( slides.odp slides.pdf )
- 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)
- 実習: lunch menu online meeting
OpenStack 貢献のワークフローおよびツール (3時間、2時間の実習を含む)
- devstack ( slides.odp slides.pdf )
- Ubuntu or Fedora
- git clone https://github.com/openstack-dev/devstack.git
- minimal configuration
- cd devstack; ./stack.sh
- Exercise: get the code for the targeted contribution
- HOW to contribute URL ( slides.odp slides.pdf )
- puppet stackforge
- documentation
- training guides
- Excercise: Apply for individual membership and sign the CLA
- launchpad ( slides.odp slides.pdf )
- blueprints
- bugs
- Exercise: review other launchpad bugs and improve yours
- gerrit workflow ( slides.odp slides.pdf )
- account setup
- git review installation
- ssh setup
- project setup
- gerrit workflow
- running unit tests
- review dependencies
- Exercise: push a wip or draft and invite reviewers
- Branching model ( slides.odp slides.pdf )
- development
- stable
- Exercise: checkout the latest stable branch
- reviewing ( slides.odp slides.pdf )
- writing a commit message ( slides.odp slides.pdf )
- reference to a bug or a blueprint
- amending a commit message
- Exercise: review each other messages on the draft
- jenkins ( slides.odp slides.pdf )
- Exercise: add an error and match it to the jenkins message
2日目
貢献プロセス (3時間)
( [1] [2] )
- 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.
- 質問の選択
- 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.
- 差分の定量化
- 受け入れのスピードアップ
- 時間軸の決定
- カルマの最大化
- 並行作業
- Archive and collect.
貢献者向けアジャイル (15分)
( [3] [4] )
- アジャイルの適用
- 顧客は誰か?
- 企業とアップストリームの製品オーナー
- アップストリームへのスプリントレビュープレゼンテーション
貢献のシミュレーション (1時間)
受講者は、小道具として Lego ブロックを使用した、仮想的な貢献のシミュレーションを実施します。アップストリームが構築した Lego タウンを拡張することを目標にします。受講者はチームに分けられます。講師は、企業の製品オーナーとアップストリームを交互に実施します。
貢献の計画 (2時間)
( [5] [6] )
- 受講者は、スライドのテンプレートを使用して、計画した貢献に関する 5 分間のプレゼンテーションを準備します。
- プレゼンテーションのサンプルが、講師により例として提供されます。
- 受講者の各グループは、以下を記載したプレゼンテーションを準備します。
- オンラインセッション中に取り組む予定の貢献内容
- アップストリームに関与する方法
- 企業の予定に貢献する方法
- 一緒に取り組む人
- 受講者の各グループは、スライドをクラスに提供します。
このページは、原文の 2014年5月11日 20:32 版 を日本語翻訳しています。