mirror of https://github.com/golang/go.git
[release-branch.go1.4] doc: copy contribute.html and install-source.html from master
This incorporates the various git-related updates that have happened since the Go 1.4 release. Since Go 1.4.1 will be issued from Git, it is appropriate to replace the Mercurial instructions with Git instructions. Change-Id: Idec041002c7f325c4eee6f25c50423b088b11468 Reviewed-on: https://go-review.googlesource.com/2788 Reviewed-by: Andrew Gerrand <adg@golang.org>
This commit is contained in:
parent
7cb53b8ca2
commit
4482c7b1a1
|
|
@ -6,19 +6,10 @@
|
|||
|
||||
<p>
|
||||
This document explains how to contribute changes to the Go project.
|
||||
It assumes you have installed Go from source:
|
||||
<p>
|
||||
|
||||
<pre>
|
||||
$ git clone https://go.googlesource.com/go
|
||||
$ cd go/src
|
||||
$ ./all.bash
|
||||
</pre>
|
||||
<!--
|
||||
TODO(adg): delete the above, restore the below after we have updated install-source.html
|
||||
It assumes you have followed the
|
||||
<a href="/doc/install/source">installation instructions</a> and
|
||||
have <a href="code.html">written and tested your code</a>.
|
||||
-->
|
||||
</p>
|
||||
|
||||
<p>
|
||||
(Note that the <code>gccgo</code> frontend lives elsewhere;
|
||||
|
|
@ -77,7 +68,7 @@ Changes to Go must be reviewed before they are submitted,
|
|||
no matter who makes the change.
|
||||
(In exceptional cases, such as fixing a build, the review can
|
||||
follow shortly after submitting.)
|
||||
A custom git command called <code>git-review</code>,
|
||||
A custom git command called <code>git-codereview</code>,
|
||||
discussed below, helps manage the code review process through a Google-hosted
|
||||
<a href="https://go-review.googlesource.com/">instance</a> of the code review
|
||||
system called <a href="https://code.google.com/p/gerrit/">Gerrit</a>.
|
||||
|
|
@ -132,53 +123,53 @@ and log in using the same Google Account you used above.
|
|||
That is all that is required.
|
||||
</p>
|
||||
|
||||
<h3>Install the git-review command</h3>
|
||||
<h3>Install the git-codereview command</h3>
|
||||
|
||||
<p>
|
||||
Now install the <code>git-review</code> command by running,
|
||||
Now install the <code>git-codereview</code> command by running,
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
go get -u golang.org/x/review/git-review
|
||||
go get -u golang.org/x/review/git-codereview
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Make sure <code>git-review</code> is installed in your shell path, so that the
|
||||
Make sure <code>git-codereview</code> is installed in your shell path, so that the
|
||||
<code>git</code> command can find it. Check that
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ git review help
|
||||
$ git codereview help
|
||||
</pre>
|
||||
|
||||
|
||||
<p>
|
||||
prints help text, not an error.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note to Git aficionados: The <code>git-review</code> command is not required to
|
||||
Note to Git aficionados: The <code>git-codereview</code> command is not required to
|
||||
upload and manage Gerrit code reviews. For those who prefer plain Git, the text
|
||||
below gives the Git equivalent of each git-review command. If you do use plain
|
||||
Git, note that you still need the commit hooks that the git-review command
|
||||
below gives the Git equivalent of each git-codereview command. If you do use plain
|
||||
Git, note that you still need the commit hooks that the git-codereview command
|
||||
configures; those hooks add a Gerrit <code>Change-Id</code> line to the commit
|
||||
message and check that all Go source files have been formatted with gofmt. Even
|
||||
if you intend to use plain Git for daily work, install the hooks in a new Git
|
||||
checkout by running <code>git-review</code> <code>hooks</code>).
|
||||
checkout by running <code>git-codereview</code> <code>hooks</code>.
|
||||
</p>
|
||||
|
||||
<h3>Set up git aliases</h3>
|
||||
|
||||
<p>
|
||||
The <code>git-review</code> command can be run directly from the shell
|
||||
The <code>git-codereview</code> command can be run directly from the shell
|
||||
by typing, for instance,
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
$ git review sync
|
||||
$ git codereview sync
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
but it is more convenient to set up aliases for <code>git-review</code>'s own
|
||||
but it is more convenient to set up aliases for <code>git-codereview</code>'s own
|
||||
subcommands, so that the above becomes,
|
||||
</p>
|
||||
|
||||
|
|
@ -186,8 +177,8 @@ subcommands, so that the above becomes,
|
|||
$ git sync
|
||||
</pre>
|
||||
|
||||
</p>
|
||||
The <code>git-review</code> subcommands have been chosen to be distinct from
|
||||
<p>
|
||||
The <code>git-codereview</code> subcommands have been chosen to be distinct from
|
||||
Git's own, so it's safe to do so.
|
||||
</p>
|
||||
|
||||
|
|
@ -200,24 +191,25 @@ To install them, copy this text into your Git configuration file
|
|||
|
||||
<pre>
|
||||
[alias]
|
||||
change = review change
|
||||
gofmt = review gofmt
|
||||
mail = review mail
|
||||
pending = review pending
|
||||
sync = review sync
|
||||
change = codereview change
|
||||
gofmt = codereview gofmt
|
||||
mail = codereview mail
|
||||
pending = codereview pending
|
||||
submit = codereview submit
|
||||
sync = codereview sync
|
||||
</pre>
|
||||
|
||||
<h3>Understanding the git-review command</h3>
|
||||
<h3>Understanding the git-codereview command</h3>
|
||||
|
||||
<p>After installing the <code>git-review</code> command, you can run</p>
|
||||
<p>After installing the <code>git-codereview</code> command, you can run</p>
|
||||
|
||||
<pre>
|
||||
$ git review help
|
||||
$ git codereview help
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
to learn more about its commands.
|
||||
You can also read the <a href="https://godoc.org/golang.org/x/review/git-review">command documentation</a>.
|
||||
You can also read the <a href="https://godoc.org/golang.org/x/review/git-codereview">command documentation</a>.
|
||||
</p>
|
||||
|
||||
<h3>Switch to the master branch</h3>
|
||||
|
|
@ -367,7 +359,7 @@ Do not edit or delete it.
|
|||
<p>
|
||||
(In Git terms, <code>git</code> <code>change</code> with no branch name
|
||||
runs <code>git</code> <code>commit</code> <code>--amend</code>.)
|
||||
</p>
|
||||
</p>
|
||||
|
||||
<h3>Mail the change for review</h3>
|
||||
|
||||
|
|
@ -469,7 +461,7 @@ $ git sync
|
|||
</pre>
|
||||
|
||||
<p>
|
||||
(In git terms, git sync runs
|
||||
(In git terms, <code>git</code> <code>sync</code> runs
|
||||
<code>git</code> <code>pull</code> <code>-r</code>.)
|
||||
</p>
|
||||
|
||||
|
|
@ -660,7 +652,7 @@ This rigmarole needs to be done only for your first submission.
|
|||
<p>Code that you contribute should use the standard copyright header:</p>
|
||||
|
||||
<pre>
|
||||
// Copyright 2014 The Go Authors. All rights reserved.
|
||||
// Copyright 2015 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
</pre>
|
||||
|
|
|
|||
|
|
@ -81,38 +81,21 @@ The full set of supported combinations is listed in the discussion of
|
|||
|
||||
<p>
|
||||
The Go tool chain is written in C. To build it, you need a C compiler installed.
|
||||
Please refer to the <a href="//golang.org/wiki/InstallFromSource#Install_C_tools">InstallFromSource</a>
|
||||
Please refer to the <a href="//golang.org/wiki/InstallFromSource#install-c-tools">InstallFromSource</a>
|
||||
page on the Go community Wiki for operating system specific instructions.
|
||||
</p>
|
||||
|
||||
<h2 id="mercurial">Install Mercurial, if needed</h2>
|
||||
<h2 id="git">Install Git, if needed</h2>
|
||||
|
||||
<p>
|
||||
To perform the next step you must have Mercurial installed. (Check that you
|
||||
have an <code>hg</code> command.)
|
||||
To perform the next step you must have Git installed. (Check that you
|
||||
have a <code>git</code> command before proceeding.)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you do not have a working Mercurial installation,
|
||||
If you do not have a working Git installation,
|
||||
follow the instructions on the
|
||||
<a href="http://mercurial.selenic.com/downloads">Mercurial downloads</a> page.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mercurial versions 1.7.x and up require the configuration of
|
||||
<a href="http://mercurial.selenic.com/wiki/CACertificates">Certification Authorities</a>
|
||||
(CAs). Error messages of the form:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
warning: code.google.com certificate with fingerprint b1:af: ... bc not verified (check hostfingerprints or web.cacerts config setting)
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
when using Mercurial indicate that the CAs are missing.
|
||||
Check your Mercurial version (<code>hg --version</code>) and
|
||||
<a href="http://mercurial.selenic.com/wiki/CACertificates#Configuration_of_HTTPS_certificate_authorities">configure the CAs</a>
|
||||
if necessary.
|
||||
<a href="http://git-scm.com/downloads">Git downloads</a> page.
|
||||
</p>
|
||||
|
||||
|
||||
|
|
@ -121,22 +104,24 @@ if necessary.
|
|||
<p>Go will install to a directory named <code>go</code>.
|
||||
Change to the directory that will be its parent
|
||||
and make sure the <code>go</code> directory does not exist.
|
||||
Then check out the repository:</p>
|
||||
Then clone the repository and check out the latest release tag:</p>
|
||||
|
||||
<pre>
|
||||
$ hg clone -u release https://code.google.com/p/go
|
||||
$ git clone https://go.googlesource.com/go
|
||||
$ cd go
|
||||
$ git checkout go1.4
|
||||
</pre>
|
||||
|
||||
<h2 id="head">(Optional) Switch to the default branch</h2>
|
||||
<h2 id="head">(Optional) Switch to the master branch</h2>
|
||||
|
||||
<p>If you intend to modify the go source code, and
|
||||
<a href="/doc/contribute.html">contribute your changes</a>
|
||||
to the project, then move your repository
|
||||
off the release branch, and onto the default (development) branch.
|
||||
off the release branch, and onto the master (development) branch.
|
||||
Otherwise, skip this step.</p>
|
||||
|
||||
<pre>
|
||||
$ hg update default
|
||||
$ git checkout master
|
||||
</pre>
|
||||
|
||||
<h2 id="install">Install Go</h2>
|
||||
|
|
@ -259,7 +244,7 @@ $ go get golang.org/x/tools/cmd/godoc
|
|||
|
||||
<p>
|
||||
To install these tools, the <code>go</code> <code>get</code> command requires
|
||||
that <a href="#mercurial">Mercurial</a> be installed locally.
|
||||
that <a href="#git">Git</a> be installed locally.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
@ -292,22 +277,18 @@ that receives a message summarizing each checkin to the Go repository.
|
|||
</p>
|
||||
|
||||
<p>
|
||||
Bugs can be reported using the <a href="//code.google.com/p/go/issues/list">Go issue tracker</a>.
|
||||
Bugs can be reported using the <a href="//golang.org/issue/new">Go issue tracker</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="releases">Keeping up with releases</h2>
|
||||
|
||||
<p>
|
||||
The Go project maintains a stable tag in its Mercurial repository:
|
||||
<code>release</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <code>release</code> tag refers to the current stable release of Go.
|
||||
Most Go users should use this version. New releases are announced on the
|
||||
New releases are announced on the
|
||||
<a href="//groups.google.com/group/golang-announce">golang-announce</a>
|
||||
mailing list.
|
||||
Each announcement mentions the latest release tag, for instance,
|
||||
<code>go1.4</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
@ -316,11 +297,13 @@ To update an existing tree to the latest release, you can run:
|
|||
|
||||
<pre>
|
||||
$ cd go/src
|
||||
$ hg pull
|
||||
$ hg update release
|
||||
$ git fetch
|
||||
$ git checkout <i><tag></i>
|
||||
$ ./all.bash
|
||||
</pre>
|
||||
|
||||
Where <code><tag></code> is the version string of the release.
|
||||
|
||||
|
||||
<h2 id="environment">Optional environment variables</h2>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue