Initial pass at consolidating community content [work in progress] (#27661)
* Added placeholder topics for community info * Setup community section index. * Initial move of triage process docs. * Typo/test * Removed triage topic from index.
This commit is contained in:
parent
e1abed28ba
commit
3476b005b9
8 changed files with 241 additions and 0 deletions
3
docs/docsite/rst/community/communication.rst
Normal file
3
docs/docsite/rst/community/communication.rst
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Communicating
|
||||||
|
=============
|
||||||
|
|
166
docs/docsite/rst/community/development_process.rst
Normal file
166
docs/docsite/rst/community/development_process.rst
Normal file
|
@ -0,0 +1,166 @@
|
||||||
|
The Ansible Development Process
|
||||||
|
===============================
|
||||||
|
|
||||||
|
This section discusses how the Ansible development and triage process works.
|
||||||
|
|
||||||
|
The Triage Bot
|
||||||
|
==============
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
--------
|
||||||
|
|
||||||
|
The `Ansibull PR Triage Bot`_ serves many functions: \* Responds quickly
|
||||||
|
to PR submitters to thank them for submitting their PR; \* Identifies
|
||||||
|
the community maintainer responsible for reviewing PRs for any files
|
||||||
|
affected; \* Tracks the current status of PRs; \* Pings responsible
|
||||||
|
parties to remind them of any PR actions that they may be responsible
|
||||||
|
for; \* Provides maintainers with the ability to move PRs through our
|
||||||
|
workflow; \* Identifies PRs abandoned by their submitters so that we can
|
||||||
|
close them; \* Identifies modules abandoned by their maintainers so that
|
||||||
|
we can find new maintainers.
|
||||||
|
|
||||||
|
Community Maintainers
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Each module in Core and Extras has at least one assigned maintainer,
|
||||||
|
listed in two maintainers files: one for `Core`_ and one for `Extras`_.
|
||||||
|
|
||||||
|
Some modules have no community maintainers assigned. In this case, the
|
||||||
|
maintainer is listed as “ansible”. Ultimately, it’s our goal to have at
|
||||||
|
least one community maintainer for every module.
|
||||||
|
|
||||||
|
The maintainer’s job is to review PRs and decide whether that PR should
|
||||||
|
be merged (“shipit!”) or revised (“needs\_revision”).
|
||||||
|
|
||||||
|
The ultimate goal of any Pull Request is to reach “shipit” status, where
|
||||||
|
the Core team then decides whether the PR is ready to be merged. Not
|
||||||
|
every PR that reaches the “shipit” label is actually ready to be merged,
|
||||||
|
but the better our reviewers are, and the better our guidelines are, the
|
||||||
|
more likely it will be that a PR that reaches “shipit” will be
|
||||||
|
mergeable.
|
||||||
|
|
||||||
|
.. _Ansibull PR Triage Bot: https://github.com/ansible/ansibullbot/blob/master/triage.py
|
||||||
|
.. _Core: https://github.com/ansible/ansibullbot/blob/master/MAINTAINERS-CORE.txt
|
||||||
|
.. _Extras: https://github.com/ansible/ansibullbot/blob/master/MAINTAINERS-CORE.txt
|
||||||
|
|
||||||
|
Some modules have no community maintainers assigned. In this case, the
|
||||||
|
maintainer is listed as “ansible”. Ultimately, it’s our goal to have at
|
||||||
|
least one community maintainer for every module.
|
||||||
|
|
||||||
|
The maintainer’s job is to review PRs and decide whether that PR should
|
||||||
|
be merged (“shipit!”) or revised (“needs\_revision”).
|
||||||
|
|
||||||
|
The ultimate goal of any Pull Request is to reach “shipit” status, where
|
||||||
|
the Core team then decides whether the PR is ready to be merged. Not
|
||||||
|
every PR that reaches the “shipit” label is actually ready to be merged,
|
||||||
|
but the better our reviewers are, and the better our guidelines are, the
|
||||||
|
more likely it will be that a PR that reaches “shipit” will be
|
||||||
|
mergeable.
|
||||||
|
|
||||||
|
Workflow
|
||||||
|
--------
|
||||||
|
|
||||||
|
The triage bot runs every six hours and examines every open PR in both
|
||||||
|
core and extras repositories, and enforces state roughly according to
|
||||||
|
the following workflow:
|
||||||
|
|
||||||
|
- If a PR has no workflow labels, it’s considered “new”. Files in the
|
||||||
|
PR are identified, and the maintainers of those files are pinged by
|
||||||
|
the bot, along with instructions on how to review the PR. (Note:
|
||||||
|
sometimes we strip labels from a PR to “reboot” this process.)
|
||||||
|
- If the module maintainer is not “ansible”, the PR then goes into the
|
||||||
|
“community\_review” state.
|
||||||
|
- If the module maintainer is “ansible”, the PR then goes into the
|
||||||
|
“core\_review” state (and probably sits for a while).
|
||||||
|
- If the PR is in “community\_review” and has received comments from
|
||||||
|
the maintainer:
|
||||||
|
- If the maintainer says “shipit”, the PR is labeled “shipit”,
|
||||||
|
whereupon the Core team assesses it for final merge.
|
||||||
|
- If the maintainer says “needs\_info”, the PR is labeled “needs\_info”
|
||||||
|
and the submitter is asked for more info.
|
||||||
|
- If the maintainer says “needs\_revision”, the PR is labeled
|
||||||
|
“needs\_revision” and the submitter is asked to fix some things.
|
||||||
|
- If the PR is in “needs\_revision/needs\_info” and has received
|
||||||
|
comments from the submitter:
|
||||||
|
- If the submitter says “ready\_for\_review”, the PR is put back into
|
||||||
|
community\_review/core\_review and the maintainer is notified that
|
||||||
|
the PR is ready to be reviewed again.
|
||||||
|
- If the PR is in “needs\_revision/needs\_info” and the submitter has
|
||||||
|
not responded lately:
|
||||||
|
- The submitter is first politely pinged after two weeks, pinged again
|
||||||
|
after two more weeks and labeled “pending action”, and then may be
|
||||||
|
closed two weeks after that.
|
||||||
|
- If the submitter responds at all, the clock is reset.
|
||||||
|
- If the PR is in “community\_review” and the reviewer has not
|
||||||
|
responded lately:
|
||||||
|
- The reviewer is first politely pinged after two weeks, pinged again
|
||||||
|
after two more weeks and labeled “pending\_action”, and then may be
|
||||||
|
reassigned to “ansible” / core\_review, or often the submitter of the
|
||||||
|
PR is asked to step up as a maintainer.
|
||||||
|
- If Travis fails, or if the code is not mergable, the PR is
|
||||||
|
automatically put into “needs\_revision” along with a message to the
|
||||||
|
submitter explaining why.
|
||||||
|
|
||||||
|
|
||||||
|
There are corner cases and frequent refinements, but this is the workflow in general.
|
||||||
|
|
||||||
|
PR Labels
|
||||||
|
---------
|
||||||
|
|
||||||
|
There are two types of PR Labels generally: *workflow labels* and
|
||||||
|
*information labels*.
|
||||||
|
|
||||||
|
Workflow Labels
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- **community\_review**: Pull requests for modules that are currently
|
||||||
|
awaiting review by their maintainers in the Ansible community.
|
||||||
|
- **core\_review**: Pull requests for modules that are currently
|
||||||
|
awaiting review by their maintainers on the Ansible Core team.
|
||||||
|
- **needs\_info**: Waiting on info from the submitter.
|
||||||
|
- **needs\_rebase**: Waiting on the submitter to rebase. (Note: no
|
||||||
|
longer used by the bot.)
|
||||||
|
- **needs\_revision**: Waiting on the submitter to make changes.
|
||||||
|
- **shipit**: Waiting for final review by the core team for potential
|
||||||
|
merge.
|
||||||
|
|
||||||
|
Informational Labels
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- **backport**: this is applied automatically if the PR is requested
|
||||||
|
against any branch that is not devel. The bot immediately assigns the
|
||||||
|
labels “backport” and “core\_review”.
|
||||||
|
- **bugfix\_pull\_request**: applied by the bot based on the
|
||||||
|
templatized description of the PR.
|
||||||
|
- **cloud**: applied by the bot based on the paths of the modified
|
||||||
|
files.
|
||||||
|
- **docs\_pull\_request**: applied by the bot based on the templatized
|
||||||
|
description of the PR.
|
||||||
|
- **easyfix**: applied manually, inconsistently used but sometimes
|
||||||
|
useful.
|
||||||
|
- **feature\_pull\_request**: applied by the bot based on the
|
||||||
|
templatized description of the PR.
|
||||||
|
- **networking**: applied by the bot based on the paths of the modified
|
||||||
|
files.
|
||||||
|
- **owner\_pr**: largely deprecated. Formerly workflow, now
|
||||||
|
informational. Originally, PRs submitted by the maintainer would
|
||||||
|
automatically go to “shipit” based on this label; now, if the
|
||||||
|
submitter is also a maintainer, we notify the other maintainers and
|
||||||
|
still require one of the maintainers (including the submitter) to
|
||||||
|
give a “shipit”.
|
||||||
|
- **P1 - P5**: deprecated for modules because they were wildly
|
||||||
|
inconsistent and not useful. The bot now strips these.
|
||||||
|
- **pending\_action**: applied by the bot to PRs that are not moving.
|
||||||
|
Reviewed every couple of weeks by the community team, who tries to
|
||||||
|
figure out the appropriate action (closure, asking for new
|
||||||
|
maintainers, etc).
|
||||||
|
|
||||||
|
|
||||||
|
Special Labels
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- **new\_plugin**: this is for new modules or plugins that are not yet
|
||||||
|
in Ansible. **Note: this kicks off a completely separate process, and
|
||||||
|
frankly it doesn’t work very well at present. We’re working our best
|
||||||
|
to improve this process.**
|
18
docs/docsite/rst/community/how_can_I_help.rst
Normal file
18
docs/docsite/rst/community/how_can_I_help.rst
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
How To Help
|
||||||
|
===========
|
||||||
|
|
||||||
|
Types of help
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Become a user
|
||||||
|
-------------
|
||||||
|
|
||||||
|
LINK: docs/community/development_process.rst
|
||||||
|
|
||||||
|
Improve Docs
|
||||||
|
|
||||||
|
Link to Working Groups + there how to help pages
|
||||||
|
|
||||||
|
Review PRs
|
||||||
|
|
||||||
|
LINK: sivel/prbyfiles
|
28
docs/docsite/rst/community/index.rst
Normal file
28
docs/docsite/rst/community/index.rst
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
*********************
|
||||||
|
Community Information
|
||||||
|
*********************
|
||||||
|
|
||||||
|
Ansible Community Guide
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Welcome to the Ansible Community Guide!
|
||||||
|
|
||||||
|
The purpose of this guide is to document how you can interact with and contribute to Ansible as a community member.
|
||||||
|
[TODO: add something better here]
|
||||||
|
|
||||||
|
To get started, select one of the following topics.
|
||||||
|
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
development_process
|
||||||
|
reporting_bugs_and_features
|
||||||
|
how_can_I_help
|
||||||
|
maintainers
|
||||||
|
communication
|
||||||
|
special_interest_groups
|
||||||
|
other_tools_and_programs
|
||||||
|
|
||||||
|
|
||||||
|
|
3
docs/docsite/rst/community/maintainers.rst
Normal file
3
docs/docsite/rst/community/maintainers.rst
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
About Maintainers
|
||||||
|
=================
|
||||||
|
|
6
docs/docsite/rst/community/other_tools_and_programs.rst
Normal file
6
docs/docsite/rst/community/other_tools_and_programs.rst
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Other Tools And Programs
|
||||||
|
========================
|
||||||
|
|
||||||
|
Links to other things from willthames, sivels, etc
|
||||||
|
Other tools #5
|
||||||
|
How can I get my tool on here LINK: IRC Meetings
|
13
docs/docsite/rst/community/reporting_bugs_and_features.rst
Normal file
13
docs/docsite/rst/community/reporting_bugs_and_features.rst
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Reporting Bugs And Requesting Features
|
||||||
|
======================================
|
||||||
|
|
||||||
|
What is a bug
|
||||||
|
-------------
|
||||||
|
Has it already been filed
|
||||||
|
Is there a PR in flight
|
||||||
|
|
||||||
|
|
||||||
|
What's a feature
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Feature vs proposal LINK docs/community/proposal_process.rst
|
4
docs/docsite/rst/community/triage_process.rst
Normal file
4
docs/docsite/rst/community/triage_process.rst
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Understanding The Triage Process
|
||||||
|
================================
|
||||||
|
|
||||||
|
placeholder
|
Loading…
Reference in a new issue