From f1ee4ec3e390dfbac14f565f3ed447f254d7c1c4 Mon Sep 17 00:00:00 2001 From: Benjamin Wang Date: Fri, 21 Jul 2023 11:18:34 +0100 Subject: [PATCH] Documentation: add a roadmap Signed-off-by: Benjamin Wang --- Documentation/contributor-guide/roadmap.md | 54 ++++++++++++++++++++++ README.md | 2 + 2 files changed, 56 insertions(+) create mode 100644 Documentation/contributor-guide/roadmap.md diff --git a/Documentation/contributor-guide/roadmap.md b/Documentation/contributor-guide/roadmap.md new file mode 100644 index 000000000000..7fe25a5ea596 --- /dev/null +++ b/Documentation/contributor-guide/roadmap.md @@ -0,0 +1,54 @@ +# roadmap + +etcd uses GitHub milestones to track all tasks in each major or minor release. The roadmap.md file only records the most +important tasks for each release. +Please also refer to [here](https://docs.google.com/spreadsheets/d/1hFpIbkI0IDum0SPy8txj7bVHxQRrAB_82f1Yqz_Pa8M/edit#gid=0&fvid=1685003197) +for more context. The list is based on current maintainers capacity that may shift over time. Proposed milestones is what we think we can +deliver with people we have. If we have more support on the important stuff, we could pick up more items from backlog. +Note that etcd will continue to mainly focus on technical debt over the next few major or minor releases. + +Each item has an assigned priority: +- P0 - Critical for the current milestone, and blocks the release. +- P1 - Important for the current milestone, and critical for the next milestone. +- P2 - Nice to have, can be always skipped and should not block anything. + +## v3.6.0 + +For a full list of tasks in v3.6.0, please see [milestone etcd-v3.6](https://github.com/etcd-io/etcd/milestone/38). + +| Title | Priority | Note | +|--------------------------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------| +| Support downgrade | P0 | etcd will support downgrade starting from 3.6.0. But it will also support offline downgrade from 3.5 to 3.4. | +| StoreV2 deprecation | P0 | This task will be covered in both 3.6 and 3.7. | +| Support /livez and /readyz endpoints | P1 | It provides clearer APIs, and can also workaround the stalled writes issue | +| Bump gRPC | P1 | It isn't guaranteed to be resolved in 3.6, and might be postponed to 3.7 depending on the effort and risk. | +| Deprecate grpc-gateway or bump it | P1 | It isn't guaranteed to be resolved in 3.6, and might be postponed to 3.7 depending on the effort and risk. | +| Release raft 3.6.0 | P1 | etcd 3.6.0 will depends on raft 3.6.0 | +| bbolt: Add logger into bbolt | P1 | It's important to diagnose bbolt issues | +| bbolt: Add surgery commands | P1 | Surgery commands are important for fixing corrupted db files | +| Release bbolt 1.3.8 | P1 | etcd 3.6.0 will depends on bbolt 1.3.8 | +| Evaluate and (Gradulate or deprecate/remove) experimental features | P2 | This task will be covered in both 3.6 and 3.7. | + +## v3.7.0 + +For a full list of tasks in v3.7.0, please see [milestone etcd-v3.7](https://github.com/etcd-io/etcd/milestone/39). + +| Title | Priority | Note | +|-------------------------------------------------------------------|----------|-----------------------------------------------------------------------------------| +| StoreV2 deprecation | P0 | Finish the remaining tasks 3.7. | +| Refactor lease: Lease might be revoked by mistake by old leader | P1 | to be investigated & discussed | +| Integrate raft's new feature (async write) into etcd | P1 | It should can improve the performance | +| bbolt: Support customizing the bbolt rebalance threshold | P2 | It may get rid of etcd's defragmentation. Both bbolt and etcd need to be changed. | +| Evaluate and (graduate or deprecate/remove) experimental features | P2 | Finish the remaining tasks 3.7. | + +## Backlog (future releases) + +| Title | Priority | Note | +|-----------------------------------------------------------|----------|------| +| Remove the dependency on grpc-go's experimental API | | | +| Protobuf: cleanup both golang/protobuf and gogo/protobuf | | | +| Proposals should include a merkle root | | | +| Add Distributed Tracing using OpenTelemetry | | | +| Support CA rotation | | | +| bbolt: Migrate all commands to cobra style commands | | | +| raft: enhance the configuration change validation | | | diff --git a/README.md b/README.md index 421405846b61..585844964c64 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,8 @@ See [CONTRIBUTING](CONTRIBUTING.md) for details on setting up your development e Please refer to [community-membership.md](Documentation/contributor-guide/community-membership.md#member) for information on becoming an etcd project member. We welcome and look forward to your contributions to the project! +Please also refer to [roadmap](Documentation/contributor-guide/roadmap.md) to get more details on the priorities for the next few major or minor releases. + ## Reporting bugs See [reporting bugs](https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/reporting_bugs.md) for details about reporting any issues. Before opening an issue please check it is not covered in our [frequently asked questions].