diff --git a/DCIPs/dcip-1.md b/DCIPs/dcip-1.md new file mode 100644 index 0000000..e51ba27 --- /dev/null +++ b/DCIPs/dcip-1.md @@ -0,0 +1,9 @@ +--- +dcip: 1 +title: DCIP-1(unfinished) DCIP Purpose and Guidelines +author: Omar Octavio Huerta Valdez (@bleeckersteker) +status: Living +type: Standards Track +category: Core +created: +--- diff --git a/DCIPs/dcip-2.md b/DCIPs/dcip-2.md new file mode 100644 index 0000000..81dc95e --- /dev/null +++ b/DCIPs/dcip-2.md @@ -0,0 +1,133 @@ +--- +dcip: 2 +title: DCIP-2 Meetings +author: David E. Perez Negron R. (@P1R) +status: Final +type: Standards Track +category: Core +created: 2023-02-01 +--- + +## Simple Summary + +Agile Meeting, types, organization and incentives. + + +## Abstract + +The Proposal is an extension from the DCF DAO Phase0 time measurements proposal to be implemented at the DCF DAO Phase1. There where DCF Agile mandatory meetings, but also some community request meetings and emergency or extra meetings online or even AFK at the foundation office. This proposal intends to Standarize the way meetings can be measured, whichones are mandatory and make them as more agile as possible. + + +## Motivation + +To have more agile, responsable and organized meetings. + +## Specification: meeting types, participant types and incentives + +### 1. Mandatory Meetings (Agile): + +For the members which are asociated to the foundation, gets incentives by the foundation/projects and/or donates work, requires a constant comunication and organization, this members are responsable to attend **at least 75% and being active participant** of the mandatory meetings which are the following: + +The 60 min calls are on 19:00 Mexico City time are Mondays. Topics to perform: +* Review the last sprint tasks and approve the economic incentive by the DAO. +* Fill a balance Sheet/Table for each participant and his tasks with the project and total finished task added balance. +* Asign task for the current sprint (week) between the team members and areas (currenty Administration and Development). +* Brainstorm an approach by consensus an estimate economic incentive for the tasks developers. + +>Sprint tasks must be considered either as finished or functional. They should not be considered if they are partially done or something that is not proven to be functional. + +The 15 min calls on 19:00 Mexico City time are Tuesdays, Thursdays and Saturdays. Topics: Communication, Syncronization and Support between the team on the workflow and tasks + +The 25% of the whole payment is for attending to this meetings which is the biggest responsibility for our workflow and communication. So anyone involved into the workflow should be at least at 75% of the measured calls time (t). + +$$ t >= 315min $$ + +Any skipped minute will be slashed from the total payment as following this equation: + +$$ TP = TTD * \dfrac{MA}{t}$$ + +where: + +TP = Total Payment + +TTD = Total Tasks Deliveries + +MA = Minutes Attendance + +t = Total of minutes calls for the month +>**Currently monthly total calls time is 420 minutes** + + +##### Extra considerations: + +1.1. There is also Right to change one 15 min call right monthly (24Hrs before) + +1.2. If the Minutes Attendance /420 = 1; there should be a consideration or badge for attendance with a future reward. + +1.3. If some one attends less or equal to 75% of the meetings unjustified there should be a quorum to propose a solution in regards the issue. + +1.4. Proposed by Bleecker. If the mandatory call extends there should be an incentive based on the incentives model section. The extension can only be at maximum 50% extra from the original schueduled time, other way there should be a rescheduled call. + +##### The only situation where we can skip Minutes Attendance are: + +* Medical issues which require a justification proof (not always from the same source medic since it can be part of a corruption model). + +### 2. Community Calls + +2.1. Community calls should be approved by the DAO. + +2.2. Community Calls that can ensure income to the foundation either economical or by community work donation should be considered for an incentive to the Participants + +2.3. Proposed by Bleecker. All comunity calls should have a total time scheduled, with no extra time added, the moderator and time set for the participants that will get incentives can be marked as active for the time they perform the community call. + + +### 3. Office or AFK Meetings +> All participants should be considered [`Active User`](#Active-User) since it is hard to fake out this type of meeting. + +### Incentive and Participants types + +**Justification**: Team Call incentives, meetings and others, should be consider more as simbolic since we are working on an already incentiviced tasks: + +1. We do not want to promote useless long calls following the agile methodologies, +2. Incentives must not be too big but enough to promote teamwork, this is a proposed price to each individual (per hour on a specific task). +3. On mandatory calls unattendance or missing minutes attendance users should not be include into the incentive extra time. + +#### Participative User +incentive: 1.4USD Hour. + +> Note: To review how to verify participative person + +#### Active User +Mostly a Speaker/ Moderator +incentive: 6USD Hour. + + +#### How to verify Participance? + +##### Random Ping Pong verification +Proposed model by p1r0 where the Moderator ask random time random participation cuestion to random asistend to consider elegible to participative incentive. + +## Implementation + +DCF Phase0 Proposal was already implemented and tested while we found multiple issues that + + +## References + +\[1\] P1R0; Bleecker,"DCF DAO Phase0", https://hackmd.io/A9LNZFTlQsC32gqDw1C7EQ, 01-2023. + + + +## Copyright +``` +Copyright (C) DECENTRALIZED CLIMATE FOUNDATION A.C. +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 +or any later version published by the Free Software Foundation; +with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +A copy of the license is included in the section entitled "GNU +Free Documentation License". +``` + + + diff --git a/DCIPs/dcip-3.md b/DCIPs/dcip-3.md new file mode 100644 index 0000000..dea413b --- /dev/null +++ b/DCIPs/dcip-3.md @@ -0,0 +1,9 @@ +--- +dcip: 3 +title: DCIP-3(unfinished) Tasks +author: David E. Perez Negron R. (@P1R) +status: Living +type: Standards Track +category: Core +created: +--- diff --git a/README.md b/README.md index 09f4a06..31f3e5b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Decentralized Climate Improvement Proposals (DCIPs) -The goal of the DCIP project is to standardize and provide high-quality documentation for Decentralized Climate itself and conventions built upon it. This repository tracks past and ongoing improvements to Decentralized Climate in the form of Decentralized Climate Improvement Proposals (DCIPs). [DCIP-1](dcips.decentralizedclimate.org/EIPS/dcip-1) governs how DCIPs are published. +The goal of the DCIP project is to standardize and provide high-quality documentation for Decentralized Climate itself and conventions built upon it. This repository tracks past and ongoing improvements to Decentralized Climate in the form of Decentralized Climate Improvement Proposals (DCIPs). [DCIP-1](dcips.decentralizedclimate.org/DCIPS/dcip-1) governs how DCIPs are published. The [status page](https://dcips.decentralizedclimate.org/) tracks and lists DCIPs, which can be divided into the following categories: @@ -9,39 +9,39 @@ The [status page](https://dcips.decentralizedclimate.org/) tracks and lists DCIP - [Interface DCIPs](https://dcips.decentralizedclimate.org/interface) standardize interfaces to Decentralized Climate, which determine how users and applications interact with the blockchain. - [ERCs](https://dcips.decentralizedclimate.org/erc) specify application layer standards, which determine how applications running on Decentralized Climate can interact with each other. - [Meta DCIPs](https://dcips.decentralizedclimate.org/meta) are miscellaneous improvements that nonetheless require some sort of consensus. -- [Informational DCIPs](https://eips.decentralizedclimate.org/informational) are non-standard improvements that do not require any form of consensus. +- [Informational DCIPs](https://dcips.decentralizedclimate.org/informational) are non-standard improvements that do not require any form of consensus. -**Before you write an DCIP, ideas MUST be thoroughly discussed on [Decentralized Climate Magicians](https://ethereum-magicians.org/) or [Decentralized Climate Research](https://ethresear.ch/t/read-this-before-posting/8). Once consensus is reached, thoroughly read and review [EIP-1](https://eips.ethereum.org/EIPS/eip-1), which describes the EIP process.** +**Before you write an DCIP, ideas MUST be thoroughly discussed on [Decentralized Climate Magicians](https://ethereum-magicians.org/) or [Decentralized Climate Research](https://ethresear.ch/t/read-this-before-posting/8). Once consensus is reached, thoroughly read and review [DCIP-1](https://dcips.ethereum.org/DCIPS/dcip-1), which describes the DCIP process.** -Please note that this repository is for documenting standards and not for help implementing them. These types of inquiries should be directed to the [Decentralized Climate Stack Exchange](https://ethereum.stackexchange.com). For specific questions and concerns regarding EIPs, it's best to comment on the relevant discussion thread of the EIP denoted by the `discussions-to` tag in the EIP's preamble. +Please note that this repository is for documenting standards and not for help implementing them. These types of inquiries should be directed to the [Decentralized Climate Stack Exchange](https://ethereum.stackexchange.com). For specific questions and concerns regarding DCIPs, it's best to comment on the relevant discussion thread of the DCIP denoted by the `discussions-to` tag in the DCIP's preamble. -If you would like to become an EIP Editor, please read [EIP-5069](./EIPS/eip-5069.md). +If you would like to become an DCIP Editor, please read [DCIP-5069](./DCIPS/dcip-5069.md). ## Preferred Citation Format -The canonical URL for an EIP that has achieved draft status at any point is at . For example, the canonical URL for EIP-1 is . +The canonical URL for an DCIP that has achieved draft status at any point is at . For example, the canonical URL for DCIP-1 is . -Consider any document not published at as a working paper. Additionally, consider published EIPs with a status of "draft", "review", or "last call" to be incomplete drafts, and note that their specification is likely to be subject to change. +Consider any document not published at as a working paper. Additionally, consider published DCIPs with a status of "draft", "review", or "last call" to be incomplete drafts, and note that their specification is likely to be subject to change. ## Validation and Automerging All pull requests in this repository must pass automated checks before they can be automatically merged: -- [eip-review-bot](https://github.com/ethereum/eip-review-bot/) determines when PRs can be automatically merged [^1] -- DCIP-1 rules are enforced using [`eipw`](https://github.com/ethereum/eipw)[^2] +- [dcip-review-bot](https://github.com/ethereum/dcip-review-bot/) determines when PRs can be automatically merged [^1] +- DCIP-1 rules are enforced using [`dcipw`](https://github.com/ethereum/dcipw)[^2] - HTML formatting and broken links are enforced using [HTMLProofer](https://github.com/gjtorikian/html-proofer)[^2] - Spelling is enforced with [CodeSpell](https://github.com/codespell-project/codespell)[^2] - - False positives sometimes occur. When this happens, please submit a PR editing [.codespell-whitelist](https://github.com/ethereum/EIPs/blob/master/config/.codespell-whitelist) and **ONLY** .codespell-whitelist + - False positives sometimes occur. When this happens, please submit a PR editing [.codespell-whitelist](https://github.com/ethereum/DCIPs/blob/master/config/.codespell-whitelist) and **ONLY** .codespell-whitelist - Markdown best practices are checked using [markdownlint](https://github.com/DavidAnson/markdownlint)[^2] -[^1]: https://github.com/ethereum/EIPs/blob/master/.github/workflows/auto-review-bot.yml -[^2]: https://github.com/ethereum/EIPs/blob/master/.github/workflows/ci.yml +[^1]: https://github.com/ethereum/DCIPs/blob/master/.github/workflows/auto-review-bot.yml +[^2]: https://github.com/ethereum/DCIPs/blob/master/.github/workflows/ci.yml It is possible to run the DCIP validator locally: ```sh -cargo install eipv -eipv +cargo install dcipv +dcipv ``` ## Build the status page locally diff --git a/_config.yml b/_config.yml index e25ae80..bad2463 100644 --- a/_config.yml +++ b/_config.yml @@ -27,7 +27,7 @@ header_pages: - core.html - networking.html - interface.html - - erc.html +# - erc.html - meta.html - informational.html @@ -37,7 +37,7 @@ markdown: kramdown theme: minima kramdown: parse_block_html: false - # This is the default, but be explicit as some EIPs depend on it + # This is the default, but be explicit as some DCIPs depend on it auto_ids: true # This is to ensure more determistic behaviour auto_id_stripping: true @@ -48,7 +48,7 @@ permalink: /:slug defaults: - scope: - path: "DCIPS" + path: "DCIPs" values: layout: "dcip" @@ -61,7 +61,7 @@ exclude: - vendor/cache/ - vendor/gems/ - vendor/ruby/ - - eip-template.md + - dcip-template.md - ISSUE_TEMPLATE.md - PULL_REQUEST_TEMPLATE.md - README.md diff --git a/_includes/dcipnums.html b/_includes/dcipnums.html new file mode 100644 index 0000000..f72fb0d --- /dev/null +++ b/_includes/dcipnums.html @@ -0,0 +1,4 @@ +{% assign dcips=include.dcips|split:"," %} +{% for dcipnum in dcips %} + DCIP-{{dcipnum|strip}}{% if forloop.last == false %}, {% endif %} +{% endfor %} diff --git a/_includes/eiptable.html b/_includes/dciptable.html similarity index 56% rename from _includes/eiptable.html rename to _includes/dciptable.html index e2e2a78..3c8b304 100644 --- a/_includes/eiptable.html +++ b/_includes/dciptable.html @@ -1,29 +1,29 @@ {% for status in site.data.statuses %} - {% assign eips = include.eips|where:"status",status|sort:"eip" %} - {% assign count = eips|size %} + {% assign dcips = include.dcips|where:"status",status|sort:"dcip" %} + {% assign count = dcips|size %} {% if count > 0 %}

