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

Release: go-algorand 3.7.0-beta Release PR #4050

Merged
merged 41 commits into from
May 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
aa2fb0e
Merge pull request #3798 from Algo-devops-service/relstable3.5.1
algojohnlee Mar 18, 2022
fdfbe24
Merge remote-tracking branch 'origin/rel/stable' into relstable3.5.1-…
Algo-devops-service Mar 23, 2022
2a58614
Bump Version, Remove buildnumber.dat and genesistimestamp.dat files.
Algo-devops-service Mar 23, 2022
cd4015a
Add lock around catchpointsMu to avoid race condition (#3944)
Eric-Warehime May 3, 2022
f83e312
Add install_buildtools.sh to check_deps.sh error message (#3921)
Eric-Warehime May 3, 2022
7a0cd7f
Fixes for e2e test runs (#3948)
Eric-Warehime May 4, 2022
370d828
Support e2e-go tests when repo is not installed in GOPATH. (#3949)
winder May 4, 2022
704e0b4
AVM: Unify inner transaction ID calculation (#3927)
jasonpaulos May 5, 2022
0d1e448
Merge branch 'rel/beta' into relstable3.6.2
Algo-devops-service May 7, 2022
5e6bc6f
Merge pull request #3960 from Algo-devops-service/relstable3.6.2
algojohnlee May 9, 2022
5925aff
build: Bump golang to 1.17.9/Mac M1 Support (#3919)
Eric-Warehime May 10, 2022
683d95a
Merge pull request #3828 from Algo-devops-service/relstable3.5.1-remerge
algojohnlee May 10, 2022
bd18d04
StateProofs: New block header field - SHA256 merkle root of the trans…
Aharonee May 10, 2022
123d851
Merge branch 'rel/stable' into relstable-3.6.2-remerge
onetechnical May 11, 2022
c39914d
Bump version
onetechnical May 11, 2022
8f3e557
Merge pull request #3977 from onetechnical/relstable-3.6.2-remerge
algojohnlee May 11, 2022
69f1ec1
algod: Add a sourcemap flag for compile endpoint (#3938)
algochoi May 13, 2022
aa82b9a
Dryrun: Return EvalDeltas for failed executions in Dryrun (#3929)
algochoi May 13, 2022
dd703da
algod API: Remove errant base64 docs reference (#3982)
michaeldiamant May 13, 2022
8e6cef1
transaction sync: Transition test (#3882)
brianolson May 16, 2022
91095fa
cleanup: replace crypto.HashObj(Transaction) with Transaction.ID() (#…
brianolson May 16, 2022
8bb8a4a
CI: ensure msgp generator has been run and is clean (#3978)
cce May 17, 2022
8455403
CI: add simple codecov config (#3997)
cce May 18, 2022
aae5ef2
added -v flag to algokey (#4004)
algoganesh May 18, 2022
8bd8ab6
Tools: Add benchmark warnings for PRs and push graphs for commits int…
algochoi May 19, 2022
d06c9aa
use tag to determine channel if possible (#4017)
winder May 20, 2022
4a922c4
base64_decode can decode padded or unpadded encodings (#4015)
jannotti May 22, 2022
b3e19e7
AVM: Allow immutable access to foreign app accounts (#3994)
algoidurovic May 23, 2022
8088e04
AVM: Add bn256 pairing opcodes experimentally (#4013)
jannotti May 24, 2022
280102c
metrics: make metrics easier to use with prometheus (#4020)
cce May 24, 2022
3c4c8fb
network: non-participating nodes request TX gossip only if ForceFetch…
brianolson May 25, 2022
c9f4151
fix: place updater in same directory as update.sh and add verify opt…
algolucky May 25, 2022
2df7468
Added generate-docs command to tealdbg (#3830)
nullun May 25, 2022
a3003ec
Add missing HashType to GetProof endpoint (#3985)
Aharonee May 26, 2022
7147d01
Dryrun: Split dryrun cost field into BudgetConsumed and BudgetAdded (…
algoidurovic May 26, 2022
8a893dd
Fix typo in bandwidthFilter_test.go (#4028)
eltociear May 26, 2022
c516ac3
metrics: collect and report Go runtime.metrics (#4041)
cce May 26, 2022
26465a6
update node_exporter to include https://github.com/algorand/node_expo…
cce May 26, 2022
92027a0
Devops: Use Cloudflare API token instead of auth key (#4039)
onetechnical May 27, 2022
9237316
Developer Tools: Add manjaro support to build script (#3893)
vuvoth May 27, 2022
bd54c4b
Update the Version, BuildNumber, genesistimestamp.data
Algo-devops-service May 27, 2022
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
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ commands:
shell: bash.exe
command: |
choco install -y msys2 pacman make wget --force
choco install -y golang --version=1.16.15 --force
choco install -y golang --version=1.17.9 --force
choco install -y python3 --version=3.7.3 --force
export msys2='cmd //C RefreshEnv.cmd '
export msys2+='& set MSYS=winsymlinks:nativestrict '
Expand Down
18 changes: 18 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
codecov:
require_ci_to_pass: yes

ignore:
- "**/*_gen.go"
- "**/*_gen_test.go"
- "**/generated"

coverage:
status:
project:
default:
target: auto
informational: true
patch:
default:
target: auto
informational: true
26 changes: 26 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Github Actions Workflows

## Benchmarking Performance Tests
`benchmarks.yml` contains a workflow to check for any performance regressions or
improvements in benchmark tests.

It uses
[github-action-benchmark](https://github.com/benchmark-action/github-action-benchmark)
to check performance diffs between a PR and the `master` branch, comments if it
there is a regression past a certain threshold (default: `200%`), and generates
a performance diff JSON between consecutive commits in the `master` branch in
the `gh-pages` branch (the JSON is visualized into a graph that can be seen at:
https://algorand.github.io/go-algorand/dev/bench/).

### Adding benchmark tests
Add run steps or extend existing benchmark invocations in the `Run benchmark`
step. Additional benchmarks can be run using the `-bench` flag. Since there's
few benchmarks run by the workflow, there are _no_ formal groupings and/or
naming conventions.

### CI Variance
There may be some variance between runs because github actions might spin up a
different machine each time (e.g. Intel Xeon 8370C vs 8171M; the latter might
run benchmarks slightly slower). Empirically, the variance seems to be 10~30%
for the most part. Due to this environment variance, the workflow is most
suitable for finding _large_ performance degradations.
51 changes: 51 additions & 0 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: "Benchmark workflow"
on:
# Push and update benchmarks when a commit is merged into master.
push:
branches:
- master
# Trigger benchmark test on this PR's commit against master.
pull_request:
branches:
- master
permissions:
# Push benchmark performance graph to gh-pages branch.
contents: write
deployments: write
jobs:
benchmark:
name: Performance regression check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version-file: 'go.mod'
- run: go version
- name: Build go-algorand
run: scripts/travis/build.sh
# BenchmarkUintMath - Serves as a proxy for AVM `eval` performance.
# Performance degradations suggest either or both: (1) op code
# degradation, (2) `eval` degradation. (2) suggests a broader performance
# issue.
- name: Run benchmark
run: go test ./data/transactions/logic -bench 'BenchmarkUintMath' | tee benchmark_output.txt
- name: Push benchmark result to gh-pages branch
if: github.event_name == 'push'
uses: benchmark-action/github-action-benchmark@v1
with:
name: Go Benchmark
tool: 'go'
output-file-path: benchmark_output.txt
github-token: ${{ secrets.GITHUB_TOKEN }}
auto-push: true
- name: Evaluate benchmark on PR branch
if: github.event.pull_request
uses: benchmark-action/github-action-benchmark@v1
with:
name: Go Benchmark
tool: 'go'
output-file-path: benchmark_output.txt
github-token: ${{ secrets.GITHUB_TOKEN }}
alert-threshold: '200%'
comment-on-alert: true
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Install golang
uses: actions/setup-go@v2
with:
go-version: '1.16.15'
go-version: '1.17.9'
- name: Build Test
run: |
export ALGORAND_DEADLOCK=enable
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reviewdog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
- name: Install specific golang
uses: actions/setup-go@v2
with:
go-version: '1.16.15'
go-version: '1.17.9'
- name: Create folders for golangci-lint
run: mkdir -p cicdtmp/golangci-lint
- name: Check if custom golangci-lint is already built
Expand Down
7 changes: 7 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ else
export GOTESTCOMMAND=gotestsum --format pkgname --jsonfile testresults.json --
endif

# M1 Mac--homebrew install location in /opt/homebrew
ifeq ($(OS_TYPE), darwin)
ifeq ($(ARCH), arm64)
export CPATH=/opt/homebrew/include
export LIBRARY_PATH=/opt/homebrew/lib
endif
endif
ifeq ($(UNAME), Linux)
EXTLDFLAGS := -static-libstdc++ -static-libgcc
ifeq ($(ARCH), amd64)
Expand Down
4 changes: 2 additions & 2 deletions agreement/fuzzer/bandwidthFilter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ func (n *BandwidthFilter) Tick(newClockTime int) bool {
n.downstreamMutex.Lock()
if n.downstreamDataSize < 0 && n.downstreamQueue.Len() == 0 {
if n.debugMessageLevel >= 1 {
fmt.Printf("node: %d, tick: %d, reseting queued downstream capacity %d -> 0\n", n.nodeID, n.currentTick, n.upstreamDataSize)
fmt.Printf("node: %d, tick: %d, resetting queued downstream capacity %d -> 0\n", n.nodeID, n.currentTick, n.upstreamDataSize)
}
n.downstreamDataSize = 0
}
Expand All @@ -179,7 +179,7 @@ func (n *BandwidthFilter) Tick(newClockTime int) bool {
// adjust the upstream size.
if n.upstreamDataSize < 0 && n.upstreamQueue.Len() == 0 {
if n.debugMessageLevel >= 1 {
fmt.Printf("node: %d, tick: %d, reseting queued upstream capacity %d -> 0\n", n.nodeID, n.currentTick, n.upstreamDataSize)
fmt.Printf("node: %d, tick: %d, resetting queued upstream capacity %d -> 0\n", n.nodeID, n.currentTick, n.upstreamDataSize)
}
n.upstreamDataSize = 0
}
Expand Down
6 changes: 4 additions & 2 deletions agreement/gossip/network.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,11 @@ import (
)

var messagesHandledTotal = metrics.MakeCounter(metrics.AgreementMessagesHandled)
var messagesHandledByType = metrics.NewTagCounter("algod_agreement_handled_{TAG}", "Number of agreement messages handled per type")
var messagesHandledByType = metrics.NewTagCounter("algod_agreement_handled_{TAG}", "Number of agreement {TAG} messages handled",
agreementVoteMessageType, agreementProposalMessageType, agreementBundleMessageType)
var messagesDroppedTotal = metrics.MakeCounter(metrics.AgreementMessagesDropped)
var messagesDroppedByType = metrics.NewTagCounter("algod_agreement_dropped_{TAG}", "Number of agreement messages handled per type")
var messagesDroppedByType = metrics.NewTagCounter("algod_agreement_dropped_{TAG}", "Number of agreement {TAG} messages dropped",
agreementVoteMessageType, agreementProposalMessageType, agreementBundleMessageType)

const (
agreementVoteMessageType = "vote"
Expand Down
Loading