diff mbox series

[FFmpeg-devel] Document community process

Message ID 20201005204801.89593-1-jb@videolan.org
State Superseded
Headers show
Series [FFmpeg-devel] Document community process
Related show

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Jean-Baptiste Kempf Oct. 5, 2020, 8:48 p.m. UTC
General Assembly + Main Elections
---
 doc/dev_community/community.md | 60 ++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
 create mode 100644 doc/dev_community/community.md

Comments

Chris Miceli Oct. 6, 2020, 3:33 a.m. UTC | #1
Hi there,

The vote.ffmpeg.org URL appears to be down, happy to help however I can but
just wanted to let you know.

Some recommendations for changes might be:
 - "arbitrate" instead of "arbitrage"
 - potentially rename Technical Committee to Technical Conflicts Committee
to avoid the confusion you documented around it's position describing
technical direction
 - "make decisions" rather than "take decisions"
 - "re-elected" rather than "reelected"
 - "Decisions are made" rather than "Decisions are taken"
 - "They will consider the merits of all the positions, judge them and take
a decision." might be phrased as "Decisions will be made on meritorious
grounds". I would also consider stating whether those merits will be
available for review by the public (if they are in the form of a mailing
list or similar).

Thank you for this work, I think that it will help this ffmpeg community
thrive.

*Chris Miceli*




On Tue, Oct 6, 2020 at 8:12 AM Jean-Baptiste Kempf <jb@videolan.org> wrote:

> General Assembly + Main Elections
> ---
>  doc/dev_community/community.md | 60 ++++++++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>  create mode 100644 doc/dev_community/community.md
>
> diff --git a/doc/dev_community/community.md
> b/doc/dev_community/community.md
> new file mode 100644
> index 0000000000..4e17ce4d4f
> --- /dev/null
> +++ b/doc/dev_community/community.md
> @@ -0,0 +1,60 @@
> +# 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.
> +
> +## 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 arbitrage and take decisions when
> technical conflicts occur in the project. They will consider the merits of
> all the positions, judge them and take 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 taken 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 reelected 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.
> +
> +## Community committee
> +
> +The Community Committee (CC) is here to arbitrage and take 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 taken 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 reelected 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.
> +
> --
> 2.28.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Nicolas George Oct. 6, 2020, 2:50 p.m. UTC | #2
Jean-Baptiste Kempf (12020-10-05):
> General Assembly + Main Elections
> ---
>  doc/dev_community/community.md | 60 ++++++++++++++++++++++++++++++++++
>  1 file changed, 60 insertions(+)
>  create mode 100644 doc/dev_community/community.md
> 
> diff --git a/doc/dev_community/community.md b/doc/dev_community/community.md
> new file mode 100644
> index 0000000000..4e17ce4d4f
> --- /dev/null
> +++ b/doc/dev_community/community.md
> @@ -0,0 +1,60 @@
> +# 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.

Global nit: I think it would be more readable without a Markdown engine
if it were pre-wrapped.

> +
> +## 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.

Should the vote for non-commit contributors expire after 36 months too?

> +
> +Additional members are added to the General Assembly through a vote after proposal by a member of the General Assembly.
> +
> +## 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 arbitrage and take decisions when technical conflicts occur in the project. They will consider the merits of all the positions, judge them and take 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 taken 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 reelected 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.
> +
> +## Community committee
> +
> +The Community Committee (CC) is here to arbitrage and take 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 taken 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 reelected 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.
> +

This looks good to me on the whole, not repeating comments by Chris.

Two extra comments:

The current list of members of both committees should probably be
somewhere on the web page.

There is a need for a mail address to contact committees.

Regards,
Jean-Baptiste Kempf Oct. 12, 2020, 7:37 a.m. UTC | #3
Hello,

On Tue, 6 Oct 2020, at 05:33, Chris Miceli wrote:
>  - potentially rename Technical Committee to Technical Conflicts Committee to avoid the confusion you documented around it's position describing technical direction

This is not the usage in other communities.

>  - "They will consider the merits of all the positions, judge them and take a decision." might be phrased as "Decisions will be made on meritorious grounds". I would also consider stating whether those merits will be available for review by the public (if they are in the form of a mailing list or similar).

This makes it harder to read, especially for non-native readers.
Also, the way those decisions are taken is described in another document.

The rest was taken in account.

--
Jean-Baptiste Kempf -  President
+33 672 704 734
Jean-Baptiste Kempf Oct. 12, 2020, 7:38 a.m. UTC | #4
On Tue, 6 Oct 2020, at 16:50, Nicolas George wrote:
> Global nit: I think it would be more readable without a Markdown engine
> if it were pre-wrapped.

Done.

> > +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.
> 
> Should the vote for non-commit contributors expire after 36 months too?

Done.


> Two extra comments:
> 
> The current list of members of both committees should probably be
> somewhere on the web page.

Sure, but that's the last thing to do.

> There is a need for a mail address to contact committees.

