Dear portmgr,

In light of today's ports removal I feel like we need to improve the
process around broken ports a bit.  Diizzy's actions reflect a common
failure mode we see in the tree:

 - maintainer falls absent
 - port falls into disrepair and breaks
 - nobody is alerted of the breakage and those who notice believe that
   there is a maintainer and do not take action
 - eventually someone notices that the port has been broken for *very
   long* and removes it outright (permitted within policy)

I propose the following policy changes to improve the situation:

 - Committers are encouraged to mark ports that do not build anywhere
   as BROKEN if they believe the breakage reason to be of a kind that
   will not resolve itself shortly (e.g. temporary mirror outage).  If
   the port is only broken in some configurations (some OSVERSION, some
   ARCH), the appropriate BROKEN_${ARCH} etc. should be used.  When in
   doubt, committers can check the pkg repos or freshports for binary
   package presence to ascertain whether the port builds in any
   configuration

 - A new variable BROKEN_SINCE= YYYY-mm-dd is added, which should be
   set to when the breakge was first noticed when the port is marked as
   BROKEN.  It should not be set for BROKEN_*, only for complete breakage.
   This is when *you* the committer noticed that the port was broken.
 
 - Before marking the port as BROKEN, check if there are any patches around
   that could fix it.  Prefer applying such patches under build fix blanket
   approval over marking the port as BROKEN.  This is not a mandatory step,
   but you are strongly encouraged to follow it.

 - Make sure to commit BROKEN and BROKEN_SINCE without delay once you
   notice the breakage.

 - Three months from BROKEN_SINCE, maintainership reverts to
   [email protected] except in the case of group maintainerships.
   At the same time, an EXPIRATION_DATE is added three months from
   that date.  This process should be automated by means of a cron job.

 - Broken ports may only be removed without going through this process
   or without maintainer approval (this may be through maintainer timeout)
   if they are clearly beyond rescue.  This includes cases like

    * The port is only available for an architecture that is no longer
      supported.

    * The port requires an OS feature that is no longer present and that
      cannot be supplied as a third-party dependency.

    * The port is not legally redistributable.

    * Upstream has requested we do not ship the port.

    * A mandatory dependency of the port has been removed and the port
      cannot be patched to no longer require it.

    * The port is unfetchable and it will not be possible to make it fetchable.
      Please follow the BROKEN process for unfetchable ports unless you
      are absolutely sure that no new upstream / hoster will ever be found.

 - Committers and third-party contributors are encouraged to step up and
   fix BROKEN ports under the established build fix policy without explicit
   maintainer approval.  If they find the maintainer to be absent, they are
   encouraged to claim maintainership or revert it to [email protected] under
   the standard policies for maintainer timeout and absentee maintainers.

 - A port that is deleted and re-added must follow the same rules as any
   other new port.  In particular, there must be a maintainer who has
   explicitly agreed to maintain the port.  This can be a group
   maintainership.  In case of an absentee maintainer, this can only be
   the old maintainer if he was successfully contacted or reached out on
   his own, agrees to be maintainer and is able to convince the committer
   to re-add the port that he will follow through with maintaining.  It is
   at the committers discretion to ascertain this commitment.  When in
   doubt, a different maintainer must be found

Please discuss.  If this proposal is well received, I would like to submit
these ideas for voting in about two weeks.

Yours,
Robert Clausecker

-- 
()  ascii ribbon campaign - for an encoding-agnostic world
/\  - against html email  - against proprietary attachments

Reply via email to