forked from MinaProtocol/mina
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
open source process docs first draft (MinaProtocol#906)
- Loading branch information
Showing
9 changed files
with
301 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
name: Bug report | ||
about: Coda is behaving strangely? Report it so we can fix it! | ||
--- | ||
|
||
**Have you already searched the issue tracker to see if this bug has already | ||
been reported?** | ||
|
||
**Describe the bug** | ||
A clear and concise description of what the bug is. | ||
|
||
**To Reproduce** | ||
1. First step | ||
2. Second step | ||
3. Third step | ||
4. Observe the bug | ||
|
||
If you can't reliably reproduce the issue, please describe the general | ||
conditions where you've observed the issue. | ||
|
||
**Expected behavior** | ||
What should have happened instead of the bug? | ||
|
||
**Output of `coda -version`**: Fill this in! | ||
|
||
**Log file**: Upload `debug.log` (`coda client log-location` tells you where it is) to https://gist.github.com/ and link here. | ||
|
||
**Additional context**: Any other notes? Is this related to other issues? Did | ||
anyone in Discord have anything to add? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
name: Feature request | ||
about: Coda can't do something? Maybe it should! | ||
--- | ||
|
||
**Have you already searched the issue tracker to see if this feature has already | ||
been requested?** | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional context** | ||
Add any other context or screenshots about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
name: I have a question / I need help | ||
about: Please don't open an issue! Ask for help on Discord. | ||
--- | ||
|
||
Issue trackers aren't a good place to ask questions or for help. Instead, | ||
contact us on the [Coda Discord](https://discord.gg/ShKhA7J)! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
Thank you for contributing to Coda! Please see `CONTRIBUTING.md` if you haven't | ||
yet. | ||
|
||
Explain your changes here. | ||
|
||
Checklist: | ||
|
||
- [ ] Tests were added for the new behavior | ||
- [ ] All tests pass (CI will check this if you didn't) | ||
- [ ] This closes issues (list them): #0000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
# Contributing to Coda | ||
|
||
Thank you for your interest in contributing to Coda 😁. This file outlines | ||
various parts of our process. Coda is still very young, so things might be a | ||
little bumpy while we figure out how to smoothly run the project! | ||
|
||
If you haven't seen it yet, the [developer README](README-dev.md) has the | ||
basic setup you need to get up and running to build and edit Coda. | ||
|
||
## Bug reports | ||
|
||
Bug reports should include, at minimal, the `coda -version` output and | ||
a description of the error. See the [bug report | ||
template](.github/ISSUE_TEMPLATES/bug_report.md). | ||
|
||
All bugs need to be reproduced before they can be fixed. Anyone can try and | ||
reproduce a bug! If you have trouble reproducing a bug, please comment with what | ||
you tried. If it doesn't reproduce using exactly the steps in the issue report, | ||
please write a comment describing your new steps to reproduce, or what environment | ||
setup you had to do to reproduce. | ||
|
||
Maintainers should label bug reports with `bug`, and any other relevant labels. | ||
|
||
## Feature requests | ||
|
||
We'll consider any feature requests, although the most successful feature | ||
requests usually aren't immediately posted to the issue tracker. The most | ||
successful feature requests start with discussion in the community! See the | ||
[feature request template](.github/ISSUE_TEMPLATES/feature_request.md). | ||
|
||
Maintainers should label feature requests with `feature`, and any other relevant | ||
labels. | ||
|
||
## Pull Requests | ||
|
||
All pull requests go through CircleCI, which makes sure the code doesn't need to | ||
be reformatted, builds Coda in its various configurations, and runs all the | ||
tests. | ||
|
||
All pull requests must get _code reviewed_. Anyone can do a code review! Check | ||
out the [code review guide](docs/code_review.md) for what to look for. Just leave | ||
comments on the "Files changed" view. | ||
|
||
All pull requests must be approved by at least one member of the "core eng" | ||
team on github. | ||
|
||
Maintainers should assign reviewers to pull requests, and tag them with any | ||
relevant labels. | ||
|
||
## Documentation | ||
|
||
There are three main pieces of Coda documentation: | ||
|
||
1. The [`docs`](docs/) directory, which has prose documentation of various sorts. This | ||
doesn't exist yet, but it should by the time this repo is made public! | ||
2. The `README.md` files in various directories. These explain the contents of that | ||
directory at a high level: the purpose of the library, design constraints, anything else | ||
specific to that directory. | ||
3. Inline code comments. There are very few of these, and we don't currently run ocamldoc | ||
so they won't be exposed even as we write them. This should change eventually. | ||
|
||
Changes to the software should come with changes to the documentation. | ||
|
||
## RFCs | ||
|
||
The `rfcs` directory contains files documenting major changes to the software, | ||
how we work together, or the protocol. To make an RFC, just copy the | ||
`0000-template.md` to `0000-shortname.md` and fill it out! Then, open a pull | ||
request where the title starts with `[RFC]`. The idea is that we can discuss the | ||
RFC and come to consensus on what to do. Not all RFCs are merged, only the ones | ||
that we agree to implement. | ||
|
||
This process isn't final, but in general: | ||
|
||
1. RFCs will be open for at least a week for discussion. | ||
2. Once discussion has slowed down or there is consensus, the core eng team | ||
will initiate a "Final Comment Period". This will include the core eng's | ||
"merge disposition" (merge/don't merge). The FCP comment should be based | ||
on information and arguments already present in the RFC thread. At the | ||
end of the FCP, the core eng team decides to do another FCP, leave the FCP | ||
state for continued discussion, or resolve the RFC by merging/closing | ||
(whichever the announced disposition was). | ||
|
||
RFCs do not have to come with an implementation, and the RFC author isn't | ||
required to implement the PR. | ||
|
||
RFCs generally describe the design of a feature. As the code corresponding to | ||
the RFC changes, the RFC should be updated to reflect the current state of the | ||
code. | ||
|
||
This is loosely inspired by the Rust RFC process, Python PEPs, and IETF RFCs. | ||
|
||
## Release process | ||
|
||
Create a PR to merge master into testnet. Once that is approved by CI and checked in... | ||
|
||
``` | ||
git checkout testnet | ||
git tag testnet-v0.$WHATEVER_IS_NEXT | ||
git push testnet-v0.$WHATEVER_IS_NEXT | ||
``` | ||
|
||
Eventually, we will have a "stable" or "mainnet" branch. Once we do, the process will look like: | ||
|
||
Create a PR to merge testnet into stable. Once that is approved by CI and checked in... | ||
|
||
``` | ||
git checkout stable | ||
git tag v1.$WHATEVER_IS_NEXT | ||
git push v1.$WHATEVER_IS_NEXT | ||
``` | ||
|
||
And then do the above steps for testnet. Don't forget to deploy! | ||
|
||
## Issue/PR label guide | ||
|
||
We use them, although currently in a somewhat ad-hoc way. Please see | ||
https://github.com/CodaProtocol/coda/labels for the list of labels and their | ||
short descriptions. Any "complicated" labels should be described here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Coda code review guidelines | ||
|
||
A good pull request: | ||
|
||
- Does about one thing (new feature, bug fix, etc) | ||
- Adds tests and documentation for any new functionality | ||
- When fixing a bug, adds or fixes test that would have caught said bug | ||
|
||
## OCaml things | ||
|
||
- Are the [style guidelines](style_guidelines.md) being followed? | ||
- Do the signatures make sense? Are they minimal and reusable? | ||
- Does anything need to be functored over? | ||
- Are there any error cases that aren't handled correctly? | ||
- Are calls to `_exn` functions justified? Are their preconditions for not | ||
throwing an exception met? Is the exception it throws useful? | ||
- There shouldn't be commented out code. | ||
- No stray debug code lying around. | ||
- Any logging is appropriate. All `Logger.trace` logs should be inessential, | ||
because they won't be shown to anyone by default. | ||
- Should this code live in its library? Should it live in a different library? | ||
- Does the code confuse you? Maybe there should be a comment, or it should be | ||
structured differently. | ||
- Does a behavior change break assumptions other code makes? |