Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
eeee334
Add a comment about deleted accounts in AccountDeltas. (#2586)
tolikzinovyev Jul 20, 2021
a398362
Update and consolidate feature_request.md (#2568)
algojack Jul 21, 2021
6852a13
Testing - for rpm install with dnf if present, otherwise fallback to …
onetechnical Jul 21, 2021
9bcee44
Disable networking on devmode (#2601)
tsachiherman Jul 21, 2021
58fd804
Initial CircleCI implementation with test partitioning (#2444)
bricerisingalgorand Jul 22, 2021
07d3c1a
Enable ineffassign linter and resolve its errors (#2574)
cce Jul 22, 2021
099cdd2
Use pre-existing homebrew state on CircleCI VMs (#2608)
cce Jul 22, 2021
f9d5efb
fix TestVoteAggregatorBundles and check router.dispatch() output (#2619)
cce Jul 23, 2021
916154b
Remove msgp 1.1.47 from go.mod/go.sum files (#2615)
bricerisingalgorand Jul 23, 2021
f41b6a9
Use strict json encoder in REST API v2 endpoints (#2611)
algorandskiy Jul 27, 2021
99ed67b
Fix- extraProgramPages (#2580)
shiqizng Jul 27, 2021
8cbb266
Remove old references to centos8 rpm packaging. (#2605)
egieseke Jul 27, 2021
ca20006
report on txn pool fullness (#2640)
brianolson Jul 27, 2021
5908fe5
Stack manipulation opcodes - uncover and cover (#2541)
AyAggarwal Jul 27, 2021
d393e92
Gauge no longer has a timeout (#2508)
brianolson Jul 27, 2021
9cae863
codec_tester: use runtime.Caller to search for //msgp:allocbound line…
cce Jul 28, 2021
434b98f
CircleCI: parameterizing no_output_timeout and -short (#2618)
algobarb Jul 28, 2021
487718d
Merge remote-tracking branch 'origin/rel/stable' into relstable2.8.0-…
Algo-devops-service Jul 28, 2021
0b70f77
Bump Version, Remove buildnumber.dat and genesistimestamp.dat files.
Algo-devops-service Jul 28, 2021
a04ac42
Merge pull request #2650 from Algo-devops-service/relstable2.8.0-remerge
algojohnlee Jul 28, 2021
d1425f0
partition router_test.go (#2652)
algobarb Jul 29, 2021
0d4b5bb
Update systemd-setup.sh to install system.json (#2651)
bricerisingalgorand Jul 29, 2021
911bb55
Implement partitiontest_linter (#2635)
algojack Jul 29, 2021
2a36601
Add a public Eval() function for indexer. (#2662)
tolikzinovyev Jul 30, 2021
250abcd
Replace `Balances.PutWithCreatable()` (#2638)
tolikzinovyev Jul 30, 2021
a35256c
Update the Version, BuildNumber, genesistimestamp.data
Algo-devops-service Jul 30, 2021
8835bfd
replace the KMD usage in pingpong with direct signing (#2653)
AlgoStephenAkiki Jul 31, 2021
de84e90
Merge pull request #2670 from Algo-devops-service/relbeta2.9.0
algojohnlee Aug 2, 2021
5fd3fcb
remove components.NodeContext, node.nodeContext and unused test imple…
cce Aug 2, 2021
c1b17d9
Create a quine to test `app_params_get AppApprovalProgram` (#2682)
jasonpaulos Aug 3, 2021
5d7ce82
Extend global and txn field tests for all TEAL versions and protocols…
algorandskiy Aug 3, 2021
358a2e1
Record modified local creatable states in state delta. (#2680)
tolikzinovyev Aug 3, 2021
eb01929
Fix oapi-codegen installation. (#2668)
winder Aug 4, 2021
bca66d5
Revert "replace the KMD usage in pingpong with direct signing (#2653)…
tsachiherman Aug 4, 2021
39be0c7
Fix a go lint issue. (#2688)
tolikzinovyev Aug 4, 2021
3d3feb5
Add initial golangci-lint action (#2647)
cce Aug 5, 2021
9d46fe6
Renamed no_gimme env var to skip_go_installation (#2696)
algojack Aug 6, 2021
f3671c0
Consensus upgrade for ExtraProgramPages fix (#2694)
algorandskiy Aug 6, 2021
7e84d77
Add individual program length checks into updateApplication (#2699)
algorandskiy Aug 6, 2021
26c4692
testing: replace the KMD usage in pingpong with direct signing (#2691)
tsachiherman Aug 6, 2021
16bada1
Fix flaky ledger app tests that use commitRound directly (#2709)
algorandskiy Aug 7, 2021
9194dec
Add batch verification (#2578)
id-ms Aug 7, 2021
e46f02a
using the appIdx instead of txn app id (#2720)
barnjamin Aug 9, 2021
23e51ca
Return an error in `EncodeSignedTxn()` and `DecodeSignedTxn()` if con…
tolikzinovyev Aug 10, 2021
fb3f9a9
update crypto library to use partitiontest (#2721)
tsachiherman Aug 10, 2021
dd7f7b6
Add additional functions to improve type tracking of AVM stack manipu…
iten-alg Aug 10, 2021
4a8c41b
CircleCI: Add Slack notifications for rel/nightly failures (#2643)
algobarb Aug 11, 2021
f95775e
Barbara/circle filter branches (#2729)
algobarb Aug 11, 2021
58bc231
Opcode: log (#2529)
shiqizng Aug 11, 2021
848f132
Pool App call budget in group transactions (#2711)
algochoi Aug 12, 2021
6a63559
Convenient and High-fidelity Transaction Processing Tests (#2730)
jannotti Aug 13, 2021
320126e
Merge branch 'rel/stable' into relstable-2.9.1-remerge
onetechnical Aug 13, 2021
9b1a532
Bump minor version
onetechnical Aug 13, 2021
045ffff
Merge pull request #2740 from algorand/relstable-2.9.1-remerge
algojohnlee Aug 13, 2021
68741a9
Consolidate SKIP_E2E_SUBS and E2E_SUBS_ONLY (#2705)
algojack Aug 13, 2021
852a8a9
Fix TestRekeyUpgrade test (#2742)
algorandskiy Aug 13, 2021
0c3ce93
Merge branch 'master' into relbeta2.10.0
onetechnical Aug 13, 2021
25804af
Merge pull request #2743 from algorand/relbeta2.10.0
algojohnlee Aug 15, 2021
1f05448
testing: fixing a typo in e2e.sh for integration tests (#2753)
algojack Aug 16, 2021
b452ca2
Ensure that AssetCreator is not used before proto.LogicSigVersion=5 (…
jannotti Aug 23, 2021
f2be951
Update buildnumber
algojack Aug 24, 2021
d1aca92
Merge pull request #2800 from algojack/jack/relbeta2.10.1
algojohnlee Aug 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
705 changes: 702 additions & 3 deletions .circleci/config.yml

Large diffs are not rendered by default.

21 changes: 0 additions & 21 deletions .github/ISSUE_TEMPLATE/algorand-engineering-team-issue-template.md

This file was deleted.

17 changes: 10 additions & 7 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,20 @@ about: Suggestions for how we can improve the algorand platform.
title: ''
labels: new-feature-request
assignees: ''

---

## Is your feature request related to a problem? Please describe.
## Problem

<!-- What is the problem that we’re trying to solve? -->

## Solution

<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
<!-- Do you have a potential/suggested solution? Document more than one if possible. -->

## Describe the solution you'd like.
## Dependencies

<!-- A clear and concise description of what you want to happen. -->
<!-- Does the solution have any team or design dependencies? -->

## Additional context.
## Urgency

<!-- Add any other context or screenshots about the feature request here. -->
<!-- What is the urgency here and why? -->
90 changes: 90 additions & 0 deletions .github/workflows/reviewdog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: "ReviewDog workflow"
on:
pull_request:
jobs:
# Blocking Errors Section
reviewdog-errors:
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0 # required for new-from-rev option in .golangci.yml
- name: Install libraries
run: sudo apt-get -y -q install libboost-math-dev
# move go out of the way temporarily to avoid "go list ./..." from installing modules
- name: Make libsodium.a
run: sudo mv /usr/bin/go /usr/bin/go.bak && make crypto/libs/linux/amd64/lib/libsodium.a && sudo mv /usr/bin/go.bak /usr/bin/go
- name: reviewdog-golangci-lint
uses: reviewdog/action-golangci-lint@v2
with:
golangci_lint_version: "v1.41.1"
golangci_lint_flags: "-c .golangci.yml --allow-parallel-runners"
reporter: "github-pr-review"
tool_name: "Lint Errors"
level: "error"
fail_on_error: true
# Non-Blocking Warnings Section
reviewdog-warnings:
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0 # required for new-from-rev option in .golangci.yml
- name: Install libraries
run: sudo apt-get -y -q install libboost-math-dev
# move go out of the way temporarily to avoid "go list ./..." from installing modules
- name: Make libsodium.a
run: sudo mv /usr/bin/go /usr/bin/go.bak && make crypto/libs/linux/amd64/lib/libsodium.a && sudo mv /usr/bin/go.bak /usr/bin/go
- name: Add bin to PATH
run: |
echo "$GITHUB_WORKSPACE/bin" >> $GITHUB_PATH
echo "$RUNNER_WORKSPACE/$(basename $GITHUB_REPOSITORY)/bin" >> $GITHUB_PATH
- name: Install specific golang
uses: actions/setup-go@v2
with:
go-version: '1.16.6'
- name: Create folders for golangci-lint
run: mkdir -p cicdtmp/golangci-lint
- name: Check if custom golangci-lint is already built
id: cache-golangci-lint
uses: actions/cache@v2
with:
path: cicdtmp/golangci-lint/golangci-lint-cgo
key: cicd-golangci-lint-cgo-v0.0.1

- name: Build custom golangci-lint with CGO_ENABLED
if: steps.cache-golangci-lint.outputs.cache-hit != 'true'
run: |
cd cicdtmp/golangci-lint
git clone https://github.com/golangci/golangci-lint.git .
git checkout tags/v1.41.1
CGO_ENABLED=true go build -trimpath -o golangci-lint-cgo ./cmd/golangci-lint
./golangci-lint-cgo --version
cd ../../
- name: Install reviewdog
run: |
curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/v0.13.0/install.sh | sh -s
reviewdog --version
- name: Build custom linters
run: |
cd cmd/partitiontest_linter/
CGO_ENABLED=true go build -buildmode=plugin -trimpath plugin/plugin.go
cd ../../
ls -la cmd/partitiontest_linter/
- name: Run golangci-lint with reviewdog
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: >
./cicdtmp/golangci-lint/golangci-lint-cgo run
--out-format line-number
-c .golangci-warnings.yml
--allow-parallel-runners
| reviewdog
-f=golangci-lint
-name="Lint Warnings"
-reporter=github-check
-filter-mode=added
-fail-on-error=false
-level=warning
76 changes: 76 additions & 0 deletions .golangci-warnings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
run:
timeout: 5m
tests: true

linters:
disable-all: true
enable:
- staticcheck
- structcheck
- typecheck
- varcheck
- deadcode
- gosimple
- unused
- partitiontest


linters-settings:
custom:
partitiontest:
path: cmd/partitiontest_linter/plugin.so
description: This custom linter checks files that end in '_test.go', specifically functions that start with 'Test' and have testing argument, for a line 'partitiontest.ParitionTest(<testing arg>)'
original-url: github.com/algorand/go-algorand/cmd/partitiontest_linter

severity:
default-severity: warning

issues:
# use these new lint checks on code since #2574
new-from-rev: eb019291beed556ec6ac1ceb4a15114ce4df0c57

# Disable default exclude rules listed in `golangci-lint run --help` (selectively re-enable some below)
exclude-use-default: false

# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-issues-per-linter: 0

# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
max-same-issues: 0

exclude:
# ignore govet false positive fixed in https://github.com/golang/go/issues/45043
- "sigchanyzer: misuse of unbuffered os.Signal channel as argument to signal.Notify"
# ignore golint false positive fixed in https://github.com/golang/lint/pull/487
- "exported method (.*).Unwrap` should have comment or be unexported"
# ignore issues about the way we use _struct fields to define encoding settings
- "`_struct` is unused"

# Enable some golangci-lint default exception rules:
# "EXC0001 errcheck: Almost all programs ignore errors on these functions and in most cases it's ok"
- Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked
# "EXC0005 staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore"
- ineffective break statement. Did you mean to break out of the outer loop

exclude-rules:
# be more lenient with test code
- path: _test\.go
linters:
- staticcheck
- structcheck
- typecheck
- varcheck
- deadcode
- gosimple
- unused
# Add all linters here -- Comment this block out for testing linters
- path: test/linttest/lintissues\.go
linters:
- staticcheck
- structcheck
- typecheck
- varcheck
- deadcode
- gosimple
- unused
- partitiontest
59 changes: 38 additions & 21 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,52 @@ run:
tests: false

linters:
disable-all: true
enable:
- errcheck
- gofmt
- golint
- misspell
- govet

disable:
- deadcode
- errcheck
- gosimple
- ineffassign
- staticcheck
- structcheck
- unused
- varcheck

linters-settings:
# govet:
# check-shadowing: true
- misspell

severity:
default-severity: error

issues:
# don't use default exclude rules listed in `golangci-lint run --help`
# use these new lint checks on code since #2574
new-from-rev: eb019291beed556ec6ac1ceb4a15114ce4df0c57

# Disable default exclude rules listed in `golangci-lint run --help` (selectively re-enable some below)
exclude-use-default: false

exclude-rules:
# Maximum issues count per one linter. Set to 0 to disable. Default is 50.
max-issues-per-linter: 0

# Maximum count of issues with the same text. Set to 0 to disable. Default is 3.
max-same-issues: 0

exclude:
# ignore govet false positive fixed in https://github.com/golang/go/issues/45043
- linters:
- govet
text: "sigchanyzer: misuse of unbuffered os.Signal channel as argument to signal.Notify"
- "sigchanyzer: misuse of unbuffered os.Signal channel as argument to signal.Notify"
# ignore golint false positive fixed in https://github.com/golang/lint/pull/487
- linters:
- "exported method (.*).Unwrap` should have comment or be unexported"
# ignore issues about the way we use _struct fields to define encoding settings
- "`_struct` is unused"

# Enable some golangci-lint default exception rules:
# "EXC0001 errcheck: Almost all programs ignore errors on these functions and in most cases it's ok"
- Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*print(f|ln)?|os\.(Un)?Setenv). is not checked
# "EXC0005 staticcheck: Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore"
- ineffective break statement. Did you mean to break out of the outer loop

exclude-rules:
# Add all linters here -- Comment this block out for testing linters
- path: test/linttest/lintissues\.go
linters:
- errcheck
- gofmt
- golint
text: "exported method (.*).Unwrap` should have comment or be unexported"
- govet
- ineffassign
- misspell
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,8 @@ before_cache:
esac
docker save -o $HOME/docker_cache/images.tar $(docker images -a -q)
after_success:
- scripts/travis/upload_coverage.sh || true
#after_success:
# - scripts/travis/upload_coverage.sh || true

addons:
apt:
Expand Down
13 changes: 9 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ BUILDBRANCH := $(shell ./scripts/compute_branch.sh)
CHANNEL ?= $(shell ./scripts/compute_branch_channel.sh $(BUILDBRANCH))
DEFAULTNETWORK ?= $(shell ./scripts/compute_branch_network.sh $(BUILDBRANCH))
DEFAULT_DEADLOCK ?= $(shell ./scripts/compute_branch_deadlock_default.sh $(BUILDBRANCH))
export GOCACHE=$(SRCPATH)/tmp/go-cache

GOTAGSLIST := sqlite_unlock_notify sqlite_omit_load_extension

Expand Down Expand Up @@ -75,7 +76,7 @@ GOLDFLAGS := $(GOLDFLAGS_BASE) \
UNIT_TEST_SOURCES := $(sort $(shell GOPATH=$(GOPATH) && GO111MODULE=off && go list ./... | grep -v /go-algorand/test/ ))
ALGOD_API_PACKAGES := $(sort $(shell GOPATH=$(GOPATH) && GO111MODULE=off && cd daemon/algod/api; go list ./... ))

MSGP_GENERATE := ./protocol ./crypto ./crypto/compactcert ./data/basics ./data/transactions ./data/committee ./data/bookkeeping ./data/hashable ./agreement ./rpcs ./node ./ledger ./ledger/ledgercore ./compactcert
MSGP_GENERATE := ./protocol ./protocol/test ./crypto ./crypto/compactcert ./data/basics ./data/transactions ./data/committee ./data/bookkeeping ./data/hashable ./agreement ./rpcs ./node ./ledger ./ledger/ledgercore ./compactcert

default: build

Expand Down Expand Up @@ -203,9 +204,9 @@ build: buildsrc
# to cache binaries from time to time on empty NFS
# dirs
buildsrc: check-go-version crypto/libs/$(OS_TYPE)/$(ARCH)/lib/libsodium.a node_exporter NONGO_BIN
mkdir -p tmp/go-cache && \
touch tmp/go-cache/file.txt && \
GOCACHE=$(SRCPATH)/tmp/go-cache go install $(GOTRIMPATH) $(GOTAGS) $(GOBUILDMODE) -ldflags="$(GOLDFLAGS)" ./...
mkdir -p "${GOCACHE}" && \
touch "${GOCACHE}"/file.txt && \
go install $(GOTRIMPATH) $(GOTAGS) $(GOBUILDMODE) -ldflags="$(GOLDFLAGS)" ./...

check-go-version:
./scripts/check_golang_version.sh build
Expand Down Expand Up @@ -321,3 +322,7 @@ include ./scripts/release/mule/Makefile.mule

archive:
aws s3 cp tmp/node_pkgs s3://algorand-internal/channel/$(CHANNEL)/$(FULLBUILDNUMBER) --recursive --exclude "*" --include "*$(FULLBUILDNUMBER)*"

build_custom_linters:
cd $(SRCPATH)/cmd/partitiontest_linter/ && go build -buildmode=plugin -trimpath plugin/plugin.go && ls plugin.so
cd $(SRCPATH)
13 changes: 13 additions & 0 deletions agreement/bundle_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@ import (
"github.com/algorand/go-algorand/data/committee"
"github.com/algorand/go-algorand/logging"
"github.com/algorand/go-algorand/protocol"
"github.com/algorand/go-algorand/test/partitiontest"
)

// Test Bundle Creation
func TestBundleCreation(t *testing.T) {
partitiontest.PartitionTest(t)

ledger, addresses, vrfSecrets, otSecrets := readOnlyFixture100()
round := ledger.NextRound()
period := period(0)
Expand Down Expand Up @@ -68,6 +71,8 @@ func TestBundleCreation(t *testing.T) {

// Test Bundle validation with Zero Votes
func TestBundleCreationWithZeroVotes(t *testing.T) {
partitiontest.PartitionTest(t)

//ledger, addresses, vrfSecrets, otSecrets := readOnlyFixture100()
ledger, _, _, _ := readOnlyFixture100()

Expand Down Expand Up @@ -105,6 +110,8 @@ func makeBundlePanicWrapper(t *testing.T, message string, proposal proposalValue

//Test Bundle Creation with Validation for duplicate votes from same sender
func TestBundleCreationWithVotesFromSameAddress(t *testing.T) {
partitiontest.PartitionTest(t)

ledger, addresses, vrfSecrets, otSecrets := readOnlyFixture10()
round := ledger.NextRound()
period := period(0)
Expand Down Expand Up @@ -168,6 +175,8 @@ func TestBundleCreationWithVotesFromSameAddress(t *testing.T) {

//Test Bundle Creation with Validation
func TestBundleCreationWithEquivocationVotes(t *testing.T) {
partitiontest.PartitionTest(t)

ledger, addresses, vrfSecrets, otSecrets := readOnlyFixture10()
round := ledger.NextRound()
period := period(0)
Expand Down Expand Up @@ -276,6 +285,8 @@ func TestBundleCreationWithEquivocationVotes(t *testing.T) {

//Test Bundle Creation with Validation
func TestBundleCertificationWithEquivocationVotes(t *testing.T) {
partitiontest.PartitionTest(t)

ledger, addresses, vrfSecrets, otSecrets := readOnlyFixture10()
round := ledger.NextRound()
period := period(0)
Expand Down Expand Up @@ -349,6 +360,8 @@ func certificatePanicWrapper(t *testing.T, message string, ub unauthenticatedBun

// Test Bundle Creation with Equivocation Votes under Quorum
func TestBundleCreationWithEquivocationVotesUnderQuorum(t *testing.T) {
partitiontest.PartitionTest(t)

ledger, addresses, vrfSecrets, otSecrets := readOnlyFixture100()
round := ledger.NextRound()
period := period(0)
Expand Down
Loading