All of lore.kernel.org
 help / color / mirror / Atom feed
* [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines
@ 2015-12-23 13:20 Jani Nikula
  2015-12-23 13:20 ` [maintainer-tools PATCH 2/2] drm-intel: document new fixes flow Jani Nikula
  2015-12-23 13:24 ` [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines Jani Nikula
  0 siblings, 2 replies; 3+ messages in thread
From: Jani Nikula @ 2015-12-23 13:20 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Add guidelines to help our committers make the right calls when pushing
patches.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drm-intel.rst | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 114 insertions(+), 1 deletion(-)

diff --git a/drm-intel.rst b/drm-intel.rst
index c6b0800e2dbc..66654899fed2 100644
--- a/drm-intel.rst
+++ b/drm-intel.rst
@@ -71,7 +71,9 @@ The Upstream i915 Driver Repository
 
 `git://anongit.freedesktop.org/drm-intel`
 
-Maintained by Daniel Vetter and co. Consists mostly of `drivers/gpu/drm/i915`.
+Maintained by Daniel Vetter and Jani Nikula, with several developers also having
+commit access for pushing `drm-intel-next-queued`. Consists mostly of
+`drivers/gpu/drm/i915`.
 
 drm-intel-next-queued (aka "dinq")
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -141,6 +143,117 @@ release. There are no fast paths.
 For predictions on the future merge windows and releases, see
 http://phb-crystal-ball.org/.
 
+Committer Guidelines
+====================
+
+This section describes the guidelines for pushing patches. Strict rules covering
+all cases are impossible write and follow. We put a lot of trust in the sound
+judgement of the people with commit access, and that only develops with
+experience. These guidelines are primarily for the committers to aid in making
+the right decisions, and for others to set their the expectations right.
+
+The short list:
+
+* Only push patches changing `drivers/gpu/drm/i915`.
+
+* Only push patches to `drm-intel-next-queued` branch.
+
+* Ensure certain details are covered, see separate list below.
+
+* You have confidence in the patches you push, proportionate to the complexity
+  and impact they have. The confidence must be explicitly documented with
+  special tags (Reviewed-by, Acked-by, Tested-by, Bugzilla, etc.) in the commit
+  message. This is also your insurance, and you want to have it when the commit
+  comes back haunting you. The complexity and impact are properties of the patch
+  that must be justified in the commit message.
+
+* Last but not least, especially when getting started, you can't go wrong with
+  asking or deferring to the maintainers. If you don't feel comfortable pushing
+  a patch for any reason (technical concerns, unresolved or conflicting
+  feedback, management or peer pressure, or anything really) it's best to defer
+  to the maintainers. This is what the maintainers are there for.
+
+* After pushing, please reply to the list that you've done so.
+
+Detail Check List
+-----------------
+
+An inexhaustive list of details to check:
+
+* The patch conforms to `Documentation/SubmittingPatches
+  <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches>`_.
+
+* The commit message is sensible, and includes adequate details and references.
+
+* Bug fixes are clearly indicated as such.
+
+* IGT test cases, if applicable, must be complete and reviewed. Please see
+  `details on testing requirements
+  <http://blog.ffwll.ch/2013/11/testing-requirements-for-drmi915.html>`_.
+
+* An open source userspace, reviewed and released by the upstream project, must
+  be available for new kernel ABI. Please see `details on upstreaming
+  requirements
+  <http://blog.ffwll.ch/2015/05/gfx-kernel-upstreaming-requirements.html>`_.
+
+* Relevant documentation must be updated as part of the patch or series.
+
+* Patch series builds and is expected to boot every step of the way, i.e. is
+  bisectable.
+
+* Each patch is of a sensible size. A good rule of thumb metric is, would you
+  (or the author) stand a chance to fairly quickly understand what goes wrong if
+  the commit is reported to cause a regression?
+
+* `checkpatch.pl` does not complain. (Some of the more subjective warnings may
+  be ignored at the committer's discretion.)
+
+* The patch does not introduce new `sparse` warnings.
+
+On Confidence, Complexity, and Transparency
+-------------------------------------------
+
+* Reviewed-by/Acked-by/Tested-by must include the name and email of a real
+  person for transparency. Anyone can give these, and therefore you have to
+  value them according to the merits of the person. Quality matters, not
+  quantity. Be suspicious of rubber stamps.
+
+* Reviewed-by/Acked-by/Tested-by can be asked for and given informally (on the
+  list, IRC, in person, in a meeting) but must be added to the commit.
+
+* Reviewed-by. All patches must be reviewed, no exceptions. Please see
+  "Reviewer's statement of oversight" in `Documentation/SubmittingPatches
+  <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches>`_
+  and `review training
+  <http://blog.ffwll.ch/2014/08/review-training-slides.html>`_.
+
+* Acked-by. Indicates acceptance. No reply is not a sign of acceptance, unless
+  you've involved the person (added Cc:, explicitly included in discussion).
+
+* Tested-by. Please solicit separate Tested-by especially from the bug
+  reporters, or people with specific hardware that you or the author do not
+  have.
+
+* There must not be open issues or unresolved or conflicting feedback from
+  anyone. Clear them up first. Defer to maintainers as needed.
+
+* For patches that are simple, isolated, non-functional, not visible to
+  userspace, and/or are in author or reviewer's domain of expertise, one
+  reviewer is enough. Author with commit access can push after review, or
+  reviewer with commit access can push after review.
+
+* The more complicated the patch gets, the greater the impact, involves ABI,
+  touches several areas or platforms, is outside of author's domain of
+  expertise, the more eyeballs are needed. For example, several reviewers, or
+  separate author, reviewer and committer. Make sure you have experienced
+  reviewers. Involve the domain expert(s). Possibly involve people across
+  team/group boundaries. Possibly involve the maintainers. Give people more time
+  to voice their concerns.
+
+* Most patches fall somewhere in between. You have to be the judge, and ensure
+  you have involved enough people to feel comfortable if the justification for
+  the commit is questioned afterwards.
+
 Tooling
 =======
 
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [maintainer-tools PATCH 2/2] drm-intel: document new fixes flow
  2015-12-23 13:20 [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines Jani Nikula
@ 2015-12-23 13:20 ` Jani Nikula
  2015-12-23 13:24 ` [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines Jani Nikula
  1 sibling, 0 replies; 3+ messages in thread
From: Jani Nikula @ 2015-12-23 13:20 UTC (permalink / raw)
  To: intel-gfx; +Cc: jani.nikula

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drm-intel-flow.dot |  9 +++---
 drm-intel.rst      | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 79 insertions(+), 11 deletions(-)

diff --git a/drm-intel-flow.dot b/drm-intel-flow.dot
index 0a16a915a49c..cfee83872c37 100644
--- a/drm-intel-flow.dot
+++ b/drm-intel-flow.dot
@@ -77,8 +77,7 @@ strict digraph "drm-intel" {
        "intel-gfx" [label="intel-gfx mailing list"]
        "internal" [label="internal mailing list"]
 
-       "fixes for current" -> "intel-gfx"
-       "fixes for next" -> "intel-gfx"
+       "fixes" -> "intel-gfx"
        "feature patches" -> "intel-gfx"
 
        "embargoed patches" -> "internal"
@@ -86,7 +85,7 @@ strict digraph "drm-intel" {
 
        "internal" -> "drm-intel-internal" [label="maintainers pick\nalways open"]
 
-       "intel-gfx" -> "drm-intel-next-queued" [label="maintainers pick\nalways open"]
-       "intel-gfx" -> "drm-intel-fixes" [label="maintainers pick\nrc1..rcN of current"]
-       "intel-gfx" -> "drm-intel-next-fixes" [label="maintainers pick\n~rc5..release of current"]
+       "intel-gfx" -> "drm-intel-next-queued" [label="committers/maintainers pick\nalways open"]
+       "drm-intel-next-queued" -> "drm-intel-fixes" [label="maintainers cherry-pick\nrc1..rcN of current" color=blue]
+       "drm-intel-next-queued" -> "drm-intel-next-fixes" [label="maintainers cherry-pick\n~rc5..release of current" color=blue]
 }
diff --git a/drm-intel.rst b/drm-intel.rst
index 66654899fed2..0e774047b1b8 100644
--- a/drm-intel.rst
+++ b/drm-intel.rst
@@ -93,7 +93,8 @@ drm-intel-next-fixes (aka "dinf")
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This branch contains drm/i915 specific fixes to drm-next after the drm/i915
-features have been merged there.
+features have been merged there. Fixes are first applied to
+drm-intel-next-queued, and cherry-picked to drm-intel-next-fixes.
 
 Pull requests to Dave are sent as needed, with no particular schedule.
 
@@ -101,13 +102,14 @@ drm-intel-fixes (aka "-fixes")
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This branch contains fixes to Linus' tree after drm-next has been merged during
-the merge window. The fixes are merged through drm-fixes. Valid from -rc1 to the
-kernel release.
+the merge window. Fixes are first applied to drm-intel-next-queued, and
+cherry-picked to drm-intel-fixes. The fixes are then merged through drm-fixes.
+Valid from -rc1 to the kernel release.
 
 Usually Linus releases each -rc on a Sunday, and drm-intel-fixes gets rebased on
-that the following Monday. The pull request to Dave for new fixes is typically
-sent on the following Thursday. This is repeated until final release of the
-kernel.
+that the following Monday. Usually this is a fast-forward. The pull request to
+Dave for new fixes is typically sent on the following Thursday. This is repeated
+until final release of the kernel.
 
 This is the fastest path to getting fixes to Linus' tree. It is generally for
 the regressions, cc:stable, black screens, GPU hangs only, and should pretty
@@ -130,6 +132,73 @@ flow of the commits to drm-upstream and Linus' tree.
 
 Legend: Green = Linus. Red = drm-upstream. Blue = drm-intel. Black = patches.
 
+Features
+--------
+
+Features are picked up and pushed to drm-intel-next-queued by committers and
+maintainers. See committer guidelines below for details.
+
+Fixes
+-----
+
+Fixes are picked up and pushed to drm-intel-next-queued by committers and
+maintainers, just like any other patches. This is to ensure fixes are pushed in
+a timely manner. Fixes that are relevant for stable, current development
+kernels, or drm-next, will be cherry-picked by maintainers to drm-intel-fixes or
+drm-intel-next-fixes.
+
+To make this work, patches should be labeled as fixes (see below), and extra
+care should be put into making fixes the first patches in series, not depending
+on preparatory work or cleanup.
+
+Labeling Fixes Before Pushing
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To label fixes that should be cherry-picked to the current -rc development
+kernel or drm-next, the commit message should contain either:
+
+	Cc: drm-intel-fixes@lists.freedesktop.org
+
+or, if the fix is relevant for a released kernel,
+
+	Cc: stable@vger.kernel.org
+
+If the Cc: was forgotten, you can still reply to the list with that, just like
+any other tags, and they should be picked up by whoever pushes the patch.
+
+The maintainers will cherry-pick labeled patches from drm-intel-next-queued to
+the appropriate branches.
+
+If possible, the commit message should also contain a Fixes: tag as described in
+`Documentation/SubmittingPatches
+<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches>`_
+to aid the maintainers in identifying the right branch.
+
+Requesting Fixes Cherry-Pick Afterwards
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+It's not uncommon for a patch to have been committed before it's identified as a
+fix needing to be backported.
+
+If the patch is already in Linus' tree, please follow `stable kernel rules
+<https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/stable_kernel_rules.txt>`_.
+
+Otherwise, send an email to intel-gfx@lists.freedesktop.org and
+drm-intel-fixes@lists.freedesktop.org containing the subject of the patch, the
+commit id, why you think it should be applied, and what branch you wish it to be
+applied to.
+
+Replying to the original patch is also fine, but please do remember to add Cc:
+drm-intel-fixes@lists.freedesktop.org and the commit id.
+
+Alternatively, if the cherry-pick has conflicts, please send a patch to
+intel-gfx@lists.freedesktop.org and drm-intel-fixes@lists.freedesktop.org with
+subject prefix "drm-intel-fixes PATCH" or "drm-intel-next-fixes PATCH" depending
+on the branch. Please add 'git cherry-pick -x' style annotation above your
+Signed-off-by: line in the commit message:
+
+	(cherry picked from commit 0bff4858653312a10c83709e0009c3adb87e6f1e)
+
 Merge Timeline
 ==============
 
-- 
2.1.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines
  2015-12-23 13:20 [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines Jani Nikula
  2015-12-23 13:20 ` [maintainer-tools PATCH 2/2] drm-intel: document new fixes flow Jani Nikula
@ 2015-12-23 13:24 ` Jani Nikula
  1 sibling, 0 replies; 3+ messages in thread
From: Jani Nikula @ 2015-12-23 13:24 UTC (permalink / raw)
  To: intel-gfx

On Wed, 23 Dec 2015, Jani Nikula <jani.nikula@intel.com> wrote:
> Add guidelines to help our committers make the right calls when pushing
> patches.

Actually just pushed these two anyway; posted the patches for
transparency and for a place for discussion. We can update the docs as
we go.

BR,
Jani.


>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drm-intel.rst | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 114 insertions(+), 1 deletion(-)
>
> diff --git a/drm-intel.rst b/drm-intel.rst
> index c6b0800e2dbc..66654899fed2 100644
> --- a/drm-intel.rst
> +++ b/drm-intel.rst
> @@ -71,7 +71,9 @@ The Upstream i915 Driver Repository
>  
>  `git://anongit.freedesktop.org/drm-intel`
>  
> -Maintained by Daniel Vetter and co. Consists mostly of `drivers/gpu/drm/i915`.
> +Maintained by Daniel Vetter and Jani Nikula, with several developers also having
> +commit access for pushing `drm-intel-next-queued`. Consists mostly of
> +`drivers/gpu/drm/i915`.
>  
>  drm-intel-next-queued (aka "dinq")
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> @@ -141,6 +143,117 @@ release. There are no fast paths.
>  For predictions on the future merge windows and releases, see
>  http://phb-crystal-ball.org/.
>  
> +Committer Guidelines
> +====================
> +
> +This section describes the guidelines for pushing patches. Strict rules covering
> +all cases are impossible write and follow. We put a lot of trust in the sound
> +judgement of the people with commit access, and that only develops with
> +experience. These guidelines are primarily for the committers to aid in making
> +the right decisions, and for others to set their the expectations right.
> +
> +The short list:
> +
> +* Only push patches changing `drivers/gpu/drm/i915`.
> +
> +* Only push patches to `drm-intel-next-queued` branch.
> +
> +* Ensure certain details are covered, see separate list below.
> +
> +* You have confidence in the patches you push, proportionate to the complexity
> +  and impact they have. The confidence must be explicitly documented with
> +  special tags (Reviewed-by, Acked-by, Tested-by, Bugzilla, etc.) in the commit
> +  message. This is also your insurance, and you want to have it when the commit
> +  comes back haunting you. The complexity and impact are properties of the patch
> +  that must be justified in the commit message.
> +
> +* Last but not least, especially when getting started, you can't go wrong with
> +  asking or deferring to the maintainers. If you don't feel comfortable pushing
> +  a patch for any reason (technical concerns, unresolved or conflicting
> +  feedback, management or peer pressure, or anything really) it's best to defer
> +  to the maintainers. This is what the maintainers are there for.
> +
> +* After pushing, please reply to the list that you've done so.
> +
> +Detail Check List
> +-----------------
> +
> +An inexhaustive list of details to check:
> +
> +* The patch conforms to `Documentation/SubmittingPatches
> +  <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches>`_.
> +
> +* The commit message is sensible, and includes adequate details and references.
> +
> +* Bug fixes are clearly indicated as such.
> +
> +* IGT test cases, if applicable, must be complete and reviewed. Please see
> +  `details on testing requirements
> +  <http://blog.ffwll.ch/2013/11/testing-requirements-for-drmi915.html>`_.
> +
> +* An open source userspace, reviewed and released by the upstream project, must
> +  be available for new kernel ABI. Please see `details on upstreaming
> +  requirements
> +  <http://blog.ffwll.ch/2015/05/gfx-kernel-upstreaming-requirements.html>`_.
> +
> +* Relevant documentation must be updated as part of the patch or series.
> +
> +* Patch series builds and is expected to boot every step of the way, i.e. is
> +  bisectable.
> +
> +* Each patch is of a sensible size. A good rule of thumb metric is, would you
> +  (or the author) stand a chance to fairly quickly understand what goes wrong if
> +  the commit is reported to cause a regression?
> +
> +* `checkpatch.pl` does not complain. (Some of the more subjective warnings may
> +  be ignored at the committer's discretion.)
> +
> +* The patch does not introduce new `sparse` warnings.
> +
> +On Confidence, Complexity, and Transparency
> +-------------------------------------------
> +
> +* Reviewed-by/Acked-by/Tested-by must include the name and email of a real
> +  person for transparency. Anyone can give these, and therefore you have to
> +  value them according to the merits of the person. Quality matters, not
> +  quantity. Be suspicious of rubber stamps.
> +
> +* Reviewed-by/Acked-by/Tested-by can be asked for and given informally (on the
> +  list, IRC, in person, in a meeting) but must be added to the commit.
> +
> +* Reviewed-by. All patches must be reviewed, no exceptions. Please see
> +  "Reviewer's statement of oversight" in `Documentation/SubmittingPatches
> +  <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches>`_
> +  and `review training
> +  <http://blog.ffwll.ch/2014/08/review-training-slides.html>`_.
> +
> +* Acked-by. Indicates acceptance. No reply is not a sign of acceptance, unless
> +  you've involved the person (added Cc:, explicitly included in discussion).
> +
> +* Tested-by. Please solicit separate Tested-by especially from the bug
> +  reporters, or people with specific hardware that you or the author do not
> +  have.
> +
> +* There must not be open issues or unresolved or conflicting feedback from
> +  anyone. Clear them up first. Defer to maintainers as needed.
> +
> +* For patches that are simple, isolated, non-functional, not visible to
> +  userspace, and/or are in author or reviewer's domain of expertise, one
> +  reviewer is enough. Author with commit access can push after review, or
> +  reviewer with commit access can push after review.
> +
> +* The more complicated the patch gets, the greater the impact, involves ABI,
> +  touches several areas or platforms, is outside of author's domain of
> +  expertise, the more eyeballs are needed. For example, several reviewers, or
> +  separate author, reviewer and committer. Make sure you have experienced
> +  reviewers. Involve the domain expert(s). Possibly involve people across
> +  team/group boundaries. Possibly involve the maintainers. Give people more time
> +  to voice their concerns.
> +
> +* Most patches fall somewhere in between. You have to be the judge, and ensure
> +  you have involved enough people to feel comfortable if the justification for
> +  the commit is questioned afterwards.
> +
>  Tooling
>  =======

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-12-23 13:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-23 13:20 [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines Jani Nikula
2015-12-23 13:20 ` [maintainer-tools PATCH 2/2] drm-intel: document new fixes flow Jani Nikula
2015-12-23 13:24 ` [maintainer-tools PATCH 1/2] drm-intel: add committer guidelines Jani Nikula

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.