OpenStack Upstream Training/Info/ja

概要

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 日目: OpenStack はどのように作られるのか
 * 1 日目: git, gerrit, IRC の学習と実践


 * 2 日目: 貢献の理論
 * 2 日目: Lego 貢献シミュレーション
 * 2 日目: 貢献の計画の個人プレゼンテーション
 * 2 日目: オンラインメンタリング

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

 * リリースサイクル ( スライド )
 * 計画 (設計、議論、目標)
 * 実装 (マイルストーンの反復)
 * プレリリース (リリース候補版の準備)
 * リリース候補版 1
 * 他のリリース候補版
 * リリース日
 * 演習: 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 ( スライド )
 * ブループリント
 * バグ
 * Status, Importance, Assigned To, Milestone, Tags
 * バグ報告
 * 確認および優先度付け
 * デバッグ
 * バグ修正
 * Exercise: review other launchpad bugs and improve yours
 * 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

貢献プロセス (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