-
Notifications
You must be signed in to change notification settings - Fork 808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
.github templates #505
base: master
Are you sure you want to change the base?
.github templates #505
Conversation
2d9d95e
to
6787bfc
Compare
6787bfc
to
15a8bd7
Compare
15a8bd7
to
e3df1e8
Compare
Codecov Report
@@ Coverage Diff @@
## master #505 +/- ##
=======================================
Coverage 53.35% 53.35%
=======================================
Files 104 104
Lines 27687 27687
Branches 4740 4740
=======================================
Hits 14772 14772
Misses 12915 12915 Continue to review full report at Codecov.
|
684e6c4
to
d79572b
Compare
The |
+1 to an FAQ. I think this would be great. We could also link to where the issues have been raised so people can look up the thread. |
77f9fed
to
137e627
Compare
https://github.com/bcoin-org/bcoin/pull/505/files#diff-8cc7b2b0d78dd2501610391c086a8516R286 Added a section for FAQs. |
Another element that would be nice to have in the FAQ or issue template:
h/t @bucko13 |
BUMP! |
70f1a8e
to
849c5f3
Compare
Can PR template go in .github/ also? https://github.blog/2016-02-17-issue-and-pull-request-templates/ |
@tuxcanfly are there two PR templates in this PR now? one at |
@pinheadmz OK, fixed. |
At the bottom of CONTRIBUTING.md:
To address this, I think we should consider including PGP keys (or keybase links) for the core team. In addition, @zebambam and @DarrenRM have completed a draft of a responsible disclosure document at https://github.com/RD-Crypto-Spec/Responsible-Disclosure/blob/d47a5a3dafa5942c8849a93441745fdd186731e6/README.md bcoin dev keys are in a PR to the disclosure repo: bcoin-org/Responsible-Disclosure#1 |
Here's a template for a page on responsible disclosure: https://gist.github.com/zebambam/bfe9f265187eeb0651cd74f263ea7409 the neighbor mentions could be links to their rd page if they have one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First off, this document is fantastic! Thank you so much for taking the initiative to get this into the repository. It is sorely needed here and in the hsd
codebase.
Secondly, please do not be alarmed by the size of this review. Most of the comments are copy edit changes involving minor grammatical errors and favoring the "active voice" over the "passive voice." Any comment filled with a block quote is just meant to be an editor's replacement. The significant changes I've suggested involve shortening the bullet points in lists. I should note that these are just suggestions and I'm open to giving clarification where it is necessary.
P.S. I've neglected to include this in the comments, but I think we should use backticks when referring to bcoin
in this document. It is the "nit" of all "nits" but I think it helps ease the eyes into seeing a lowercase letter starting a sentence. It also helps signify the word is referring to software.
|
||
### 1. Overview | ||
|
||
Developing cryptocurrencies is an exciting endeavor that touches a wide variety |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Developing cryptocurrencies is an exciting endeavor that touches a wide variety of areas such as wire protocols, peer-to-peer networking, databases, cryptography, language interpretation (transaction scripts), RPC interfaces, and WebSockets. They also represent a radical shift to the current financial system and as a result, provide an opportunity to help reshape the financial system as a whole. Few projects offer this level of diversity and impact in a single codebase.
However, as exciting as it is, one must keep in mind that cryptocurrencies represent real money and introducing bugs and security vulnerabilities can have far more dire consequences than in typical projects where having a small bug is minimal by comparison. In the world of cryptocurrencies, even the most trivial bug in the wrong area can cost people a significant amount of money. For this reason, bcoin has a formalized and rigorous development process which this page outlines.
We highly encourage code contributions. However, it is imperative that you adhere to the guidelines established on this page.
|
||
### 2. Minimum Recommended Skillset | ||
|
||
The following list is a set of core competencies that we recommend you possess |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The following list is a set of core competencies that we recommend you possess before you start attempting to contribute code to the project. These are not hard requirements, and we will gladly accept code contributions as long as they follow the guidelines set forth on this page. That said, if you don't have the following qualifications, you may find it quite difficult to contribute.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like how that sounds inclusive
the following basic qualifications you will likely find it quite difficult to | ||
contribute. | ||
|
||
- A reasonable understanding of bitcoin at a high level (see the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: should this be Bitcoin with a capital B? I seem to remember a suggestion of making a distinction between "Bitcoin" the protocol, and "bitcoin" the currency, e.g., "I sent 0.5 bitcoin to Alice." vs. "I learned about Bitcoin last night." I can't remember where I came across this, but it seems to be used this way in a lot of places.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: a good practice with lists is to start each bullet point with a similar type of word, e.g., all nouns, or all verbs. I think following this rule here would help the flow of the bullet points, e.g.:
- Understanding of Bitcoin at a high level (see required reading)
- Understanding of the
bcoin
codebase - Understanding of data structures, algorithms, and run-time costs
- Experience in Node.js and ES6+ syntax (e.g., classes, async/await, etc.)
- Experience with unit testing
- Experience with debugging
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: should this be Bitcoin with a capital B? I seem to remember a suggestion of making a distinction between "Bitcoin" the protocol, and "bitcoin" the currency
Pretty they make that distinction in Mastering Bitcoin
- An understanding of data structures and their performance implications | ||
- Familiarity with unit testing | ||
- Debugging experience | ||
- Ability to understand not only the area you are making a change in, but also |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This bullet point is a bit hard to digest. Perhaps we could say something like, "Familiarity with the codebase." and use the next paragraph to explain understanding how your specific change may affect other areas of the codebase. I imagine this new bullet point going before "Familiarity with unit testing."
While the standards to merge code is high, there are many opportunities to | ||
contribute outside of consensus critical or implementing highly performant | ||
code. A good place to get started would be adding more examples to the docs | ||
and reading through the tests to understand how the code works in practice. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: s/to the docs and/to the docs or/
|
||
### 5.3 Acceptance | ||
|
||
Once your code is accepted, it will be integrated with the master branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once your code is accepted, a maintainer will merge it with the master branch. Typically it will be rebased and fast-forward merged to master as we prefer to keep a clean commit history over a tangled weave of merge commits. However, regardless of the specific merge method used, the code will be integrated with the master branch and the pull request will be closed.
Rejoice! You are now a
bcoin
contributor!
|
||
<a name="Balances" /> | ||
|
||
### 6.1. Balances |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a current list of FAQs that we can add in this section? If not, maybe we should start a google document to fill this up? I'm also not opposed to merge as-is and continue to submit PRs to beef up the list.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think @pinheadmz would be a good person to ask about this
|
||
### 6.2. Confirmations | ||
|
||
bcoin wallet transactions are considered confirmed after 1 block. If your |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
bcoin
wallet marks transactions confirmed after inclusion in one block. If your application needs to wait for more confirmations, you can wait for the corresponding number of blocks to be mined.
### 7.1. Contribution Checklist | ||
|
||
- All changes are node >= 8.0.0 compliant | ||
- [ ] The code being submitted is commented according to the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- All changes are node >= 8.0.0 compliant
- [ ] All code is documented according to the
Code Documentation and Commenting section- [ ] New code includes thorough tests
- [ ] Bug fixes include regression tests
- [ ] Log statements include correct module and levels
- [ ]
npm run lint
passes- [ ]
npm run test
passes
[btcd](https://github.com/btcsuite/btcd/), distributed under the [ISC | ||
LICENSE](https://github.com/btcsuite/btcd/blob/master/LICENSE). | ||
|
||
TODO: Responsible Disclosure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should make the RD document a separate file. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree with this, take it out for now so we can merge :-)
github actually shows this warning on the PR page: "you are using an old version of github templates..." See: https://help.github.com/en/articles/about-issue-and-pull-request-templates |
One more note: I think |
Initial draft.
Feedback, ideas for potential new sections, reviews appreciated.