Ecosystem metrics
- New Repos
- 17
- New
- Commits
- 564
- up 19.2%
- Releases
- 2
- down 66.7%
- Contributors
- 48
- up 2.1%
- Merges
- 15
- up 15.4%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
7189 commits in all time
Jun 19, 2026 20:24 – Sep 17, 2026 20:24 UTC
Merge a8a70c45678e3023d154345de99b47e9a66f414b into 9bc334a8819e21a61e5717e04c07dec184a7c579
45a400cc
pull/100/merge
2/26 ++ 38 --
chore(deps): update dependency vitest to v5 [security]
a8a70c45
renovate/npm-vitest-vulnerability
2/26 ++ 38 --
Merge 95058493bfc42720e6a3d2c07ea26dc78806cd4e into 27751c364229ae3cd0334fe4071e61690b6879e4
55b227e8
pull/740/merge
300/48,477 ++ 28,072 --
Merge 24a2776119bb6f0081ef667e3db01f0ba6af8a7b into 8cd5eb5f667c01ca6812e4d2f82930a793e23b18
1adbc6e3
pull/6740/merge
10/349 ++ 70 --
codecov: ignore what the measurement leaves out
scripts/coverpkg.sh decides which packages are instrumented and .codecov.yml decides which files are counted. The two had nothing in common: the command line programs, the build and debug tools, the e2e tree and the test-support packages were dropped from measurement without being mentioned here, so 158 files and 18,273 lines went quietly uncounted rather than deliberately excluded. List them, so the two descriptions of one decision sit together. This changes no numbers -- Codecov never saw those files -- it only makes the exclusion legible, and gives the next person something to change when the measured set changes. Two measured packages still go uncounted: no test binary links daemon/kmd or netdeploy/remote/nodecfg, so they produce no coverage data and covdata has nothing to emit for them. That is 431 lines, all uncovered, worth 0.4pp on the total.
24a27761
pull/6740/merge^2
1/21 ++ 0 --
ci: do not let ordinary comments cancel a coverage run
Concurrency is evaluated per workflow run, before the job conditions that check for /coverage and the commenter, so any comment on the pull request joined the group and cancelled a run in progress while starting nothing in its place. Key the group on the run id unless the comment is a request the authorize job would accept -- including the author check, or anyone at all could cancel a run by typing /coverage. Check out the commit resolved during authorization rather than refs/pull/N/head. That ref moves, so a push while the partitions were queued could leave them testing different commits from each other and from the one the upload is attributed to.
cbfbdbd6
pull/6740/merge^2
1/12 ++ 3 --
fix: add allow-list of unconditionally movable txn and global fields for correctness + small refactor to simplify iteration
b9282413
sink-single-use-pure-op
1/143 ++ 61 --
codecov: rename the coverage flag to unit, and stop measuring it in ci-pr
Coverage is now always measured across every package, so "full" no longer distinguishes it from anything. Name the flag after what produced it, leaving room for an e2e flag beside it later. Starting a new flag also leaves the old series alone rather than erasing it: once this is on master, push builds fill the new one with reports that are measured correctly, and comparisons are right from then on. Drop the workflow_dispatch input along with it. It ran against a ref rather than a pull request, so its upload could never be attached to one, and dispatching ci-pr.yml pulled the whole integration and e2e suite along to reach the one job that measured anything. Commenting /coverage does that job properly, so ci-pr.yml no longer deals with coverage at all.
7c0cba3a
pull/6740/head
3/2 ++ 26 --
Merge 8c52c11cfbc1b38f02f1a956335d19bef09ce861 into 8cd5eb5f667c01ca6812e4d2f82930a793e23b18
eb9ca75a
pull/6740/merge
10/328 ++ 55 --
ci: share the unit test steps between the coverage workflows
pr-coverage.yml repeated the test invocation and coverage plumbing that ci-pr.yml and ci-nightly.yml already had. Move it into a composite action alongside setup-go and setup-test, parameterised by what actually differs between the three: -short, -p, where test results go, and whether coverage is measured. Nightly now measures coverage only on ubuntu-24.04. The other two platforms were paying for instrumentation whose output was never uploaded. Also shorten the comments added along with these workflows.
8c52c11c
pull/6740/head
7/117 ++ 132 --
codecov: report coverage of the change, not of the repository
Project coverage is the least trustworthy number in the comment: it compares against whichever commit last had an upload, and moves with the file set as readily as with the tests. Hide it and report patch coverage. Add components for the subsystems reviews are drawn around, so a ledger change is measured against ledger rather than against go-algorand. Wait for every partition before commenting, so a comment is never written from part of a run. Only pull requests are commented on, so push builds, which upload two reports rather than six, are unaffected.
6effb081
pull/6740/head
1/25 ++ 6 --
ci: add "/coverage" on-demand full coverage for pull requests
PR builds no longer measure coverage, so nothing reports the coverage of a change before it merges. Add a workflow that does it on request: commenting "/coverage" on a pull request runs the full -coverpkg suite against its head and uploads the result to Codecov attached to that pull request, where it can be compared against the baseline the push build publishes for the merge base. The run is measured the same way as the push build -- same tags, -race, no -short, CIRCLECI set -- so the two are comparable. Only the partitioning differs, 6 runners instead of 2, which changes how tests are spread but not which of them run. Codecov is given the head commit, branch and pull request number explicitly. issue_comment workflows run with the default branch checked out, so an upload left to infer its own context would be attributed to master and would overwrite the baseline. A fork's branch is named "owner:branch", matching Codecov's convention. Only OWNER, MEMBER and COLLABORATOR comments trigger it, since it builds and runs the pull request's code. The workflow itself always runs from the default branch, so a pull request cannot change what it does, and the job that checks the branch out holds only contents:read and no secrets; the write permission needed to acknowledge and report lives in separate jobs that never check out the branch. Extract the -coverpkg package list to scripts/coverpkg.sh rather than adding a fourth copy of it; the Makefile and both existing workflows now use it too. Verified to produce the same 112 packages as the pipeline it replaces. Move the coverage uploads to codecov-action@v7, which replaces "file" with "files", and drop scripts/travis/upload_coverage.sh, which nothing has referenced since CircleCI went away.
cad7383a
pull/6740/head
6/205 ++ 17 --
ci: only upload coverage from full-coverage runs
ci-nightly.yml is the push-to-master job and already measures coverage
with -coverpkg across all go-algorand packages. ci-pr.yml measured it
without -coverpkg -- counting only the lines each package's own tests
exercise -- and uploaded that too. Both kinds of report end up attached to
commits in master's history, so the coverage Codecov reports for a master
commit depends on which workflow happened to upload for it. Adjacent
commits alternate between ~47.9% (639 files, 6 sessions, PR runs) and
~63.8% (481 files, 2 sessions, push runs):
8cd5eb5f6 63.78% 481 files 2 sessions
288e1997e 47.90% 639 files 6 sessions
e8559cc9a 63.82% 481 files 2 sessions
7b9cb4d53 47.86% 639 files 6 sessions
3f8045596 63.83% 481 files 2 sessions
A PR's project-coverage delta was therefore decided mostly by which
regime its merge base happened to land in, roughly 16 points of noise
with nothing to do with the change under review.
Stop collecting and uploading coverage on PR runs unless the workflow was
dispatched with full_coverage, so every report Codecov holds is measured
the same way. Ordinary PR runs no longer pay for coverage instrumentation
at all.
Also drop flags.full_coverage.joined, which was meant to keep these
reports out of the project total but did not: on push commits the
full_coverage upload is the only session, so it became the total anyway.
24387b42
pull/6740/head
2/24 ++ 13 --
ci: merge raw coverage data with "go tool covdata" instead of -coverprofile
When -coverpkg is set, "go test -coverprofile" writes each instrumented
block once per test binary that links the package, and does not combine
them. "go tool cover" sums the duplicates and reads such a profile
correctly, but consumers that take the first or last occurrence instead do
not: on a two-binary run of ./config ./protocol the same profile reads as
58.8% (summed), 49.60% (last-wins) or 11.04% (first-wins).
Codecov appears to be one of those consumers. Comparing the nightly
full-coverage report against the cheaper PR report on adjacent master
commits, 118 of 373 comparable files report *lower* coverage under
-coverpkg, which attribution alone cannot cause: the nightly run executes
a superset of the PR run's tests. Individual files collapse while their
siblings in the same package are untouched --
data/transactions/logic/sourcemap.go 100% -> 0%,
ledger/eval/txntracer.go 92.85% -> 0%, util/metrics/prometheus.go
78.12% -> 0%.
Collect raw coverage data instead ("go test -cover ... -args
-test.gocoverdir=DIR") and merge it with "go tool covdata", which emits
each block exactly once with counts summed across every test binary that
exercised it. Across the whole repository that is 49,425 blocks with no
duplicates, and costs about 1.3s (20MB raw -> 644KB merged -> 3.7MB
profile).
The merge runs as its own step guarded by !cancelled(), matching the
upload step, so a failed test run still uploads the partial coverage it
produced.
One reporting change is not a correction: -coverprofile synthesized 0%
entries for packages that no test binary links, and covdata does not.
That drops daemon/kmd, netdeploy/remote/nodecfg and
ledger/store/trackerdb/testsuite -- 3 files, 431 lines, all at 0% --
raising the reported figure by 0.40pp for denominator reasons alone.
Also reference tool.mod by an absolute path in GOTESTCOMMAND so that
"make cover PACKAGE=X", which cds into the package directory, can find
it; that target has been failing with "go: open tool.mod: no such file or
directory" since it was added.
c56914ad
pull/6740/head
5/77 ++ 7 --