headscale/hscontrol/db
Kristoffer Dalby 77ba225cdb db: treat Go module pseudo-versions as dev builds
Untagged main-sha builds inherit a Go module pseudo-version from
runtime/debug.BuildInfo (vX.Y.Z-<timestamp>-<hash>). isDev only
filtered "", "dev", and "(devel)", so the pseudo-version was stored
in database_versions and the next real release tripped the
multi-minor upgrade guard:

    headscale version v0.29.0-beta.1 cannot be used with a database
    last used by v0.0.0-20260520093041-e4e742c776ee, upgrading more
    than one minor version at a time is not supported

Add pseudoVersionTime, a regex + time.Parse predicate covering all
three Go pseudo-version forms (v0.0.0 base, pre-release ancestor,
release ancestor), and delegate from isDev. The dev gate at
db.go:790 already prevents pseudo-versions from being written, so
already-poisoned databases self-heal on the next real-release start.

Fixes #3281
2026-05-26 17:29:13 +02:00
..
sqliteconfig all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
testdata/sqlite db: use PolicyManager for RequestTags migration 2026-01-21 15:10:29 +01:00
api_key.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
api_key_test.go grpc: support expire/delete API keys by ID 2026-01-20 17:13:38 +01:00
db.go state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
db_test.go types: persist Node JSON slices via named IsZero types 2026-05-15 11:21:58 +02:00
ephemeral_garbage_collector_test.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
ip.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
ip_test.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
main_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
node.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
node_test.go db: remove unused SetApprovedRoutes and SetTags helpers 2026-05-15 11:21:58 +02:00
policy.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
preauth_keys.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
preauth_keys_test.go db: guard UsePreAuthKey with WHERE used=false 2026-04-10 14:09:57 +01:00
schema.sql hscontrol/db: add migration to clear user_id on tagged nodes 2026-02-20 21:51:00 +01:00
suite_test.go hscontrol/types: silence zerolog by default in tests 2026-04-17 16:31:49 +01:00
text_serialiser.go all: mechanical lint fixes 2026-05-19 09:55:22 +02:00
user_update_test.go hscontrol: use Updates() instead of Save() for partial updates 2025-11-11 12:47:48 -06:00
users.go all: apply godoc [Name] link conventions across comments 2026-05-19 09:55:22 +02:00
users_test.go types: persist Node JSON slices via named IsZero types 2026-05-15 11:21:58 +02:00
versioncheck.go db: treat Go module pseudo-versions as dev builds 2026-05-26 17:29:13 +02:00
versioncheck_test.go db: treat Go module pseudo-versions as dev builds 2026-05-26 17:29:13 +02:00