[FFmpeg-devel] [PATCH v2 1/2] doc/developer: reword some of the policies
James Almer
jamrial at gmail.com
Mon Oct 3 00:37:19 EEST 2016
On 10/1/2016 9:51 PM, Josh de Kock wrote:
> Explicitly state that FATE should pass, and code should work
> for all reviewers who tested.
>
> Signed-off-by: Josh de Kock <josh at itanimul.li>
> ---
> doc/developer.texi | 91 ++++++++++++++++++++++++++----------------------------
> 1 file changed, 44 insertions(+), 47 deletions(-)
>
> diff --git a/doc/developer.texi b/doc/developer.texi
> index 4d3a7ae..0075a27 100644
> --- a/doc/developer.texi
> +++ b/doc/developer.texi
> @@ -247,7 +247,7 @@ For Emacs, add these roughly equivalent lines to your @file{.emacs.d/init.el}:
> @section Development Policy
>
> @enumerate
> - at item
> + at item Licenses for patches must be compatible with FFmpeg.
> Contributions should be licensed under the
> @uref{http://www.gnu.org/licenses/lgpl-2.1.html, LGPL 2.1},
> including an "or any later version" clause, or, if you prefer
> @@ -260,15 +260,15 @@ preferred.
> If you add a new file, give it a proper license header. Do not copy and
> paste it from a random place, use an existing file as template.
>
> - at item
> -You must not commit code which breaks FFmpeg! (Meaning unfinished but
> -enabled code which breaks compilation or compiles but does not work or
> -breaks the regression tests)
> -You can commit unfinished stuff (for testing etc), but it must be disabled
> -(#ifdef etc) by default so it does not interfere with other developers'
> -work.
> + at item You must not commit code which breaks FFmpeg!
> +This means unfinished code which is enabled and breaks compilation,
> +or compiles but does not work/breaks the regression tests. Code which
> +is unfinished but disabled may be permitted under-circumstances, like
> +missing samples or an implementation with a small subset of features.
> +Always check the mailing list for any reviewers with issues and test
> +FATE before you push.
>
> - at item
> + at item Keep the main commit message short with an extended description below.
> The commit message should have a short first line in the form of
> a @samp{topic: short description} as a header, separated by a newline
> from the body consisting of an explanation of why the change is necessary.
> @@ -276,30 +276,29 @@ If the commit fixes a known bug on the bug tracker, the commit message
> should include its bug ID. Referring to the issue on the bug tracker does
> not exempt you from writing an excerpt of the bug in the commit message.
>
> - at item
> -You do not have to over-test things. If it works for you, and you think it
> -should work for others, then commit. If your code has problems
> -(portability, triggers compiler bugs, unusual environment etc) they will be
> -reported and eventually fixed.
> -
> - at item
> -Do not commit unrelated changes together, split them into self-contained
> -pieces. Also do not forget that if part B depends on part A, but A does not
> -depend on B, then A can and should be committed first and separate from B.
> -Keeping changes well split into self-contained parts makes reviewing and
> -understanding them on the commit log mailing list easier. This also helps
> -in case of debugging later on.
> + at item Testing must be adequate but not excessive.
> +If it works for you, others, and passes FATE then it should be OK to commit
> +it, provided it fits the other committing criteria. You should not worry about
> +over-testing things. If your code has problems (portability, triggers
> +compiler bugs, unusual environment etc) they will be reported and eventually
> +fixed.
> +
> + at item Do not commit unrelated changes together.
> +They should be split them into self-contained pieces. Also do not forget
> +that if part B depends on part A, but A does not depend on B, then A can
> +and should be committed first and separate from B. Keeping changes well
> +split into self-contained parts makes reviewing and understanding them on
> +the commit log mailing list easier. This also helps in case of debugging
> +later on.
> Also if you have doubts about splitting or not splitting, do not hesitate to
> ask/discuss it on the developer mailing list.
>
> - at item
> + at item API/ABI breakages and changes should be discussed before they are made.
> Do not change behavior of the programs (renaming options etc) or public
> API or ABI without first discussing it on the ffmpeg-devel mailing list.
> -Do not remove functionality from the code. Just improve!
> -
> -Note: Redundant code can be removed.
> +Do not remove widely used functionality or features (redundant code can be removed).
>
> - at item
> + at item Ask before you change the build system (configure, etc).
> Do not commit changes to the build system (Makefiles, configure script)
> which change behavior, defaults etc, without asking first. The same
> applies to compiler warning fixes, trivial looking fixes and to code
> @@ -308,7 +307,7 @@ the way we do. Send your changes as patches to the ffmpeg-devel mailing
> list, and if the code maintainers say OK, you may commit. This does not
> apply to files you wrote and/or maintain.
>
> - at item
> + at item Cosmetic changes should be kept in separate patches.
> We refuse source indentation and other cosmetic changes if they are mixed
> with functional changes, such commits will be rejected and removed. Every
> developer has his own indentation style, you should not change it. Of course
> @@ -322,7 +321,7 @@ NOTE: If you had to put if()@{ .. @} over a large (> 5 lines) chunk of code,
> then either do NOT change the indentation of the inner part within (do not
> move it to the right)! or do so in a separate commit
>
> - at item
> + at item Commit messages should always be filled out properly.
> Always fill out the commit log message. Describe in a few lines what you
> changed and why. You can refer to mailing list postings if you fix a
> particular bug. Comments such as "fixed!" or "Changed it." are unacceptable.
> @@ -334,35 +333,35 @@ area changed: Short 1 line description
> details describing what and why and giving references.
> @end example
>
> - at item
> + at item Credit the author of the patch.
> Make sure the author of the commit is set correctly. (see git commit --author)
> If you apply a patch, send an
> answer to ffmpeg-devel (or wherever you got the patch from) saying that
> you applied the patch.
>
> - at item
> + at item Complex patches should refer to discussion surrounding them.
> When applying patches that have been discussed (at length) on the mailing
> list, reference the thread in the log message.
>
> - at item
> + at item Always wait long enough before pushing changes
> Do NOT commit to code actively maintained by others without permission.
> -Send a patch to ffmpeg-devel instead. If no one answers within a reasonable
> -timeframe (12h for build failures and security fixes, 3 days small changes,
> +Send a patch to ffmpeg-devel. If no one answers within a reasonable
> +time-frame (12h for build failures and security fixes, 3 days small changes,
> 1 week for big patches) then commit your patch if you think it is OK.
> Also note, the maintainer can simply ask for more time to review!
>
> - at item
> -Subscribe to the ffmpeg-cvslog mailing list. The diffs of all commits
> -are sent there and reviewed by all the other developers. Bugs and possible
> -improvements or general questions regarding commits are discussed there. We
> -expect you to react if problems with your code are uncovered.
> + at item Subscribe to the ffmpeg-cvslog mailing list.
> +It is important to do this as the diffs of all commits are sent there and
> +reviewed by all the other developers. Bugs and possible improvements or
> +general questions regarding commits are discussed there. We expect you to
> +react if problems with your code are uncovered.
>
> - at item
> + at item Keep the documentation up to date.
> Update the documentation if you change behavior or add features. If you are
> unsure how best to do this, send a patch to ffmpeg-devel, the documentation
> maintainer(s) will review and commit your stuff.
>
> - at item
> + at item Important discussions should be accessible to all.
> Try to keep important discussions and requests (also) on the public
> developer mailing list, so that all developers can benefit from them.
>
> @@ -371,10 +370,8 @@ Never write to unallocated memory, never write over the end of arrays,
> always check values read from some untrusted source before using them
> as array index or other risky things.
>
> - at item
> -Remember to check if you need to bump versions for the specific libav*
> -parts (libavutil, libavcodec, libavformat) you are changing. You need
> -to change the version integer.
> + at item Remember to check if you need to bump versions for libav*.
> +Depending on the change, you may need to change the version integer.
> Incrementing the first component means no backward compatibility to
> previous versions (e.g. removal of a function from the public API).
> Incrementing the second component means backward compatible change
> @@ -384,7 +381,7 @@ Incrementing the third component means a noteworthy binary compatible
> change (e.g. encoder bug fix that matters for the decoder). The third
> component always starts at 100 to distinguish FFmpeg from Libav.
>
> - at item
> + at item Warnings for correct code may be disabled if there is no other option.
> Compiler warnings indicate potential bugs or code with bad style. If a type of
> warning always points to correct and clean code, that warning should
> be disabled, not the code changed.
> @@ -393,7 +390,7 @@ If it is a bug, the bug has to be fixed. If it is not, the code should
> be changed to not generate a warning unless that causes a slowdown
> or obfuscates the code.
>
> - at item
> + at item Check your entries in MAINTAINERS.
> Make sure that no parts of the codebase that you maintain are missing from the
> @file{MAINTAINERS} file. If something that you want to maintain is missing add it with
> your name after it.
>
Can't find anything wrong. The additions seem fine, so LGTM.
In any case, wait a bit for someone else to comment as well.
More information about the ffmpeg-devel
mailing list