OFEP9: OpenFlexure Governance Structure
| OFEP | 9 |
|---|---|
| Author | Richard Bowman and Julian Stirling |
| Created | 27-January-2025 |
| Status | Approved |
| Type of OFEP | Governance |
| Approved date | 29-April-2026 |
| Requires implementation | Yes |
| Implemented date | N/A |
| Updated dates (post-approval) | N/A |
1. Introduction
The purpose of this OFEP is to put the OpenFlexure Project on a more stable long-term footing by clearly defining the core development team and establishing a steering committee. The core development team will continue to develop the project with the steering committee providing oversight of high-level decisions relating to both the project as a whole and to ongoing development priorities.
Prior to this OFEP the governance of the project has been somewhat ad-hoc, strongly correlated with Richard Bowman's research group. Likewise, the priorities of the project have been mostly driven by the priorities set by grant funding.
Grant funding will necessarily set the direction of individual contributions. However, the project also requires some overall top-down oversight. Establishing a steering committee will give further confidence to users and contributors that this is a long-term open project, suitable for using as a basis for new projects and unlikely to change in ways that adversely affect other projects using it.
2. Core Development Team
2.1. Role
The core development team are the group who primarily develop the OpenFlexure Microscope and other associated software and hardware projects. This group manage the GitLab repository, the forum, the website, build server, and other digital associated project infrastructure.
The key roles of the core development team involve not only project development, but also reviewing proposed code changes, prioritising development effort, and ensuring standards are maintained.
The Core Development Team help oversee the approval of OFEPs in collaboration with the steering committee. As many OFEPs cover technical development topics rather than governance, these OFEPs will largely be driven by the core development team.
In performing the roles of the core development team, the team will need to meet (virtually or in person) and to communicate asynchronously. This OFEP doesn't set out the cadence nor methods of this communication, as this will naturally be set by development activities and priorities. The core development team may also conduct more formal minuted design review meetings as and when this is deemed appropriate.
2.2 Membership
The current membership of the core development team is:
- Richard Bowman
- Joe Knapper
- Julian Stirling
- William Wadsworth
- Beth Probert
The requirement for adding a member of the core development team is that the new member must have shown significant and sustained contributions to the project over an extended time period. Contributions are not limited to code changes, but also participation in issue threads, participation in code review and merge requests, providing domain expertise, or helping to maintain or administer other project assets such as the website and forum.
If a community member wishes to join the core development team, they should open a merge request to modify this OFEP. This merge request will be dealt with as any other proposed modification to an OFEP (See OFEP0).
Membership of the core development team does not expire. However, membership can be vacated voluntarily, for example if a member no longer is able to contribute regularly to development. Membership can also be removed for breaching the project's code of conduct or due to prolonged and unexplained absence or inactivity. This process is also handled as a merge request to this OFEP.
3. Steering Committee
3.1. Role
The role of the steering committee is to approve OFEPs (in collaboration with the core development team) and to provide guidance and oversight to the project where they deem appropriate.
The steering committee will be invited to all meetings to approve OFEPs. These meetings are also attended by the core development team. There is no expectation that the steering committee members attend all of these meetings as many OFEPs are on specific technical development topics which may fall outside their expertise.
The committee will meet at minimum yearly (the Annual Meeting of the Steering Committee) to vote on its membership. Members of the committee can also call meetings of the committee to discuss any issues they feel are relevant, or to exercise their powers as described in the following section.
3.2. Powers
The committee's key role is to provide high-level advice and feedback on the project. This can be done in any way the committee feels is appropriate. In addition to this key role the committee have the following powers:
-
To vote on OFEPs as defined already in OFEP0. Noting that this OFEP and other Governance OFEPs require a two-thirds majority of the steering committee.
-
To resolve any deadlocks in the current collaborative OFEP approvals process.
-
To resolve any matters related to the code of conduct that cannot be resolved by the core development team (or the OFEP process in the case of removing a member of the core development team). The steering committee has the power to call a vote to remove a member of the committee if they have breached the code of conduct.
-
Any member has the power to resign from the committee by giving notice in writing to the other members of the committee.
3.3 Membership
The Steering Committee will comprise up to 10 members:
- Up to 5 members of the core development team (Development Members).
- 5 members of the wider community (Community Members).
Each year prior to the Annual Meeting of the Steering Committee, the core development team will put forward up to five members to serve on the steering committee for the next year. If the five members cannot be agreed by consensus, candidates will be sought for nomination and selected by each member of the core development team voting for five of the nominated candidates. Drawing of lots will be used if required to break ties.
The initial members of the steering committee are:
- Richard Bowman (Development Member)
- Joe Knapper (Development Member)
- Julian Stirling (Development Member)
- William Wadsworth (Development Member)
- Beth Probert (Development Member)
- Daniel Gustavo Rosen (Community Member)
- Andre Maia Chagas (Community Member)
- Daniel Memeu Maitethia (Community Member)
- Valerian Linus Sanga (Community Member)
- Joanne Long (Community Member)
At least 2 weeks prior to the Annual Meeting of the Steering Committee a vacancy will be announced on community channels such as the forum. Any member of the community can put themselves forward to for election to the committee as a Community Member. Members of the Core Development Team may not put themselves forward for election as Community Members.
At the beginning of the Annual Meeting of the Steering Committee, the longest standing Community Member of the committee will retire. If multiple Community Members were last appointed on the same day the member to retire (unless otherwise agreed among themselves) shall be determined by lot. The retiring member may stand immediately for reappointment.
The remaining members of the committee will vote to elect a Community Member to each vacancy. In the event of a tie, the candidate who has served the least time on the committee will be elected. If both candates have served the same length of time, ties will be broken by drawing lots.
There are no term limits for membership of the committee.
After each vote, membership of the Steering Committee will be recorded in the minutes.