From 6815d2214c49e1d5cec8f260e20fe9941da3d05e Mon Sep 17 00:00:00 2001 From: "Stanislav N. aka pztrn" Date: Tue, 31 Dec 2019 19:32:55 +0500 Subject: [PATCH 1/4] CPP-1 - Cadmium Protocol Proposal flow. SPEC-2 --- .../cadmium-proposal-document-format.md | 4 +- ... - CPP (Cadmium Protocol Proposal) flow.md | 78 +++++++++++++++++++ 2 files changed, 80 insertions(+), 2 deletions(-) rename protocol-spec/cadmium-extension-document-format.md => CPPs/cadmium-proposal-document-format.md (95%) create mode 100644 CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md diff --git a/protocol-spec/cadmium-extension-document-format.md b/CPPs/cadmium-proposal-document-format.md similarity index 95% rename from protocol-spec/cadmium-extension-document-format.md rename to CPPs/cadmium-proposal-document-format.md index 177185d..cc5d80d 100644 --- a/protocol-spec/cadmium-extension-document-format.md +++ b/CPPs/cadmium-proposal-document-format.md @@ -1,6 +1,6 @@ -# The Sections of a Cadmium Extension (CE) document +# The Sections of a Cadmium Protocol Proposal (CPP) document ## Introduction -The introduction to a CE document should contain description of the extension and example of problems which this extension can solve. +The introduction to a CPP document should contain description of the extension and example of problems which this extension can solve. ## Message type identifiers In this section, specify the identifiers of the new types of protocol messages (which are introduced by the extension) diff --git a/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md b/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md new file mode 100644 index 0000000..6746477 --- /dev/null +++ b/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md @@ -0,0 +1,78 @@ +# CPP#1 - Cadmium Protocol Proposals flow + +## Introduction + +This proposal about regulating whole flow of Cadmium Protocol Proposals. Also this proposal is an example of proposal composition. + +## Message type identifiers + +This proposal adds no identifiers to message types. + +## Glossary + +There is no terms to define that specific to this proposal. + +## Use Cases + +### Initial proposal discussion + +Initial proposal discussion should take it's place at [our YouTrack instance](https://track.cadmium.im/issues/SPEC) by creating new issue. So even before proposal will be ready you MUST create an issue in "Specification" project about our proposal. + +Issue body SHOULD contain complete body for your proposal, not just something like "let's use SMTP as connectivity channel" but rather complete description of your proposal (even in free form) with technical details which can be used for discussion. + +This step is required to proceed to next stage. + +This stage SHOULD take two (2) weeks maximum counting from issue creation date. It also might take even 1 minute before proceeding to next stage if proposal was discussed before using other channels (email, chats, etc.). + +#### Voting + +Voting about giving green or red light for proposal SHOULD be taken using: + +* "Thumbs up" icon in proposal issue in YouTrack (it's located near issue title in the very right corner). This will show community interest in this proposal and might speed up core team and developers acceptance. + +* Using comments in proposal issue. This is acceptable only for core team and developers to distinguish them from community votes. Also this is a "counter" which shows who voted from these groups. All other "thumbs up/down" posts will be removed from YouTrack and author of such posts may be banned. + +After that you will receive "green light" to create pull request to [documentational project in git](https://git.cadmium.im/cadmium/documentation) with numeric ID to use for your proposal or "red light" if community and/or core team and developers won't accept your proposal. In case of denial complete reason SHOULD be specified in comments to this issue. + +When issue is closed - there is no possibility to reopen it. + +### Proposing your proposal + +When preliminary stage is over and you've received "green light" for creating pull request to [documentational project in git](https://git.cadmium.im/cadmium/documentation) you SHOULD: + +1. Ask for proposal ID to use in issue's comments or in one of our chats from core developers. Core developer should also specify given ID in comments in issue on our YouTrack instance. +2. Clone documentational repository to your local machine. +3. Create new branch named same as YouTrack issue (e.g. ``SPEC-111``). You should create new branch using ``master`` branch as starting point. +4. Create file in ``CPPs/proposed`` directory named like ``CPP123 - Your super enchancement proposal.md``. See examples in directories placed under ``CPPs``. +5. Use template from ``cadmium-proposal-document-format.md`` placed in ``CPPs`` directory to describe your proposal in file created at step #3. +6. Push branch to git and create pull request to ``master`` branch. + +Branch/commit will be automatically attached to YouTrack issue, so everyone interesting in it will receive notification and will be able to discuss your proposal. + +**Please note that CPP ID you'll receive from core developer might not be the very same as issue ID in YouTrack.** + +This stage could take up to 2 (two) months. You should take this time and polish your proposal as much as possible and to receive as much votes as possible. + +After that time your proposal might be accepted or denied. + +### Actions for accepted proposal + +When proposal is accepted it should be moved to ``accepted`` directory from ``proposed`` keeping it's CPP ID. This SHOULD be done by proposer himself. Failing to do so might result in banning from future proposals discussions. + +After moving proposal's pull request SHOULD be merged in master. Right after that proposal considered as part of protocol and core developers SHOULD update protocol documentation to reflect changes. + +## Error Codes + +This proposal adds no error codes to protocol. + +## Business Rules + +This proposal describes no business rules for protocol or applications but rather for community and developers. + +## Security Considerations + +This proposal have no security considerations. + +## Acknowledgements + +This document heavily inspired by Medium RFC#1 (which was also written by me) which was inspired by IETF RFCs. From 4de9ad84cf4a26af99a0cc523c617d7c15706f82 Mon Sep 17 00:00:00 2001 From: "Stanislav N. aka pztrn" Date: Wed, 1 Jan 2020 21:51:31 +0500 Subject: [PATCH 2/4] Clarified about two-months-period thing and added actions for rejected proposals. SPEC-2. --- .../CPP1 - CPP (Cadmium Protocol Proposal) flow.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md b/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md index 6746477..1a662f0 100644 --- a/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md +++ b/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md @@ -53,7 +53,12 @@ Branch/commit will be automatically attached to YouTrack issue, so everyone inte This stage could take up to 2 (two) months. You should take this time and polish your proposal as much as possible and to receive as much votes as possible. -After that time your proposal might be accepted or denied. +This two-months-period is a maximum time range that can be used for discussing and polishing your proposal. This means that: + +* If you're done in 2 weeks - your CPP may be accepted. +* If you're done in 1.5 months - your CPP may be accepted. +* If you're done in ``$(two months - 1 day)`` - your CPP may be accepted. +* If you haven't done in two months - your CPP WILL BE rejected. ### Actions for accepted proposal @@ -61,6 +66,10 @@ When proposal is accepted it should be moved to ``accepted`` directory from ``pr After moving proposal's pull request SHOULD be merged in master. Right after that proposal considered as part of protocol and core developers SHOULD update protocol documentation to reflect changes. +### Rejected proposals + +If proposal was rejected - YouTrack issue should be closed as well as pull request on Gitea without merging into master branch. + ## Error Codes This proposal adds no error codes to protocol. From 16c5447228e2f8138b6dc90509e3310455bf9129 Mon Sep 17 00:00:00 2001 From: "Stanislav N. aka pztrn" Date: Wed, 1 Jan 2020 21:53:36 +0500 Subject: [PATCH 3/4] Clarified that every commit should contain full YouTrack issue ID for attaching. See this commit as example. SPEC-2 --- CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md b/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md index 1a662f0..f7723f9 100644 --- a/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md +++ b/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md @@ -47,7 +47,7 @@ When preliminary stage is over and you've received "green light" for creating pu 5. Use template from ``cadmium-proposal-document-format.md`` placed in ``CPPs`` directory to describe your proposal in file created at step #3. 6. Push branch to git and create pull request to ``master`` branch. -Branch/commit will be automatically attached to YouTrack issue, so everyone interesting in it will receive notification and will be able to discuss your proposal. +To attach your commits into YouTrack issue please add full YouTrack issue ID (e.g. ``SPEC-123``) into commit message, otherwise commit might be lost and proposal might be eventually denied. **Please note that CPP ID you'll receive from core developer might not be the very same as issue ID in YouTrack.** From 4ae28966ea1bf846f61b19241b722f6bf6c64051 Mon Sep 17 00:00:00 2001 From: "Stanislav N. aka pztrn" Date: Thu, 2 Jan 2020 20:31:28 +0500 Subject: [PATCH 4/4] CPP1 is accepted as per SPEC-2 issue. --- .../CPP1 - CPP (Cadmium Protocol Proposal) flow.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename CPPs/{proposed => accepted}/CPP1 - CPP (Cadmium Protocol Proposal) flow.md (100%) diff --git a/CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md b/CPPs/accepted/CPP1 - CPP (Cadmium Protocol Proposal) flow.md similarity index 100% rename from CPPs/proposed/CPP1 - CPP (Cadmium Protocol Proposal) flow.md rename to CPPs/accepted/CPP1 - CPP (Cadmium Protocol Proposal) flow.md