From cc79c9a3352e341f31947a6d55939afc0e8d3c7a Mon Sep 17 00:00:00 2001 From: Ricardo Prado Date: Thu, 26 Sep 2019 23:13:47 -0300 Subject: [PATCH 01/11] Pr template --- .github/CONTRIBUTING.md | 82 +++++++++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE/neo_2 | 20 +++++++ .github/PULL_REQUEST_TEMPLATE/neo_3 | 16 ++++++ CONTRIBUTING.md | 82 ----------------------------- 4 files changed, 118 insertions(+), 82 deletions(-) create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/neo_2 create mode 100644 .github/PULL_REQUEST_TEMPLATE/neo_3 delete mode 100644 CONTRIBUTING.md diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000000..8d22b04f5c --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,82 @@ + +# Contributing to NEO +Neo is an open-source project and it depends on its contributors and constant community feedback to implement the features required for a smart economy. You are more than welcome to join us in the development of Neo. + +Read this document to understand how issues are organized and how you can start contributing. + +*This document covers this repository only and does not include community repositories or repositories managed by NGD Shanghai and NGD Seattle.* + +### Questions and Support +The issue list is reserved exclusively for bug reports and features discussions. If you have questions or need support, please visit us in our [Discord](https://discord.io/neo) server. + +### dApp Development +This document does not relate to dApp development. If you are looking to build a dApp using Neo, please [start here](https://neo.org/dev). + +### Contributing to open source projects +If you are new to open-source development, please [read here](https://opensource.guide/how-to-contribute/#opening-a-pull-request) how to submit your code. + +## Developer Guidance +We try to have as few rules as possible, just enough to keep the project organized: + + +1. **Discuss before coding**. Proposals must be discussed before being implemented. +Avoid implementing issues with the discussion tag. +2. **Tests during code review**. We expect reviewers to test the issue before approving or requesting changes. + +3. **Wait for at least 2 reviews before merging**. Changes can be merged after 2 approvals, for Neo 3.x branch, and 3 approvals for Neo 2.x branch. + +3. **Give time to other developers review an issue**. Even if the code has been approved, you should leave at least 24 hours for others to review it before merging the code. + +4. **Create unit tests**. It is important that the developer includes basic unit tests so reviewers can test it. + +5. **Task assignment**. If a developer wants to work in a specific issue, he may ask the team to assign it to himself. The proposer of an issue has priority in task assignment. + + +### Issues for beginners +If you are looking to start contributing to NEO, we suggest you start working on issues with ![](./images/cosmetic.png) or ![](./images/house-keeping.png) tags since they usually do not depend on extensive NEO platform knowledge. + +### Tags for Issues States + +![Discussion](./images/discussion.png) Whenever someone posts a new feature request, the tag discussion is added. This means that there is no consensus if the feature should be implemented or not. Avoid creating PR to solve issues in this state since it may be completely discarded. + +![Design](./images/solution-design.png) When a feature request is accepted by the team, but there is no consensus about the implementation, the issue is tagged with design. We recommend the team to agree in the solution design before anyone attempts to implement it, using text or UML. It is not recommended, but developers can also present their solution using code. +Note that PRs for issues in this state may also be discarded if the team disagree with the proposed solution. + +![Ready-to-implement](./images/ready-to-implement.png) Once the team has agreed on feature and the proposed solution, the issue is tagged with ready-to-implement. When implementing it, please follow the solution accepted by the team. + +### Tags for Issue Types + +![Cosmetic](./images/cosmetic.png) Issues with the cosmetic tag are usually changes in code or documentation that improve user experience without affecting current functionality. These issues are recommended for beginners because they require little to no knowledge about Neo platform. + +![Enhancement](./images/enhancement.png) Enhancements are platform changes that may affect performance, usability or add new features to existing modules. It is recommended that developers have previous knowledge in the platform to work in these improvements, specially in more complicated modules like the compiler, ledger and consensus. + +![Feature](./images/new-feature.png) New features may include large changes in the code base. Some are complex, but some are not. So, a few issues with new-feature may be recommended for starters, specially those related to the rpc and the sdk module. + +![Migration](./images/migration.png) Issues related to the migration from Neo 2 to Neo 3 are tagged with migration. These issues are usually the most complicated ones since they require a deep knowledge in both versions. + +### Tags for Project Modules +These tags do not necessarily represent each module at code level. Modules consensus and compiler are not recommended for beginners. + +![Compiler](./images/compiler.png) Issues that are related or influence the behavior of our C# compiler. Note that the compiler itself is hosted in the [neo-devpack-dotnet](https://github.com/neo-project/neo-devpack-dotnet) repository. + +![Consensus](./images/consensus.png) Changes to consensus are usually harder to make and test. Avoid implementing issues in this module that are not yet decided. + +![Ledger](./images/ledger.png) The ledger is our 'database', any changes in the way we store information or the data-structures have this tag. + +![House-keeping](./images/house-keeping.png) 'Small' enhancements that need to be done in order to keep the project organised and ensure overall quality. These changes may be applied in any place in code, as long as they are small or do not alter current behavior. + +![Network-policy](./images/network-policy.png) Identify issues that affect the network-policy like fees, access list or other related issues. Voting may also be related to the network policy module. + +![P2P](./images/p2p.png) This module includes peer-to-peer message exchange and network optimisations, at TCP or UDP level (not HTTP). + +![RPC](./images/rpc.png) All HTTP communication is handled by the RPC module. This module usually provides support methods since the main communication protocol takes place at the p2p module. + +![VM](./images/vm.png) New features that affect the Neo Virtual Machine or the Interop layer. + +![SDK](./images/sdk.png) Neo provides an SDK to help developers to interact with the blockchain. Changes in this module must not impact other parts of the software. + +![Wallet](./images/wallet.png) Wallets are used to track funds and interact with the blockchain. Note that this module depends on a full node implementation (data stored on local disk). + + + + diff --git a/.github/PULL_REQUEST_TEMPLATE/neo_2 b/.github/PULL_REQUEST_TEMPLATE/neo_2 new file mode 100644 index 0000000000..6e5f831ab4 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/neo_2 @@ -0,0 +1,20 @@ +--- +name: Neo 2 +about: This PR affects Neo 2 version +title: '' +labels: '' +assignees: '' +--- + +**Issue number** + +**Change summary** + +**Does it affect core parts of the software, like consensus, P2P or ledge modules?** + +**Is this a new feature, enhancement or a fix?** + +**How did you test it?** + +- [ ] Did you add tests covering your changes? +- [ ] Did you run `dotnet format`? \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/neo_3 b/.github/PULL_REQUEST_TEMPLATE/neo_3 new file mode 100644 index 0000000000..f3a3d3596c --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/neo_3 @@ -0,0 +1,16 @@ +--- +name: Neo 3 +about: This PR affects Neo 3 version +title: '' +labels: '' +assignees: '' +--- + +**Issue number** + +**Change summary** + +**How did you test it?** + +- [ ] Did you add tests covering your changes? +- [ ] Did you run `dotnet format`? \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 5fd0592924..0000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,82 +0,0 @@ - -# Contributing to NEO -Neo is an open-source project and it depends on its contributors and constant community feedback to implement the features required for a smart economy. You are more than welcome to join us in the development of Neo. - -Read this document to understand how issues are organized and how you can start contributing. - -*This document covers this repository only and does not include community repositories or repositories managed by NGD Shanghai and NGD Seattle.* - -### Questions and Support -The issue list is reserved exclusively for bug reports and features discussions. If you have questions or need support, please visit us in our [Discord](https://discord.io/neo) server. - -### dApp Development -This document does not relate to dApp development. If you are looking to build a dApp using Neo, please [start here](https://neo.org/dev). - -### Contributing to open source projects -If you are new to open-source development, please [read here](https://opensource.guide/how-to-contribute/#opening-a-pull-request) how to submit your code. - -## Developer Guidance -We try to have as few rules as possible, just enough to keep the project organized: - - -1. **Discuss before coding**. Proposals must be discussed before being implemented. -Avoid implementing issues with the discussion tag. -2. **Tests during code review**. We expect reviewers to test the issue before approving or requesting changes. - -3. **Wait for at least 2 reviews before merging**. Changes can be merged after 2 approvals, for Neo 3.x branch, and 3 approvals for Neo 2.x branch. - -3. **Give time to other developers review an issue**. Even if the code has been approved, you should leave at least 24 hours for others to review it before merging the code. - -4. **Create unit tests**. It is important that the developer includes basic unit tests so reviewers can test it. - -5. **Task assignment**. If a developer wants to work in a specific issue, he may ask the team to assign it to himself. The proposer of an issue has priority in task assignment. - - -### Issues for beginners -If you are looking to start contributing to NEO, we suggest you start working on issues with ![](./.github/images/cosmetic.png) or ![](./.github/images/house-keeping.png) tags since they usually do not depend on extensive NEO platform knowledge. - -### Tags for Issues States - -![Discussion](./.github/images/discussion.png) Whenever someone posts a new feature request, the tag discussion is added. This means that there is no consensus if the feature should be implemented or not. Avoid creating PR to solve issues in this state since it may be completely discarded. - -![Design](./.github/images/solution-design.png) When a feature request is accepted by the team, but there is no consensus about the implementation, the issue is tagged with design. We recommend the team to agree in the solution design before anyone attempts to implement it, using text or UML. It is not recommended, but developers can also present their solution using code. -Note that PRs for issues in this state may also be discarded if the team disagree with the proposed solution. - -![Ready-to-implement](./.github/images/ready-to-implement.png) Once the team has agreed on feature and the proposed solution, the issue is tagged with ready-to-implement. When implementing it, please follow the solution accepted by the team. - -### Tags for Issue Types - -![Cosmetic](./.github/images/cosmetic.png) Issues with the cosmetic tag are usually changes in code or documentation that improve user experience without affecting current functionality. These issues are recommended for beginners because they require little to no knowledge about Neo platform. - -![Enhancement](./.github/images/enhancement.png) Enhancements are platform changes that may affect performance, usability or add new features to existing modules. It is recommended that developers have previous knowledge in the platform to work in these improvements, specially in more complicated modules like the compiler, ledger and consensus. - -![Feature](./.github/images/new-feature.png) New features may include large changes in the code base. Some are complex, but some are not. So, a few issues with new-feature may be recommended for starters, specially those related to the rpc and the sdk module. - -![Migration](./.github/images/migration.png) Issues related to the migration from Neo 2 to Neo 3 are tagged with migration. These issues are usually the most complicated ones since they require a deep knowledge in both versions. - -### Tags for Project Modules -These tags do not necessarily represent each module at code level. Modules consensus and compiler are not recommended for beginners. - -![Compiler](./.github/images/compiler.png) Issues that are related or influence the behavior of our C# compiler. Note that the compiler itself is hosted in the [neo-devpack-dotnet](https://github.com/neo-project/neo-devpack-dotnet) repository. - -![Consensus](./.github/images/consensus.png) Changes to consensus are usually harder to make and test. Avoid implementing issues in this module that are not yet decided. - -![Ledger](./.github/images/ledger.png) The ledger is our 'database', any changes in the way we store information or the data-structures have this tag. - -![House-keeping](./.github/images/house-keeping.png) 'Small' enhancements that need to be done in order to keep the project organised and ensure overall quality. These changes may be applied in any place in code, as long as they are small or do not alter current behavior. - -![Network-policy](./.github/images/network-policy.png) Identify issues that affect the network-policy like fees, access list or other related issues. Voting may also be related to the network policy module. - -![P2P](./.github/images/p2p.png) This module includes peer-to-peer message exchange and network optimisations, at TCP or UDP level (not HTTP). - -![RPC](./.github/images/rpc.png) All HTTP communication is handled by the RPC module. This module usually provides support methods since the main communication protocol takes place at the p2p module. - -![VM](./.github/images/vm.png) New features that affect the Neo Virtual Machine or the Interop layer. - -![SDK](./.github/images/sdk.png) Neo provides an SDK to help developers to interact with the blockchain. Changes in this module must not impact other parts of the software. - -![Wallet](./.github/images/wallet.png) Wallets are used to track funds and interact with the blockchain. Note that this module depends on a full node implementation (data stored on local disk). - - - - From e7f7a4b78d4b22966f488b36cff0bf4bb594f5f0 Mon Sep 17 00:00:00 2001 From: Ricardo Prado Date: Thu, 26 Sep 2019 23:18:51 -0300 Subject: [PATCH 02/11] 3 approvals requirement --- .github/PULL_REQUEST_TEMPLATE/neo_2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE/neo_2 b/.github/PULL_REQUEST_TEMPLATE/neo_2 index 6e5f831ab4..75a3e890ec 100644 --- a/.github/PULL_REQUEST_TEMPLATE/neo_2 +++ b/.github/PULL_REQUEST_TEMPLATE/neo_2 @@ -14,6 +14,8 @@ assignees: '' **Is this a new feature, enhancement or a fix?** +**Was this change approved by 3 or more core developers?** + **How did you test it?** - [ ] Did you add tests covering your changes? From 0110a03189f0f4d9861cebaf37404317ce951dbe Mon Sep 17 00:00:00 2001 From: Ricardo Prado Date: Thu, 26 Sep 2019 23:28:42 -0300 Subject: [PATCH 03/11] markdown extension --- .github/PULL_REQUEST_TEMPLATE/{neo_2 => neo_2.md} | 0 .github/PULL_REQUEST_TEMPLATE/{neo_3 => neo_3.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/PULL_REQUEST_TEMPLATE/{neo_2 => neo_2.md} (100%) rename .github/PULL_REQUEST_TEMPLATE/{neo_3 => neo_3.md} (100%) diff --git a/.github/PULL_REQUEST_TEMPLATE/neo_2 b/.github/PULL_REQUEST_TEMPLATE/neo_2.md similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE/neo_2 rename to .github/PULL_REQUEST_TEMPLATE/neo_2.md diff --git a/.github/PULL_REQUEST_TEMPLATE/neo_3 b/.github/PULL_REQUEST_TEMPLATE/neo_3.md similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE/neo_3 rename to .github/PULL_REQUEST_TEMPLATE/neo_3.md From 97be113c40b8c91d38296c002eef018be9e20a81 Mon Sep 17 00:00:00 2001 From: Ricardo Prado Date: Thu, 26 Sep 2019 23:38:24 -0300 Subject: [PATCH 04/11] trying with a single file --- .github/PULL_REQUEST_TEMPLATE/neo_3.md | 16 ---------------- .../{neo_2.md => pull_request_template.md} | 0 2 files changed, 16 deletions(-) delete mode 100644 .github/PULL_REQUEST_TEMPLATE/neo_3.md rename .github/PULL_REQUEST_TEMPLATE/{neo_2.md => pull_request_template.md} (100%) diff --git a/.github/PULL_REQUEST_TEMPLATE/neo_3.md b/.github/PULL_REQUEST_TEMPLATE/neo_3.md deleted file mode 100644 index f3a3d3596c..0000000000 --- a/.github/PULL_REQUEST_TEMPLATE/neo_3.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Neo 3 -about: This PR affects Neo 3 version -title: '' -labels: '' -assignees: '' ---- - -**Issue number** - -**Change summary** - -**How did you test it?** - -- [ ] Did you add tests covering your changes? -- [ ] Did you run `dotnet format`? \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/neo_2.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE/neo_2.md rename to .github/PULL_REQUEST_TEMPLATE/pull_request_template.md From 36aa6e694eeef029827cbfa3dc3114effe3cc420 Mon Sep 17 00:00:00 2001 From: Ricardo Prado Date: Thu, 26 Sep 2019 23:42:29 -0300 Subject: [PATCH 05/11] Different folder --- .github/{PULL_REQUEST_TEMPLATE => }/pull_request_template.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{PULL_REQUEST_TEMPLATE => }/pull_request_template.md (100%) diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/pull_request_template.md similarity index 100% rename from .github/PULL_REQUEST_TEMPLATE/pull_request_template.md rename to .github/pull_request_template.md From 8bc11fce0cf5990ec58836fdf499c1859c77a2b3 Mon Sep 17 00:00:00 2001 From: Ricardo Prado Date: Thu, 26 Sep 2019 23:46:14 -0300 Subject: [PATCH 06/11] text review --- .github/pull_request_template.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 75a3e890ec..acbdc6e4d9 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,21 +1,9 @@ ---- -name: Neo 2 -about: This PR affects Neo 2 version -title: '' -labels: '' -assignees: '' ---- - **Issue number** **Change summary** **Does it affect core parts of the software, like consensus, P2P or ledge modules?** -**Is this a new feature, enhancement or a fix?** - -**Was this change approved by 3 or more core developers?** - **How did you test it?** - [ ] Did you add tests covering your changes? From 1393d9aca0553913c876ddd8d683e178f13f7c0d Mon Sep 17 00:00:00 2001 From: Ricardo Prado Date: Fri, 27 Sep 2019 04:29:10 -0300 Subject: [PATCH 07/11] Adding list --- .github/pull_request_template.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index acbdc6e4d9..92b242843d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -2,7 +2,15 @@ **Change summary** -**Does it affect core parts of the software, like consensus, P2P or ledge modules?** +**Where in the software does this update applies to?** +- Consensus +- Ledger +- Plugins +- P2P (TCP) +- RPC (HTTP) +- Smart Contract / Interop Service +- Wallet +- Other: **How did you test it?** From de0468a24ca69e626f079163f8f9b7521fa41d3a Mon Sep 17 00:00:00 2001 From: Ricardo Prado <38396062+lock9@users.noreply.github.com> Date: Mon, 30 Sep 2019 02:43:53 -0300 Subject: [PATCH 08/11] Update .github/pull_request_template.md Co-Authored-By: Shargon --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 92b242843d..b3b96daa41 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -10,9 +10,9 @@ - RPC (HTTP) - Smart Contract / Interop Service - Wallet -- Other: +- Other (specify) **How did you test it?** - [ ] Did you add tests covering your changes? -- [ ] Did you run `dotnet format`? \ No newline at end of file +- [ ] Did you run `dotnet format`? From 087fb31c60926ac695b78f4d893483338642b8e6 Mon Sep 17 00:00:00 2001 From: Ricardo Prado <38396062+lock9@users.noreply.github.com> Date: Tue, 1 Oct 2019 16:48:29 -0300 Subject: [PATCH 09/11] Update pull_request_template.md --- .github/pull_request_template.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b3b96daa41..43aa3b33c2 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -16,3 +16,4 @@ - [ ] Did you add tests covering your changes? - [ ] Did you run `dotnet format`? +- [ ] Did you update `CHANGELOG.md` with your changes? From 63acd4fbfa61f9d460c3304fb68cecb5ead79bc7 Mon Sep 17 00:00:00 2001 From: Ricardo Prado <38396062+lock9@users.noreply.github.com> Date: Tue, 1 Oct 2019 16:58:01 -0300 Subject: [PATCH 10/11] Creating changelog file --- CHANGELOG.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..54a25a8eae --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,49 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [Unreleased] - 2019-10-01 to 2019-10-31 +### Added +- + +### Changed +- + +### Removed +- + +### Fixed +- + + +## [September] - 2019-09-01 to 2019-09-30 +### Added +- + +### Changed +- + +### Removed +- + +### Fixed +- + + +## [preview1] - 2019-08-15 +### Added +- + +### Changed +- + +### Removed +- + +### Fixed +- + +#### Diffs +[Unreleased]: TODO (diff this month with last month) +[preview1]: TODO (diff Neo 2 to preview1) From 64f9b37f450fdea8d8112aeaa0484509eb1fd31b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Lippi?= Date: Wed, 16 Oct 2019 17:40:00 -0300 Subject: [PATCH 11/11] test --- test | 1 + 1 file changed, 1 insertion(+) create mode 100644 test diff --git a/test b/test new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/test @@ -0,0 +1 @@ +