From patchwork Wed Feb 8 15:51:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thilo Borgmann X-Patchwork-Id: 40328 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp5384607pzk; Wed, 8 Feb 2023 07:51:39 -0800 (PST) X-Google-Smtp-Source: AK7set+ijmnQ3ElVAxHT+46NxsqnILVi4i2no7d+Vuj/kHPh1MMeInWzX6lEErmBR0LUi14h8FHG X-Received: by 2002:a17:906:edbb:b0:887:2248:efd5 with SMTP id sa27-20020a170906edbb00b008872248efd5mr8837293ejb.77.1675871499125; Wed, 08 Feb 2023 07:51:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675871499; cv=none; d=google.com; s=arc-20160816; b=jLFb4loUdJEm4Uy4ffiSBd3svHOYHso4/SDkdKqQL99AFZ4RJY5d5kjv25Xq7KO4Ch D98TNmYmcnZqEOgqNyweP3aVPhd7cb4ev4B2vSlMyPCgNqdLvWfD9a2ImzotNO6SrY+2 TY1qsfWxzvkAxWn87qn5iq3y5tfWiCdYtMIdfcFIaKpYzwcIVSG7/QiF0Mx7737QxbGU 25R9rTlSdpAQEELjhEfqmx524tNCi5SjZm4o5Uzvfux+mTwSoJHG3iKJ8KKcieSz+mMM dOdgepf1wJ0iYbPshGUIiTECZZIbErdcz5YS80o3JZKm8cxAPBB/Ac8q2e1/Ud9BZsIm zxfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=ZLYLmn+cEdXl3BnP7E4hWWal3Db4gjaxWyQ9+/JhMR0=; b=RET0ZXc8E1bA/T01TYfYyl+EJknRfHMKfhmItqNx8usPV4PcVtjZgLbc4cBtK9gQmE rK5h68m1DyOR6UTA2xd+QdN264QopcpQ+XQ6af9ZIjVnNwVPqPRrmz/s2c0R8pQcATuB iwn4qEtaFjcN6kO3uM/6dG/q3GlQiYjYiy2jzYd1PpkfFejd/qUi+KUqkQvFU8TlREQ3 ctvqWfO5sED32Xn+9oqwW9HeuSma1R/cPMOnEqJCwOz63vGZHBofkYn2FrHHw7MEepiK wbekuCUtZJtruh1elnn9z8KE9RlzTCx3dYMpjPU6zjXGnPC3atHAJH6h/xog2TPcGq90 jFqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@mail.de header.s=mailde202009 header.b=4bo4TGrP; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mail.de Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y14-20020a17090668ce00b008786740a1c8si22443609ejr.622.2023.02.08.07.51.38; Wed, 08 Feb 2023 07:51:39 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@mail.de header.s=mailde202009 header.b=4bo4TGrP; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mail.de Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 867BB68BED6; Wed, 8 Feb 2023 17:51:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from shout01.mail.de (shout01.mail.de [62.201.172.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ACADE68BD48 for ; Wed, 8 Feb 2023 17:51:30 +0200 (EET) Received: from postfix01.mail.de (postfix01.bt.mail.de [10.0.121.125]) by shout01.mail.de (Postfix) with ESMTP id 5756AA0764 for ; Wed, 8 Feb 2023 16:51:30 +0100 (CET) Received: from smtp03.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix01.mail.de (Postfix) with ESMTP id 3DA838020A for ; Wed, 8 Feb 2023 16:51:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1675871490; bh=gik8717pIm4tfe6mzpVmvFZA6Lp9VWPIo/gb4mQajEs=; h=From:To:Subject:Date:Message-Id:From:To:CC:Subject:Reply-To; b=4bo4TGrPBa0RCCnrExDr+DFGAi+nllNNDA94+VHzhnSZQkNGsoMweedI9r539vh2Z 8SJ6olfr6iKBWCovMw0281d3cN4PDhcN6CF47Wlj3KWzywSh+5wjxvMhLjZZVd4WIo aUB63E0AsfyFjG6tHInqq0Tz0cK3ivA9Z093Bfyyb3tbbh8bpb1+USVJl4K7EuMZ1+ 60TxGUoVsW0eG98wPzow4DwcgPdc+F3+4j9WsrgKx4+2nMyzTeDHHJJmKpotdJKuik D1I4TCDAxknd26xIfXmQ7Bwwrb9N2/TYOoADAcsMkTIq/Czvjqcln1Q/vTg+bp1uyQ Ovkh2x24yjRog== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp03.mail.de (Postfix) with ESMTPSA id 01D89A03A8 for ; Wed, 8 Feb 2023 16:51:29 +0100 (CET) From: Thilo Borgmann To: ffmpeg-devel@ffmpeg.org Date: Wed, 8 Feb 2023 16:51:28 +0100 Message-Id: <20230208155129.42240-1-thilo.borgmann@mail.de> MIME-Version: 1.0 X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 1105 X-purgate-ID: 154282::1675871490-727FA647-EB96AAD6/0/0 Subject: [FFmpeg-devel] [PATCH 1/2] doc/dev_community: add the addresses of the committees X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 2JWv704m4o5l From: Nicolas George Omitting the .org from the address should be protection enough against spam spiders. Signed-off-by: Nicolas George --- doc/dev_community/community.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/dev_community/community.md b/doc/dev_community/community.md index 21e08e20e3..59519393e2 100644 --- a/doc/dev_community/community.md +++ b/doc/dev_community/community.md @@ -55,6 +55,8 @@ Candidates for election can either be suggested or self-nominated. The conflict resolution process is detailed in the [resolution process](resolution_process.md) document. +The TC can be contacted at . + ## Community committee The Community Committee (CC) is here to arbitrage and make decisions when @@ -77,3 +79,5 @@ The members of the CC can be elected from outside of the GA. Candidates for election can either be suggested or self-nominated. The CC is governed by and responsible for enforcing the Code of Conduct. + +The CC can be contacted at . From patchwork Wed Feb 8 15:51:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thilo Borgmann X-Patchwork-Id: 40329 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp5384717pzk; Wed, 8 Feb 2023 07:51:48 -0800 (PST) X-Google-Smtp-Source: AK7set/dMA860awZ8yJSUooyKFoRdDRnYi5sEf4jExDCMyMxEyJFKdTfqHacVdY6R7pgjJdQA8ei X-Received: by 2002:a50:c312:0:b0:4ab:15da:27f4 with SMTP id a18-20020a50c312000000b004ab15da27f4mr1611267edb.5.1675871508175; Wed, 08 Feb 2023 07:51:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675871508; cv=none; d=google.com; s=arc-20160816; b=yZ+xhd1DSzgHIXXZzhB+d8JqEyMzj3JWWPUIIqBYz80uvhv+b/JYtwlTSJW0wHmskX XCbKQoeI6kWy+xE+mJ19fCC4vUg+xt/fPTS99QagrS9KE0lHKoP36UwE/f7usxcgerp2 vMRN2aIB1HE6RJKy1THj2AJoTmH6qbzG/ZfJQgvRXwDD+zRoDn8CDwKC35w1fwSE/TUx yNmQ2tFztsLormGqvHf8PQYK3S/2N+1M7jGfCECFldpg1WphNo4diA/YU49FxX4Glw2Y mBYJFunEn0FUwTznQuKNd84xnCliDGDOHlvZvhXfR++zNdKUmSdwyWznx58yJ8LtWLh5 7JMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=MFweVW9yFCdg4JjFDNZ8+2+1idP1Mithm2RQL1laIZM=; b=YD3WFjhw5xNV5+Svx6wTuB4i3Xca/vwl9M/yqmBWdssEidPQ7bvUqCErCM70lw2cEc LRlNymAVdCyXnQn5FuKnm9HrkqctyMIdDEZx0rEsXApEKsdQ6SDeaZkFQOKH043rgc8D 2Fvzp96at8ur5HAczIhNf3O0R8t8/i/ZdRhUgn/u2iRM2jWwk36vry+Hu0Cr62YBKTKN CWU+yRpIK+KG2B9sI7/FM61pqVjh7lUk9md9hnvwou/U1DNHSsFLlARyz0+UM/lrYKUq 0CUYY/WzUzgHaibDO2yYNRl3EaVH3onvqVfy0EJoRtH7fpQdS/9AyX+xcCyctCSvy2V8 urQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@mail.de header.s=mailde202009 header.b=tQrN6fje; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mail.de Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c5-20020aa7c745000000b004a0e8d82badsi1945402eds.617.2023.02.08.07.51.46; Wed, 08 Feb 2023 07:51:48 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@mail.de header.s=mailde202009 header.b=tQrN6fje; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mail.de Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6915E68BEDB; Wed, 8 Feb 2023 17:51:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EB10068BE90 for ; Wed, 8 Feb 2023 17:51:30 +0200 (EET) Received: from postfix01.mail.de (postfix01.bt.mail.de [10.0.121.125]) by shout02.mail.de (Postfix) with ESMTP id 967DDA0684 for ; Wed, 8 Feb 2023 16:51:30 +0100 (CET) Received: from smtp03.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix01.mail.de (Postfix) with ESMTP id 7F4A48020A for ; Wed, 8 Feb 2023 16:51:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde202009; t=1675871490; bh=6vWdijgJKKJy+9i4/ilAYdsnJOOfYq7b3tQrB6EaXM8=; h=From:To:Subject:Date:Message-Id:From:To:CC:Subject:Reply-To; b=tQrN6fjeB31+Q4tdtKvrwnj/7RbXoH4OaEAZjnqfRoPmvh5xHWpZqaw7HJIpy5hbJ e0w/HNJqXeF0RapTwAdjx8DfILfMRDfnzPWV03e9oyKdUB8oKHUNiRkV+YIXiWuJ8h QDtfwedX9v1lth56KLSV+BKDpk613kFKUOPBu82EgKDFsCWsZfazhg8MGCxWGzI9GQ u7euUasQnmEfJtX1lQG4Ian/piy3Oj41/pIXuJQU3v2NeHcuwdBkUfO0e6/Eji1stg igYtA/qUc3tHDzYQLQohJYbkhmsPEN5FkDu2V8qSHWJNKlNMGMrjMrOSl/XF01FeMT ee1gGZ9053qqA== Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp03.mail.de (Postfix) with ESMTPSA id 4BE44A03A9 for ; Wed, 8 Feb 2023 16:51:30 +0100 (CET) From: Thilo Borgmann To: ffmpeg-devel@ffmpeg.org Date: Wed, 8 Feb 2023 16:51:29 +0100 Message-Id: <20230208155129.42240-2-thilo.borgmann@mail.de> In-Reply-To: <20230208155129.42240-1-thilo.borgmann@mail.de> References: <20230208155129.42240-1-thilo.borgmann@mail.de> MIME-Version: 1.0 X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 18891 X-purgate-ID: 154282::1675871490-727FA647-447B288B/0/0 Subject: [FFmpeg-devel] [PATCH 2/2] doc: Merge doc/dev_community/* and Code of Conduct into a seperate file X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: OgzxefteqF5e Remove doc/dev_communit markup files completely as they are at the wrong place. Create a new community page, merging all of doc/dev_community and subsection Code of Conduct into a common place. The corresponding patch to ffmpeg-web puts the Organisation & Code of Conduct into a seperate community chapter on the FFmpeg website. --- doc/Makefile | 1 + doc/community.texi | 169 ++++++++++++++++++++++++ doc/dev_community/community.md | 83 ------------ doc/dev_community/resolution_process.md | 91 ------------- doc/developer.texi | 29 ---- doc/mailing-list-faq.texi | 2 +- 6 files changed, 171 insertions(+), 204 deletions(-) create mode 100644 doc/community.texi delete mode 100644 doc/dev_community/community.md delete mode 100644 doc/dev_community/resolution_process.md diff --git a/doc/Makefile b/doc/Makefile index 25774c7bad..67586e4b74 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -19,6 +19,7 @@ MANPAGES3 = $(LIBRARIES-yes:%=doc/%.3) MANPAGES = $(MANPAGES1) $(MANPAGES3) PODPAGES = $(AVPROGS-yes:%=doc/%.pod) $(AVPROGS-yes:%=doc/%-all.pod) $(COMPONENTS-yes:%=doc/%.pod) $(LIBRARIES-yes:%=doc/%.pod) HTMLPAGES = $(AVPROGS-yes:%=doc/%.html) $(AVPROGS-yes:%=doc/%-all.html) $(COMPONENTS-yes:%=doc/%.html) $(LIBRARIES-yes:%=doc/%.html) \ + doc/community.html \ doc/developer.html \ doc/faq.html \ doc/fate.html \ diff --git a/doc/community.texi b/doc/community.texi new file mode 100644 index 0000000000..92e62bde5c --- /dev/null +++ b/doc/community.texi @@ -0,0 +1,169 @@ +\input texinfo @c -*- texinfo -*- +@documentencoding UTF-8 + +@settitle Community +@titlepage +@center @titlefont{Community} +@end titlepage + +@top + +@contents + +@anchor{Organisation} +@chapter Organisation + +The FFmpeg project is organized through a community working on global consensus. + +Decisions are taken by the ensemble of active members, through voting and are aided by two committees. + +@anchor{General Assembly} +@chapter General Assembly + +The ensemble of active members is called the General Assembly (GA). + +The General Assembly is sovereign and legitimate for all its decisions regarding the FFmpeg project. + +The General Assembly is made up of active contributors. + +Contributors are considered "active contributors" if they have pushed more than 20 patches in the last 36 months in the main FFmpeg repository, or if they have been voted in by the GA. + +Additional members are added to the General Assembly through a vote after proposal by a member of the General Assembly. They are part of the GA for two years, after which they need a confirmation by the GA. + +@anchor{Voting} +@chapter Voting + +Voting is done using a ranked voting system, currently running on https://vote.ffmpeg.org/ . + +Majority vote means more than 50% of the expressed ballots. + +@anchor{Technical Committee} +@chapter Technical Committee + +The Technical Committee (TC) is here to arbitrate and make decisions when technical conflicts occur in the project. They will consider the merits of all the positions, judge them and make a decision. + +The TC resolves technical conflicts but is not a technical steering committee. + +Decisions by the TC are binding for all the contributors. + +Decisions made by the TC can be re-opened after 1 year or by a majority vote of the General Assembly, requested by one of the member of the GA. + +The TC is elected by the General Assembly for a duration of 1 year, and is composed of 5 members. Members can be re-elected if they wish. A majority vote in the General Assembly can trigger a new election of the TC. + +The members of the TC can be elected from outside of the GA. Candidates for election can either be suggested or self-nominated. + +The conflict resolution process is detailed in the resolution process document. + +@anchor{Resolution Process} +@section Resolution Process + +The Technical Committee (TC) is here to arbitrate and make decisions when technical conflicts occur in the project. + +The TC main role is to resolve technical conflicts. It is therefore not a technical steering committee, but it is understood that some decisions might impact the future of the project. + +@subsection Seizing + +The TC can take possession of any technical matter that it sees fit. + +To involve the TC in a matter, email tc@ or CC them on an ongoing discussion. + +As members of TC are developers, they also can email tc@ to raise an issue. +@subsection Announcement + +The TC, once seized, must announce itself on the main mailing list, with a [TC] tag. + +The TC has 2 modes of operation: a RFC one and an internal one. + +If the TC thinks it needs the input from the larger community, the TC can call for a RFC. Else, it can decide by itself. + +If the disagreement involves a member of the TC, that member should recuse themselves from the decision. + +The decision to use a RFC process or an internal discussion is a discretionary decision of the TC. + +The TC can also reject a seizure for a few reasons such as: the matter was not discussed enough previously; it lacks expertise to reach a beneficial decision on the matter; or the matter is too trivial. +@subsection RFC call + +In the RFC mode, one person from the TC posts on the mailing list the technical question and will request input from the community. + +The mail will have the following specification: + + a precise title + a specific tag [TC RFC] + a top-level email + contain a precise question that does not exceed 100 words and that is answerable by developers + may have an extra description, or a link to a previous discussion, if deemed necessary, + contain a precise end date for the answers. + +The answers from the community must be on the main mailing list and must have the following specification: + + keep the tag and the title unchanged + limited to 400 words + a first-level, answering directly to the main email + answering to the question. + +Further replies to answers are permitted, as long as they conform to the community standards of politeness, they are limited to 100 words, and are not nested more than once. (max-depth=2) + +After the end-date, mails on the thread will be ignored. + +Violations of those rules will be escalated through the Community Committee. + +After all the emails are in, the TC has 96 hours to give its final decision. Exceptionally, the TC can request an extra delay, that will be notified on the mailing list. +@subsection Within TC + +In the internal case, the TC has 96 hours to give its final decision. Exceptionally, the TC can request an extra delay. +@subsection Decisions + +The decisions from the TC will be sent on the mailing list, with the [TC] tag. + +Internally, the TC should take decisions with a majority, or using ranked-choice voting. + +The decision from the TC should be published with a summary of the reasons that lead to this decision. + +The decisions from the TC are final, until the matters are reopened after no less than one year. + +@anchor{Community Committee} +@chapter Community Committee + +The Community Committee (CC) is here to arbitrage and make decisions when inter-personal conflicts occur in the project. It will decide quickly and take actions, for the sake of the project. + +The CC can remove privileges of offending members, including removal of commit access and temporary ban from the community. + +Decisions made by the CC can be re-opened after 1 year or by a majority vote of the General Assembly. Indefinite bans from the community must be confirmed by the General Assembly, in a majority vote. + +The CC is elected by the General Assembly for a duration of 1 year, and is composed of 5 members. Members can be re-elected if they wish. A majority vote in the General Assembly can trigger a new election of the CC. + +The members of the CC can be elected from outside of the GA. Candidates for election can either be suggested or self-nominated. + +The CC is governed by and responsible for enforcing the Code of Conduct. + +@anchor{Code of Conduct} +@chapter Code of Conduct + +Be friendly and respectful towards others and third parties. +Treat others the way you yourself want to be treated. + +Be considerate. Not everyone shares the same viewpoint and priorities as you do. +Different opinions and interpretations help the project. +Looking at issues from a different perspective assists development. + +Do not assume malice for things that can be attributed to incompetence. Even if +it is malice, it's rarely good to start with that as initial assumption. + +Stay friendly even if someone acts contrarily. Everyone has a bad day +once in a while. +If you yourself have a bad day or are angry then try to take a break and reply +once you are calm and without anger if you have to. + +Try to help other team members and cooperate if you can. + +The goal of software development is to create technical excellence, not for any +individual to be better and "win" against the others. Large software projects +are only possible and successful through teamwork. + +If someone struggles do not put them down. Give them a helping hand +instead and point them in the right direction. + +Finally, keep in mind the immortal words of Bill and Ted, +"Be excellent to each other." + +@bye diff --git a/doc/dev_community/community.md b/doc/dev_community/community.md deleted file mode 100644 index 59519393e2..0000000000 --- a/doc/dev_community/community.md +++ /dev/null @@ -1,83 +0,0 @@ -# FFmpeg project - -## Organisation - -The FFmpeg project is organized through a community working on global consensus. - -Decisions are taken by the ensemble of active members, through voting and -are aided by two committees. - -## General Assembly - -The ensemble of active members is called the General Assembly (GA). - -The General Assembly is sovereign and legitimate for all its decisions -regarding the FFmpeg project. - -The General Assembly is made up of active contributors. - -Contributors are considered "active contributors" if they have pushed more -than 20 patches in the last 36 months in the main FFmpeg repository, or -if they have been voted in by the GA. - -Additional members are added to the General Assembly through a vote after -proposal by a member of the General Assembly. -They are part of the GA for two years, after which they need a confirmation by -the GA. - -## Voting - -Voting is done using a ranked voting system, currently running on https://vote.ffmpeg.org/ . - -Majority vote means more than 50% of the expressed ballots. - -## Technical Committee - -The Technical Committee (TC) is here to arbitrate and make decisions when -technical conflicts occur in the project. -They will consider the merits of all the positions, judge them and make a -decision. - -The TC resolves technical conflicts but is not a technical steering committee. - -Decisions by the TC are binding for all the contributors. - -Decisions made by the TC can be re-opened after 1 year or by a majority vote -of the General Assembly, requested by one of the member of the GA. - -The TC is elected by the General Assembly for a duration of 1 year, and -is composed of 5 members. -Members can be re-elected if they wish. A majority vote in the General Assembly -can trigger a new election of the TC. - -The members of the TC can be elected from outside of the GA. -Candidates for election can either be suggested or self-nominated. - -The conflict resolution process is detailed in the [resolution process](resolution_process.md) document. - -The TC can be contacted at . - -## Community committee - -The Community Committee (CC) is here to arbitrage and make decisions when -inter-personal conflicts occur in the project. It will decide quickly and -take actions, for the sake of the project. - -The CC can remove privileges of offending members, including removal of -commit access and temporary ban from the community. - -Decisions made by the CC can be re-opened after 1 year or by a majority vote -of the General Assembly. Indefinite bans from the community must be confirmed -by the General Assembly, in a majority vote. - -The CC is elected by the General Assembly for a duration of 1 year, and is -composed of 5 members. -Members can be re-elected if they wish. A majority vote in the General Assembly -can trigger a new election of the CC. - -The members of the CC can be elected from outside of the GA. -Candidates for election can either be suggested or self-nominated. - -The CC is governed by and responsible for enforcing the Code of Conduct. - -The CC can be contacted at . diff --git a/doc/dev_community/resolution_process.md b/doc/dev_community/resolution_process.md deleted file mode 100644 index 4ed0b63c43..0000000000 --- a/doc/dev_community/resolution_process.md +++ /dev/null @@ -1,91 +0,0 @@ -# Technical Committee - -_This document only makes sense with the rules from [the community document](community)_. - -The Technical Committee (**TC**) is here to arbitrate and make decisions when -technical conflicts occur in the project. - -The TC main role is to resolve technical conflicts. -It is therefore not a technical steering committee, but it is understood that -some decisions might impact the future of the project. - -# Process - -## Seizing - -The TC can take possession of any technical matter that it sees fit. - -To involve the TC in a matter, email tc@ or CC them on an ongoing discussion. - -As members of TC are developers, they also can email tc@ to raise an issue. - -## Announcement - -The TC, once seized, must announce itself on the main mailing list, with a _[TC]_ tag. - -The TC has 2 modes of operation: a RFC one and an internal one. - -If the TC thinks it needs the input from the larger community, the TC can call -for a RFC. Else, it can decide by itself. - -If the disagreement involves a member of the TC, that member should recuse -themselves from the decision. - -The decision to use a RFC process or an internal discussion is a discretionary -decision of the TC. - -The TC can also reject a seizure for a few reasons such as: -the matter was not discussed enough previously; it lacks expertise to reach a -beneficial decision on the matter; or the matter is too trivial. - -### RFC call - -In the RFC mode, one person from the TC posts on the mailing list the -technical question and will request input from the community. - -The mail will have the following specification: -* a precise title -* a specific tag [TC RFC] -* a top-level email -* contain a precise question that does not exceed 100 words and that is answerable by developers -* may have an extra description, or a link to a previous discussion, if deemed necessary, -* contain a precise end date for the answers. - -The answers from the community must be on the main mailing list and must have -the following specification: -* keep the tag and the title unchanged -* limited to 400 words -* a first-level, answering directly to the main email -* answering to the question. - -Further replies to answers are permitted, as long as they conform to the -community standards of politeness, they are limited to 100 words, and are not -nested more than once. (max-depth=2) - -After the end-date, mails on the thread will be ignored. - -Violations of those rules will be escalated through the Community Committee. - -After all the emails are in, the TC has 96 hours to give its final decision. -Exceptionally, the TC can request an extra delay, that will be notified on the -mailing list. - -### Within TC - -In the internal case, the TC has 96 hours to give its final decision. -Exceptionally, the TC can request an extra delay. - - -## Decisions - -The decisions from the TC will be sent on the mailing list, with the _[TC]_ tag. - -Internally, the TC should take decisions with a majority, or using -ranked-choice voting. - -The decision from the TC should be published with a summary of the reasons that -lead to this decision. - -The decisions from the TC are final, until the matters are reopened after -no less than one year. - diff --git a/doc/developer.texi b/doc/developer.texi index 31b485b0f6..1275fa4f84 100644 --- a/doc/developer.texi +++ b/doc/developer.texi @@ -421,35 +421,6 @@ finding a new maintainer and also don't forget to update the @file{MAINTAINERS} We think our rules are not too hard. If you have comments, contact us. -@chapter Code of conduct - -Be friendly and respectful towards others and third parties. -Treat others the way you yourself want to be treated. - -Be considerate. Not everyone shares the same viewpoint and priorities as you do. -Different opinions and interpretations help the project. -Looking at issues from a different perspective assists development. - -Do not assume malice for things that can be attributed to incompetence. Even if -it is malice, it's rarely good to start with that as initial assumption. - -Stay friendly even if someone acts contrarily. Everyone has a bad day -once in a while. -If you yourself have a bad day or are angry then try to take a break and reply -once you are calm and without anger if you have to. - -Try to help other team members and cooperate if you can. - -The goal of software development is to create technical excellence, not for any -individual to be better and "win" against the others. Large software projects -are only possible and successful through teamwork. - -If someone struggles do not put them down. Give them a helping hand -instead and point them in the right direction. - -Finally, keep in mind the immortal words of Bill and Ted, -"Be excellent to each other." - @anchor{Submitting patches} @chapter Submitting patches diff --git a/doc/mailing-list-faq.texi b/doc/mailing-list-faq.texi index 534ef3f802..b2028eeee1 100644 --- a/doc/mailing-list-faq.texi +++ b/doc/mailing-list-faq.texi @@ -344,7 +344,7 @@ recommended. Avoid sending the same message to multiple mailing lists. @item -Please follow our @url{https://ffmpeg.org/developer.html#Code-of-conduct, Code of Conduct}. +Please follow our @url{https://ffmpeg.org/community.html#Code-of-conduct, Code of Conduct}. @end itemize @chapter Help