All the bookkeeper proposals have been moved to http://bookkeeper.apache.org/community/bookkeeper_proposals/. The new bookkeeper proposal process is documented under http://bookkeeper.apache.org/bps/BP-20-github-workflow-for-bookkeeper-proposals/
This page describes a proposed BookKeeper Proposal (BP) process for proposing a major change to BookKeeper.
To create your own BP, click on "Create" on the header and choose "BP-Template" other than "Blank page". If you don't have permission, please send an email with your Wiki ID to dev@bookkeeper.apache.org
. Also add an entry to the table "Inprogress".
What is considered a "major change" that needs a BP?
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
- Any change that impacts developer workflow of the project
All the following are public interfaces that people build around:
- Binary log format
- The network protocol and api behavior
- Configuration, especially client configuration
- Monitoring/Stats provider
- Command line tools and arguments
What should be included in a BP?
A BP should contain the following sections:
- Motivation: describe the problem to be solved
- Proposed Change: describe the new thing you want to do. This may be fairly extensive and have large subsections of its own. Or it may be a few sentences, depending on the scope of the change.
- New or Changed Public Interfaces: impact to any of the "compatibility commitments" described above. We want to call these out in particular so everyone thinks about them.
- Migration Plan and Compatibility: if this feature requires additional support for a no-downtime upgrade describe how that will work
- Rejected Alternatives: What are the other alternatives you considered and why are they worse? The goal of this section is to help people understand why this is the best solution now, and also to prevent churn in the future when old alternatives are reconsidered.
Who should initiate the BP?
Anyone can initiate a BP but you shouldn't do it unless you have an intention of getting the work done to implement it (otherwise it is silly).
Process
Here is the process for making a BP:
- Create a page which is a child of this one. Take the next available BP number and give your proposal a descriptive heading. e.g. "BP 1: 64 bits ledger id support".
- Fill in the sections as described above
- Start a [DISCUSS] thread on the Apache mailing list. Please ensure that the subject of the thread is of the format [DISCUSS] BP-{your BP number} {your BP heading} The discussion should happen on the mailing list not on the wiki since the wiki comment system doesn't work well for larger discussions. In the process of the discussion you may update the proposal. You should let people know the changes you are making. When you feel you have a finalized proposal
- Once the proposal is finalized call a [VOTE] to have the proposal adopted. These proposals are more serious than code changes and more serious even than release votes. The criteria for acceptance is lazy majority.
- Please update the BP wiki page, and the index below, to reflect the current stage of the BP after a vote. This acts as the permanent record indicating the result of the BP (e.g., Accepted or Rejected). Also report the result of the BP vote to the voting thread on the mailing list so the conclusion is clear.
This page lists all the bookkeeper proposals made to BookKeeper.
Next Proposal Number: 19
Inprogress
Proposal | State |
---|---|
BP-4 - BookKeeper Lifecycle Management | Draft |
BP-8 - Queue based auto rereplicator | Draft |
BP-12 - Improve documentation | Accepted |
BP-14 Relax durability | Accepted |
BP-16: Thin Client - Remove direct metadata storage access from clients | Design in progress |
BP-18: LedgerType, Flags and StorageHints | Under Discussion |
Adopted
Discard
Proposal | Reason |
---|---|
BP-7 - Explicit LAC on addEntry | Not a problem |