Hi Penghui,

Thanks for starting this discussion! +1 for holding PIPs in the codebase.

I'd like to share some experience working on open-source projects holding
proposals as code.

1. Rust RFCs: codebase https://github.com/rust-lang/rfcs
2. TiDB Proposals:
https://github.com/pingcap/tidb/tree/master/docs/design#readme

Reflect on topics in this thread:

> any reviews should happen with a PR first

The experience should be similar to reviewing on Google Docs while keeping
all conversations on GitHub and thus synced on the mailing list. You can
preview can some examples:

* https://github.com/pingcap/tidb/pull/23673
* https://github.com/rust-lang/rfcs/pull/42

Furthermore, continuous follow-up like PIP-198 can discuss implementation
details and update the proposal content one PR by another. The downside is
that even trivial typo fixes should go through a PR.

> Certainly, all the votes should happen on the mailing list.

Yes. We should have an explicit [VOTE] and [RESULT][VOTE] thread on the
mailing list while keeping a reference within the proposal content. We can
port the current PIP issue template to a proposal template as Rust RFCs to
highlight it.

> We can just add a link that points to the PIPs dir to the contribution guide
or README.

Rust RFCs hold in a separate repo so that they can use the PR number as the
proposal number to prevent duplicates. It's a bit overhead for Pulsar to
hold a separate repo. So I'd prefer to hold proposals in the same repo
under the dev/proposals folder and resolve the PR number duplicates issue
as described above. Although, it can still be a bit awkward. But at least
we can quickly notice duplicate numbers and resolve them. Using the PR
number as the proposal number keeps it unique, but the number will be
discontinuous. Especially if we're proposing in the main repo, the number
will grow quickly.

> Should we track the status of PIPs as a project?

In this direction, we can associate a proposal with a tracking issue and
manipulate the proposal status represented by their tracking issue. It
doesn't mean we keep the current issue discussion process. You can regard
it as an umbrella ticket for the proposal. See
https://github.com/pingcap/tidb/issues/26022 as an example.

In this direction, we should always ensure that there're several eyes on
the project. Otherwise, we can easily end up with an out-of-sync project.

To @Rajan @Penghui

It seems the confusion comes from we have to merge one PR first to prevent
duplicate numbers. If it's a certain concern, see also my comment above
using the PR number as the proposal, or even host a separate proposal repo
as rust-lang/rfcs does and keep the number growing normally. I can provide
experience to maintain this sort of resource.


Best,
tison.

Reply via email to