Skip to content

raft: decouple raft release from etcd release #14713

@ahrtr

Description

@ahrtr

What would you like to be added?

Currently the raft is released & tagged together with etcd. For example, when we release etcd 3.5.5, we will create tag v3.5.5 for etcd and raft/v3.5.5 for raft at the same time respectively.

raft is an important & stable module, it may have different evolution pace from etcd. I think it would be better to qualify and release raft separately, just like what we did for BoltDB.

We probably need to change the module name from go.etcd.io/etcd/raft/v3 to go.etcd.io/raft. Since it's a new beginning, we can release raft starting from v1, which isn't needed in the module name. We need to add the version into the module name starting from v2, namely go.etcd.io/raft/v2. FYI. Module version numbering

We can even create a separate repository for raft, such as github.com/etcd-io/raft. But it isn't a blocker for this request, either way we will release raft separately.

We need to agree on the release criteria of raft if we follow this approach. For the first step, I think we can keep doing what we already have,

  1. The datadriven test;
  2. etcd workflows;
  3. Kubernetes SIG Scalability test. (Note: @serathius maintains etcd version in Kubernetes)

Since release-3.5 is a stable release, so we will not change anything on 3.5 and raft in 3.5. This change is only for the main branch.

So in summary, the request has three points:

  1. release raft separately;
  2. rename raft module name from go.etcd.io/etcd/raft/v3 to go.etcd.io/raft.
  3. (optional) create a separate repository (e.g github.com/etcd-io/raft) for raft.

@hexfusion @mitake @ptabor @serathius @spzala @tbg @nvanbenschoten @pavelkalinnikov Please share your thoughts. thx.

Why is this needed?

see above.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions