• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

go-pkgz / lcw
94%
master: 94%

Build:
Build:
LAST BUILD BRANCH: refs/tags/v2.1.0
DEFAULT BRANCH: master
Repo Added 20 Jan 2019 12:12AM UTC
Files 22
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH refs/tags/v2.1.0
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • fix-cache-semantics
  • fix-ci-caching
  • internal
  • lru_internal
  • master
  • paskal/bump_ci
  • paskal/bump_go
  • paskal/bump_modules
  • paskal/cleanup_mockery
  • paskal/fix_double_close
  • paskal/fix_expirable_cache
  • paskal/fix_flapping_test
  • paskal/fix_golangci_lint
  • paskal/generics
  • paskal/golang-ci-lint
  • paskal/modernise
  • paskal/readme
  • paskal/reduce_memory_usage
  • paskal/update-go-modules
  • pubsub
  • rbac
  • refs/tags/v0.5.0
  • refs/tags/v0.6.0
  • refs/tags/v0.6.1
  • refs/tags/v0.7.0
  • refs/tags/v0.7.1
  • refs/tags/v0.8.0
  • refs/tags/v0.8.1
  • refs/tags/v1.0.0
  • refs/tags/v1.0.1
  • refs/tags/v1.0.2
  • refs/tags/v1.1.0
  • refs/tags/v1.2.0
  • refs/tags/v2.0.0
  • refs/tags/v2.1.0
  • scache
  • uri
  • v0.4.0

18 Aug 2026 11:11PM UTC coverage: 94.328% (-1.1%) from 95.419%
32208387310

push

github

web-flow
fix size limits, key limits, load stampede, redis namespacing and scoped flush (#51)

* apply go fix: interface{} to any, sort.Slice to slices.Sort

mechanical rewrite produced by go fix, no behaviour changes

* update dependencies, replace go-multierror with errors.Join

go-redis to v9.18.0, miniredis to v2.38.0, testify to v1.12.0, uuid to v1.6.0,
all the latest versions still compatible with the go 1.21 directive.

hashicorp/go-multierror dropped in favour of the standard errors.Join,
which changes the combined error text in url parsing.

* fix CI: test and build all packages, pin goveralls, explicit push refs

go test and go build ran without ./... so eventbus and internal/cache were never
tested in CI. go get -v dropped, it modified the dependency graph instead of
validating the committed one. goveralls pinned to a release instead of @latest.
push trigger got explicit branches and tags, the empty form is flagged by actionlint.

* fix size accounting, key limits, load stampede and redis namespacing

size limits: MaxCacheSize and MaxValSize only applied to values implementing
Sizer, so []byte and string values were never limited at all. Both are now sized
by length, which makes the limits effective for Scache and any []byte cache.

MaxKeys(0): documented as unlimited, but the expirable cache rejected every
insert and the lru constructor returned an error. Zero now means unlimited
everywhere, matching the docs.

concurrent loads: overlapping Get calls for the same missing key each ran the
loader, added the value and counted its size again. With sized values this drove
currentSize above maxCacheSize and left the lru eviction loop spinning over an
empty cache. Loads are coordinated per key now, so the loader runs once and the
rest wait for its result. The lru eviction loop also stops when the backend is
empty instead of looping forever.

redis namespacing: the cache treated the whole selected database as its own, so
keys could collide with unrelated d... (continued)

417 of 463 new or added lines in 20 files covered. (90.06%)

1 existing line in 1 file now uncovered.

1530 of 1622 relevant lines covered (94.33%)

17848.11 hits per line

Relevant lines Covered
Build:
Build:
1622 RELEVANT LINES 1530 COVERED LINES
17848.11 HITS PER LINE
Source Files on master
  • Tree
  • List 22
  • Changed 14
  • Source Changed 0
  • Coverage Changed 14
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
32208387310 refs/tags/v2.1.0 fix size limits, key limits, load stampede, redis namespacing and scoped flush (#51) * apply go fix: interface{} to any, sort.Slice to slices.Sort mechanical rewrite produced by go fix, no behaviour changes * update dependencies, replace go-mul... push 19 Aug 2026 02:24AM UTC web-flow github
94.33
32208386496 refs/tags/v1.2.0 fix size limits, key limits, load stampede, redis namespacing and scoped flush (#51) * apply go fix: interface{} to any, sort.Slice to slices.Sort mechanical rewrite produced by go fix, no behaviour changes * update dependencies, replace go-mul... push 19 Aug 2026 02:24AM UTC web-flow github
94.27
32196080946 master fix size limits, key limits, load stampede, redis namespacing and scoped flush (#51) * apply go fix: interface{} to any, sort.Slice to slices.Sort mechanical rewrite produced by go fix, no behaviour changes * update dependencies, replace go-mul... push 18 Aug 2026 11:12PM UTC web-flow github
94.14
32195463077 fix-cache-semantics harden loader panic release, redis error path and expiry tests waiters are released with a fixed sentinel error instead of one formatted from the panic value, so no method of that value runs before they are freed. the v2 redis recheck error path... Pull #51 18 Aug 2026 11:03PM UTC paskal github
94.27
32189879879 fix-cache-semantics reference upstream issue for the v2 expirable callback caveat Pull #51 18 Aug 2026 09:53PM UTC paskal github
94.6
19903546292 master Fix CI workflow: checkout before setup-go for proper caching (#50) - Move checkout step before setup-go to enable Go module caching - setup-go needs go.mod/go.sum files to generate cache keys - Update golangci-lint action to v7 and version to v2.... push 03 Dec 2025 05:52PM UTC web-flow github
95.42
19900758529 fix-ci-caching Fix CI workflow: checkout before setup-go for proper caching - Move checkout step before setup-go to enable Go module caching - setup-go needs go.mod/go.sum files to generate cache keys - Update golangci-lint action to v7 and version to v2.6 - Mi... Pull #50 03 Dec 2025 04:18PM UTC paskal github
95.42
10167092668 master remove unused delete() call, revert LoadingCache.purge changes `purge` call became broken in 41ffddb34, this change reverts it to the old behaviour so that memory won't be freed on its call. It's called relatively frequently and so copying the `d... push 30 Jul 2024 05:36PM UTC umputun github
95.42
10167057871 paskal/fix_expirable_cache remove unused delete() call, revert LoadingCache.purge changes `purge` call became broken in 41ffddb34, this change reverts it to the old behaviour so that memory won't be freed on its call. It's called relatively frequently and so copying the `d... Pull #48 30 Jul 2024 05:34PM UTC paskal github
95.42
10165675259 master improve v1 expirable cache memory management by recreating map on purge Modified the `Purge` and `purge` methods to recreate the `data` map, allowing the old map to be garbage collected, and added a new test to check for it. push 30 Jul 2024 03:55PM UTC umputun github
95.42
See All Builds (202)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc