[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#210879: Questions about Quorum / less short



Same thing, but longer comments.  "Abandon all hope..."

On 2 Nov 2003, at 13:10, Manoj Srivastava wrote:

> 	Given the Debian keyrings (available from keyring.debian.org),
>  you can try running dvt-quorum from  the package devotee  (the arch
>  repository for that is at
>  http://arch.debian.org/arch/private/srivasta/archive-2003/)

To do the key count, I DL'd then unpacked this file:

http://arch.debian.org/arch/private/srivasta/archive-2003/devotee/devotee--devel/devotee--devel--0.1/base-0/devotee--devel--0.1--base-0.src.tar.gz

...ran 'dvt-quorum.pl', and got:

	#perl dvt-quorum.pl
	Total = 0

...like you said, there needs to a keyring somewhere; unfortunatly I haven't used gpg enough to know where. Based on the prompt at 'http://keyring.debian.org' I tried runing:

	#gpg --keyserver keyring.debian.org --recv-keys

...but that did nothing. 'gpg' has a lengthy man page, which right now is too much for me.

That 'keyring.debian.org' page also links to this search form:

	debian.org Developers LDAP Search
	http://db.debian.org

...which when filled out the most general way, (all '*'s), returns:

	Number of entries matched: 683

But '683' seems low, since my previous rough search & count of '/var/lib/dpkg/available' returned over 1000.

> > Is the current number of developers likely to fall below 100?
>
> 	Highly unlikely.

If it's probably never going to fall below 100, then the text might be expunged of algebra like so**:

Before:
 99        and sponsored by at least K other Developers, or if proposed by
105 2. If such a resolution is sponsored by at least 2K Developers, 111 Technical Committee, then only K Developers need to sponsor
 130        vote. There is a quorum of 3Q.
138 7. Q is half of the square root of the number of current Developers.
 139        K is Q or 5, whichever is the smaller. Q and K need not be
 140        integers and are not rounded.

After:
99 and sponsored by at least five other Developers, or if proposed by 105 2. If such a resolution is sponsored by at least ten Developers, 111 Technical Committee, then only five Developers need to sponsor 130 vote. There is a quorum of half of three times the square root of the
            number of
 130a       developers, rounded up to the nearest whole number.

 138-40     (deleted, there'd be no need.)

(** a repeat from an earlier post of mine.)

Reasons for not simplifying it like that: smaller groups. In the event of a catastrophe, or if intrinsically smaller groups might like to adopt Debian's constitution without changes.

I wrote a program to print a condensed table of the various quorum permutations, from 1 to 1000 developers. The program's in 'bwbasic'; code and output are attached, both are small.

The output reveals:

1) If there's only TWO developers, the quorum size is THREE. An unexpected question, "what is the minimum personnel count of Debian?"

2) The minimum of "100" above can be reduced to "65".  Because:

	Square root of 65 is 8.062257748...   (constitution, line #138)
	Half of 8.062257748 is 4.031128874.   (constitution, line #139)
	Since we can't have fractional developers, and everybody agrees
	we round those up... 4.031128874 rounded up is 5.

So the "After:" revision above would still identical to the old text down to 65 Debian developers.

One approach to removing the algebra while keeping the content (for values below 65) would be to set a mininum Debian membership somewhere, let's say three. Looking at the data for low numbers:

Developers   sponsor       delay         quorum
 1            1             2             2
 2 - 4        1             2             3
 5 - 7        2             4             4
 8 - 11       2             4             5
 12 - 16      2             4             6
 17 - 21      3             6             7
 22 - 28      3             6             8
 29 - 36      3             6             9
 37 - 44      4             8             10
 45 - 53      4             8             11
 54 - 64      4             8             12
 65 - 75      5             10            13

If the minimum membership is '3', then the quorum formula is OK, so we can reduce the above table to:

Developers   sponsor       delay
 3 - 4        1             2
 5 - 16       2             4
 17 - 36      3             6
 37 - 64      4             8
 65 - ...     5             10

...rephrasing that in English means throwing in two clauses somewhere, for instance:

"...if there are fewer than sixty-five developers, the mininum number of votes to sponsor a proposal is four; if fewer than thirty-seven, three; if fewer than seventeen, two; if fewer than five, one."

"the number of votes needed to delay a proposal is twice that required to sponsor a proposal."
rem prints out a condensed table of Debian developer voting permutations
rem according to section 4.2 of /usr/share/doc/debian/constitution.txt, as of 11/3/03
rem 'sponser' is how many votes are needed to sponsor an ammendment, it doesn't include the originator's vote.
rem 'delay' is how many votes are needed to postpone a decision.
rem 'quorum' is how many voters are needed to decide.

oldSponsorDelayQuorum$ = "dummyvalue"
n = 1000
print "Developers", "sponsor", "delay", "quorum"
for dev = 1 to n
	q= sqr(dev)/2
	k= q
	if k > 5  then k = 5
	sponsor = roundup(k)
	delay = roundup(2*k)
	quorum = roundup(3*q)
	gosub summary
next dev

rem prepare the 'summary' subroutine for one last run...
oldSponsorDelayQuorum$ = "dummyvalue"
gosub summary

system


function roundup(x)
	if x <> int(x)  then x = int(x) + 1
	roundup = x
end function

summary:
	rem print a summary of what's new
 
        newSponsorDelayQuorum$ = str$(sponsor) + str$(delay) + str$(quorum)
	if oldSponsorDelayQuorum$ <> newSponsorDelayQuorum$  then  
		rem  don't print it the first run through.
		if dev > 1 then
			rem  does 'dev$' need a hyphen?
			if olddev < dev - 1  then 
				dev$ = str$(olddev) + " -" + str$(dev-1)
			else
				dev$ = str$(olddev)
			end if
			print dev$, oldsponsor, olddelay, oldquorum
		end if	
		rem remember the last unique values.
		olddev = dev
		oldsponsor = sponsor
		olddelay = delay
		oldquorum = quorum
		oldSponsorDelayQuorum$ = newSponsorDelayQuorum$
	end if			
return
Bywater BASIC Interpreter/Shell, version 2.20 patch level 2

Copyright (c) 1993, Ted A. Campbell

Copyright (c) 1995-1997, Jon B. Volkoff

 
Developers   sponsor       delay         quorum
 1            1             2             2
 2 - 4        1             2             3
 5 - 7        2             4             4
 8 - 11       2             4             5
 12 - 16      2             4             6
 17 - 21      3             6             7
 22 - 28      3             6             8
 29 - 36      3             6             9
 37 - 44      4             8             10
 45 - 53      4             8             11
 54 - 64      4             8             12
 65 - 75      5             10            13
 76 - 87      5             10            14
 88 - 100     5             10            15
 101 - 113    5             10            16
 114 - 128    5             10            17
 129 - 144    5             10            18
 145 - 160    5             10            19
 161 - 177    5             10            20
 178 - 196    5             10            21
 197 - 215    5             10            22
 216 - 235    5             10            23
 236 - 256    5             10            24
 257 - 277    5             10            25
 278 - 300    5             10            26
 301 - 324    5             10            27
 325 - 348    5             10            28
 349 - 373    5             10            29
 374 - 400    5             10            30
 401 - 427    5             10            31
 428 - 455    5             10            32
 456 - 484    5             10            33
 485 - 513    5             10            34
 514 - 544    5             10            35
 545 - 576    5             10            36
 577 - 608    5             10            37
 609 - 641    5             10            38
 642 - 676    5             10            39
 677 - 711    5             10            40
 712 - 747    5             10            41
 748 - 784    5             10            42
 785 - 821    5             10            43
 822 - 860    5             10            44
 861 - 900    5             10            45
 901 - 940    5             10            46
 941 - 981    5             10            47
 982 - 1000   5             10            48


Reply to: