The purpose of an OpenMBEE Enhancement Proposal (OEP) is to manage the process of introducing any major change to OpenMBEE. This is required in order to balance the need to support new features, use cases, and system engineering requirements surrounding product direction.
This document walks you through the six stages of the OEP lifecycle.
What is considered a major change that needs an OEP?
Any of the following should be considered a major change:
Any major new feature, subsystem, or piece of functionality
Any change that impacts the public interfaces of the project
What are the "public interfaces" of the project? All of the following are examples of public interfaces that people build around:
Major (possible backwards incompatible breaking) changes to MMS REST Endpoints
A brand new authentication mechanism
Major changes to the core MMS data model
Fundamental changes to OpenMBEE clients e.g., View Editor layout/aesthetics, Cameo comparability/interoperability, etc.
Entire OpenMBEE website redesign
Proposal lifecycle
Prerequisites
Join the OpenMBEE Slack Channel
Join the OpenMBEE Google Group
If you have trouble accessing any of the above, contact openmbee [at] gmail [dot] com
Step 1 - Discuss
Most proposals start with an idea. If you have an idea of how OpenMBEE could improve, we encourage you to send an email to openmbee [at] googlegroups [dot] com with a subject starting with [OEP DISCUSS]. This email thread will allow you to gather early feedback. We encourage you to start a Draft document on this wiki or share a Google Document with the mailing list detailing your proposal. Use the draft OEP template below to provide details on your proposal.
Step 2 - Draft
Anyone is welcome to propose a new improvement to OpenMBEE. You will need to request edit access to the Confluence page in order to create your OEP document. You can do so by sending an email with details to openmbee [at] gmail [dot] com and request permission.
For an example of a well documented proposal, see https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-44+Airflow+Internal+API
Step 3 - Review
Once you or someone else feels like there’s a rough consensus on the idea and there’s no strong opposition, you can move your proposal to the review phase. For this you will send a new email to openmbee [at] googlegroups [dot] com with the subject starting with [OEP REVIEW REQUEST]. In your [OEP REVIEW REQUEST] email please include links to
the original [OEP DISCUSS] Google Group thread, and
the Draft OEP wiki page you created above
The review period has to last at least 72 hours and it’s a good practice to extend this time if most of this period is a weekend. Whole community is encouraged to give thumbs up or thumbs down. Any review requires at least 3 thumbs up to be recognized as passed. In addition, if there are more thumbs down (than thumbs up) then the OEP author(s) will move the OEP Draft back to the Discuss phase in order to address changes.
If you want to introduce significant changes to your proposal after it has been accepted you can do so following the same procedure.
Step 4 - Accepted
🥳 Congratulations! 🥳
Your proposal has been accepted. Next up is breaking down tasks. You should break down tasks on one or more of the OpenMBEE repository issue trackers. You are strongly advised to group the tasks together in a Github Project if it consists of multiple steps and you want to be able to track progress for its implementation or share the progress with others. Once issues are created, it helps if you can tag them with the relevant OEP-X label for your OEP. If you need help with this then you can contact an existing OpenMBEE developer.
Now you can start contributing and - more importantly - you can encourage others to contribute to your OEP. You can learn how to contribute and communicate by reading the Contributing guide in the OpenMBEE GitHub Organization. Use your imagination and various communication channels for ways to encourage people if you do not already have contributors following your idea. It is advisable that several people work on the OEP so that the knowledge is shared.
Step 5 - Completed
You should move your OEP to complete after you consider the main bulk of work has been merged to the repository. It is okay to leave open issues for minor follow up tasks like adding additional capabilities or similar.
Step 6 - Abandoned
An OEP may be moved to abandoned if
the original proposer(s) decide to abandon it, or
there is no intention of developing it further for no more than 3 months.
Either of these can happen if the proposer(s) decide to refactor one OEP into a new OEP i.e., if there is a proposal that supersedes the original OEP.
Acknowledgements/Credits
This guide is adapted from the https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals created by the Apache Airflow community. Kudos!
OEP Maintenance
This documents relevance, utility and maintenance is a responsibility shared by all OpenMBEE community members. If you see something wrong, or you wish to propose changes, then please do so by getting in touch with the community.