OpenStack Upstream Training/Info/ko

소개
OpenStack은 가장 거대한 협업 소프트웨어 개발 프로젝트 중 하나입니다. 전세계 80여 개국에서 2000 명이 넘는 개발자들이 참여하고 있습니다. 그 규모에 의해 초래되는 사회적 규범이나 기술적 인 습관의 다양성이 특징입니다. 이러한 것들로 인해 새로 온 사람들이 OpenStack 프로젝트에 통합됨에 따른 변화의 속도가 확연히 줄어들 수 있습니다.

전문 개발자가이 어려움에 대해 극복할 수 있도록 지원하기 위해 교육 프로그램을 마련했습니다. 버그 수정과 기능 추가가 가능한 한 빨리 OpenStack 프로젝트에 정확히 받아 들여지는 방법을 설명합니다. 이 교육 프로그램은 수강자가 2 일 집합 교육과 온라인 멘토링을 통해 OpenStack 받아 들여지기까지 실제로 버그 수정 및 새로운 기능 추가에 대처할 필요가 있습니다. 프로젝트의 기술적 인 도구와 지역 사회와의 관계의 복잡성에 대해 2 일간의 집합 교육에서 설명합니다. 후속 세션에서는 수강자가 의문으로 느낀 점을 해결하기 위해 개별 온라인 세션을받을 수 있습니다.

목표

 * 상용 제품 로드맵 및 OpenStack 릴리즈 주기를 신속하게 통합
 * 실제로 OpenStack 구성 요소에 패치를 하나 컨트리뷰션
 * 기술 도구를 마스터하기
 * OpenStack 컨트리뷰션의 흐름과 사회 규범을 이해

대상 청중

 * 개발자
 * 시스템 관리자

선수 사항

 * 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 =

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)

 * Release cycle ( slides )
 * Planning (Design, Discuss and Target)
 * Implementation (Milestone iterations)
 * Pre-release (Release Candidates dance)
 * Release candidate 1
 * Other release candidates
 * Release day
 * Exercise: based on the Juno release schedule find the URL of a document or a patch that belongs to each of the above steps.
 * Relevant actors ( slides )
 * commiters companies
 * commiters individuals (bottom of the page)
 * Your management
 * Technical Committee ( slides )
 * Decide what is an OpenStack Program
 * meetings
 * Exercise: read archived and briefly comment on keystone document
 * PTLs
 * APC
 * ATC
 * Exercise: each APC / ATC in the class add a URL to the etherpad proving it
 * Program ecosystem ( slides )
 * Incubated
 * Integrated
 * Core
 * Stackforge
 * Exercise: What kind of Program do you contribute to ?
 * Design summits ( slides )
 * propose sessions
 * attend or lead a session
 * Kilo Summit Etherpads
 * Exercise: Add a session proposal regarding your contribution in an etherpad, review two proposals
 * IRC meetings ( slides )
 * 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)
 * Exercise: lunch menu online meeting

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

 * devstack ( slides )
 * 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 )
 * puppet stackforge
 * documentation
 * training guides
 * Excercise: Apply for individual membership and sign the CLA
 * launchpad ( slides )
 * blueprints
 * bugs
 * Status, Importance, Assigned To, Milestone, Tags
 * reporting a bug
 * confirming and prioritizing
 * debugging
 * bugfixing
 * Exercise: review other launchpad bugs and improve yours
 * gerrit workflow ( slides )
 * 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 )
 * 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 )
 * Exercise: add an error and match it to the jenkins message

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