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

[1.1.0] Merge master into 1.1.0 #2720

Merged
merged 38 commits into from
Apr 1, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
eed8138
cleanup legacy "3 dot" check (#2625)
antiochp Feb 25, 2019
224a315
Allow to peers behind NAT to get up to preferred_max connections (#2543)
hashmap Feb 25, 2019
fe9fa51
Reduce usage of unwrap in p2p crate (#2627)
hashmap Feb 25, 2019
27c43c4
Simplify (and fix) output_pos cleanup during chain compaction (#2609)
antiochp Feb 27, 2019
2042882
[docs] Add switch commitment documentation (#2526)
johnzweng Feb 27, 2019
d73124c
[docs] Documents in grin repo had translated in Korean. (#2604)
Feb 28, 2019
d0ade29
Fix TxHashSet file filter for Windows. (#2641)
DavidBurkett Feb 28, 2019
4c9984c
Display the current download rate rather than the average when syncin…
Agreene Mar 3, 2019
72f8ce5
remove root = true from editorconfig (#2655)
bddap Mar 6, 2019
7fd2970
Add Medium post to intro (#2654)
Arvanaghi Mar 6, 2019
699d85a
add a new configure item for log_max_files (#2601)
garyyu Mar 8, 2019
608973c
Fix the build warning of deprecated trim_right_matches (#2662)
garyyu Mar 11, 2019
42fee8d
[DOC] state.md, build.md and chain directory documents translate in K…
Mar 11, 2019
a7a160a
Api documentation fixes (#2646)
Agreene Mar 11, 2019
c088044
refactor(ci): reorganize CI related code (#2658)
mrekucci Mar 11, 2019
7678ace
Specify grin or nanogrins in API docs where applicable (#2642)
rentenmark Mar 11, 2019
45d5686
Set Content-Type in API client (#2680)
hashmap Mar 15, 2019
dc59f67
Reduce number of unwraps in chain crate (#2679)
hashmap Mar 17, 2019
52b5dc0
fix: the restart of state sync doesn't work sometimes (#2687)
garyyu Mar 18, 2019
2b218f2
let check_txhashset_needed return true on abnormal case (#2684)
garyyu Mar 18, 2019
7fad5b0
Reduce number of unwwaps in api crate (#2681)
hashmap Mar 18, 2019
f4d3b2e
Small QoL improvements for wallet developers (#2651)
jaspervdm Mar 19, 2019
148256d
Add Japanese edition of build.md (#2697)
Mar 23, 2019
32d9391
catch the panic to avoid peer thread quit early (#2686)
garyyu Mar 23, 2019
73a46c6
[DOC] dandelion.md, simulation.md ,fast-sync.md and pruning.md docume…
Mar 23, 2019
3566da2
Show response code in API client error message (#2683)
hashmap Mar 23, 2019
c3cd98c
Add some better logging for get_outputs_by_id failure states (#2705)
rentenmark Mar 25, 2019
994ed85
Switch commitment doc fixes (#2645)
0xmichalis Mar 26, 2019
6808a07
docs: update/add new README.md badges (#2708)
mrekucci Mar 26, 2019
ba6f12c
Update intro.md (#2702)
GandalfThePink Mar 26, 2019
37b3a72
use sandbox folder for txhashset validation on state sync (#2685)
garyyu Mar 28, 2019
82b1cf8
add Japanese edition of state.md (#2703)
Mar 29, 2019
cea1390
Attempt to fix broken TUI locale (#2713)
hashmap Mar 29, 2019
340070f
clean the header folder in sandbox (#2716)
garyyu Mar 29, 2019
325e328
Reduce number of unwraps in servers crate (#2707)
hashmap Mar 31, 2019
3c0441c
merge from master
yeastplume Apr 1, 2019
0cba63b
rustfmt
yeastplume Apr 1, 2019
486f5dd
change version to beta
yeastplume Apr 1, 2019
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
81 changes: 0 additions & 81 deletions .auto-release.sh

This file was deleted.

28 changes: 28 additions & 0 deletions .ci/general-jobs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/env bash

# Copyright 2019 The Grin Developers
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This script contains general jobs.

case "${CI_JOB}" in
"test")
for dir in ${CI_JOB_ARGS}; do
printf "executing tests in directory \`%s\`...\n" "${dir}"
cd "${dir}" && \
cargo test --release && \
cd - > /dev/null || exit 1
done
;;
esac
122 changes: 122 additions & 0 deletions .ci/release-jobs
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
#!/usr/bin/env bash

# Copyright 2019 The Grin Developers
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This script contains release-related jobs.

# Redeclare CI and VCP specific environment variables
# to make future migration to other providers easier.
readonly JOB_ID="${TRAVIS_JOB_ID}"
readonly OS_NAME="${TRAVIS_OS_NAME}"
readonly TEST_RESULT="${TRAVIS_TEST_RESULT}"
readonly VCP_AUTH_TOKEN="${GITHUB_TOKEN}"

case "${CI_JOB}" in
"release")
# The release can only be triggered after successful completion of all tests.
[[ "${TEST_RESULT}" != 0 ]] && exit 1

readonly REPO_TAG="$(git describe --tags --exact-match 2> /dev/null || git symbolic-ref -q --short HEAD)"

case "${OS_NAME}" in
"linux")
cargo clean && \
cargo build --release
readonly ARCHIVE_CMD="tar zcf"
readonly BIN_SUFFIX=""
readonly PKG_NAME="grin-${REPO_TAG}-${JOB_ID}-linux-amd64"
readonly PKG_SUFFIX=".tgz"
;;

"osx")
brew update
cargo clean && \
cargo build --release
readonly ARCHIVE_CMD="tar zcf"
readonly BIN_SUFFIX=""
readonly PKG_NAME="grin-${REPO_TAG}-${JOB_ID}-osx"
readonly PKG_SUFFIX=".tgz"
;;

"windows")
cargo clean && \
cargo build --release
readonly ARCHIVE_CMD="7z a -tzip"
readonly BIN_SUFFIX=".exe"
readonly PKG_NAME="grin-${REPO_TAG}-${JOB_ID}-win-x64"
readonly PKG_SUFFIX=".zip"
;;

*)
printf "Error! Unknown \$OS_NAME: \`%s\`" "${OS_NAME}"
exit 1
esac

printf "creating package \`%s\` for the release binary...\n" "${PKG_NAME}${PKG_SUFFIX}"

cd ./target/release/ || exit 1
rm -f -- *"${PKG_SUFFIX}"
${ARCHIVE_CMD} "${PKG_NAME}${PKG_SUFFIX}" "grin${BIN_SUFFIX}"
ls -ls -- *.tgz | cut -d' ' -f6-
openssl md5 "${PKG_NAME}${PKG_SUFFIX}" > "${PKG_NAME}${PKG_SUFFIX}-md5sum.txt"
ls -ls -- *-md5sum.txt | cut -d' ' -f6-
cd - > /dev/null || exit 1

printf "%s package \`%s\` generated\n" "${OS_NAME}" "${PKG_NAME}${PKG_SUFFIX}"

# Generate changelog only on the Linux platform to avoid duplication.
[[ "${OS_NAME}" != "linux" ]] && exit 0

# Generate CHANGELOG.md
readonly REPO_SLUG="mimblewimble/grin"
readonly REPO_BRANCH="$(git symbolic-ref -q --short HEAD)"
readonly REPO_PREV_RELEASE_TAG="$(git describe --abbrev=0 --tags "$(git rev-list --tags --skip=0 --max-count=1)")"

gem install github_changelog_generator

# Needed by github_changelog_generator.
export CHANGELOG_GITHUB_TOKEN="${VCP_AUTH_TOKEN}"

github_changelog_generator \
--user "$(cut -d "/" -f1 <<< ${REPO_SLUG})" \
--project "$(cut -d "/" -f2 <<< ${REPO_SLUG})" \
--since-tag "${REPO_PREV_RELEASE_TAG}"

readonly CHANGELOG_CONTENT="$(<CHANGELOG.md)"

# Overwrite CHANGELOG.md with JSON data for release patch.
jq --null-input \
--arg body "${CHANGELOG_CONTENT}" \
--arg name "${REPO_TAG}" \
--arg tag_name "${REPO_TAG}" \
--arg target_commitish "${REPO_BRANCH}" \
'{
body: $body,
name: $name,
tag_name: $tag_name,
target_commitish: $target_commitish,
draft: false,
prerelease: false
}' > CHANGELOG.md

readonly HEADERS="Authorization: token ${VCP_AUTH_TOKEN}"
readonly RELEASE_URL="https://api.github.com/repos/${REPO_SLUG}/releases"
readonly RELEASE_ID="$(curl -0 --request GET -H "${HEADERS}" "${RELEASE_URL}/tags/${REPO_TAG}" 2> /dev/null | grep id | head -n 1 | sed 's/ *"id": *\(.*\),/\1/')"

printf "updating release changelog %s for repo: %s, branch: %s, release id: %s\n" "${REPO_TAG}" "${REPO_SLUG}" "${REPO_BRANCH}" "${RELEASE_ID}"
curl -H "${HEADERS}" --request PATCH --data @CHANGELOG.md "${RELEASE_URL}/${RELEASE_ID}"
printf "changelog uploaded.\n"
;;
esac
3 changes: 0 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# top-most .editorconfig file
root = true

# use hard tabs for rust source files
[*.rs]
indent_style = tab
82 changes: 38 additions & 44 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
language: rust

git:
depth: false
# Copyright 2019 The Grin Developers
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

dist: trusty
sudo: required

cache:
cargo: true
timeout: 240
directories:
- $HOME/.cargo
- $TRAVIS_BUILD_DIR/target

before_cache:
- rm -rf $TRAVIS_BUILD_DIR/target/tmp
language: rust

rust:
- stable

git:
depth: false

addons:
apt:
sources:
Expand All @@ -33,6 +37,13 @@ addons:
- gcc
- binutils-dev

cache:
cargo: true
timeout: 240
directories:
- $HOME/.cargo
- $TRAVIS_BUILD_DIR/target

env:
global:
- RUST_BACKTRACE="1"
Expand All @@ -41,46 +52,29 @@ env:
matrix:
include:
- os: linux
env: TEST_SUITE=servers
env: CI_JOB="test" CI_JOB_ARGS="servers"
- os: linux
env: CI_JOB="test" CI_JOB_ARGS="chain core"
- os: linux
env: TEST_SUITE=chain-core
env: CI_JOB="test" CI_JOB_ARGS="pool p2p src"
- os: linux
env: TEST_SUITE=pool-p2p-src
env: CI_JOB="test" CI_JOB_ARGS="keychain"
- os: linux
env: TEST_SUITE=keychain
env: CI_JOB="test" CI_JOB_ARGS="api util store"
- os: linux
env: TEST_SUITE=api-util-store
env: CI_JOB="release" CI_JOB_ARGS=
- os: osx
env: TEST_SUITE=release
env: CI_JOB="release" CI_JOB_ARGS=
# - os: windows
# env: TEST_SUITE=release
# env: CI_JOB="release" CI_JOB_ARGS=

script:
- IFS='-' read -r -a DIRS <<< "$TEST_SUITE"; DIR=${DIRS[0]};
echo "start testing on folder $DIR...";
if [[ -n "$DIR" ]] && [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cd $DIR && cargo test --release && cd - > /dev/null; fi;
- IFS='-' read -r -a DIRS <<< "$TEST_SUITE"; DIR=${DIRS[1]};
if [[ -n "$DIR" ]]; then
echo "start testing on folder $DIR...";
cd $DIR && cargo test --release && cd - > /dev/null;
fi;
- IFS='-' read -r -a DIRS <<< "$TEST_SUITE"; DIR=${DIRS[2]};
if [[ -n "$DIR" ]]; then
echo "start testing on folder $DIR...";
cd $DIR && cargo test --release && cd - > /dev/null;
fi;
script: .ci/general-jobs

before_cache:
- rm -rf $TRAVIS_BUILD_DIR/target/tmp

before_deploy:
- if [[ "$TEST_SUITE" == "pool-p2p-src" ]]; then
cargo clean && cargo build --release && ./.auto-release.sh;
fi
- if [[ "$TEST_SUITE" == "release" ]] && [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
brew update;
cargo clean && cargo build --release && ./.auto-release.sh;
fi
- if [[ "$TEST_SUITE" == "release" ]] && [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
cargo clean && cargo build --release && ./.auto-release.sh;
fi
- bash .ci/release-jobs

deploy:
provider: releases
Expand Down
Loading