OpenStack Upstream Training/Info/ko
Contents
소개
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
First day
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)
- 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 )
- 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
- 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
Second day
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