[En-Nut-Discussion] Nut/OS RFAs

Harald Kipp harald.kipp at egnite.de
Tue Oct 16 19:27:41 CEST 2012


Hi all,

Let me introduce RFA, Request For Acceptance. It's a specification
similar to an RFC, Request for Comment. Developers may use it as an
instruction book for implementing new features. If you have a new
feature in mind or think that something could be done better, post your
RFA to this list and mark it clearly as such in the subject line.

 RFA: Nut/OS GPIO API

In opposite to an RFC, you cannot comment on an RFA, you can only accept
or reject it. You accept it by simply replying to the RFA with a
reference to the RFA post, followed by the word "Accepted". Here is an
example:

  On 30.1.2014 12:00, Paul Pluster wrote:
  Accepted

The only possible way to reject an RFA is by replying with an
alternative RFA. This must at least as complete as the original RFA you
are rejecting. If you are just rejecting a part, then create a full copy
of the original RFA and post it with your intended modifications. You
may even reject your own RFA by replying with a new version. You must
not reply to accept your own RFA.

The decision about which RFA is finally accepted, is mostly automatic.

If, after 5 days, no one replied or all replies accepted the RFA, then
the RFA is in effect. If the RFA is rejected, the new deadline is set to
5 days after the last reject.

If an author reject its own RFA with a new version, then the rejected
RFA and all accepting replies are automatically invalid. If an author of
an RFA accepts another RFA, his own RFA remains valid. Only his vote is
moved, see below.

If several valid RFAs exist, then all votes for acceptance are added as
follows.

Any subscriber to this list does have 1 vote for 1 RFA only. He may,
however, change his mind. If he replies with a new accept, then all
previous votes will be invalid.

Votes from authors of initial RFAs do have a weight of 11 votes. As a
result, posting a first RFA includes implicitly 11 votes. Votes from
authors of rejecting RFAs have a weight of 10.

Here is an example:

Foo posts his initial RFA_1 on the 2nd of Oct. 10pm. RFA_1 has 11 votes
from Foo, just because he posted it. On 4th of Oct. 9am Bar posts a
reject as RFA_2. This has 10 votes from Bar now. If nothing else
happens, RFA_1 is in effect on the 9th of Oct. 9am. 5 days after the
release of RFA_2.

If Foo accepts RFA_2, it will receive his 11 votes and RFA_1 will lose them.

I think the remaining is obvious. Just one case is left: Stalemate. If
no RFA gains more votes than all others, then the deadline itself
becomes invalid. Now a single vote makes the decision immediately.
However, another rejectign RFA will re-activate the deadline for 5 days
again.

Quite complicated, but typical software engineering stuff. ;-)

Regards,

Harald





More information about the En-Nut-Discussion mailing list