blob: 65dfa6d5d12542e8b45db18e9e8f64c2bd2015fc [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="mdx-wrapper mdx-page plugin-pages plugin-id-default">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">BookKeeper Proposals | Apache BookKeeper</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://bookkeeper.apache.org/community/bookkeeper-proposals"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="BookKeeper Proposals | Apache BookKeeper"><meta data-rh="true" name="description" content="This page describes a proposed BookKeeper Proposal (BP) process for proposing a major change to BookKeeper."><meta data-rh="true" property="og:description" content="This page describes a proposed BookKeeper Proposal (BP) process for proposing a major change to BookKeeper."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://bookkeeper.apache.org/community/bookkeeper-proposals"><link data-rh="true" rel="alternate" href="https://bookkeeper.apache.org/community/bookkeeper-proposals" hreflang="en"><link data-rh="true" rel="alternate" href="https://bookkeeper.apache.org/community/bookkeeper-proposals" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.49914aab.css">
<link rel="preload" href="/assets/js/runtime~main.793d926f.js" as="script">
<link rel="preload" href="/assets/js/main.c5d52852.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/bk-logo.svg" alt="Apache Bookkeeper" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/bk-logo.svg" alt="Apache Bookkeeper" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache BookKeeper</b></a><a class="navbar__item navbar__link" href="/docs/overview/">Documentation</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/community/mailing-lists">Mailing lists</a></li><li><a class="dropdown__link" href="/community/slack">Slack</a></li><li><a href="https://github.com/apache/bookkeeper/issues" target="_blank" rel="noopener noreferrer" class="dropdown__link">Github issues<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a class="dropdown__link" href="/community/releases">Release management</a></li><li><a class="dropdown__link" href="/community/meeting">Community meetings</a></li><li><a class="dropdown__link" href="/community/contributing">Contribution guide</a></li><li><a class="dropdown__link" href="/community/coding-guide">Coding guide</a></li><li><a class="dropdown__link" href="/community/testing">Testing guide</a></li><li><a class="dropdown__link" href="/community/issue-report">Issue report guide</a></li><li><a class="dropdown__link" href="/community/release-guide">Release guide</a></li><li><a class="dropdown__link" href="/community/presentations">Presentations</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/community/bookkeeper-proposals">BookKeeper proposals (BP)</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Project</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/project/who">Who are we?</a></li><li><a class="dropdown__link" href="/project/bylaws">Bylaws</a></li><li><a href="https://apache.org/licenses" target="_blank" rel="noopener noreferrer" class="dropdown__link">License<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a class="dropdown__link" href="/project/privacy">Privacy policy</a></li><li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Sponsorship<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="dropdown__link">Thanks<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/docs/overview/">4.16.5</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/next/overview/">Next</a></li><li><a class="dropdown__link" href="/docs/overview/">4.16.5</a></li><li><a class="dropdown__link" href="/docs/4.15.5/overview/">4.15.5</a></li><li><a class="dropdown__link" href="/docs/4.14.8/overview/">4.14.8</a></li><li><a class="dropdown__link" href="/docs/4.13.0/overview/">4.13.0</a></li><li><a class="dropdown__link" href="/docs/4.12.1/overview/">4.12.1</a></li><li><a class="dropdown__link" href="/docs/4.11.1/overview/">4.11.1</a></li><li><a class="dropdown__link" href="/docs/4.10.0/overview/">4.10.0</a></li><li><a class="dropdown__link" href="/docs/4.9.2/overview/">4.9.2</a></li><li><a class="dropdown__link" href="/docs/4.8.2/overview/">4.8.2</a></li><li><a class="dropdown__link" href="/docs/4.7.3/overview/">4.7.3</a></li><li><a class="dropdown__link" href="/docs/4.6.2/overview/">4.6.2</a></li><li><a class="dropdown__link" href="/docs/4.5.1/overview/">4.5.1</a></li></ul></div><a class="navbar__item navbar__link" href="/releases">Download</a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><main class="container container--fluid margin-vert--lg"><div class="row mdxPageWrapper_j9I6"><div class="col col--8"><article><h1>BookKeeper Proposals</h1><p>This page describes a proposed <em>BookKeeper Proposal (BP)</em> process for proposing a major change to BookKeeper.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="process">Process<a href="#process" class="hash-link" aria-label="Direct link to Process" title="Direct link to Process"></a></h2><h3 class="anchor anchorWithStickyNavbar_LWe7" id="what-is-considered-a-major-change-that-needs-a-bp">What is considered a &quot;major change&quot; that needs a BP?<a href="#what-is-considered-a-major-change-that-needs-a-bp" class="hash-link" aria-label="Direct link to What is considered a &quot;major change&quot; that needs a BP?" title="Direct link to What is considered a &quot;major change&quot; that needs a BP?"></a></h3><p>Any of the following should be considered a major change:</p><ul><li>Any major new feature, subsystem, or piece of functionality</li><li>Any change that impacts the public interfaces of the project</li><li>Any change that impacts developer workflow of the project</li></ul><p>All the following are public interfaces that people build around:</p><ul><li>Binary log format</li><li>The network protocol and api behavior</li><li>Configuration, especially client configuration</li><li>Monitoring/Stats provider</li><li>Command line tools and arguments</li></ul><h3 class="anchor anchorWithStickyNavbar_LWe7" id="what-should-be-included-in-a-bp">What should be included in a BP?<a href="#what-should-be-included-in-a-bp" class="hash-link" aria-label="Direct link to What should be included in a BP?" title="Direct link to What should be included in a BP?"></a></h3><p>A BP should contain the following sections:</p><ul><li><em>Motivation</em>: describe the problem to be solved</li><li><em>Proposed Change</em>: 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.</li><li><em>New or Changed Public Interfaces</em>: impact to any of the &quot;compatibility commitments&quot; described above. We want to call these out in particular so everyone thinks about them.</li><li><em>Migration Plan and Compatibility</em>: if this feature requires additional support for a no-downtime upgrade describe how that will work</li><li><em>Rejected Alternatives</em>: 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.</li></ul><h3 class="anchor anchorWithStickyNavbar_LWe7" id="who-should-initiate-the-bp">Who should initiate the BP?<a href="#who-should-initiate-the-bp" class="hash-link" aria-label="Direct link to Who should initiate the BP?" title="Direct link to Who should initiate the BP?"></a></h3><p>Anyone can initiate a BP but you shouldn&#x27;t do it unless you have an intention of getting the work done to implement it (otherwise it is silly).</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="how-to-make-a-bp">How to make a BP?<a href="#how-to-make-a-bp" class="hash-link" aria-label="Direct link to How to make a BP?" title="Direct link to How to make a BP?"></a></h3><p>Here is the process for making a BP:</p><ol><li>Create an issue <code>BP-&lt;number&gt;: [capation of bookkeeper proposal]</code>. E.g. <code>BP-1: 64 bits ledger id support</code>.<ul><li>Take the next available BP number from this page.</li><li>Write a brief description about what BP is for in this issue. This issue will be the master issue for tracking the status of this BP and its implementations.
All the implementations of this BP should be listed and linked to this master issues.</li></ul></li><li>Write the proposal for this BP. There are two ways to write a bookkeeper proposal. You can choose to write a BP using markdown, or write a BP
using Google Doc.<div class="codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">- Markdown</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> - Make a copy of the [BP-Template](https://github.com/apache/bookkeeper/tree/master/site/bps/BP-template.md). Name the BP file as `BP-&lt;number&gt;-[caption-of-proposal].md`.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> ```shell</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> $ cp site/bps/BP-template.md site/bps/BP-xyz-capation-of-proposal.md</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> ```</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> - Fill the sections listed in the BP template.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> - issue: replace `&lt;issue-number&gt;` with the issue number.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> - state: &quot;Under Discussion&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> - release: leave the release to `N/A`. you can only mark a release after a BP is implemented.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">- Google Doc</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> - Make a copy of the [BP-Template](https://docs.google.com/document/d/1DsmH54LoohgwqnEjESPQNtIYxxcOy2rwonZ_TJCwws0). Name the BP file as `BP-&lt;number&gt;-[caption-of-proposal]`.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> - Fill the sections listed in the BP template.</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li><li>Send a PR for this BP. Following the instructions in the pull request template.<ul><li>add <code>BP</code> label to this PR</li><li>attach the google doc link in the PR description if the BP is written in google doc</li><li>don&#x27;t associate this PR with any release or milestone</li><li>edit <code>site/community/bookkeeper-proposals.md</code>:<ul><li>bump the next bp number</li><li>add this BP to <code>Inprogress</code> section</li></ul></li></ul></li><li>You can tag committers on this RP for reviewers, or start a <code>[DISCUSS]</code> thread on Apache mailing list. If you are sending an email, please make sure that the subject
of the thread is of the format <code>[DISCUSS] BP-&lt;number&gt;: capation of bookkeeper proposal</code>.</li><li>Once the BP is finalized, reviewed and approved by committers, the BP is accepted. The criteria for acceptance is <a href="https://bookkeeper.apache.org/project/bylaws" target="_blank" rel="noopener noreferrer">lazy majority</a>.<ol><li>Committers merge the PR after a BP is accepted. The development for this BP moves forward with implementations. The BP should be updated if there is anything changed during implementing it.</li><li>After all the implementations for a given BP are completed, a new PR should be sent for changing the state of a BP:<ul><li>state: &quot;Adopted&quot;</li><li>release: set to the release that includes this BP.</li><li>moving the BP from <code>Inprogress</code> to <code>Adopted</code>.</li></ul></li><li>The final PR for changing BP state will be used as the criteria for marking a BP as completed.</li></ol></li><li>If a BP is failed or rejected:<ol><li>Update the PR to change the state of a BP<ul><li>state: &quot;Discarded&quot;</li><li>add a paragraph at the first paragraph of this BP for describing the reasons.</li><li>moving the BP from <code>Inprogress</code> to <code>Discarded</code>.</li></ul></li><li>Once the PR is updated, committers can merge this proposal PR and close the master issue of this BP.</li></ol></li></ol><h2 class="anchor anchorWithStickyNavbar_LWe7" id="all-proposals">All Proposals<a href="#all-proposals" class="hash-link" aria-label="Direct link to All Proposals" title="Direct link to All Proposals"></a></h2><p>This section lists all the <em>bookkeeper proposals</em> made to BookKeeper.</p><p><em>Next Proposal Number: 43</em></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="inprogress">Inprogress<a href="#inprogress" class="hash-link" aria-label="Direct link to Inprogress" title="Direct link to Inprogress"></a></h3><table><thead><tr><th align="left">Proposal</th><th align="left">State</th></tr></thead><tbody><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-4+-+BookKeeper+Lifecycle+Management" target="_blank" rel="noopener noreferrer">BP-4 - BookKeeper Lifecycle Management</a></td><td align="left">Draft</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-8+-+Queue+based+auto+rereplicator" target="_blank" rel="noopener noreferrer">BP-8 - Queue based auto rereplicator</a></td><td align="left">Draft</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-12+-+Improve+documentation" target="_blank" rel="noopener noreferrer">BP-12 - Improve documentation</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-14+Relax+durability" target="_blank" rel="noopener noreferrer">BP-14 Relax durability</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-16%3A+Thin+Client+-+Remove+direct+metadata+storage+access+from+clients" target="_blank" rel="noopener noreferrer">BP-16: Thin Client - Remove direct metadata storage access from clients</a></td><td align="left">Draft</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-18%3A+LedgerType%2C+Flags+and+StorageHints" target="_blank" rel="noopener noreferrer">BP-18: LedgerType, Flags and StorageHints</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-26-move-distributedlog-core-library">BP-26: Move distributedlog library as part of bookkeeper</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-27-new-bookkeeper-cli">BP-27: New BookKeeper CLI</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-28-etcd-as-metadata-store">BP-28: use etcd as metadata store</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-29-metadata-store-api-module">BP-29: Metadata API module</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="https://docs.google.com/document/d/155xAwWv5IdOitHh1NVMEwCMGgB28M3FyMiQSxEpjE-Y/edit#heading=h.56rbh52koe3f" target="_blank" rel="noopener noreferrer">BP-30: BookKeeper Table Service</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-31-durability">BP-31: BookKeeper Durability Anchor</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-32-advisory-write-close">BP-32: Advisory (optimistic) write close</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-33-building-official-docker-imags">BP-33: Move releasing docker images out of main repo</a></td><td align="left">Draft</td></tr><tr><td align="left"><a href="/bps/BP-34-cluster-metadata-checker">BP-34: Cluster Metadata Checker</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-35-128-bits-support">BP-35: 128 bits support</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-36-stats-documentation-annotation">BP-36: Stats documentation annotation</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-37-conf-documentation">BP-37: Improve configuration management for better documentation</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-41-bookieid">BP-41: Separate BookieId from Separate BookieId from Bookie Network Address</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-42-new-api-list-ledgers">BP-42: New Client API - list ledgers</a></td><td align="left">Accepted</td></tr><tr><td align="left"><a href="/bps/BP-43-gradle-migration">BP-43: Migration to gradle</a></td><td align="left">Draft</td></tr></tbody></table><h3 class="anchor anchorWithStickyNavbar_LWe7" id="adopted">Adopted<a href="#adopted" class="hash-link" aria-label="Direct link to Adopted" title="Direct link to Adopted"></a></h3><table><thead><tr><th align="left">Proposal</th><th align="left">Release</th></tr></thead><tbody><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-1+-+64+bits+ledger+id+support" target="_blank" rel="noopener noreferrer">BP-1 - 64 bits ledger id support</a></td><td align="left">4.5.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-2+-+Resource+aware+data+placement" target="_blank" rel="noopener noreferrer">BP-2 - Resource aware data placement</a></td><td align="left">4.5.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-3+-+Security+support" target="_blank" rel="noopener noreferrer">BP-3 - Security support</a></td><td align="left">4.5.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-5+Allow+reads+outside+the+LAC+Protocol" target="_blank" rel="noopener noreferrer">BP-5 - Allow reads outside the LAC Protocol</a></td><td align="left">4.5.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-6+-+Use+separate+log+for+compaction" target="_blank" rel="noopener noreferrer">BP-6 - Use separate log for compaction</a></td><td align="left">4.6.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-9+-+Github+issues+for+Issue+Tracking" target="_blank" rel="noopener noreferrer">BP-9 - Github issues for Issue Tracking</a></td><td align="left">4.5.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-10+-+Official+Bookkeeper+Docker+Image" target="_blank" rel="noopener noreferrer">BP-10 - Official Bookkeeper Docker Image</a></td><td align="left">4.5.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=71012301" target="_blank" rel="noopener noreferrer">BP-11 - Move website/documentation to Jekyll based site</a></td><td align="left">4.5.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-13+-+Time+Based+Release+Plan" target="_blank" rel="noopener noreferrer">BP-13 - Time Based Release Plan</a></td><td align="left">4.6.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-15+New+CreateLedger+API" target="_blank" rel="noopener noreferrer">BP-15 - New CreateLedger API</a></td><td align="left">4.6.0</td></tr><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-17%3A+Define+BookKeeper+public+http+endpoints" target="_blank" rel="noopener noreferrer">BP-17 - Define BookKeeper public http endpoints</a></td><td align="left">4.6.0</td></tr><tr><td align="left"><a href="/bps/BP-20-github-workflow-for-bookkeeper-proposals">BP-20: Github workflow for bookkeeper proposals</a></td><td align="left">4.7.0</td></tr><tr><td align="left"><a href="/bps/BP-25-MovingChecksumToProto">BP-25: Move checksum to proto</a></td><td align="left">4.7.0</td></tr><tr><td align="left"><a href="/bps/BP-38-bookie-endpoint-discovery">BP-38: Publish Bookie Service Info on Metadata Service</a></td><td align="left">4.11.0</td></tr></tbody></table><h3 class="anchor anchorWithStickyNavbar_LWe7" id="discarded">Discarded<a href="#discarded" class="hash-link" aria-label="Direct link to Discarded" title="Direct link to Discarded"></a></h3><table><thead><tr><th align="left">Proposal</th><th align="left">Reason</th></tr></thead><tbody><tr><td align="left"><a href="https://cwiki.apache.org/confluence/display/BOOKKEEPER/BP-7+-+Explicit+LAC+on+addEntry" target="_blank" rel="noopener noreferrer">BP-7 - Explicit LAC on addEntry</a></td><td align="left">Not A Problem</td></tr><tr><td align="left"><a href="/bps/BP-21-new-api-close-inconsistencies">BP-21: New API close inconsistencies</a></td><td align="left">Not A Problem</td></tr><tr><td align="left"><a href="/bps/BP-22-separate-closing-ledgers-from-opening-ledgers">BP-22: Separate closing ledgers from opening ledgers</a></td><td align="left">Not A Problem</td></tr></tbody></table></article></div><div class="col col--2"><div class="tableOfContents_bqdL thin-scrollbar"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#process" class="table-of-contents__link toc-highlight">Process</a><ul><li><a href="#what-is-considered-a-major-change-that-needs-a-bp" class="table-of-contents__link toc-highlight">What is considered a &quot;major change&quot; that needs a BP?</a></li><li><a href="#what-should-be-included-in-a-bp" class="table-of-contents__link toc-highlight">What should be included in a BP?</a></li><li><a href="#who-should-initiate-the-bp" class="table-of-contents__link toc-highlight">Who should initiate the BP?</a></li><li><a href="#how-to-make-a-bp" class="table-of-contents__link toc-highlight">How to make a BP?</a></li></ul></li><li><a href="#all-proposals" class="table-of-contents__link toc-highlight">All Proposals</a><ul><li><a href="#inprogress" class="table-of-contents__link toc-highlight">Inprogress</a></li><li><a href="#adopted" class="table-of-contents__link toc-highlight">Adopted</a></li><li><a href="#discarded" class="table-of-contents__link toc-highlight">Discarded</a></li></ul></li></ul></div></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/overview">Overview</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/getting-started/installation">Getting started</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/deployment/manual">Deployment</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/admin/bookies">Administration</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/api/overview">API</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/security/overview">Security</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/development/protocol">Development</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/reference/config">Reference</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/community/mailing-lists">Mailing lists</a></li><li class="footer__item"><a class="footer__link-item" href="/community/slack">Slack</a></li><li class="footer__item"><a href="https://github.com/apache/bookkeeper" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/asfbookkeeper" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Project</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/project/who">Who are we?</a></li><li class="footer__item"><a class="footer__link-item" href="/project/bylaws">Bylaws</a></li><li class="footer__item"><a href="https://apache.org/licenses" target="_blank" rel="noopener noreferrer" class="footer__link-item">License<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/project/privacy">Privacy policy</a></li><li class="footer__item"><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Sponsorship<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Thanks<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright"><footer class="footer">
<div class="container">
<div class="content has-text-centered">
<p>
Copyright &copy; 2016 - 2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>,<br> licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, version 2.0</a>.
</p>
<p>
Apache BookKeeper, BookKeeper®, Apache®, the Apache feature logo, and the Apache BookKeeper logo are either registered trademarks or trademarks of The Apache Software Foundation.
</p>
</div>
</div>
</footer>
</div></div></div></footer></div>
<script src="/assets/js/runtime~main.793d926f.js"></script>
<script src="/assets/js/main.c5d52852.js"></script>
</body>
</html>