Readme for Fork Instructions
This commit is contained in:
parent
597538354f
commit
171e95d265
105
README.md
105
README.md
|
@ -1,75 +1,66 @@
|
|||
# Consul [![Build Status](https://travis-ci.org/hashicorp/consul.svg?branch=master)](https://travis-ci.org/hashicorp/consul) [![Join the chat at https://gitter.im/hashicorp-consul/Lobby](https://badges.gitter.im/hashicorp-consul/Lobby.svg)](https://gitter.im/hashicorp-consul/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
**This is a temporary README. We'll restore the old README prior to PR upstream.**
|
||||
|
||||
* Website: https://www.consul.io
|
||||
* Chat: [Gitter](https://gitter.im/hashicorp-consul/Lobby)
|
||||
* Mailing list: [Google Groups](https://groups.google.com/group/consul-tool/)
|
||||
# Consul Connect
|
||||
|
||||
Consul is a tool for service discovery and configuration. Consul is
|
||||
distributed, highly available, and extremely scalable.
|
||||
This repository is the forked repository for Consul Connect work to happen
|
||||
in private prior to public release. This README will explain how to safely
|
||||
use this fork, how to bring in upstream changes, etc.
|
||||
|
||||
Consul provides several key features:
|
||||
## Cloning
|
||||
|
||||
* **Service Discovery** - Consul makes it simple for services to register
|
||||
themselves and to discover other services via a DNS or HTTP interface.
|
||||
External services such as SaaS providers can be registered as well.
|
||||
To use this repository, clone it into your GOPATH as usual but you must
|
||||
**rename `consul-connect` to `consul`** so that Go imports continue working
|
||||
as usual.
|
||||
|
||||
* **Health Checking** - Health Checking enables Consul to quickly alert
|
||||
operators about any issues in a cluster. The integration with service
|
||||
discovery prevents routing traffic to unhealthy hosts and enables service
|
||||
level circuit breakers.
|
||||
## Important: Never Modify Master
|
||||
|
||||
* **Key/Value Storage** - A flexible key/value store enables storing
|
||||
dynamic configuration, feature flagging, coordination, leader election and
|
||||
more. The simple HTTP API makes it easy to use anywhere.
|
||||
**NEVER MODIFY MASTER! NEVER MODIFY MASTER!**
|
||||
|
||||
* **Multi-Datacenter** - Consul is built to be datacenter aware, and can
|
||||
support any number of regions without complex configuration.
|
||||
We want to keep the "master" branch equivalent to OSS master. This will make
|
||||
rebasing easy for master. Instead, we'll use the branch `f-connect`. All
|
||||
feature branches should branch from `f-connect` and make PRs against
|
||||
`f-connect`.
|
||||
|
||||
Consul runs on Linux, Mac OS X, FreeBSD, Solaris, and Windows. A commercial
|
||||
version called [Consul Enterprise](https://www.hashicorp.com/products/consul)
|
||||
is also available.
|
||||
When we're ready to merge back to upstream, we can make a single mega PR
|
||||
merging `f-connect` into OSS master. This way we don't have a sudden mega
|
||||
push to master on OSS.
|
||||
|
||||
## Quick Start
|
||||
## Creating a Feature Branch
|
||||
|
||||
An extensive quick start is viewable on the Consul website:
|
||||
To create a feature branch, branch from `f-connect`:
|
||||
|
||||
https://www.consul.io/intro/getting-started/install.html
|
||||
|
||||
## Documentation
|
||||
|
||||
Full, comprehensive documentation is viewable on the Consul website:
|
||||
|
||||
https://www.consul.io/docs
|
||||
|
||||
## Developing Consul
|
||||
|
||||
If you wish to work on Consul itself, you'll first need [Go](https://golang.org)
|
||||
installed (version 1.9+ is _required_). Make sure you have Go properly installed,
|
||||
including setting up your [GOPATH](https://golang.org/doc/code.html#GOPATH).
|
||||
|
||||
Next, clone this repository into `$GOPATH/src/github.com/hashicorp/consul` and
|
||||
then just type `make`. In a few moments, you'll have a working `consul` executable:
|
||||
|
||||
```
|
||||
$ make
|
||||
...
|
||||
$ bin/consul
|
||||
...
|
||||
```sh
|
||||
git checkout f-connect
|
||||
git checkout -b my-new-branch
|
||||
```
|
||||
|
||||
*Note: `make` will build all os/architecture combinations. Set the environment variable `CONSUL_DEV=1` to build it just for your local machine's os/architecture, or use `make dev`.*
|
||||
All merged Connect features will be in `f-connect`, so you want to work
|
||||
from that branch. When making a PR for your feature branch, target the
|
||||
`f-connect` branch as the merge target. You can do this by using the dropdowns
|
||||
in the GitHub UI when creating a PR.
|
||||
|
||||
*Note: `make` will also place a copy of the binary in the first part of your `$GOPATH`.*
|
||||
## Syncing Upstream
|
||||
|
||||
You can run tests by typing `make test`. The test suite may fail if
|
||||
over-parallelized, so if you are seeing stochastic failures try
|
||||
`GOTEST_FLAGS="-p 2 -parallel 2" make test`.
|
||||
First update our local master:
|
||||
|
||||
If you make any changes to the code, run `make format` in order to automatically
|
||||
format the code according to Go standards.
|
||||
```sh
|
||||
# This has to happen on forked master
|
||||
git checkout master
|
||||
|
||||
## Vendoring
|
||||
# Add upstream to OSS Consul
|
||||
git remote add upstream https://github.com/hashicorp/consul.git
|
||||
|
||||
Consul currently uses [govendor](https://github.com/kardianos/govendor) for
|
||||
vendoring and [vendorfmt](https://github.com/magiconair/vendorfmt) for formatting
|
||||
`vendor.json` to a more merge-friendly "one line per package" format.
|
||||
# Fetch it
|
||||
git fetch upstream
|
||||
|
||||
# Rebase forked master onto upstream. This should have no changes since
|
||||
# we're never modifying master.
|
||||
git rebase upstream master
|
||||
```
|
||||
|
||||
Next, update the `f-connect` branch:
|
||||
|
||||
```sh
|
||||
git checkout f-connect
|
||||
git rebase origin master
|
||||
```
|
||||
|
|
Loading…
Reference in New Issue