diff --git a/doc/upstream-training/19-training-contribution-process.rst b/doc/upstream-training/19-training-contribution-process.rst new file mode 100644 index 00000000..4e3ac602 --- /dev/null +++ b/doc/upstream-training/19-training-contribution-process.rst @@ -0,0 +1,231 @@ +Overview of the contribution process +==================================== + + +OpenStack Upstream Training +--------------------------- + + + + +---- + +Project pulse +============= + +- Code speaks : run gource +- How many contributors? +- How old is the project? +- When was the last update? +- etc. + + +---- + +Who's behind it? +================== + +- Individuals +- Companies +- What's their incentive? + + +---- + +Project as social groups +========================= + +- Group of friends +- Company employees +- Corporate driven +- Volunteers + +---- + +Assess your approach +==================== + +-Verbose or terse ? +- Socialize or strictly professional ? +- Habits: online relationships ? +- Acknowledge the language barrier + +---- + +Engage immediately +================== + +- Discuss with non upstream +- Get your nick / mail known +- Mingle + +---- + +Play with your network +====================== + +- Ask people you know about the project +- Send mails to friends saying you'll contribute +- IM friends saying you'll contribute +- Ask about their contribution experience +- Ask if they know someone + +---- + +Smaller tasks +============= + +- Sizing the task difficulty +- Spliting a task +- Seeking agreement on the split + +---- + +Choosing a question +=================== + +- Think about the solution +- Find a choice that needs to be made +- Ask the question and propose your choice + +---- + +Code of conduct +=============== + +- Be considerate +- Be respectful +- Be collaborative +- When we disagree, we consult others +- When we are unsure, we ask for help +- Step down considerately + +---- + +Disagree +======== + +- Suspension of disbelief +- Accepting the rules +- No flamewars +- No enemies + +---- + +Understanding the conventions +============================= + +- Read the policy +- Read the code / documentation guidelines +- Read the actual code and the actual documentation +- Apply them very diligently + +---- + +Explain what you do +=================== + +- Link to the blueprint +- Link to the bug report +- What the work does +- Each choice made must have a rationale + +---- + +Prepare the backport +==================== + +- Apply the contribution to trunk +- Think about backporting +- Twist the contribution to ease backporting + +---- + +Local and upstream +================== + +- Development / trunk version +- Stable version +- In house version + +---- + +Good workflow +============= + +.. image:: ./_assets/19-01-goodworkflow.png + +---- + +Bad workflow +============ + +.. image:: ./_assets/19-02-badworkflow.png + +---- + +Quantify the delta +================== + +- Measure the delta with upstream +- Compare +- Analyze the reasons for an increased delta + +---- + +Speeding the acceptance +======================= + +- People skills +- Diplomacy +- Communication +- Getting attention + +---- + +Timeframe +========= + +- Engage daily +- Ask for attention weekly +- Try to get attention at least four times + +---- + +Building karma +============== + +- While waiting for input +- Fix the web site +- Fix the documentation +- Answer questions + +---- + +Parallelizing +============= + +- Work +- Karma missions +- Learning about the project + +---- + +From easy to difficult +====================== + +- Answering questions +- Contributing code / documentation +- Contributing blueprints +- Discussing the architecture +- Influence the project governance + +---- + +Archive and collect +=================== + +- Log IM channels +- Keep links to email archives +- Choose one place to gather all information + diff --git a/doc/upstream-training/_assets/19-01-goodworkflow.png b/doc/upstream-training/_assets/19-01-goodworkflow.png new file mode 100644 index 00000000..ef199f51 Binary files /dev/null and b/doc/upstream-training/_assets/19-01-goodworkflow.png differ diff --git a/doc/upstream-training/_assets/19-02-badworkflow.png b/doc/upstream-training/_assets/19-02-badworkflow.png new file mode 100644 index 00000000..1cf7ee77 Binary files /dev/null and b/doc/upstream-training/_assets/19-02-badworkflow.png differ