Skip to content

Commit 80d207f

Browse files
authored
Merge pull request #184 from bemanproject/137-fill-in-missing-gap-in-beman-library-maturity-model---require-community-and-leads-approval-to-go-production-ready-states
first draft of production ready review process
2 parents 0ad71cb + 7f99610 commit 80d207f

File tree

1 file changed

+48
-1
lines changed

1 file changed

+48
-1
lines changed

docs/beman_library_maturity_model.md

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ These libraries may deviate from the Beman Standard due to incompleteness, lack
1616
1717
### Production ready. API may undergo changes.
1818

19-
These Beman-compliant libraries are production-ready, fully implementing the target paper with complete testing and documentation. Users should be aware that future API changes are possible and that standardization is not guaranteed.
19+
These Beman-compliant libraries are production-ready, fully implementing the target paper with complete testing and documentation. Users should be aware that future API changes are possible and that standardization is not guaranteed. See below for details on the requirements to transition to production-ready.
2020

2121
> These libraries are recommended for production usage.
2222
@@ -41,3 +41,50 @@ Transition examples:
4141
* They were [Production ready. API may undergo changes.](./beman_library_maturity_model.md#production-ready-api-may-undergo-changes) at some point, but are no longer developed or maintained, being rejected from the ISO C++ Standardization - `Early retirement`.
4242

4343
* They were [Under development and not yet ready for production use.](./beman_library_maturity_model.md#under-development-and-not-yet-ready-for-production-use) at some point and were abandoned - `Early retirement`.
44+
45+
46+
## Review Process for Transitioning a Library to “Production Ready”
47+
48+
For a Beman Project library from **Under Development** to **Production Ready** status a formal review needs to be completed.
49+
The intent is to ensure that every production-ready library meets the Beman standard for quality, completeness, and
50+
documentation, and that it has received sufficient community review and testing.
51+
52+
---
53+
54+
### Review Process Details
55+
56+
57+
1. **Review Logistics**
58+
Typically this is requested by the library author, but any community member that feels a library is ready can suggest
59+
a review. The review will be managed by one or more leads or an lead appointee/volunteer.
60+
61+
A post is made on [Discourse](https://discourse.bemanproject.org) announcing the start of a **two-week library review** period.
62+
The announcement should include:
63+
64+
* The released version of the library to review.
65+
* Link to a PR to review for review comments.
66+
- Note: The PR may not have much diff content but is the place for gathering feedback.
67+
* Any other guidance for the reviewers.
68+
69+
3. **Review Criteria**
70+
To be eligible for *Production Ready* status, a library must demonstrate that it:
71+
72+
* Meets the **Beman Standard** with deviations documented (passes beman.tidy checks).
73+
* Has **comprehensive unit test coverage** validating functionality and edge cases.
74+
* Includes **complete and accurate documentation**, including tutorial, design rationale, and examples.
75+
76+
Note that much of the design documentation may simply reference the WG21 paper.
77+
Also note that since the current documentation system is a work in progress, docs should be Markdown for now.
78+
79+
4. **Community Evaluation**
80+
During the review period, the community is encouraged to:
81+
82+
* Build and test the library on supported platforms.
83+
* Review its design and documentation.
84+
* Provide feedback and raise issues for discussion.
85+
86+
4. **Approval Requirements**
87+
A library may transition to *Production Ready* status only after:
88+
89+
* Demonstrated **positive community consensus** that the review criteria have been met as determined by **at least two project leads**, or
90+
* in the rare case there is lack of consensus, the leads make a call.

0 commit comments

Comments
 (0)