Outside of my competence, for now.
Michael Niedermayer Oct. 12, 2020, 5:25 p.m. UTC | #5
On Tue, Oct 06, 2020 at 04:50:19PM +0200, Nicolas George wrote:
> Jean-Baptiste Kempf (12020-10-05):
> > General Assembly + Main Elections
> > ---
> >  doc/dev_community/community.md | 60 ++++++++++++++++++++++++++++++++++
> >  1 file changed, 60 insertions(+)
> >  create mode 100644 doc/dev_community/community.md
> > 
> > diff --git a/doc/dev_community/community.md b/doc/dev_community/community.md
> > new file mode 100644
> > index 0000000000..4e17ce4d4f
> > --- /dev/null
> > +++ b/doc/dev_community/community.md
> > @@ -0,0 +1,60 @@
> > +# 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.
> 
> Global nit: I think it would be more readable without a Markdown engine
> if it were pre-wrapped.
> 
> > +
> > +## 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.
> 
> Should the vote for non-commit contributors expire after 36 months too?
> 
> > +
> > +Additional members are added to the General Assembly through a vote after proposal by a member of the General Assembly.
> > +
> > +## 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 arbitrage and take decisions when technical conflicts occur in the project. They will consider the merits of all the positions, judge them and take 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 taken 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 reelected 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.
> > +
> > +## Community committee
> > +
> > +The Community Committee (CC) is here to arbitrage and take 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 taken 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 reelected 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.
> > +
> 
> This looks good to me on the whole, not repeating comments by Chris.
> 
> Two extra comments:
> 
> The current list of members of both committees should probably be
> somewhere on the web page.
> 

> There is a need for a mail address to contact committees.

I can create them, thats easy.

Has someone confirmed the vote results ?

In "0618 16:45 Jean-Baptiste K (2,6K) [FFmpeg-devel] [VOTE] General Assembly extra members"
it was announced that 
"
 The vote is anonymous. However, for transparency, you can add a self-defined identifier to your ballot (numbers only). With that you will be able to identify your own ballot in the list of ballots received after the vote has ended
 to make sure your ballot has been counted. You will also be able to download all ballots and process the ballots with your copy of the voting software to make sure the results have not been corrupted.

 The ballots are collected using the CIVS software from Cornell University. The results of this vote are computed according to the Schulze-STV method implemented in the Python Vote Core. We had to patch both software to adapt to the requirements of the FFmpeg community
"

There are IIRC 3 votes, first the extra members then the TC and the CC.

Thanks

[...]
Jean-Baptiste Kempf Oct. 12, 2020, 7:30 p.m. UTC | #6
On Mon, 12 Oct 2020, at 19:25, Michael Niedermayer wrote:
> On Tue, Oct 06, 2020 at 04:50:19PM +0200, Nicolas George wrote:
> > Jean-Baptiste Kempf (12020-10-05):
> > > General Assembly + Main Elections
> > > ---
> > >  doc/dev_community/community.md | 60 ++++++++++++++++++++++++++++++++++
> > >  1 file changed, 60 insertions(+)
> > >  create mode 100644 doc/dev_community/community.md
> > > 
> > > diff --git a/doc/dev_community/community.md b/doc/dev_community/community.md
> > > new file mode 100644
> > > index 0000000000..4e17ce4d4f
> > > --- /dev/null
> > > +++ b/doc/dev_community/community.md
> > > @@ -0,0 +1,60 @@
> > > +# 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.
> > 
> > Global nit: I think it would be more readable without a Markdown engine
> > if it were pre-wrapped.
> > 
> > > +
> > > +## 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.
> > 
> > Should the vote for non-commit contributors expire after 36 months too?
> > 
> > > +
> > > +Additional members are added to the General Assembly through a vote after proposal by a member of the General Assembly.
> > > +
> > > +## 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 arbitrage and take decisions when technical conflicts occur in the project. They will consider the merits of all the positions, judge them and take 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 taken 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 reelected 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.
> > > +
> > > +## Community committee
> > > +
> > > +The Community Committee (CC) is here to arbitrage and take 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 taken 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 reelected 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.
> > > +
> > 
> > This looks good to me on the whole, not repeating comments by Chris.
> > 
> > Two extra comments:
> > 
> > The current list of members of both committees should probably be
> > somewhere on the web page.
> > 
> 
> > There is a need for a mail address to contact committees.
> 
> I can create them, thats easy.

cc@ and tc@ then.

> Has someone confirmed the vote results ?

I think we did, yes.

--
Jean-Baptiste Kempf -  President
+33 672 704 734
diff mbox series

Patch

diff --git a/doc/dev_community/community.md b/doc/dev_community/community.md
new file mode 100644
index 0000000000..4e17ce4d4f
--- /dev/null
+++ b/doc/dev_community/community.md
@@ -0,0 +1,60 @@ 
+# 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.
+
+## 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 arbitrage and take decisions when technical conflicts occur in the project. They will consider the merits of all the positions, judge them and take 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 taken 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 reelected 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.
+
+## Community committee
+
+The Community Committee (CC) is here to arbitrage and take 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 taken 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 reelected 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.
+