Rationale

The EPBSD project was founded to alleviate several perceived problems with the incumbent OpenBSD development methodology. EPBSD aims to extend and enhance the existing OpenBSD development effort with new methods, and also to make contributing more accessible to newcomers.

Solution #1 - Version Control

The git version control system has become more popular and ubiquitous over recent years, and has as a result been maintained and updated to a greater degree than it's predecessors, such as CVS, which OpenBSD still uses. While the OpenBSD development effort has a great deal of momentum and expertise built around CVS, we believe that leveraging git for our porting efforts will offer a number of quantitative and qualitative benefits:

Importantly, as a new generation of developers and enthusiasts enter into the OpenBSD universe, familiarity with git is nearly a given for these new community members, while CVS experience is rare. This lowers the barrier of entry with respect to the tooling knowledge required.

Solution #2 - Faster Iteration

The main OpenBSD ports tree utilizes a conservative polity when updating ports - updates must not break any of their Dependant ports. For some ports, this can be dozens or hundreds of further ports which must be tested. This offers a considerable hurdle for making updates available to users, and can make it more difficult to iterate on new ports.

EPBSD solves this by adopting a more lenient attitude towards updating ports; as long as the port builds and appears to operate correctly (such as passing it's regression tests), the update will be accepted until and unless it is shown to cause regressions in other packages.

While this does present some modicum of risk to the end-users of EPBSD, it can significantly reduce the time required to ship updated versions of ports. For many, this is a worthwhile tradeoff.

Solution #3 - Greater Transparency

One downside to contributing OpenBSD ports via the ports@ mailing list is the lack of transparency - submitted ports can sit in limbo for a long period of time before being merged. EPBSD aims to make it easier for porters to see the status of the ports they submit by leveraging GitLab's merge requests, tags, and discussion related features. This also reduces turn-around time, as reviewers can directly accept a merge request, rather than needing to wait on a developer with commit access to the ports CVS tree.