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:
- cloning over ssh, http, or it's own protocol
- easier to collaborate in a distributed, asynchronous fashion
- superior support for branching
- better performance for large repositories
- more advanced tooling, such as web interfaces, rich, native GUI clients, and more
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.