diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 11ee0a11e..7d57f98e6 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1,70 +1,19 @@ -============ -Contributing -============ +The source repository for this project can be found at: -The best way to join the community and get involved is to talk with others -online or at a meetup and offer contributions. Here are some of the many -ways you can contribute to the Tacker project: + https://opendev.org/openstack/tacker -* Development and Code Reviews -* Bug reporting/Bug fixes -* Wiki and Documentation -* Blueprints/Specifications -* Testing -* Deployment scripts +Pull requests submitted through GitHub are not monitored. -Before you start contributing take a look at the `Openstack Developers Guide`_. +To start contributing to OpenStack, follow the steps in the contribution guide +to set up and use Gerrit: -.. _`Openstack Developers Guide`: https://docs.openstack.org/infra/manual/developers.html + https://docs.openstack.org/contributors/code-and-documentation/quick-start.html -Freenode IRC (Chat) -------------------- -You can find tacker guys in our publicly accessible channel on `freenode`_ -``#tacker``. All conversations are logged and stored for your -convenience at `eavesdrop.openstack.org`_. For more information regarding -OpenStack IRC channels please visit the `OpenStack IRC Wiki`_. +Bugs should be filed on Launchpad: -.. _`freenode`: https://freenode.net -.. _`OpenStack IRC Wiki`: https://wiki.openstack.org/wiki/IRC -.. _`eavesdrop.openstack.org`: http://eavesdrop.openstack.org/irclogs/%23tacker/ + https://bugs.launchpad.net/tacker -Launchpad ---------- -Like other OpenStack related projects, we utilize Launchpad for our bug -and release tracking. +For more specific information about contributing to this repository, see the +Tacker contributor guide: -* `Tacker Launchpad Project`_ - -.. _`Tacker Launchpad Project`: https://launchpad.net/tacker - -.. note:: - - Bugs should be filed on Launchpad, not Github. - -Source Repository ------------------ - -The official Tacker source code is available in following repositories: - -* **Tacker server:** https://opendev.org/openstack/tacker -* **Tacker Python client:** https://opendev.org/openstack/python-tackerclient -* **Tacker Horizon UI:** https://opendev.org/openstack/tacker-horizon - -The mirror repositories on Github: - -* **Tacker server:** https://github.com/openstack/tacker -* **Tacker Python client:** https://github.com/openstack/python-tackerclient -* **Tacker Horizon UI:** https://github.com/openstack/tacker-horizon - -Gerrit ------- -Like other OpenStack related projects, we utilize the OpenStack Gerrit -review system for all code reviews. If you're unfamiliar with using -the OpenStack Gerrit review system, please review the `Gerrit Workflow`_ -wiki documentation. - -.. _`Gerrit Workflow`: https://docs.openstack.org/infra/manual/developers.html#development-workflow - -.. note:: - - Pull requests submitted through GitHub will be ignored. + https://docs.openstack.org/tacker/latest/contributor/contributing.html diff --git a/doc/source/contributor/contributing.rst b/doc/source/contributor/contributing.rst new file mode 100644 index 000000000..056ee3be1 --- /dev/null +++ b/doc/source/contributor/contributing.rst @@ -0,0 +1,135 @@ +============================ +So You Want to Contribute... +============================ + +For general information on contributing to OpenStack, please check out the +`contributor guide `_ to get started. +It covers all the basics that are common to all OpenStack projects: the +accounts you need, the basics of interacting with our Gerrit review system, +how we communicate as a community, etc. + + +The official Tacker source code is available in following repositories: + +* **Tacker server:** https://opendev.org/openstack/tacker +* **Tacker Python client:** https://opendev.org/openstack/python-tackerclient +* **Tacker Horizon UI:** https://opendev.org/openstack/tacker-horizon + +Below will cover the more project specific information you need to get started +with Tacker. + +Communication +~~~~~~~~~~~~~ +* IRC channel ``#tacker`` at `Freenode`_ +* Mailing list (prefix subjects with ``[tacker]`` for faster responses) + http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-discuss + +All conversations are logged and stored for your +convenience at `eavesdrop.openstack.org`_. For more information regarding +OpenStack IRC channels please visit the `OpenStack IRC Wiki`_. + +.. _`Freenode`: https://freenode.net +.. _`OpenStack IRC Wiki`: https://wiki.openstack.org/wiki/IRC +.. _`eavesdrop.openstack.org`: http://eavesdrop.openstack.org/irclogs/%23tacker/ + +Contacting the Core Team +~~~~~~~~~~~~~~~~~~~~~~~~ +Please refer to the `Tacker Core Team +`_ contacts. + +New Feature Planning +~~~~~~~~~~~~~~~~~~~~ +If you want to propose a new feature, Tacker features are tracked on +`Launchpad BP`_. + +Enhancement to Tacker functionality can be done using one of the following +two development process options. The choice depends on the complexity of the +enhancement. + +Request for Enhancement (RFE) Process +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The developer, or an operator, can write up the requested enhancement in +Tacker's `Launchpad Bugs`_. + +* The requester needs to mark the bug with ``RFE`` tag. +* The bug will be in the initial "New" state. +* The requester and team will have a discussion on the enhancement in the + launchpad bug. +* Once the discussion is over a tacker-core team member will acknowledge the + validity of this feature enhancement by moving it to the "Confirmed" state. +* Developers submit patchsets to fix a bug using ``Closes-Bug`` with **bug-id** + in the commit message. + Note, if there are multiple patchsets ``Partial-Bug`` header should be used + instead of ``Closes-Bug``. +* Once all the patchsets are merged the bug will be moved to the "Completed" + state. +* Developer(s) are expected to add a devref describing the usage of the feature + and other related topics in "tacker/doc/source/contributor directory". + +This process is recommended for smaller enhancements that can be described +easily and it is relatively easy to implement in a short period of time. + +Blueprint and Tacker-Specs process +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The developer, or an operator, can write up the requested enhancement by +submitting a patchset to the `tacker-spec repository`_ + +* The patchset should follow the `spec template`_ +* The requester should also create a corresponding `Launchpad BP`_ + for the enhancement proposal +* The requester and the team will have a discussion on the tacker-spec + writeup using gerrit. +* The patchset will be merged into the tackers-specs repository if the + tacker-core team decides this is a valid feature enhancement. A patchset + may also be rejected with clear reasoning. +* Tacker core team will also mark the blueprint Definition field to Approved. +* Developer submits one or more patchsets to implement the enhancement. The + commit message should use "Implements: blueprint " using + the same name as the blueprint name. +* Once all the patchsets are merged the blueprint will be as "Implemented" by + the tacker core team. +* The developer is expected to add a devref describing the usage of the feature + and other related topics in "tacker/doc/source/contributor directory". + +This process is recommended for medium to large enhancements that needs +significant code-changes (LOC), community discussions and debates. + +.. _`Launchpad BP`: https://blueprints.launchpad.net/tacker +.. _`Launchpad Bugs`: https://bugs.launchpad.net/tacker +.. _`tacker-spec repository`: https://opendev.org/openstack/tacker-specs +.. _`spec template`: https://opendev.org/openstack/tacker-specs/src/branch/master/specs/template.rst + +Task Tracking +~~~~~~~~~~~~~ +We track our tasks in `Launchpad +`_. +If you're looking for some smaller, easier work item to pick up and get started +on, search for the ``low-hanging-fruit`` tag. + +Reporting a Bug +~~~~~~~~~~~~~~~ +You found an issue and want to make sure we are aware of it? You can do so on +`Report a bug +`_ in Launchpad. +More info about Launchpad usage can be found on `OpenStack docs page +`_. + +Getting Your Patch Merged +~~~~~~~~~~~~~~~~~~~~~~~~~ +All changes proposed to Tacker require two +2 votes from core reviewers +before one of the core reviewers can approve patch by giving +``Workflow +1`` vote. +PTL may require more than two +2 votes, depending on the complexity of the +proposal. +More detailed guidelines for reviewers of patches are available at +`Code Review +`_. + +.. note:: + + Pull requests submitted through GitHub will be ignored. + +Project Team Lead Duties +~~~~~~~~~~~~~~~~~~~~~~~~ +All common PTL duties are enumerated in the `PTL guide +`_. diff --git a/doc/source/contributor/dev-process.rst b/doc/source/contributor/dev-process.rst deleted file mode 100644 index d34429ac3..000000000 --- a/doc/source/contributor/dev-process.rst +++ /dev/null @@ -1,65 +0,0 @@ -Tacker Development Process -========================== - -.. include:: ../../../CONTRIBUTING.rst - -Enhancement to Tacker functionality can be done using one of the following -two development process options. The choice depends on the complexity of the -enhancement. - -Request for Enhancement (RFE) Process -------------------------------------- - -The developer, or an operator, can write up the requested enhancement in a -Tacker launchpad [#]_ bug. - -* The requester need to mark the bug with "RFE" tag. -* The bug will be in the initial "New" state. -* The requester and team will have a discussion on the enhancement in the - launchpad bug. -* Once the discussion is over a tacker-core team member will acknowledge the - validity of this feature enhancement by moving it to the "Confirmed" state. -* Developers submit patchsets to implement the enhancement using the bug-id. - Note, if there are multiple patchsets Partial-Bug header should be used - instead of Closes-Bug in the commit message. -* Once all the patchsets are merged the bug will be moved to the "Completed" - state. -* Developer(s) are expected to add a devref describing the usage of the feature - and other related topics in tacker/doc/source/contributor directory. - -This process is recommended for smaller enhancements that can be described -easily and it is relatively easy to implement in a short period of time. - -Blueprint and Tacker-Specs process ----------------------------------- - -The developer, or an operator, can write up the requested enhancement by -submitting a patchset to the tacker-spec repository [#]_. - -* The patchset should follow the template specified in [#]_ -* The requester should also create a corresponding blueprint for the - enhancement proposal in launchpad [#]_ -* The requester and the team will have a discussion on the tacker-spec - writeup using gerrit. -* The patchset will be merged into the tackers-specs repository if the - tacker-core team decides this is a valid feature enhancement. A patchset - may also be rejected with clear reasoning. -* Tacker core team will also mark the blueprint Definition field to Approved. -* Developer submits one or more patchsets to implement the enhancement. The - commit message should use "Implements: blueprint " using - the same name as the blueprint name. -* Once all the patchsets are merged the blueprint will be as "Implemented" by - the tacker core team. -* The developer is expected to add a devref describing the usage of the feature - and other related topics in tacker/doc/source/contributor directory. - -This process is recommended for medium to large enhancements that needs -significant code-changes (LOC), community discussions and debates. - -References ----------- - -.. [#] https://bugs.launchpad.net/tacker -.. [#] https://github.com/openstack/tacker-specs -.. [#] https://github.com/openstack/tacker-specs/blob/master/specs/template.rst -.. [#] https://blueprints.launchpad.net/tacker/ diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst index f1a18c3e0..0b768f23e 100644 --- a/doc/source/contributor/index.rst +++ b/doc/source/contributor/index.rst @@ -24,7 +24,7 @@ Developer Info .. toctree:: :maxdepth: 1 - dev-process.rst + contributing.rst development.environment.rst api_layer.rst api_extensions.rst