Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spec release process #43

Open
ilblackdragon opened this issue Mar 17, 2020 · 3 comments
Open

Spec release process #43

ilblackdragon opened this issue Mar 17, 2020 · 3 comments
Labels
WG-protocol Protocol Standards Work Group should be accountable

Comments

@ilblackdragon
Copy link
Member

Original suggestion:

  • Spec release every month, version X
  • Clients release every month with 1 month offset from spec. E.g. 1 month from spec release X, clients vX are released.

This requires:

  • Spec has a list of clients that are “supported” - e.g. which release schedule is syncronized. If some client team is not on schedule, issues, etc -> they can be removed from “supported” list. Also can apply via PR to supported list if already following requirements.
  • Spec changes already have pull requests to clients that are enough to understand scope of work at least. E.g. if it’s something trivial, then only to one client PR is required, if it’s something substantial - then to all supported clients.

Questions from @bowenwang1996

Refined suggestion:

  • Spec “stable” release every month, vX
  • Clients release at the same time with vX spec.

Still same idea with “supported” clients.

You submit PR to spec repo, it gets reviewed, debated and marked as “implementing” after acceptance.

This means all clients start developing it. After changes are merged into “master” in all supported clients -> spec PR is merged into “master”. (e.g. there is a checklist in PR that is required to have all supported clients PRs linked and merged).
Note that while implementing spec might change due to discovered implementation details or due to testing / benchmarking.

After that have the usual stabilization month on clients side and released together spec + clients.

If some client implementation is consistently lagging - they will be cut from “support” list.

@bowenwang1996
Copy link
Collaborator

So I guess that means all clients have to have the same release cycle? Also we will need some overall triage as to which spec change gets implemented first. One potential problem is that there might be conflicting changes in different PRs to the spec which may result in undesirable consequences.

@ilblackdragon
Copy link
Member Author

Yes, I think all clients should be on the same protocol changes schedule.
Because I don't think spec should be really changed without client development teams accepting this change.

In the 2nd option, such unintended consequences that can not be fixed within reasonable period of time - it get rollback. Because it probably means that spec has missing pieces or wasn't thought out how it combines with another change.

Even if the issue exists only in one client - it gets rolled-back across all clients and postponed until stabilized.

I can see an alternative where we go full on-chain governance, where there is a vote on next hash of the spec and then we follow https://commonwealth.im/near/proposal/discussion/261-upgradability?comment=649 procedure for an actual update. This means client dev teams are operating independently and can upgrade whenever, and just will have community push to upgrade when new version is voted in. And if some clients are lagging - people just will switch away from them (e.g. if 70% of network switched because ClientA implemented selected change but ClientB didn't - the other 30% may decide to stop running ClientB if it's really lagging).

@bowenwang1996
Copy link
Collaborator

Even if we go with full on-chain governance, the compatibility between different clients should still be tested. In my vision, different clients should join the same betanet or testnet to test compatibility before they can be used in production. That means some coordination in schedule is still required.

@frol frol added WG-protocol Protocol Standards Work Group should be accountable and removed process labels Sep 5, 2022
@github-project-automation github-project-automation bot moved this to NEW❗ in DevRel Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WG-protocol Protocol Standards Work Group should be accountable
Projects
Status: NEW❗
Development

No branches or pull requests

3 participants