Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove $GOPATH Caching #9

Merged
merged 62 commits into from
Aug 29, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
6799104
Remove $GOPATH Caching
jakesylvestre Feb 10, 2020
c01c981
Merge pull request #1537 from jakesyl/patch-1
jcvernaleo Mar 3, 2020
eed57cd
go fmt
jakesylvestre Jan 22, 2020
3eb4739
Fix minRelayTxFee name in comment
federicobond Jul 9, 2018
1639d6c
release: add missing back tick in build docs
Dec 26, 2019
8bbbe98
peer: fix small typo
gtank Oct 9, 2019
0c76fbd
Fix comment error
imnisen Mar 3, 2019
318c89d
fix comment of database.Tx to match code
yashbhutwala Jun 25, 2019
46461dc
btcjson, rpclient: Fix typo
Jul 5, 2019
ef4cecf
blockchain/indexers: Start a new line for long code
qshuai Jan 29, 2019
e2c08cc
docs/json_rpc_api: update go examples
mohanson Aug 27, 2018
06e5c43
Add note about using gencerts when listening on specific interfaces
kulpreet Jul 18, 2018
160c388
Refactor GetBlockCmd type and NewGetBlockCmd() function to follow the…
jalavosus Jan 31, 2020
468154a
Refactor GetBlockVerboseResult into two separate types: one type for …
jalavosus Jan 31, 2020
57cb8e4
Refactor FutureGetBlockVerboseResult into two types: FutureGetBlockVe…
jalavosus Jan 31, 2020
a310aa6
All tests pass
jalavosus Mar 5, 2020
e9f15ed
rpcclient: Add net params to Client (#1467)
jcvernaleo Mar 5, 2020
1d0bfca
fix error message
Jan 12, 2020
9e94ccb
server: Fix incorrect log message format
stevenroose Mar 16, 2018
96f3808
BUG:dynamicbanscore deadlock
lochjin Mar 6, 2020
fd0921b
btcjson: add RPC_IN_WARMUP error code
sangaman Feb 18, 2020
c4f3999
Refactor GetBlockVerboseTx to reflect correct getblock RPC call… (#1529)
jakesylvestre Mar 9, 2020
d9ce6b0
btcjson,rpcclient: use proper Deprecated comment format
quasilyte Sep 13, 2018
a8eadd2
update GetMempoolEntryResult to v0.19.0
jakesylvestre Jan 22, 2020
8b1be46
Add generatetoaddress and estimatesmartfee RPCs
torkelrogstad Nov 26, 2019
cfcf4fb
Implement 'getblockstats' JSON-RPC command
Jeiwan Nov 27, 2019
08b8751
cmd/btcctl: use regexp.MustCompile for constant patterns
quasilyte Sep 13, 2018
57d44d0
Try both TX serialization formats
torkelrogstad Dec 2, 2019
9f15a7e
Alphabetize --help output; add missing options to doc.go
murrayn Apr 14, 2020
8b54b0b
config.go: remove extra quotes
Rjected Apr 14, 2020
8512aff
readme: remove duplicate word
tpkeeper May 6, 2020
b298415
Improve error message about non-active segwit on simnet
darwin Mar 25, 2019
b470eee
btcctl: add regtest mode to btcctl
Rjected Apr 14, 2020
a505b99
build: replace travis-ci with github actions.
dajohi May 13, 2020
bc8d63b
build: update deps
dajohi May 13, 2020
f7399e6
build: clean linter warnings
dajohi May 13, 2020
d38279e
btcjson: change getblock default verbosity to 1
henryperson May 15, 2020
742935e
rpcclient: send legacy GetBlock request for backwards compatibility
wpaulino May 14, 2020
9a88e1d
Merge pull request #1575 from dajohi/clean
Roasbeef May 15, 2020
9f0179f
Merge pull request #1577 from wpaulino/getblock-compat
Roasbeef May 15, 2020
280845a
rpcclient: Add cookie auth
JeremyRand May 25, 2020
915788b
rpcclient: Refactor cookie caching
JeremyRand Oct 9, 2019
e6f163e
rpcclient: Try user+pass auth before cookie auth
JeremyRand Oct 9, 2019
6d521ff
rpcclient: Read first line of cookie instead of trimming space
JeremyRand Oct 10, 2019
714de3f
rpcclient: serialize nil inputs to empty list
torkelrogstad Apr 2, 2020
b11bf58
Improve chain state init efficiency
lindlof May 17, 2020
a383a71
Add blockchain.NewUtxoEntry() to directly create entries for UtxoView…
adiabat May 29, 2020
73d69f0
Add getchaintxstats JSON-RPC client command
lindlof May 11, 2020
e4f5902
Add fundrawtransaction RPC call
torkelrogstad Dec 2, 2019
7b2ff5d
Add getbalances RPC client command
federicobond Jun 18, 2020
e2d9cf4
rpcclient: Add GetTransactionWatchOnly method
onyb Jun 10, 2020
875b51c
peer: knownInventory, sentNonces - use generic lru
tuxcanfly Jul 3, 2020
d28c716
btcec: Avoid panic in fieldVal.SetByteSlice for large inputs
onyb Jul 9, 2020
c739023
config+service_windows: add flag to disable win service
guggero Jul 22, 2020
3c56a6b
updated docs for getblock-verbosity fixes
JettScythe Jul 21, 2020
69773a7
Update json_rpc_api.md
JettScythe Jul 21, 2020
24db7d7
netsync: handle notfound messages from peers
tuxcanfly Jul 10, 2020
1db1b6f
Merge pull request #1609 from guggero/disable-windows-service
Roasbeef Jul 30, 2020
4255e1e
release: update release script path
Rjected Jul 23, 2020
2a0d6fd
release: remove old scripts and update process doc
Rjected Jul 27, 2020
4527c56
Update CHANGES file for 0.21.0 release
onyb Aug 24, 2020
56cc42f
btcd: bump version to v0.21.0-beta
jcvernaleo Aug 27, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
release: remove old scripts and update process doc
- remove prep_release.sh and notes.sample
- update license in release.sh
- add notes for maintainers on the release process
- mention CHANGES file modifications
  • Loading branch information
Rjected authored and jcvernaleo committed Aug 27, 2020
commit 2a0d6fd0e3386b8f882782944ab648d05ef5e926
116 changes: 115 additions & 1 deletion release/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,84 @@ distinct machines, and end up with a byte-for-byte identical binary. However,
this wasn't _fully_ solved in `go1.13`, as the build system still includes the
directory the binary is built into the binary itself. As a result, our scripts
utilize a work around needed until `go1.13.2`.
Every release should note which Go version was used to build the release, so
that version should be used for verifying the release.

## Building a New Release

### macOS/Linux/Windows (WSL)
### Tagging and pushing a new tag (for maintainers)

Before running release scripts, a few things need to happen in order to finally
create a release and make sure there are no mistakes in the release process.

First, make sure that before the tagged commit there are modifications to the
[CHANGES](../CHANGES) file committed.
The CHANGES file should be a changelog that roughly mirrors the release notes.
Generally, the PRs that have been merged since the last release have been
listed in the CHANGES file and categorized.
For example, these changes have had the following format in the past:
```
Changes in X.YY.Z (Month Day Year):
- Protocol and Network-related changes:
- PR Title One (#PRNUM)
- PR Title Two (#PRNUMTWO)
...
- RPC changes:
- Crypto changes:
...

- Contributors (alphabetical order):
- Contributor A
- Contributor B
- Contributor C
...
```

If the previous tag is, for example, `vA.B.C`, then you can get the list of
contributors (from `vA.B.C` until the current `HEAD`) using the following command:
```bash
git log vA.B.C..HEAD --pretty="%an" | sort | uniq
```
After committing changes to the CHANGES file, the tagged release commit
should be created.

The tagged commit should be a commit that bumps version numbers in `version.go`
and `cmd/btcctl/version.go`.
For example (taken from [f3ec130](https://github.com/btcsuite/btcd/commit/f3ec13030e4e828869954472cbc51ac36bee5c1d)):
```diff
diff --git a/cmd/btcctl/version.go b/cmd/btcctl/version.go
index 2195175c71..f65cacef7e 100644
--- a/cmd/btcctl/version.go
+++ b/cmd/btcctl/version.go
@@ -18,7 +18,7 @@ const semanticAlphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr
const (
appMajor uint = 0
appMinor uint = 20
- appPatch uint = 0
+ appPatch uint = 1

// appPreRelease MUST only contain characters from semanticAlphabet
// per the semantic versioning spec.
diff --git a/version.go b/version.go
index 92fd60fdd4..fba55b5a37 100644
--- a/version.go
+++ b/version.go
@@ -18,7 +18,7 @@ const semanticAlphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr
const (
appMajor uint = 0
appMinor uint = 20
- appPatch uint = 0
+ appPatch uint = 1

// appPreRelease MUST only contain characters from semanticAlphabet
// per the semantic versioning spec.
```

Next, this commit should be signed by the maintainer using `git commit -S`.
The commit should be tagged and signed with `git tag <TAG> -s`, and should be
pushed using `git push origin TAG`.

### Building a release on macOS/Linux/Windows (WSL)

No prior set up is needed on Linux or macOS is required in order to build the
release binaries. However, on Windows, the only way to build the release
Expand All @@ -25,6 +99,46 @@ This will then create a directory of the form `btcd-<TAG>` containing archives
of the release binaries for each supported operating system and architecture,
and a manifest file containing the hash of each archive.

### Pushing a release (for maintainers)

Now that the directory `btcd-<TAG>` is created, the manifest file needs to be
signed by a maintainer and the release files need to be published to GitHub.

Sign the `manifest-<TAG>.txt` file like so:
```sh
gpg --sign --detach-sig manifest-<TAG>.txt
```
This will create a file named `manifest-<TAG>.txt.sig`, which will must
be included in the release files later.

#### Note before publishing
Before publishing, go through the reproducible build process that is outlined
in this document with the files created from `release/release.sh`. This includes
verifying commit and tag signatures using `git verify-commit` and git `verify-tag`
respectively.

Now that we've double-checked everything and have all of the necessary files,
it's time to publish release files on GitHub.
Follow [this documentation](https://docs.github.com/en/github/administering-a-repository/managing-releases-in-a-repository)
to create a release using the GitHub UI, and make sure to write release notes
which roughly follow the format of [previous release notes](https://github.com/btcsuite/btcd/releases/tag/v0.20.1-beta).
This is different from the [CHANGES](../CHANGES) file, which should be before the
tagged commit in the git history.
Much of the information in the release notes will be the same as the CHANGES
file.
It's important to include the Go version used to produce the release files in
the release notes, so users know the correct version of Go to use to reproduce
and verify the build.
When following the GitHub documentation, include every file in the `btcd-<TAG>`
directory.

At this point, a signed commit and tag on that commit should be pushed to the main
branch. The directory created from running `release/release.sh` should be included
as release files in the GitHub release UI, and the `manifest-<TAG>.txt` file
signature, called `manifest-<TAG>.txt.sig`, should also be included.
A release notes document should be created and written in the GitHub release UI.
Once all of this is done, feel free to click `Publish Release`!

## Verifying a Release

With `go1.13`, it's now possible for third parties to verify release binaries.
Expand Down
6 changes: 0 additions & 6 deletions release/notes.sample

This file was deleted.

205 changes: 0 additions & 205 deletions release/prep_release.sh

This file was deleted.

9 changes: 5 additions & 4 deletions release/release.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
#!/bin/bash

# Copyright (c) 2016 Company 0, LLC.
# Copyright (c) 2016-2020 The btcsuite developers
# Use of this source code is governed by an ISC
# license that can be found in the LICENSE file.

# Simple bash script to build basic btcd tools for all the platforms we support
# with the golang cross-compiler.
#
# Copyright (c) 2016 Company 0, LLC.
# Use of this source code is governed by the ISC
# license.

set -e

Expand Down