Special page
Special page
Tools
Printable version
Special pages
Create account
Log in
Log in / create account with OpenID
English
Home
Software
User Stories
Community
Profile
Blog
Wiki
Documentation
Jump to:
navigation
,
search
Export translations
Settings
Group
Category:Programs
I18nTeam
Open
OpenStack Upstream Institute
OpenStack Upstream Training/Info
PRC Kilo Hackaton
ReleaseNotes/Juno
ReleaseNotes/Kilo
ReleaseNotes/Liberty
Sandbox
User:Smaffulli
Language
aa - Afar
ab - Abkhazian
ace - Achinese
ady - Adyghe
ady-cyrl - адыгабзэ
aeb - Tunisian Arabic
aeb-arab - تونسي
aeb-latn - Tûnsî
af - Afrikaans
ak - Akan
aln - Gheg Albanian
am - Amharic
an - Aragonese
ang - Old English
anp - Angika
ar - Arabic
arc - Aramaic
arn - Mapuche
arq - Algerian Arabic
ary - Moroccan Arabic
arz - Egyptian Arabic
as - Assamese
ase - American Sign Language
ast - Asturian
av - Avaric
avk - Kotava
awa - Awadhi
ay - Aymara
az - Azerbaijani
azb - تۆرکجه
ba - Bashkir
ban - Balinese
bar - Bavarian
bbc - Batak Toba
bbc-latn - Batak Toba
bcc - Southern Balochi
bcl - Bikol Central
be - Belarusian
be-tarask - Belarusian (Taraškievica orthography)
bg - Bulgarian
bgn - Western Balochi
bho - Bhojpuri
bi - Bislama
bjn - Banjar
bm - Bambara
bn - Bengali
bo - Tibetan
bpy - Bishnupriya
bqi - Bakhtiari
br - Breton
brh - Brahui
bs - Bosnian
bto - Iriga Bicolano
bug - Buginese
bxr - буряад
ca - Catalan
cbk-zam - Chavacano de Zamboanga
cdo - Min Dong Chinese
ce - Chechen
ceb - Cebuano
ch - Chamorro
cho - Choctaw
chr - Cherokee
chy - Cheyenne
ckb - Central Kurdish
co - Corsican
cps - Capiznon
cr - Cree
crh - Crimean Turkish
crh-cyrl - Crimean Turkish (Cyrillic script)
crh-latn - Crimean Turkish (Latin script)
cs - Czech
csb - Kashubian
cu - Church Slavic
cv - Chuvash
cy - Welsh
da - Danish
de - German
de-at - Austrian German
de-ch - Swiss High German
de-formal - German (formal address)
diq - Zazaki
dsb - Lower Sorbian
dtp - Central Dusun
dty - डोटेली
dv - Divehi
dz - Dzongkha
ee - Ewe
egl - Emilian
el - Greek
eml - Emiliano-Romagnolo
en - English
en-ca - Canadian English
en-gb - British English
eo - Esperanto
es - Spanish
et - Estonian
eu - Basque
ext - Extremaduran
fa - Persian
ff - Fulah
fi - Finnish
fit - Tornedalen Finnish
fj - Fijian
fo - Faroese
fr - French
frc - Cajun French
frp - Arpitan
frr - Northern Frisian
fur - Friulian
fy - Western Frisian
ga - Irish
gag - Gagauz
gan - Gan Chinese
gan-hans - Simplified Gan script
gan-hant - Traditional Gan script
gd - Scottish Gaelic
gl - Galician
glk - Gilaki
gn - Guarani
gom - Goan Konkani
gom-deva - Goan Konkani (Devanagari script)
gom-latn - Goan Konkani (Latin script)
got - Gothic
grc - Ancient Greek
gsw - Swiss German
gu - Gujarati
gv - Manx
ha - Hausa
hak - Hakka Chinese
haw - Hawaiian
he - Hebrew
hi - Hindi
hif - Fiji Hindi
hif-latn - Fiji Hindi (Latin script)
hil - Hiligaynon
ho - Hiri Motu
hr - Croatian
hrx - Hunsrik
hsb - Upper Sorbian
ht - Haitian Creole
hu - Hungarian
hy - Armenian
hz - Herero
ia - Interlingua
id - Indonesian
ie - Interlingue
ig - Igbo
ii - Sichuan Yi
ik - Inupiaq
ike-cans - Eastern Canadian (Aboriginal syllabics)
ike-latn - Eastern Canadian (Latin script)
ilo - Iloko
inh - Ingush
io - Ido
is - Icelandic
it - Italian
iu - Inuktitut
ja - Japanese
jam - Jamaican Creole English
jbo - Lojban
jut - Jutish
jv - Javanese
ka - Georgian
kaa - Kara-Kalpak
kab - Kabyle
kbd - Kabardian
kbd-cyrl - Адыгэбзэ
kg - Kongo
khw - Khowar
ki - Kikuyu
kiu - Kirmanjki
kj - Kuanyama
kk - Kazakh
kk-arab - Kazakh (Arabic script)
kk-cn - Kazakh (China)
kk-cyrl - Kazakh (Cyrillic script)
kk-kz - Kazakh (Kazakhstan)
kk-latn - Kazakh (Latin script)
kk-tr - Kazakh (Turkey)
kl - Kalaallisut
km - Khmer
kn - Kannada
ko - Korean
ko-kp - 한국어 (조선)
koi - Komi-Permyak
kr - Kanuri
krc - Karachay-Balkar
kri - Krio
krj - Kinaray-a
ks - Kashmiri
ks-arab - Kashmiri (Arabic script)
ks-deva - Kashmiri (Devanagari script)
ksh - Colognian
ku - Kurdish
ku-arab - كوردي (عەرەبی)
ku-latn - Kurdish (Latin script)
kv - Komi
kw - Cornish
ky - Kyrgyz
la - Latin
lad - Ladino
lb - Luxembourgish
lbe - лакку
lez - Lezghian
lfn - Lingua Franca Nova
lg - Ganda
li - Limburgish
lij - Ligurian
liv - Livonian
lki - Laki
lmo - Lombard
ln - Lingala
lo - Lao
loz - Lozi
lrc - Northern Luri
lt - Lithuanian
ltg - Latgalian
lus - Mizo
luz - Southern Luri
lv - Latvian
lzh - Literary Chinese
lzz - Laz
mai - Maithili
map-bms - Basa Banyumasan
mdf - Moksha
mg - Malagasy
mh - Marshallese
mhr - Eastern Mari
mi - Maori
min - Minangkabau
mk - Macedonian
ml - Malayalam
mn - Mongolian
mo - молдовеняскэ
mr - Marathi
mrj - Western Mari
ms - Malay
mt - Maltese
mus - Creek
mwl - Mirandese
my - Burmese
myv - Erzya
mzn - Mazanderani
na - Nauru
nah - Nāhuatl
nan - Min Nan Chinese
nap - Neapolitan
nb - Norwegian Bokmål
nds - Low German
nds-nl - Low Saxon
ne - Nepali
new - Newari
ng - Ndonga
niu - Niuean
nl - Dutch
nl-informal - Nederlands (informeel)
nn - Norwegian Nynorsk
nov - Novial
nrm - Nouormand
nso - Northern Sotho
nv - Navajo
ny - Nyanja
oc - Occitan
olo - Livvi-Karelian
om - Oromo
or - Oriya
os - Ossetic
pa - Punjabi
pag - Pangasinan
pam - Pampanga
pap - Papiamento
pcd - Picard
pdc - Pennsylvania German
pdt - Plautdietsch
pfl - Palatine German
pi - Pali
pih - Norfuk / Pitkern
pl - Polish
pms - Piedmontese
pnb - Western Punjabi
pnt - Pontic
prg - Prussian
ps - Pashto
pt - Portuguese
pt-br - Brazilian Portuguese
qu - Quechua
qug - Chimborazo Highland Quichua
rgn - Romagnol
rif - Riffian
rm - Romansh
rmy - Romani
rn - Rundi
ro - Romanian
roa-tara - tarandíne
ru - Russian
rue - Rusyn
rup - Aromanian
ruq - Megleno-Romanian
ruq-cyrl - Megleno-Romanian (Cyrillic script)
ruq-latn - Megleno-Romanian (Latin script)
rw - Kinyarwanda
sa - Sanskrit
sah - Sakha
sat - Santali
sc - Sardinian
scn - Sicilian
sco - Scots
sd - Sindhi
sdc - Sassarese Sardinian
sdh - Southern Kurdish
se - Northern Sami
sei - Seri
ses - Koyraboro Senni
sg - Sango
sgs - Samogitian
sh - Serbo-Croatian
shi - Tachelhit
shi-latn - Tašlḥiyt
shi-tfng - ⵜⴰⵛⵍⵃⵉⵜ
shn - Shan
si - Sinhala
sk - Slovak
sl - Slovenian
sli - Lower Silesian
sm - Samoan
sma - Southern Sami
sn - Shona
so - Somali
sq - Albanian
sr - Serbian
sr-ec - Serbian (Cyrillic script)
sr-el - Serbian (Latin script)
srn - Sranan Tongo
ss - Swati
st - Southern Sotho
stq - Saterland Frisian
su - Sundanese
sv - Swedish
sw - Swahili
szl - Silesian
ta - Tamil
tcy - Tulu
te - Telugu
tet - Tetum
tg - Tajik
tg-cyrl - Tajik (Cyrillic script)
tg-latn - Tajik (Latin script)
th - Thai
ti - Tigrinya
tk - Turkmen
tl - Tagalog
tly - Talysh
tn - Tswana
to - Tongan
tokipona - Toki Pona
tpi - Tok Pisin
tr - Turkish
tru - Turoyo
ts - Tsonga
tt - Tatar
tt-cyrl - Tatar (Cyrillic script)
tt-latn - Tatar (Latin script)
tum - Tumbuka
tw - Twi
ty - Tahitian
tyv - Tuvinian
tzm - Central Atlas Tamazight
udm - Udmurt
ug - Uyghur
ug-arab - Uyghur (Arabic script)
ug-latn - Uyghur (Latin script)
uk - Ukrainian
ur - Urdu
uz - Uzbek
uz-cyrl - ўзбекча
uz-latn - oʻzbekcha
ve - Venda
vec - Venetian
vep - Veps
vi - Vietnamese
vls - West Flemish
vmf - Main-Franconian
vo - Volapük
vot - Votic
vro - Võro
wa - Walloon
war - Waray
wo - Wolof
wuu - Wu Chinese
xal - Kalmyk
xh - Xhosa
xmf - Mingrelian
yi - Yiddish
yo - Yoruba
yue - Cantonese
za - Zhuang
zea - Zeelandic
zh - Chinese
zh-cn - Chinese (China)
zh-hans - Simplified Chinese
zh-hant - Traditional Chinese
zh-hk - Chinese (Hong Kong)
zh-mo - 中文(澳門)
zh-my - 中文(马来西亚)
zh-sg - Chinese (Singapore)
zh-tw - Chinese (Taiwan)
zu - Zulu
info - Message documentation
Format
Export for off-line translation
Export in native format
== 引言 == 和來自全球 80 個不同公司超過 2000 位的開發人員, OpenStack 是目前最大型的軟體合作開發專案之一. 因為它的 size, it is characterized by a huge diversity in 規範和技術常規. These can significantly slow down the speed at which 新進人士 are successful at integrating their own roadmap into that of the OpenStack 專案. 我們已經設計了一系列的課程來幫助程式設計師和軟體開發人員來跨越貢獻時所遇到的障礙 It shows them how to ensure their bug fix or feature is accepted in the OpenStack project in a minimum amount of time. The educational program requires students to work on real-life bug fixes or new features during two days of real-life classes and online mentoring, until the work is accepted by OpenStack. The live two-day class teaches them to navigate the intricacies of the project's technical tools and social interactions. In a followup session, the students benefit from individual online sessions to help them resolve any remaining problems they might have. == 課程目標 == * 快速整合公司的產品線到 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. == 課程所需時間 == * 2 天實體課程 * Online section: 10 one-hour individual mentoring sessions over a period of 4 to 10 weeks == Infrastructure == [[OpenStack_Upstream_Training/Setup_DevStack|ready to use devstack VM]] for participants with network connectivity but troubles with their laptop = 課程大綱 = == 第一天 == === Introduction === * 在第一天的開始之前: choice of a contribution, via email, with each participant * 第一天: OpenStack 是如何產生出來的 * 第一天: 學習和練習 git, gerrit, IRC * 第二天: 貢獻的理論基礎 * 第二天: Lego contribution simulation * 第二天: Individual presentation of the contribution plan * 第二天: 線上指導 === OpenStack 是如何產生出來的 ( 3 小時 包括 1 小時 30 分鐘的練習時間 ) === * [https://wiki.openstack.org/wiki/Release_Cycle Release cycle] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/01-release-cycle.rst slides] ) ** [https://wiki.openstack.org/wiki/Release_Cycle#Planning_.28Design.2C_Discuss_and_Target.29 Planning (Design, Discuss and Target)] ** [https://wiki.openstack.org/wiki/Release_Cycle#Implementation_.28Milestone_iterations.29 Implementation (Milestone iterations)] ** [https://wiki.openstack.org/wiki/Release_Cycle#Pre-release_.28Release_Candidates_dance.29 Pre-release (Release Candidates dance)] *** [https://wiki.openstack.org/wiki/Release_Cycle#Release_candidate_1 Release candidate 1] *** [https://wiki.openstack.org/wiki/Release_Cycle#Other_release_candidates Other release candidates] *** [https://wiki.openstack.org/wiki/Release_Cycle#Release_day Release day] ** 練習: based on the [https://wiki.openstack.org/wiki/Juno_Release_Schedule Juno release schedule] find the URL of a document or a patch that belongs to each of the above steps. * Relevant actors ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/02-relevant-actors.rst slides] ) ** [http://www.stackalytics.com/?release=juno&metric=commits&project_type=integrated&module=&company=&user_id= commiters] companies ** [http://www.stackalytics.com/?release=juno&metric=commits&project_type=integrated&module=&company=&user_id= commiters] individuals (bottom of the page) ** Your management * [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 slides] ) ** Decide what is an [https://wiki.openstack.org/wiki/Programs OpenStack Program] ** [https://wiki.openstack.org/wiki/Governance/TechnicalCommittee meetings] ** 練習: 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#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] ** 練習: 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 slides] ) ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Incubation Incubated] ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Integrated Integrated] ** [https://wiki.openstack.org/wiki/Governance/NewProjects#Core_.3F Core] ** [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 slides] ) ** [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/Kilo/Etherpads Kilo Summit Etherpads] ** 練習: Add a session proposal regarding your contribution in an etherpad, review two proposals * [https://wiki.openstack.org/wiki/Meetings IRC meetings] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/06-irc-meetings.rst slides] ) ** [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. ** #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 === Workflow of an OpenStack contribution and tools ( 3 小時包括 2 小時練習 ) === * [http://devstack.org/ devstack] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/11-devstack.rst slides] ) ** Ubuntu or Fedora ** git clone https://github.com/openstack-dev/devstack.git ** [http://devstack.org/configuration.html minimal configuration] ** cd devstack; ./stack.sh ** 練習: get the code for the targeted contribution * [[How_To_Contribute|HOW to contribute URL]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/12-howtocontribute.rst slides] ) ** [[Puppet-openstack#Contributing_to_the_modules|puppet stackforge]] ** [[Documentation/HowTo|documentation]] ** [http://docs.openstack.org/training-guides/content/under-construction.html training guides] ** 練習: 申請個人會員並簽署 CLA * [https://help.launchpad.net/ launchpad] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/13-launchpad.rst slides] ) ** [[Blueprints|blueprints]] ** [[Bugs|bugs]] *** [[Bugs#Bugs_reference|Status, Importance, Assigned To, Milestone, Tags]] *** [[Bugs#Reporting|reporting a bug]] *** [[Bugs#Confirming_.26_prioritizing|confirming and prioritizing]] *** [[Bugs#Debugging_.28optional.29|debugging]] *** [[Bugs#Bugfixing|bugfixing]] ** 練習: review other launchpad bugs and improve yours * [[GerritWorkflow|gerrit workflow]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/14-gerrit.rst slides] ) ** [[GerritWorkflow#Account_Setup|account setup]] ** [[GerritWorkflow#Git_Review_Installation|git review installation]] ** [[GerritWorkflow#SSH_Setup|ssh setup]] ** [[GerritWorkflow#Project_Setup|project setup]] ** [[GerritWorkflow#Normal_Workflow|gerrit workflow]] ** [[Testing#Unit_Tests|running unit tests]] ** [http://www.mediawiki.org/wiki/Gerrit/Advanced_usage review dependencies] ** 練習: push a wip or draft and invite reviewers * Branching model ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/15-branching-model.rst slides] ) ** [[BranchModel|development]] ** [[StableBranch|stable]] ** 練習: checkout the latest stable branch * [[GerritJenkinsGit#Reviewing_a_Change|reviewing]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/16-reviewing.rst slides] ) * [[GerritWorkflow#Committing_Changes|writing a commit message]] ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/17-commit-message.rst slides] ) ** reference to a bug or a blueprint ** amending a commit message ** 練習: review each other messages on the draft * [[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 == 第二天 == === The Contribution Process ( 1 小時 ) === ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/19-training-contribution-process.rst 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 分鐘 ) === ( [https://github.com/openstack/training-guides/blob/master/doc/upstream-training/20-training-agile-for-contributors.rst slides] ) * Apply agile * Who is the customer? * Company & Upstream product owner * Sprint review presentation to Upstream === Contribution Simulation ( 2 小時 ) === 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 小時 ) === ( [http://dachary.org/loic/openstack-training/training-student-project-sample.odp odp slides] [http://dachary.org/loic/openstack-training/training-student-project-sample.pdf pdf slides] ) * 學生使用範本的簡報檔來呈現一場五分鐘的簡報. * 範本簡報檔將由講師提供. * 每一組學生要準備簡報來呈現並描述: ** the contribution they plan to work on during the online sessions, ** 學生將要如何跟上游 Upstream 合作 ** how it contributes to the company's agenda ** 而且他們要跟誰合作 * 課堂上每一組學生呈現他們的簡報 === Etherpad === https://etherpad.openstack.org/p/kilo-upstream-training-taiwan