Hi

Am 2025-09-04 20:17, schrieb Rob Landers:
Specifically “Other RFCs” (i.e. RFCs that do not touch the language,
which is not actually defined) “might” (this probably should read “may”) use a “smaller timeframe” that “should be at least a week” (i.e. it may
also be 2 hours). In other words, that policy is completely useless to
resolve any cases of disagreement, since it allows basically anything.

So, someone could create an RFC, saying "Jo ElePHant, III" is "President of PHP", set the voting period for exactly one minute, vote on it themselves, and close the vote, and whomever "Jo ElePHant, III" is, would have to be the President of PHP before the announcement email is even delivered to the entire list?

That is my understanding of the current policy, yes.

Somehow I doubt this would actually fly, despite "maybe, technically", being within the rules.

Sure. It would also possible to follow-up with a new “proper” RFC that reverses the previous decision. You were using an extreme example, but we a case in PHP 8.5 where the discussion period arguably was cut short: https://externals.io/message/128040#128272

I think the more you make a policy pedantic, the easier it is to play pedantic games. I had a couple of hours to sit on the train and think through some loopholes in the current proposed text:

1. The 336 hours is oddly specifc. It also begs the question: "what about leap seconds?" Could someone cause an entire revote simply by pointing out that the vote closed one second earlier than 336 hours because one of those hours had one less second? Does it matter? Perhaps saying "~336 hours" to drive the intent home without saying "exactly" that amount of time?

An hour is well-defined to be 3600 seconds. Leap seconds are a concept of “date and time”, but do not affect how much time has actually passed. After 2035 there will be no more leap seconds and given the slowing of Earth's rotation it seems unlikely to have any more leap second. In any case it is easy for an RFC author to completely bypass this question by treating the specified lengths of time as minimums, which is likely to implicitly happen anyways.

2. Just about any change could be construed as an "obvious typo" or "editorializing" A stronger definition could be "any change that clarifies but does not alter the meaning (e.g. "frrm" -> "from" but not "form" -> "from"), while changes that affect APIs, semantics, or options are never typos". Even then, someone could just create a stub and simply argue that all their edits are clarifying the stub... so this one will be tricky.

I believe this is sufficiently handled by the “when in doubt treat it as a more significant change” and the list of examples of what constitutes a major or minor change. The proposed policy specifically says that “clarification” is a minor change and that anything that would lead to a change in implementation is a major change.

3. Forbidding starting/ending on Dec 17->Jan 10 will probably backfire. It would behoove someone to schedule a voting start on Dec 16, so that it would end on Jan 11. Albeit, that is longer than 2 weeks, but it's shorter than waiting until Jan 11 to start a vote... arguably, this is probably worse than what the rule intends to solve. If the concern is holiday churn (heh, uninitentional rhyming), it might be better to forbid *starting* during that period, but let existing votes play out as normal (and maybe picking a sooner date).

Starting on December 16 and ending on January 11 would be fine for me. I've intentionally added some buffer space so that anyone interested in participating in the RFC process should find the time to cast their vote after they followed the RFC discussion and thus had the opportunity to make up their mind. Besides “New Year’s” and “Christmas”, I've specifically also accounted for Eastern Christianity Christmas (relevant for Russia) which is on January 7th.

4. The official start and threading is ambiguous. For example, I can add a coauthor on my RFC. Then "announce" the RFC by both authors but only have discussions in the later thread. I could move to a vote after two weeks, no matter what is happening in another "unofficial" thread.

I'm afraid I don't understand what you are trying to say here.

5. It says that you can't add or change a voting widget, but you can remove them freely without triggering a vote reset.

Removing is the most extreme form of changing one, but I can certainly spell that out explicitly.

6. It might be a good idea to add "all durations are measured in UTC calendar time, ignoring leap seconds". One could argue that announcing the vote at 11:59:59 Monday and starting the vote at 00:00:01 Wednesday would satisfy the 2 day/48 hour rule by arguing time zone shenanigans.

The hour-based definition is already independent of any timezones.

7. If a vote ends at 15:09, does it actually ends at 15:09:00, or will votes be accepted until 15:09:59.99?

I'm happy to clarify this in the policy. Similarly to deadlines in the real world this would be understood “until, but not including”, i.e. as long as the clock doesn't show 15:09.

8. vote extension hack: can someone change a vote end-date after the vote has already started? Thus if the results are unfavorible, can I simply just extend the voting period until I get the results I want, literally increasing it by 24 hours every day until it passes by simply stating "I am still on holiday"?

No. The end date must clearly be specified in the email announcing the vote. You are free to select a longer interval right away, but once the vote started, the decision is locked in. I can spell it out more explicitly that the RFC (including the voting rules) may no longer change once the vote started.

The new rules could allow some creative people to bypass the cooldown period altogether: 1. Someone could create an empty RFC, and announce it. Then "clarify" and "editorialize" the RFC (easier to do with a coauthor to back you up) minutes before the two weeks elapse, then call a vote, with most people having long dismissed the empty RFC as junk.

I believe I answered that with bullet point (2) above.

2. You could simply create a v2 of an RFC minutes/days after the failed vote and go straight to a vote; claiming the cooldown started from the original RFC.

I don't see how that would be possible even with an intentionally “malicious” reading of the policy. The policy specifies that the discussion period of an RFC starts with the official RFC discussion thread matching the title of the RFC and linking the Wiki page. Thus any existing discussion clearly is not applicable to a newly created RFC.

Best regards
Tim Düsterhus

Reply via email to