Skip to content

Commit 6ce0d23

Browse files
committed
Create a Feature Branch Approval Policy
Defines a policy for how new feature branches should be requested and approved. We defer the management of feature branches to other future policies. Reviewed-by: Tomas Mraz <[email protected]> Reviewed-by: Anton Arapov <[email protected]> (Merged from #62)
1 parent ed66a07 commit 6ce0d23

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Feature Branch Approval Policy
2+
3+
The [Time-based Release Policy] defines a regular twice-a-year schedule for new
4+
OpenSSL versions. In the case of large features that cannot reasonably be
5+
implemented and reviewed within a single PR there is a risk that only an
6+
incomplete or incorrect implementation of the feature will be merged to the
7+
master branch by the time a feature freeze occurs for the next release.
8+
9+
To avoid this problem feature branches can be used. A feature branch is simply
10+
a branch in the main git repository that can be used as a target branch for
11+
PRs related to a single new feature.
12+
13+
A feature branch will be created based on the current state of master at the
14+
time of its creation. If a feature branch exists for a protracted period of time
15+
then it will need to be rebased on a regular basis. This process should be
16+
performed by a committer on an as-needed basis and can be done without further
17+
review.
18+
19+
The creation of a new feature branch implies some overhead for the project to
20+
manage that feature branch (such as for example periodic rebases, and to review
21+
PRs targeting it). Such a feature branch would typically only be created where
22+
it has been agreed that the feature is desirable; exists on the [Project Board];
23+
is of sufficiently high priority; and there are expected to be resources
24+
available to work on the feature development and to review it. For this reason
25+
the creation of new feature branches is controlled via an approval process.
26+
27+
Submitting a request for a new feature branch should be done by creating an
28+
issue in the [openssl/project] repository. Such a request can be created by
29+
anyone. The request should specify:
30+
31+
- The name of the feature branch requested in the form of `feature/<name>`
32+
- A link to an issue describing the requested feature that will be developed on
33+
the branch
34+
- An estimate of when the work on the feature is expected to be complete
35+
- Whether there are any known resources being made available to work on the
36+
feature
37+
38+
The approval of a new feature branch is ultimately performed by the OMC. The OMC
39+
may delegate the authority to make such approvals on its behalf to another body
40+
at the discretion of the OMC.
41+
42+
Once approved by the OMC a feature branch may be created. All PRs relevant to
43+
that feature should target that branch and go through the normal code review
44+
process.
45+
46+
Once the feature is complete and all relevant PRs have been merged to the branch,
47+
a PR should be created containing all the commits from the branch. All of the
48+
commits should already have been reviewed before they were pushed to the
49+
feature branch. However this PR review stage enables a final check to confirm
50+
the complete feature is sane. Once this PR is merged, the feature branch should
51+
then be deleted from the repository.
52+
53+
[Time-based Release Policy]: https://github.com/openssl/general-policies/blob/master/policies/release-policy.md
54+
[Project Board]: https://github.com/orgs/openssl/projects/2/views/28
55+
[openssl/project]: https://github.com/openssl/project

0 commit comments

Comments
 (0)