From 1a61c028bc7e9bffdab59d43f3376aa0f5f63514 Mon Sep 17 00:00:00 2001 From: raulk Date: Tue, 12 Jan 2021 15:53:22 +0000 Subject: [PATCH 1/3] README: Contribute section. --- README.md | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 59927faa3..c0b2e4d69 100644 --- a/README.md +++ b/README.md @@ -24,24 +24,30 @@ For instructions on how to build, install and setup lotus, please visit [https:/ Please send an email to security@filecoin.org. See our [security policy](SECURITY.md) for more details. -## Development +## Related packages -The main branches under development at the moment are: -* [`master`](https://github.com/filecoin-project/lotus): current testnet. -* [`next`](https://github.com/filecoin-project/lotus/tree/next): working branch with chain-breaking changes. -* [`ntwk-calibration`](https://github.com/filecoin-project/lotus/tree/ntwk-calibration): devnet running one of `next` commits. +These repos are independent and reusable modules, but are tightly integrated into Lotus to make up a fully featured Filecoin implementation: -### Tracker - -All work is tracked via issues. An attempt at keeping an up-to-date view on remaining work towards Mainnet launch can be seen at the [lotus github project board](https://github.com/orgs/filecoin-project/projects/8). The issues labeled with `incentives` are there to identify the issues needed for Space Race launch. - -### Packages - -The lotus Filecoin implementation unfolds into the following packages: - -- [This repo](https://github.com/filecoin-project/lotus) - [go-fil-markets](https://github.com/filecoin-project/go-fil-markets) which has its own [kanban work tracker available here](https://app.zenhub.com/workspaces/markets-shared-components-5daa144a7046a60001c6e253/board) -- [spec-actors](https://github.com/filecoin-project/specs-actors) which has its own [kanban work tracker available here](https://app.zenhub.com/workspaces/actors-5ee6f3aa87591f0016c05685/board) +- [specs-actors](https://github.com/filecoin-project/specs-actors) which has its own [kanban work tracker available here](https://app.zenhub.com/workspaces/actors-5ee6f3aa87591f0016c05685/board) + +## Contribute + +Lotus is a universally open project and welcomes contributions of all kinds: code, docs, and more. However, before making a contribution, we ask you to heed these recommendations: + +1. If the proposal entails a protocol change, please first submit a [Filecoin Improvement Proposal](https://github.com/filecoin-project/FIPs). +2. If the change is complex and requires prior discussion, [open an issue](github.com/filecoin-project/lotus/issues) or a [discussion](https://github.com/filecoin-project/lotus/discussions) to request feedback before you start working on a pull request. This is to avoid disappointment and sunk costs, in case the change is not actually needed or accepted. +3. Please refrain from submitting PRs to adapt existing code to subjective preferences. + +When implementing a change: + +1. Adhere to the standard Go formatting guidelines, e.g. [Effective Go](https://golang.org/doc/effective_go.html). Run `go fmt` and +2. Comments: follow the advice on the [Commentary](https://golang.org/doc/effective_go.html#commentary) section of Effective Go. +3. Minimize code churn. Only modify what is strictly necessary to get a quicker response from maintainers. +4. Lint your code with [`golangci-lint`](https://golangci-lint.run) (CI will reject your PR if unlinted). +5. Add tests. +6. Title the PR in a meaningful way and describe the rationale and the thought process in the PR description. +7. Write clean, thoughtful, and detailed [commit messages](https://chris.beams.io/posts/git-commit/). This is even more important than the PR description, because commit messages are stored _inside_ the Git history. One good rule is: if you are happy posting the commit message as the PR description, then it's a good commit message. ## License From 64ebcb1b31f426e1b1e921d0ba3451620e72555b Mon Sep 17 00:00:00 2001 From: raulk Date: Tue, 12 Jan 2021 16:01:30 +0000 Subject: [PATCH 2/3] README.md: refine Contribute section. --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c0b2e4d69..993756889 100644 --- a/README.md +++ b/README.md @@ -41,13 +41,14 @@ Lotus is a universally open project and welcomes contributions of all kinds: cod When implementing a change: -1. Adhere to the standard Go formatting guidelines, e.g. [Effective Go](https://golang.org/doc/effective_go.html). Run `go fmt` and -2. Comments: follow the advice on the [Commentary](https://golang.org/doc/effective_go.html#commentary) section of Effective Go. -3. Minimize code churn. Only modify what is strictly necessary to get a quicker response from maintainers. -4. Lint your code with [`golangci-lint`](https://golangci-lint.run) (CI will reject your PR if unlinted). -5. Add tests. -6. Title the PR in a meaningful way and describe the rationale and the thought process in the PR description. -7. Write clean, thoughtful, and detailed [commit messages](https://chris.beams.io/posts/git-commit/). This is even more important than the PR description, because commit messages are stored _inside_ the Git history. One good rule is: if you are happy posting the commit message as the PR description, then it's a good commit message. +1. Adhere to the standard Go formatting guidelines, e.g. [Effective Go](https://golang.org/doc/effective_go.html). Run `go fmt`. +2. Stick to the idioms and patterns used in the codebase. Familiar-looking code has a higher chance of being accepted than eerie code. Pay attention to commonly used variable names, avoidance of naked returns, error handling patterns, etc. +3. Comments: follow the advice on the [Commentary](https://golang.org/doc/effective_go.html#commentary) section of Effective Go. +4. Minimize code churn. Only modify what is strictly necessary to get a quicker response from maintainers. +5. Lint your code with [`golangci-lint`](https://golangci-lint.run) (CI will reject your PR if unlinted). +6. Add tests. +7. Title the PR in a meaningful way and describe the rationale and the thought process in the PR description. +8. Write clean, thoughtful, and detailed [commit messages](https://chris.beams.io/posts/git-commit/). This is even more important than the PR description, because commit messages are stored _inside_ the Git history. One good rule is: if you are happy posting the commit message as the PR description, then it's a good commit message. ## License From 457ecad3023c6c9e350511688ff0f444891e291d Mon Sep 17 00:00:00 2001 From: raulk Date: Tue, 12 Jan 2021 16:04:43 +0000 Subject: [PATCH 3/3] README.md: refine Contribute section. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 993756889..3f18890bd 100644 --- a/README.md +++ b/README.md @@ -42,9 +42,9 @@ Lotus is a universally open project and welcomes contributions of all kinds: cod When implementing a change: 1. Adhere to the standard Go formatting guidelines, e.g. [Effective Go](https://golang.org/doc/effective_go.html). Run `go fmt`. -2. Stick to the idioms and patterns used in the codebase. Familiar-looking code has a higher chance of being accepted than eerie code. Pay attention to commonly used variable names, avoidance of naked returns, error handling patterns, etc. +2. Stick to the idioms and patterns used in the codebase. Familiar-looking code has a higher chance of being accepted than eerie code. Pay attention to commonly used variable and parameter names, avoidance of naked returns, error handling patterns, etc. 3. Comments: follow the advice on the [Commentary](https://golang.org/doc/effective_go.html#commentary) section of Effective Go. -4. Minimize code churn. Only modify what is strictly necessary to get a quicker response from maintainers. +4. Minimize code churn. Modify only what is strictly necessary. Well-encapsulated changesets will get a quicker response from maintainers. 5. Lint your code with [`golangci-lint`](https://golangci-lint.run) (CI will reject your PR if unlinted). 6. Add tests. 7. Title the PR in a meaningful way and describe the rationale and the thought process in the PR description.