==================================== Overview of the contribution process ==================================== .. image:: ./_assets/os_background.png :class: fill :width: 100% Getting to Know Your Project ============================ - Clone and be familiar with the code .. code-block:: console $ git clone https://opendev.org/openstack/ - Example: .. code-block:: console $ git clone https://opendev.org/openstack/training-guides - Run the tests - Join the project's IRC channel - https://wiki.openstack.org/wiki/IRC - Look at open reviews - Join the openstack-discuss mailing list .. note:: Each project has its own purpose & culture. Interacting with the Project ============================ - Talking in the IRC channel - Following and participating in project related mail threads in the mailing list - Attending regular meetings - Filing, fixing, and triaging bugs - Filing a blueprint/spec - Implementing a blueprint/spec Building Your Persona ===================== - Review other's code - Help fix the documentation - Answer other's questions or help direct them to those who can - Attend the meetings - Let the PTL know you are interested in participating in the project - Explain why you are interested and what are your strengths - Ask how you can help the project Building Your Persona ===================== - Build a network - Pay attention to who is an expert in what area - Ask questions in the channel or send direct messages - Trust within the community - Trust that your comments are valid - Trust that you can write and review code - Trust that you understand or have the willingness to understand the technology - Trust that you are consistent and reliable and come back regularly .. note:: If people know you, you have a better chance at your code getting attention. General Contribution Workflow ============================= - Pick a task (bug, trivial fix, documentation, implementation) - Make a new branch in your local repository - Make code changes - Update and add tests (unit, functional, etc.) - Run tests (unit, functional, etc.) - Create your commit and push upstream for review .. note:: We will go into this later on in more detail so hold off on answering detailed questions for now. Your Patch Upstream =================== - Zuul and vendor CIs will review your patch - Community members will review your patch - Reply to comments - Make changes and push new patchsets - Resolve merge conflicts Speeding the Acceptance ======================= - Be on top of people's comments - Be patient - Be communicative - Be collaborative REMEMBER: This is open source. Things happen on the community's schedule, not yours.