Remove bootstrap phrase from GOVERNANCE file
[dbsrgits/DBIx-Class.git] / GOVERNANCE
1 DBIx::Class Core Team and Voting System
2
3 Non normative section:
4
5 DBIx::Class originally operated under a BDFL system, but one where it was
6 expected that an informal core team would be maintained, and that where
7 consensus could not be pre-assumed, the core team and/or the user base
8 would be consulted publically such that measured decisions could be made.
9
10 This document is intended to formalise a form of this system, while still
11 providing room for the system to adapt later as required.
12
13 It is intended that this system provides confidence to the user base that
14 decisions will be made in the open and that their wishes will be taken into
15 account.
16
17 It is also intended that this system allows business as usual to happen
18 without unnecessary red tape.
19
20 It is not intended that this system becomes the primary decision making
21 process in and of itself; instead, it is intended that this system is used
22 to ratify consensus as formed by discussion, and only sparingly as a tie
23 breaking system when consensus cannot be reached.
24
25 Normative section:
26
27 Terms: VM - Voting Member - part of the benevolent dictatorship
28        LS - List Subscriber - a subscriber to the mailing list
29        LAV - List Aggregate Vote - the aggregate vote of the non-VM LSes
30
31 Voting Members are:
32
33   Matt S Trout (mst) cpan:MSTROUT
34   Dagfinn Ilmari Mansaker (ilmari) cpan:ILMARI
35   Frew Schmidt (frew) cpan:FREW
36   Jess Robinson (castaway) cpan:JROBINSON
37
38 PAUSE release perms are to be held by:
39
40   Matt S Trout (mst) cpan:MSTROUT
41   Dagfinn Ilmari Mansaker (ilmari) cpan:ILMARI
42   Frew Schmidt (frew) cpan:FREW
43   Jess Robinson (castaway) cpan:JROBINSON
44
45 First come permissions are to be held by FREW.
46
47 (the above two lists may or may not be identical at any given time)
48
49 A resolution must be proposed and then successfully voted upon to:
50
51   - Make a PAUSE-indexed (i.e. non-dev) release of DBIx::Class
52   - Make changes to the master and blead branches of the repository
53   - Amend this document
54
55 A resolution that amends the 'PAUSE release perms' list is to be assumed to
56 also intend the permission within PAUSE itself to be updated accordingly.
57
58 Adding or removing entries from the list of situations requiring resolutions
59 is absolutely a valid topic for resolutions.
60
61 A resolution may be proposed for reasons including, but not limited to:
62
63   - Force/revert/block a branch merge
64   - Add/remove a commit bit
65   - Resolve a design discussion
66   - Anything you like, under the assumption frivolous proposals will be
67     voted down naturally anyway
68
69 Merges to topic branches and similar actions that do not have a resolution
70 attached may be made at the discretion of those with ability to do so, but
71 a developer unsure if the merge will be uncontroversial is expected to ping
72 the list first so a vote can be called if people believe it to be required.
73
74 Rules that restrict this "ask unless you're sure" trust-by-default position
75 are also absolutely a valid topic for resolutions.
76
77 Resolution proposal:
78
79 A resolution is proposed by starting a new thread entitled 'PROPOSAL: ...'
80
81 A resolution must be seconded before it is voted upon.
82
83 If a VM makes or seconds a proposal, they are required to abstain from
84 voting upon it.
85
86 If a non-VM LS makes or seconds a proposal, no such restriction applies.
87
88 Resolution voting:
89
90 Once a proposal is seconded, the initial proposer may start a new thread
91 entitled 'VOTE: ...' (voting does not automatically begin after seconding
92 in case other feedback leads the proposer to wish to alter and re-present
93 their proposal).
94
95 Each VM may cast one vote, either +1, -1 or abstain.
96
97 Each non-VM LS may post +1 or -1, and the aggregate of those form the LAV.
98
99 Voting closes after 72h from when the proposal was first posted.
100
101 A resolution passes if the VM total is at least +1 and the LAV is
102 non-negative, to avoid requiring the list members to expend time to vote on
103 business as usual while still providing them a veto.
104
105 Resolution forcing:
106
107 If a resolution gains a positive LAV, but is voted down by the VMs, a force
108 vote may be proposed. This requires two list members who did not propose or
109 second the initial resolution to propose and second the force vote.
110
111 A force vote also lasts 72h, and is LAV-only. If it receives at least 25%
112 more +1s than -1s, the resolution passes no matter the VM vote.
113
114 This mechanism is not intended to be needed on a regular basis, but exists
115 to permit the list to forcibly recall a VM if they believe it to be necessary.
116
117 Once a resolution has passed, the resolution will be carried out by those with
118 the power to do so.  It will not be reverted without a new resolution
119 amending or reversing the decision of the previous once.
120
121 Passed resolutions will be recorded in a RESOLUTIONS file maintained next
122 to this document.