CCEP Purpose and Guidelines¶
CCEP |
1 |
Title |
CCEP Purpose and Guidelines |
Version |
1 |
Author |
Christian Haudum |
Date |
2019-02-21 |
Status |
Implemented |
What is a CCEP?¶
CrateDB Cloud Enhancement Proposals (CCEPs) describe standards for the CrateDB Cloud platform, such as implementation standards, service interfaces, architectural changes and others.
CCEPs are conceptually equivalent to RFCs (Request for Comments) or PEPs (Python Enhancement Proposals).
Purpose¶
The purpose of CCEPs is to find agreement and document standards for the implementation and maintenance of CrateDB Cloud.
Proposals should be created in order to get consensus on bigger changes to the CrateDB Cloud development and architecture, such as API changes, deployment policies, client implementations, service interfaces, and so on.
Workflow¶
Enhancement Proposals are managed within the crate/cloud Github repository. Drafts and changes of states are made using the regular Git workflow by opening pull requests against the master branch.
Everyone within the engineering team is entitled to write CCEPs. Domain leads are responsible for administering them. They also have the final decision changing states of the proposals, such as accepting or rejecting drafts, and communicating these changes to the teams.
Status¶
The lifecycle of a CCEP is the following:
+-------> Rejected
| ^
| |
| |
| |
+ +
+---> Draft +---> Accepted +---> Implemented
+ + +
| | |
| | |
| | |
| v |
+-------> Obsoleted <---------+
Draft¶
Initially a CCEP is proposed by opening a PR against the master branch of the
crate/cloud repository. It has the state Draft.
Accepted¶
The proposal was accepted by the domain leads. It means that the change is going to be implemented. How, and when this is done is not defined, but could be part of the proposal.
Rejected¶
The proposal was rejected by the domain leads. There should be a reasoning for
the decision when the state of a CCEP is changed to Rejected.
Obsolete¶
The proposal has become obsolete. This can happen at any time between writing the draft and implementation in case it was accepted. A CCEP can become obsolete, because e.g. the problem it tries to solve does not exist any more.
Implemented¶
The accepted proposal changes the status to Implemented as soon it has been
fully implemented.
Template¶
Enhancement Proposals should follow this structure:
========
Headline
========
+-------------+------------------------------------------------+
| CCEP | |
+-------------+------------------------------------------------+
| Title | |
+-------------+------------------------------------------------+
| Version | |
+-------------+------------------------------------------------+
| Author | |
+-------------+------------------------------------------------+
| Date | yyyy-mm-dd |
+-------------+------------------------------------------------+
| Status | |
+-------------+------------------------------------------------+
Introduction
============
Provide background information.
Proposal
========
Describe your proposed change or enhancement.
Impact
======
Describe impact on other proposals.
Additionally, link the document in the “Drafts” section of the toc tree of the index.rst file.