Notice: This repo has largely been left by the wayside and while it still has plenty of useful information, some of it should be considered out of date. We welcome any contributions aimed at improving the organization and content of this repo.
Welcome to the coding resources repository for Tendermint. This README is intended as a guide for both for external contributors and new hires. The CONTRIBUTING.md
of every repo should link to this repo. The files in this repo are an amalgamation from various places and any help consolidating/organizing them will be greatly appreciated.
Most production repositories should have:
.github
) showing who gets to do whatSupport, or "minor" repos have more flexibility in the process. Have a gander to see how they each operate.
develop
for major repos, master
for minor repos.Any and all review is welcome, even if it is asking for a clarification. Locally testing the code that is up for review is strongly suggested. Here's an easy way to checkout
a PR in git:
Locate the section for your github remote in the .git/config
file. It will look something like this:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:joyent/node.git
Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:joyent/node.git
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
Now fetch all the pull requests:
$ git fetch origin
From github.com:joyent/node
* [new ref] refs/pull/1000/head -> origin/pr/1000
* [new ref] refs/pull/1002/head -> origin/pr/1002
* [new ref] refs/pull/1004/head -> origin/pr/1004
* [new ref] refs/pull/1009/head -> origin/pr/1009
...
To check out a particular pull request:
$ git checkout pr/999
Branch pr/999 set up to track remote branch pr/999 from origin.
Switched to a new branch 'pr/999'
Each repository will have its own reviewers and CI requirements. Small PRs should be squashed then merged with a single "Merge pull request #XYZ: [title]" commit. Larger PRs can include multiple commits, but should squash related commits for brevity, prefix each commit with the PR number, and include the same single last merge commit with the PR title. Squashing commits of a PR can be achieved using the command:
git squash -i YOURHASH^
where YOURHASH
is oldest commit hash of your PR.
Use 'strict mode':
The majority of relevant documentation is hosted at:
which is produced from the docs directory in Tendermint Core and Cosmos SDK, respectively. The docs/README.md
in each of these repositories produces the landing page while the Table of Contents is generated from a configuration file found here (Tendermint) and here (SDK). Contact a member of the SRE team if you do not have access but require updating the ToC.