{{status}}

- +
{% if status == "Last Call" %} - + {% else %} - + {% endif %} - {% for page in eips %} + {% for page in dcips %} - + {% if status == "Last Call" and page.last-call-deadline != undefined %} {% endif %} diff --git a/_includes/eipnums.html b/_includes/eipnums.html deleted file mode 100644 index 4edcd30..0000000 --- a/_includes/eipnums.html +++ /dev/null @@ -1,4 +0,0 @@ -{% assign eips=include.eips|split:"," %} -{% for eipnum in eips %} - EIP-{{eipnum|strip}}{% if forloop.last == false %}, {% endif %} -{% endfor %} diff --git a/_includes/head.html b/_includes/head.html index b7bb45f..5d3414a 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -2,13 +2,13 @@ - {% if page.layout == "eip" %} + {% if page.layout == "dcip" %} {% if page.category == "ERC" %} - ERC-{{ page.eip }}: {{ page.title | escape }} - + ERC-{{ page.dcip }}: {{ page.title | escape }} + {% else %} - EIP-{{ page.eip }}: {{ page.title | escape }} - + DCIP-{{ page.dcip }}: {{ page.title | escape }} + {% endif %} diff --git a/_includes/social.html b/_includes/social.html index a4983cc..2add1a9 100644 --- a/_includes/social.html +++ b/_includes/social.html @@ -2,7 +2,7 @@ {%- if site.dribbble_username -%}
  • {{ site.dribbble_username| escape }}
  • {%- endif -%} {%- if site.facebook_username -%}
  • {{ site.facebook_username| escape }}
  • {%- endif -%} {%- if site.flickr_username -%}
  • {{ site.flickr_username| escape }}
  • {%- endif -%} -
  • ethereum/EIPs
  • +
  • ethereum/DCIPs
  • {%- if site.instagram_username -%}
  • {{ site.instagram_username| escape }}
  • {%- endif -%} {%- if site.linkedin_username -%}
  • {{ site.linkedin_username| escape }}
  • {%- endif -%} {%- if site.pinterest_username -%}
  • {{ site.pinterest_username| escape }}
  • {%- endif -%} diff --git a/_layouts/eip.html b/_layouts/eip.html index a2d3c06..1f9c212 100644 --- a/_layouts/eip.html +++ b/_layouts/eip.html @@ -20,16 +20,16 @@ layout: default
    {% if page.status == "Stagnant" %} - 🚧 Stagnant + 🚧 Stagnant {% endif %} {% if page.status == "Withdrawn" %} - 🛑 Withdrawn + 🛑 Withdrawn {% endif %} {% if page.status == "Draft" or page.status == "Review" %} - ⚠️ {{ page.status }} + ⚠️ {{ page.status }} {% endif %} {% if page.status == "Last Call" %} - 📢 Last Call + 📢 Last Call {% endif %} {% if page.category == "ERC" %} Standards Track: ERC @@ -40,16 +40,16 @@ layout: default {% elsif page.category == "Core" %} Standards Track: Core {% elsif page.type == "Informational" %} - Informational + Informational {% elsif page.type == "Meta" %} Meta {% endif %}

    {% if page.category == "ERC" %} - ERC-{{ page.eip | xml_escape }}: {{ page.title | xml_escape }} + ERC-{{ page.dcip | xml_escape }}: {{ page.title | xml_escape }} {% elsif page.category != "ERC" %} - EIP-{{ page.eip | xml_escape }}: {{ page.title | xml_escape }} + DCIP-{{ page.dcip | xml_escape }}: {{ page.title | xml_escape }} {% endif %} @@ -90,7 +90,7 @@ layout: default {% if page.requires != undefined %}
    Requires - {% include eipnums.html eips=page.requires %} + {% include dcipnums.html dcips=page.requires %}
    {% endif %}

    @@ -101,7 +101,7 @@ layout: default {% endif %} @@ -119,7 +119,7 @@ layout: default IEEE specification for reference formatting: https://ieee-dataport.org/sites/default/files/analysis/27/IEEE%20Citation%20Guidelines.pdf {% endcomment %} -

    {% include authorlist.html authors=page.author %}, "{% if page.category == "ERC" %}ERC{% else %}EIP{% endif %}-{{ page.eip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}," Ethereum Improvement Proposals, no. {{ page.eip | xml_escape }}, {{ page.created | date: "%B %Y" }}. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-{{ page.eip | xml_escape }}.

    +

    {% include authorlist.html authors=page.author %}, "{% if page.category == "ERC" %}ERC{% else %}DCIP{% endif %}-{{ page.dcip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}," Ethereum Improvement Proposals, no. {{ page.dcip | xml_escape }}, {{ page.created | date: "%B %Y" }}. [Online serial]. Available: https://dcips.ethereum.org/DCIPS/dcip-{{ page.dcip | xml_escape }}.

    {% comment %} Article schema specification: @@ -130,11 +130,11 @@ https://schema.org/TechArticle "@context": "http://schema.org", "@type": "TechArticle", {% if page.category == "ERC" %} - "headline": "ERC-{{ page.eip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", - "name": "ERC-{{ page.eip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", + "headline": "ERC-{{ page.dcip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", + "name": "ERC-{{ page.dcip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", {% else %} - "headline": "EIP-{{ page.eip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", - "name": "EIP-{{ page.eip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", + "headline": "DCIP-{{ page.dcip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", + "name": "DCIP-{{ page.dcip | xml_escape }}: {{ page.title | xml_escape }}{% if page.status == "Draft" or page.status == "Stagnant" or page.status == "Withdrawn" or page.status == "Review" or page.status == "Last Call" %} [DRAFT]{% endif %}", {% endif %} "author": "{{ page.author }}", "dateCreated": "{{ page.created | date: "%Y-%m-%d" }}", diff --git a/all.html b/all.html index d57a5a9..4ed0e36 100644 --- a/all.html +++ b/all.html @@ -3,4 +3,4 @@ layout: page title: All --- -{% include eiptable.html eips=site.pages %} +{% include dciptable.html dcips=site.pages %} diff --git a/config/eip-editors.yml b/config/dcip-editors.yml similarity index 100% rename from config/eip-editors.yml rename to config/dcip-editors.yml diff --git a/core.html b/core.html index 29cceb2..df870d6 100644 --- a/core.html +++ b/core.html @@ -3,5 +3,5 @@ layout: page title: Core --- -{% assign eips=site.pages|where:"type","Standards Track"|where:"category","Core" %} -{% include eiptable.html eips=eips %} +{% assign dcips=site.pages|where:"type","Standards Track"|where:"category","Core" %} +{% include dciptable.html dcips=dcips %} diff --git a/eip-template.md b/dcip-template.md similarity index 63% rename from eip-template.md rename to dcip-template.md index 892fda1..c9ae25c 100644 --- a/eip-template.md +++ b/dcip-template.md @@ -1,5 +1,5 @@ --- -title: +title: description: author: , FirstName (@GitHubUsername) and GitHubUsername (@GitHubUsername)> discussions-to: @@ -7,17 +7,17 @@ status: Draft type: category: # Only required for Standards Track. Otherwise, remove this field. created: -requires: # Only required when you reference an EIP in the `Specification` section. Otherwise, remove this field. +requires: # Only required when you reference an DCIP in the `Specification` section. Otherwise, remove this field. --- @@ -35,9 +35,9 @@ requires: # Only required when you reference an EIP in the `Spec @@ -72,7 +72,7 @@ TBD This section is optional. - All EIPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The EIP must explain how the author proposes to deal with these incompatibilities. EIP submissions without a sufficient backwards compatibility treatise may be rejected outright. + All DCIPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The DCIP must explain how the author proposes to deal with these incompatibilities. DCIP submissions without a sufficient backwards compatibility treatise may be rejected outright. The current placeholder is acceptable for a draft. @@ -84,10 +84,10 @@ No backward compatibility issues found. ## Test Cases @@ -98,7 +98,7 @@ No backward compatibility issues found. This section is optional. The Reference Implementation section should include a minimal implementation that assists in understanding or implementing this specification. It should not include project build files. The reference implementation is not a replacement for the Specification section, and the proposal should still be understandable without it. - If the reference implementation is too large to reasonably be included inline, then consider adding it as one or more files in `../assets/eip-####/`. External links will not be allowed. + If the reference implementation is too large to reasonably be included inline, then consider adding it as one or more files in `../assets/dcip-####/`. External links will not be allowed. TODO: Remove this comment before submitting --> @@ -106,7 +106,7 @@ No backward compatibility issues found. ## Security Considerations
    NumberReview endsTitleAuthor
    NumberReview endsTitleAuthor
    NumberTitleAuthor
    NumberTitleAuthor
    {{page.eip|xml_escape}}{{page.dcip|xml_escape}}{{ page.last-call-deadline | xml_escape }}