From 319da42a74354baee30bf3fe8a9970ba998e878f Mon Sep 17 00:00:00 2001 From: KtorZ Date: Wed, 21 Sep 2022 15:01:23 +0200 Subject: [PATCH] Rework CIP-0001 to reflect reality. This is the first step in a broader work aiming at pushing the CIP in the forefront of _every_ Cardano changes. Before addressing current shortcomings of the process, it is necessary to capture what the process _actually is_ at present. This rework will serve as a base for a retrospective discussion amongst the editors and, shall be proposed to the community for approval and review. --- .github/CIP-TEMPLATE.md | 26 ++++ CIP-0001/CIP_Flow.png | Bin 50045 -> 0 bytes CIP-0001/README.md | 320 +++++++++++++--------------------------- CODE_OF_CONDUCT.md | 76 ++++++++++ README.md | 32 ++-- cip-template.md | 66 --------- 6 files changed, 220 insertions(+), 300 deletions(-) create mode 100644 .github/CIP-TEMPLATE.md delete mode 100644 CIP-0001/CIP_Flow.png create mode 100644 CODE_OF_CONDUCT.md delete mode 100644 cip-template.md diff --git a/.github/CIP-TEMPLATE.md b/.github/CIP-TEMPLATE.md new file mode 100644 index 000000000..c39d8f471 --- /dev/null +++ b/.github/CIP-TEMPLATE.md @@ -0,0 +1,26 @@ +--- +CIP: ? +Title: ? +Authors: John Doe +Status: Draft +Type: Core | Process | Informational +Created: YYYY-MM-DD +License: CC-BY-4.0 +--- + +## Abstract + +## Motivation + +## Specification + +## Rationale + +## Path to Active + +## Copyright + +This CIP is licensed under [CC-BY-4.0][]. + +[CC-BY-4.0]: https://creativecommons.org/licenses/by/4.0/legalcode +[Apache-2.0]: http://www.apache.org/licenses/LICENSE-2.0 diff --git a/CIP-0001/CIP_Flow.png b/CIP-0001/CIP_Flow.png deleted file mode 100644 index 177ff3ab68128a4124b62346e7865b06b320acdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50045 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 diff --git a/CIP-0001/README.md b/CIP-0001/README.md index 285ed3bc2..fd159fd8b 100644 --- a/CIP-0001/README.md +++ b/CIP-0001/README.md @@ -1,9 +1,7 @@ --- CIP: 1 Title: CIP process -Authors: Frederic Johnson , Sebastien Guillemot , Matthias Benkort , Duncan Coutts -Comments-Summary: No comments yet. -Comments-URI: https://github.com/cardano-foundation/CIPs/wiki/Comments:CIP-0001 +Authors: Frederic Johnson , Sebastien Guillemot , Matthias Benkort , Duncan Coutts Status: Active Type: Process Created: 2020-03-21 @@ -12,180 +10,125 @@ License: CC-BY-4.0 ## Abstract -A Cardano Improvement Proposal (CIP) is a formalized design document for the Cardano community, providing information or describing a new feature for the Cardano network, its processes, or environment in a concise and technically sufficient manner. In this CIP we describe what a CIP is, how the CIP process functions, and how users should go about proposing, discussing and structuring a CIP. +A Cardano Improvement Proposal (CIP) is a formalized design document for the Cardano community. It provides information or describes a new feature for the Cardano network, its processes, or environment concisely and technically sufficiently. In this CIP, we tell what a CIP is, how the CIP process functions, and how users should go about proposing, discussing and structuring a CIP. -The Cardano Foundation intends CIPs to be the primary mechanisms for proposing new features, collecting community input on an issue, and for documenting design decisions that have gone into Cardano. Because the CIPs are maintained as text files in a versioned repository, their revision history is the historical record of the feature proposal. +The Cardano Foundation intends CIPs to be the primary mechanisms for proposing new features, collecting community input on an issue, and documenting design decisions that have gone into Cardano. Plus, because CIPs are text files in a versioned repository, their revision history is the historical record of the feature proposal. +## Motivation -## Specification - -### CIP types - -There are three kinds of CIP: +CIPs come to address mainly two challenges: -1. A **Standards Track** CIP describes any change that affects most or all Cardano implementations, such as a change to the network protocol, a change in block or transaction validity rules, or any change or addition that affects the interoperability of applications using Cardano. Standards Track CIPs consist of two parts, a design document and a reference implementation. -1. A **Process** CIP describes a process surrounding Cardano, or proposes a change to (or an event in) a process. Process CIPs are like Standards Track CIPs but apply to areas other than the Cardano protocol itself. They may propose an implementation, but not to Cardano's codebase; they often require community consensus; unlike Informational CIPs, they are more than recommendations, and users are typically not free to ignore them. Examples include procedures, guidelines, changes to the decision-making process, and changes to the tools or environment used in Cardano development. Any meta-CIP is also considered a Process CIP. -1. An **Informational** CIP describes a Cardano design issue, or provides general guidelines or information to the Cardano community, but does not propose a new feature. Informational CIPs do not necessarily represent a Cardano community consensus or recommendation, so users and implementors are free to ignore Informational CIPs or follow their advice. +1. The need for various parties to agree on a common approach to ease the interoperability of tools or interfaces. -### CIP format and structure +2. The need to propose and discuss changes to the protocol or established practice of the ecosystem. -CIPs should be written in [Markdown](https://guides.github.com/features/mastering-markdown/) format. Each CIP should have the following parts: +The CIP process does not _by itself_ offer any form of governance. Yet, it is a crucial, community-driven component of the governance decision pipeline as it helps to collect thoughts and proposals in an organized fashion. -| Name | Description | -| --- | --- | -| Preamble | Headers containing metadata about the CIP ([see below](#cip-header-preamble)). | -| Abstract | A short (\~200 word) description of the technical issue being addressed. | -| Motivation | The motivation is critical for CIPs that want to change the Cardano protocol. It should clearly explain why the existing protocol is inadequate to address the problem that the CIP solves. | -| Specification | The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow competing, interoperable implementations for any of the current Cardano platforms. | -| Rationale | The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work. The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion.| -| Backwards compatibility | All CIPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The CIP must explain how the author proposes to deal with these incompatibilities.| -| Path to Active | A reference implementation, observable metrics or anything showing the acceptance of the proposal in the community. It must be completed before any CIP is given status "Active", but it need not be completed before the CIP is accepted. It is better to finish the specification and rationale first and reach consensus on it before writing any code. | -| Copyright | The CIP must be explicitly licensed under acceptable copyright terms ([see below](#CIP-licensing)).| +## Specification -### CIP Workflow +### Types -A CIP begins as an idea about how to improve the Cardano network or its surrounding processes, with one or more individuals who are willing to propose and discuss the idea with the Cardano community. After initial discussion and feedback, the idea is then formalized into a properly formatted proposal and submitted as a pull request to the CIP repository. The resulting new Draft CIP is then publicly processed and progressed as follows: +Type | Description +--- | --- +Core | A core CIP describes a change affecting the Cardano blockchain's core components. For instance, a change in the ledger rules, a modification of the on-the-wire binary format or adjustments to the rewards and incentives strategy. +Process | A process defines a common standard to follow to achieve a certain degree of interoperability between various actors. It can be a formal document describing a specific procedure or a set of recommendations/guidelines on one particular topic. +Informational | An informational CIP documents a particular design decision. These are often written a posteriori to address a gap in understanding and knowledge sharing. -![CIP Flow](CIP_Flow.png) +### Structure +Each CIP must have the following parts: -#### How to progress from an idea into a draft CIP +Name | Description +--- | --- +Preamble | Headers containing metadata about the CIP ([see below](#header-preamble)). +Abstract | A short (\~200 word) description of the technical issue. +Motivation | A clear and short explanation that introduces the reason behind a proposal. Changing an established design, must outline design issues that motivate a rework. +Specification | The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow competing, interoperable implementations. +Rationale | The rationale fleshes out the specification by describing what motivated the design and what led to particular design decisions. It should describe alternate designs considered and related work. The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during the discussion. It must also explain how the proposal affects the backward compatibility of existing solutions when applicable. +Path to Active | A reference implementation, observable metrics or anything showing the acceptance of the proposal in the community. Any CIP must have an approved 'Path to Active' before it can move to 'Active'. It acts as a high-level roadmap for the proposal. +Copyright | The CIP must be explicitly licensed under acceptable copyright terms ([see below](#licensing)).
- 1. Skim through existing discussions and proposals. + Header preamble -If you have an idea you would like to propose, first search through previously proposed or discussed ideas in this repository and in public forums, and aim to extend an existing conversation if similar enough. If your idea is original or sufficiently distinct, start a new conversation thread to enable a discussion with the community. Favor public forums such as the [Cardano Developer forum](https://forum.cardano.org/c/developers/), [Cardano subreddit](https://reddit.com/r/cardano), or other active Cardano discussion places so that the community can weigh in on the proposition. You should seek feedback and try to build informal consensus, as well as keep track of any critical feedback so that you can address it later. -
+Each CIP must begin with an [RFC 822](https://www.ietf.org/rfc/rfc822.txt) key:value style header preamble (also known as 'front matter data'), preceded and followed by three hyphens (`---`). ---- +Field | Description +--- | --- +`CIP` | CIP number (without leading 0), or "\?" before being assigned +`Title` | A succinct and descriptive title +`Authors` | Comma-separated list of authors' real names and email addresses (e.g. John Doe ). +`Status` | Draft \| Proposed \| Active \| Obsolete +`Type` | Core \| Process \| Informational +`Created` | date created on, in ISO 8601 (YYYY-MM-DD) format +`License` | abbreviation of an approved license(s) -
- 2. Post a draft to the forum; engage with the community. - -When enough of an engaged conversation has taken place and the idea resonates with some, prepare a draft of your proposal. The draft proposal should be posted to the [Cardano CIPs forum](https://forum.cardano.org/c/developers/cips/122). -This provides formal visibility beyond the original discussion, and helps the author(s) clarify details of the proposal as it is circulated more widely. -Because the author or authors are responsible for collecting and summarizing community feedback in the next phase, long open-ended discussions should be avoided when creating the initial draft. Consider accepting private comments during the early design phases, setting up a wiki page, GitHub repository, or some other method to keep the discussion focused. -
+For example: +```yaml --- - -
- 3. Post a matured draft to the CIP repository. - -Once you've allowed enough time for feedback and a properly formatted ([see below section](#CIP-format-and-structure)) draft CIP has been written, it should be submitted to the [Cardano Improvement Proposals GitHub repository](https://github.com/cardano-foundation/CIPs) as a pull request, accompanied by a summary of the discussion so far in the comment section, with links where possible. - -Name the pull request in an informative fashion, such as "CIP-authorname-FormalVerificationMethods" so the function can be inferred from the title. Do not self-assign a CIP number. An editor will review and approve or reject your CIP, based on the following criteria. - -> To be accepted, a CIP must be a clear and complete description of the proposed enhancement, a net improvement to the ecosystem, without unduly complicating the protocol. - -> A rejection might be due to duplication of effort, disregard for formatting rules, being too unfocused, being too broad, being technically unsound, not providing proper motivation, not addressing backwards compatibility, or not keeping with the Cardano philosophy. -
- +CIP: 1 +Title: CIP process +Authors: Frederic Johnson , Sebastien Guillemot , Matthias Benkort , Duncan Coutts +Status: Active +Type: Process +Created: 2020-03-21 +License: CC-BY-4.0 --- +``` -
- 4. Wait for approval and/or feedback from the CIP editors. - -A CIP editor will assign a CIP number, select the appropriate CIP type (Standards, Informational, or Process), and merge the accepted draft CIP into the CIPs GitHub repository. Merging does not imply acceptance or agreement, merely the formalizing of the discussion. From here, the CIP status is said to be in "Draft" mode. To update the draft, the CIP author should submit pull requests as necessary.
---- - -> :bulb: **Keep in mind:** -> -> The community should resonate with a proposed idea before its formalization, no need formalizing a CIP nobody wants. -> Not every change should be a CIP, a minor patch or small feature is probably better submitted as an issue in the relevant repository (use your best judgement, the CIP editors can provide guidance). -> -> The more focused a CIP is, the easier it is to formalize and decide on. Strive to integrate a single key proposal, idea or concept. If in doubt, split it into smaller well-focused CIPs. -> -> Your weighing in publicly (on ideas or proposals you are qualified to review) is just as important as pushing new ideas - thanks for fostering an atmosphere of openness, welcoming critical opinions and supporting logical argumenting. Help others and provide advice when able to. - -#### CIP statuses - -| Status | Description | -| --- | --- | -| Draft | The idea has been formally accepted in the repository, and is being worked on by its authors. | -| Proposed | A working implementation exists, as well as a clear plan highlighting what is required for this CIP to transition to "Active". | -| Active | The proposal is deemed to have met all the appropriate criterias to be considered Active. | -| On Hold | The CIP author is not currently working on this effort. | -| Obsolete | The CIP was either retired or made obsolete by a newer CIP. | -| Rejected | There is some issue with the CIP that makes it not acceptable at this point. | - -#### How to champion a CIP beyond Draft / Progression to Active status - -Once a CIP has been merged into the CIP GitHub repository, it benefits from public exposure and the review of the CIP editors. However, work should still be driven by the author(s) towards the CIP being considered active. - -The author or authors of a CIP can decide at any time to change the status from draft to on hold if they are currently unable to proactively progress the CIP. -A CIP editor may also change the status to on hold if no progress is being made on the CIP for some time. - -A CIP's status should only be changed from draft (or rejected) to 'Proposed' when the author or authors deem it complete and it has a community-verifyiable explicit (Editor-approved) **path to 'Active'**: This could be a working implementation (where applicable), or a set of observable metrics on the network, but it should be clearly worded out in the CIP as its own section for all to refer to. - -A CIP can be rejected by a CIP editor for a few specific reasons. CIPs should be changed from draft or proposed status to rejected status, upon request by any person, if they have not been progressed for more than three years. A rejected CIP can be changed to proposed status if it meets the criteria described in the previous paragraph, and if the author or author(s) provide revisions that meaningfully address the original criticism of the proposal that caused it to be rejected. - -A proposed CIP may progress to active only when specific criteria reflecting real-world adoption have been met. These will be different for each CIP, depending on the nature of its proposed changes, which will be expanded on below. Evaluation of this status change should be objectively verifiable, and/or be discussed in the [Cardano CIPs forum](https://forum.cardano.org/c/developers/cips/122). - -When an active CIP is no longer relevant, its status may be changed to obsolete. This change must also be objectively verifiable and/or discussed. - -The procedure for a Process CIP to progress from draft to active is slightly different: a Process CIP may change status from draft to active when it achieves rough consensus in the community. Such a proposal is said to have rough consensus if it has been open to discussion on the [Cardano CIPs forum](https://forum.cardano.org/c/developers/cips/122) for at least one month, and no person maintains any unaddressed, substantiated objections to it. Addressed or obstructive objections may be ignored or overruled by general agreement that they have been sufficiently addressed, but clear reasoning must be given in such circumstances. - -For a CIP to progress to active status, it requires adoption from the majority of the Cardano economy, including ada holders, stake pools, and exchanges, among others. Adoption must be demonstrated by de facto usage of the CIP in practice. - - -Software authors are encouraged to publish summaries of what CIPs their software supports to aid in the verification of CIP status changes. Good examples of this (at the time of writing) can be observed in the [Bitcoin Core BIPs.md file](https://github.com/bitcoin/bitcoin/blob/master/doc/bips.md). - -These criteria are considered objective ways to observe the de facto adoption of a CIP, and are not to be used as reasons to oppose or reject a CIP. Should a CIP become unambiguously adopted despite not meeting the criteria outlined here, it should still be updated to active status. - -### CIP header preamble - -Each CIP must begin with an [RFC 822](https://www.ietf.org/rfc/rfc822.txt) style header preamble, preceded and followed by three hyphens (`---`). The headers are required in the following order but the ones flagged with "\*" are optional. - -| Field | Description | -| --- | --- | -| `CIP` | CIP number, or "\?" before being assigned | -| `Title CIP title` | maximum 44 characters | -| `Author` | list of authors' real names and email addrs | -| * `Discussions-To` | email addrs | -| * `Comments-Summary` | summary tone | -| `Comments-URI` | links to wiki page for comments | -| `Status` | Draft | Proposed | On Hold | Rejected | Active | Obsolete | -| `Type` | Standards Track | Informational | Process | -| `Created` | date created on, in ISO 8601 (yyyy-mm-dd) format | -| `License` | abbreviation for approved license(s) | -| * `License-Code` | abbreviation for code under different approved license(s) | -| * `Post-History` | dates of postings to Cardano Dev Forum, or link to thread | -| * `Requires` | CIP number(s) | -| * `Replaces` | CIP number | -| * `Superseded-By` | CIP number | +
+ Licensing +The following licenses are accepted. Each new CIP must identify at least one acceptable license in its preamble. In addition, each license must be referenced by its respective abbreviation below. -The Author(s) header lists the names and email addresses of the author or authors of the CIP. -The format of the Author(s) header value must be: +#### Recommended licenses - Random J. User \ +- for software / code: Apache-2.0: [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0) +- for documentation: CC-BY-4.0: [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode) -If there are multiple authors, each should be on a separate line following RFC 2822 continuation line conventions. +#### Unacceptable licenses -While a CIP is in private discussions (usually during the initial draft phase), a Discussions-To header will indicate the mailing list or URL where the CIP is being discussed. No Discussions-To header is necessary if the CIP is being discussed privately with the author. +All licenses not explicitly included in the above lists are not acceptable terms for a Cardano Improvement Proposal unless a later CIP extends this one to add them. -The Type header specifies the type of CIP: Standards Track, Informational, or Process. +
-The Created header records the date that the CIP was assigned a number, while Post-History is used to record when new versions of the CIP are posted to Cardano mailing lists. -Dates should be in yyyy-mm-dd format, e.g. 2001-08-14. +

+ A reference template is available in .github/CIP-TEMPLATE.md. +

-CIPs may have a Requires header, indicating the CIP numbers that this CIP is dependent on. +### Statuses -CIPs may also have a Superseded-By header, indicating that a CIP has been rendered obsolete by a later document. The value is the number of the CIP that replaces the current document. The newer CIP must have a Replaces header containing the number of the CIP that it rendered obsolete. +From its creation and onwards, a proposal evolves around the following statuses. +Status | Description +--- | --- +Draft | An implicit status given to newly proposed CIPs that haven't yet been validated or reviewed. Historically, some CIPs have been merged as 'Draft'. +Proposed | Any proposal which is not yet active but that has been reviewed, accepted and is now working towards acceptance. A 'Proposed' CIP must have a clear path to 'Active' defined and approved which defines the criteria it must meet in order to become 'Active'. +Active | The proposal has completed all steps needed for its activation. Said differently, it means observable metrics showing its adoption in the ecosystem. +Obsolete | A retired CIP or one made obsolete by a newer CIP. +Rejected | A proposal rejected for various reasons, but kept nonetheless for the record. It may also indicate ideas that were considered but deemed invalid, as a way to inform future authors. -### Auxiliary Files +### Repository organization -CIPs may include auxiliary files such as diagrams. Auxiliary files should be included in that CIP's directory, or must be named CIP-XXXX-Y.ext, where "XXXX" is the CIP number, "Y" is a serial number (starting at 1), and "ext" is replaced by the actual file extension (e.g. "png"). +CIP editors should strive to keep up to date with general technical conversations and Cardano proposals. For each new draft proposal submitted on [cardano-foundation/CIPs](https://github.com/cardano-foundation/CIPs/pulls) an editor might review it as follows: +- Read the proposal to check if it is ready, sound, and complete. +- Check if it has been [properly formatted](#structure). +- Check if sufficient time has been allowed for proper discussion amongst the community. +- Ensure the motivation behind the CIP is valid and that design choices have relevant justifications or rationale. +- Confirm licensing terms are acceptable. +- Assign a CIP number +- Suggest a different type for a CIP +- Request wording/grammar adjustments -### CIP Editors +CIPs that do not meet a sufficient level of quality or don't abide by the process described in this document will be rejected until their authors address review comments. -CIP editors serve as stewards of the Cardano ecosystem, here to support and progress CIPs in their various stages within the community and protocol. If you have questions regarding the CIP process, they can point you in the right direction. They provide support for users trying to create a CIP, monitor that the CIP process is fair, formalized, objective, and to facilitate knowledge transfer through the CIPs themselves. +Note that editors may provide technical feedback on proposals in some cases, although they aren't expected to be the sole technical reviewers of proposals. CIPs are, before anything, a community-driven effort. While editors are here to facilitate the discussion and mediate debates, they aren't necessarily technical experts on all subjects covered by CIPs. Therefore, the editors' duty also comprises finding relevant technical experts to review proposals. CIPs authors are also encouraged to reach out to known experts to demonstrate their good faith and openness when they champion a proposal. +Current editors are listed here below: | Frederic Johnson
[@crptmppt][] | Matthias Benkort
[@KtorZ][] | Sebastien Guillemot
[@SebastienGllmt][] | Robert Phair
[@rphair][] | | --- | --- | --- | --- | @@ -195,105 +138,48 @@ CIP editors serve as stewards of the Cardano ecosystem, here to support and prog [@SebastienGllmt]: https://github.com/SebastienGllmt [@rphair]: https://github.com/rphair -CIP editors should strive to keep up to date with general technical conversations and Cardano proposals. For each new draft proposal submitted in , an editor might review it as follows: - -- Read the proposal to check if it is ready, sound, and complete. -- Check if it has been [properly formatted](#CIP-format-and-structure). -- Check if sufficient time has been allowed for proper discussion amongst the community. -- Ensure the motivation behind the CIP is valid and (if applicable) backward compatibility is addressed. -- Confirm licensing terms are acceptable. - -If the draft proposal isn't ready, an editor might notify the author and request appropriate revisions. - -Draft proposals submitted to the [CIPs GitHub repository](https://github.com/cardano-foundation/CIPs) that get accepted will see an editor: -- Assign a CIP number -- Assign a type -- Merge the pull request -- List the CIP in the parent directory's [README.md](../README.md) - -Proposals that get rejected by an editor will have the reason for the rejection in the comment section. - -CIP Editors are intended to fulfill administrative and editorial responsibilities: monitor CIP changes, update CIP headers, and facilitate the CIP discussion and submition process. Off-list CIP-related correspondence should be sent (or CC'd) to . +### Progression -### CIP comments +##### 1. Authors open pull requests with their proposal -Each CIP should, in its preamble, link to a public page with a summary tone of the comments on that page. -Reviewers of the CIP who consider themselves qualified, should post their own comments on that public page. -The comments page should generally only be used to post final comments for a completed CIP. -If a CIP is not yet completed, reviewers should instead post on the applicable development mailing list thread to allow the CIP author(s) to address any concerns or problems pointed out by the review. +Proposals must be submitted to the [cardano-foundation/CIPs](https://github.com/cardano-foundation/CIPs/pulls) repository as a pull request named after the proposal's title. Ideally, the community should have already discussed a proposal before its submission. Early reviews streamline the process down the line -- although it isn't a strict requirement. -Some CIPs receive exposure outside the development community prior to completion, and other CIPs might not be completed at all. To avoid a situation where critical CIP reviews may go unnoticed during this period, reviewers may, at their option, still post their review on the comments page, provided they first post it to the forum and plan to later remove or revise it as applicable based on the completed version. Such revisions should be made by editing the previous review and updating the timestamp. Reviews made prior to the complete version may be removed if they are no longer applicable and have not been updated in a timely manner. +##### 2. Editors triage proposals bi-weekly, community technical reviews ensue. -Pages must be named after the full CIP number (eg, "CIP 0001") and placed in the "Comments" namespace. -For example, the link for CIP 1 will be . +CIP editors meet regularly (on a 2-week cadence) in [a public Discord server](https://discord.gg/Jy9YM69Ezf) to go through newly proposed ideas in a "triage" phase. As a result of a triage, editors acknowledge new CIPs, and briefly review their preamble. It is recommended not yet to assign a number and pick `?` when first opening a proposal. Instead, editors will allocate a temporary number as part of the triage phase. The triage also allows new CIPs to get visibility for potential reviews. -Comments posted to this wiki should use the following format: +In every meeting, editors will also review in more depth some chosen CIPs (based on their readiness and the stability of the discussions about them). The goal of a review is to assess points mentioned earlier and, in particular, judge whether a CIP is reaching a consensus within the community. A proposal must also have an approved (by the editors) path to 'Active', demonstrating the adoption of the CIP to move forward. Each proposal is unique and has a bespoke path to 'Active', which must then be reviewed case-by-case. - --, +##### 3. Once reviewed, proposals are merged as 'Proposed' or 'Rejected' -CIPs may also choose to list a second forum for CIP comments, in addition to the CIPs wiki. -In this case, the second forum's URI should be listed below the primary wiki's URI. +Once accepted, CIPs are merged with the status `Proposed` until they meet their path to 'Active' requirements. In some cases (mainly in the case of informational CIPs), proposals may be merged as `Active` immediately. In general, however, there must be sufficient time between the first appearance of a proposal and its acceptance into the repository to ensure enough opportunity for community members to review it. -After some time, the CIP itself may be updated with a summary tone of the comments. -Summary tones may be chosen from the following, but this CIP does not intend to cover all possible nuances and other summaries may be used as needed: +Ideas deemed unsound shall be rejected with justifications or withdrawn by the authors. Similarly, proposals that appear abandoned by their authors shall be rejected until resurrected by their authors or another community member. -- No comments yet. -- Unanimously recommended for implementation -- Unanimously discourage for implementation -- Mostly recommended for implementation, with some discouragement -- Mostly discouraged for implementation, with some recommendation +##### 4. Authors work towards completeness following their path to 'Active' -For example, the preamble to CIP 1 might be updated to include the line: +Once merged, authors shall champion their proposals and work towards their transition to active. In particular, once all of the path to 'Active' requirements have been met, authors, shall make another pull request to change their CIP's status to `Active`. Editors may also do this on occasion. - Comments-Summary: No comments yet. - Comments-URI: https://github.com/cardano-foundation/CIPs/wiki/Comments:CIP-0001 - https://some-other-wiki.org/CIP_1_Comments +### Comments -These fields must follow the "Discussions-To" header defined in CIP 1 (if that header is not present, it should follow the position where it would be present; generally this is immediately above the Status header). +Discussions and comments shall mainly happen on Github in pull requests. Outcomes of bi-weekly meetings shall be reported as bullet-point feedback to CIPs authors. When discussed on other mediums, we expect authors or participants to report back a summary of their discussions to the original pull request to keep track of the most critical conversations in a written form and all in one place. A dedicated Discord channel may also be created for some long-running discussions to support quick chats and progress on particular topics (while still being regularly summarized on the repository). -To avoid doubt: comments and status are unrelated metrics to judge a CIP, and neither should be directly influencing the other. +As much as possible, commenters/reviewers shall remain unbiased in their judgement and assess proposals in good faith. Authors have the right to reject comments or feedback but are strongly encouraged to address concerns in their 'Rationale' section. Ultimately, CIP editors shall make the last call concerning the various statements made on a proposal and their treatment by the author(s). -- Due to the low barrier of entry for submission of new CIPs, it seems advisable for a way for reviewers to express their opinions on them in a way that is consumable to the public without needing to review the entire development discussion. -- Those commenting on CIPs should refrain from commenting outside of their area of knowledge or expertise. However, comments should not be censored, and participation should be open to the public. - -### Transferring CIP ownership - -It occasionally becomes necessary to transfer ownership/authorship of a CIP. The original author might no longer have the time or interest to update the CIP, progress, or simply has disappeared. Not agreeing with the direction of the CIP shouldn't be a reason to transfer ownership. - -If you feel a CIP has been abandoned and want to take over ownership of it, send a message addressed to both the original author and the CIP editor, with the reasoning for your stepping up. The CIP editor will, at their discretion, decide if you should be made the author and the original author moved to co-author to preserve historical ties (circumstances permitting, pending a response from the original author, who might prefer to be taken off the CIP altogether). All changes will also be considered reversible. - -### CIP licensing - -New CIPs may be accepted with the following licenses. Each new CIP must identify at least one acceptable license in its preamble. The License header in the preamble must be placed after the Created header. Each license must be referenced by their respective abbreviation given below. - -#### Recommended license - - -- for Software (for code): Apache-2.0: [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0) -- for documentation: CC-BY-4.0: [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode) - -Example: This file is documentation, and therefore subject to CC-BY-4.0 (and not subject to Apache 2.0). - - -#### Unacceptable licenses - -All licenses not explicitly included in the above lists are not acceptable terms for a Cardano Improvement Proposal unless a later CIP extends this one to add them. - -## Motivation - -The motivation for this CIP is to create a public platform that can be used for sharing Cardano improvement ideas and specifications with the community, allowing the Cardano network to grow and advance over time. +By opening pull requests or posting comments, commenters and authors agree to our [Code of Conduct](../CODE_OF_CONDUCT.md). Any comment infringing this code of conduct shall be removed or altered without prior notice. ## Rationale -This CIP is needed to establish a process by which other CIPs can be implemented. It draws heavily on Bitcoin's BIP process. +- This is the second major iteration of this document, which aims at simplifying the process and capturing the current reality of the CIP process. Over time, the process has evolved to reach the form described above. While some points may still need to be addressed, we will address them in future updates or extensions to this CIP. +- Status has been simplified to the minimum as experience has proven a thinner granularity unnecessary. -## Copyright +- The choice of a code of conduct has been made following other popular open source initiatives. It serves as a good, unilaterally accepted foundation which can be later revisited if necessary. -This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode) +## Path to Active +N/A -### See Also +## Copyright -- [BIP 2: BIP process, revised](https://github.com/bitcoin/bips/blob/master/bip-0002.mediawiki) -- [RFC 7282: On Consensus and Humming in the IETF](https://tools.ietf.org/html/rfc7282) +This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode). diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..399058048 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at cip@cardanofoundation.org. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/README.md b/README.md index 9ef2a5b75..cebcf2f65 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,18 @@ # Cardano Improvement Proposals (CIPs) -Cardano Improvement Proposals (CIPs) describe standards, processes; or provide general guidelines or information to the Cardano Community. It is a formal, technical communication process that exists off-chain. CIPs do **not** represent a commitment of any form towards existing projects. Rather, they are a collection of sensible and sound solutions to common problems within the Cardano ecosystem. CIPs evolves around different statuses, driven by one or more authors: +Cardano Improvement Proposals (CIPs) describe standards, processes; or provide general guidelines or information to the Cardano Community. It is a formal, technical communication process that exists off-chain. CIPs do **not** represent a commitment of any form towards existing projects. Rather, they are a collection of sensible and sound solutions to common problems within the Cardano ecosystem. CIPs evolves across different statuses, driven by one or more authors: -| Status | Description | -| --- | --- | -| Draft | The idea has been formally accepted in the repository and is being worked on by its authors. | -| Proposed | A working implementation exists, as well as a clear plan highlighting what is required for this CIP to transition to "Active". | -| Active | The proposal is deemed to have met all the appropriate criteria to be considered Active. | -| On Hold | The CIP author is not currently working on this effort. | -| Obsolete | The CIP was either retired or made obsolete by a newer CIP. | -| Rejected | There is some issue with the CIP that makes it not acceptable at this point. | +Status | Description +--- | --- +Draft | An implicit status given to newly proposed CIPs that haven't yet been validated or reviewed. Historically, some CIPs have been merged as 'Draft'. +Proposed | Any proposal which is not yet active but that has been reviewed, accepted and is now working towards acceptance. A 'Proposed' CIP must have a clear path to 'Active' defined and approved which defines the criteria it must meet in order to become 'Active'. +Active | The proposal has completed all steps needed for its activation. Said differently, it means observable metrics showing its adoption in the ecosystem. +Obsolete | A retired CIP or one made obsolete by a newer CIP. +Rejected | A proposal rejected for various reasons, but kept nonetheless for the record. It may also indicate ideas that were considered but deemed invalid, as a way to inform future authors. It is therefore quite common for proposals and implementations to be worked on concomitantly. Even more so that a working implementation (when relevant) is a mandatory condition for reaching an `Active` status. -The entire process is described in greater detail in [CIP1 - "CIP Process"](./CIP-0001). +The entire process is described in greater detail in [CIP-0001 - "CIP Process"](./CIP-0001). ### Reviewed Proposals @@ -71,11 +70,11 @@ The entire process is described in greater detail in [CIP1 - "CIP Process"](./CI

Last updated on 2022-09-27

-> 💡 For more details about Statuses, refer to [CIP1](./CIP-0001). +> 💡 For more details about Statuses, refer to [CIP-0001](./CIP-0001). ### Proposals Under Review -Below are listed tentative CIPs still under discussion with the community. Discussions and progress will be reviewed by CIP editors in bi-weekly meetings held [on Discord](https://discord.com/channels/971785110770831360/973185848759701504) ([invite](https://discord.gg/qd6jE9Xj)), then transcribed and summarized [here](https://github.com/cardano-foundation/CIPs/tree/master/BiweeklyMeetings). Note that they are listed below for easing navigation and also tentatively allocating numbers to avoid clashes later on. +Below are listed tentative CIPs still under discussion with the community. They are listed below for easing navigation and also tentatively allocating numbers to avoid clashes later on. | **#** | **Title** | | --- | --- | @@ -118,14 +117,13 @@ The following list contains proposals that have been under review and for which

Last updated on 2022-09-27

-### CIP creation process as a Sequence Diagram +### Communication Channels -  “_Alice has a Cardano idea she'd like to build more formally…_” +Extend or discuss ‘ideas’ in the [Developer Forums](https://forum.cardano.org/c/developers/cips/122), Cardano’s Official [Developer Telegram Group](https://t.me/CardanoDevelopersOfficial) or in `#developers` in Cardano Ambassadors Slack. -![Diagram: Mary interacting with community and editors for a Cardano Proposal](https://raw.githubusercontent.com/cardano-foundation/CIPs/master/BiweeklyMeetings/sequence_diagram.png "sequence_diagram.png") +Discussions and progress will be reviewed by CIP editors in bi-weekly meetings held [on Discord](https://discord.gg/Jy9YM69Ezf), then transcribed and summarized [in the BikweeklyMeetings folder](https://github.com/cardano-foundation/CIPs/tree/master/BiweeklyMeetings). -Extend or discuss ‘ideas’ in the [Developer Forums](https://forum.cardano.org/c/developers/cips/122), Cardano’s Official [Developer Telegram Group](https://t.me/CardanoDevelopersOfficial) or in `#developers` in Cardano Ambassadors Slack. -CIP Editors meetings are public and [recorded](https://www.youtube.com/playlist?list=PL831pmH4tfw1YkMK4FhBzoHyuSaadjdxn): do join and participate for discussions/PRs of significance to you. +CIP Editors meetings are public, recorded and [published on Youtube](https://www.youtube.com/playlist?list=PL831pmH4tfw1YkMK4FhBzoHyuSaadjdxn): do join and participate for discussions/PRs of significance to you. > To facilitate browsing and information sharing for non-Github users, an auto-generated site is also provided at [cips.cardano.org](https://cips.cardano.org/). diff --git a/cip-template.md b/cip-template.md deleted file mode 100644 index f2a874ce2..000000000 --- a/cip-template.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -CIP: -Title: -Authors: -Discussions-To: -Comments-Summary: -Comments-URI: -Status: -Type: -Created: -* License: -* License-Code: -* Post-History: -* Requires: -* Replaces: -Superseded-By: ---- -This is the suggested template for new CIPs. - -Note that a CIP number will be assigned by an editor. When opening a pull request to submit your CIP, please use an abbreviated title in the filename, cip-johndoe-banktheunbanked.md. - -The title should be 44 characters or less. - -## Preamble - -RFC 822 style headers containing metadata about the CIP, including the CIP number, a short descriptive title (limited to a maximum of 44 characters), the names, and optionally the contact info for each author, etc. - -## Simple Summary - -If you can't explain it simply, you don't understand it well enough." Provide a simplified and layman-accessible explanation of the CIP. - -## Abstract - -A short (~200 word) description of the technical issue being addressed. - -## Motivation - -The motivation is critical for CIPs that want to change the Cardano protocol. It should clearly explain why the existing protocol specification is inadequate to address the problem that the CIP solves. CIP submissions without sufficient motivation may be rejected outright. - -## Specification - -The technical specification should describe the syntax and semantics of any new feature. The specification should be detailed enough to allow competing, interoperable implementations. - -## Rationale - -The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work, e.g. how the feature is supported in other languages. The rationale may also provide evidence of consensus within the community, and should discuss important objections or concerns raised during the discussion. - - - -## Backward Compatibility - -All CIPs that introduce backward incompatibilities must include a section describing these incompatibilities and their severity. The GIP must explain how the author proposes to deal with these incompatibilities. GIP submissions without a sufficient backward compatibility treatise may be rejected outright. - -## Test Cases - -Test cases for implementation are mandatory for CIPs that are affecting consensus changes. Other CIPs can choose to include links to test cases if applicable. - -## Implementations - -The implementations must be completed before any CIP is given status “Active”, but it need not be completed before the CIP is accepted. While there is merit to the approach of reaching consensus on the specification and rationale before writing code, the principle of “rough consensus and running code” is still useful when it comes to resolving many discussions of API details. - -## Copyright - - - -This CIP is licensed under Apache-2.0