==================================== 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/e-mail known - Mingle ---- Be engaged with your network ============================ - Ask people you know, about the project - Send e-mails to friends about your contributions - IM friends about contributions - Ask about their contribution experience - Ask if they know someone with similar experiences ---- Smaller tasks ============= - Sizing the task difficulty - Splitting a task - Seeking agreement on the split ---- Choosing a question =================== - Think about the answer - Find a solution that needs to be agreed upon - Ask the question and propose your solution ---- 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 - Respect the election process ---- Disagree ======== - Suspension of disbelief - Accept 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 e-mail archives - Choose one place to gather all information