diff --git a/cmd/entire/cli/versioncheck/versioncheck.go b/cmd/entire/cli/versioncheck/versioncheck.go index 52999c0d2..2b6469f4c 100644 --- a/cmd/entire/cli/versioncheck/versioncheck.go +++ b/cmd/entire/cli/versioncheck/versioncheck.go @@ -232,6 +232,13 @@ func isOutdated(current, latest string) bool { latest = "v" + latest } + // Skip notification for dev builds (e.g., "1.0.0-dev-xxx"). + // These are local development builds and shouldn't trigger update notifications. + // Normal prereleases (e.g., "1.0.0-rc1") should still be compared normally. + if strings.Contains(semver.Prerelease(current), "dev") { + return false + } + // semver.Compare returns -1 if current < latest return semver.Compare(current, latest) < 0 } diff --git a/cmd/entire/cli/versioncheck/versioncheck_test.go b/cmd/entire/cli/versioncheck/versioncheck_test.go index 24954d997..4dcc87a18 100644 --- a/cmd/entire/cli/versioncheck/versioncheck_test.go +++ b/cmd/entire/cli/versioncheck/versioncheck_test.go @@ -38,6 +38,7 @@ func TestIsOutdated(t *testing.T) { // Pre-release versions (semver uses hyphen) {"1.0.0-rc1", "1.0.0", true, "prerelease in current"}, {"1.0.0", "1.0.1-rc1", true, "prerelease in latest is still newer"}, + {"1.0.0-dev-xxx", "1.0.1", false, "dev build skips version check"}, } for _, tt := range tests { diff --git a/mise-tasks/build b/mise-tasks/build index 508e443d6..2c47e7669 100755 --- a/mise-tasks/build +++ b/mise-tasks/build @@ -1,6 +1,8 @@ #!/bin/sh #MISE description="Build the CLI" -VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev") +TAG=$(git describe --tags --abbrev=0 || echo "v0.0.0") COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") +VERSION="${TAG}-dev-${COMMIT}" + go build -ldflags "-X github.com/entireio/cli/cmd/entire/cli/versioninfo.Version=${VERSION} -X github.com/entireio/cli/cmd/entire/cli/versioninfo.Commit=${COMMIT}" -o entire ./cmd/entire diff --git a/mise-tasks/dev/publish b/mise-tasks/dev/publish index 08e1856bb..b5eecd400 100755 --- a/mise-tasks/dev/publish +++ b/mise-tasks/dev/publish @@ -6,7 +6,8 @@ set -eu export GOBIN=${GOPATH:-$HOME/go}/bin echo "NOTE: we're overriding \$GOBIN: $GOBIN" 1>&2 -VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev") +TAG=$(git describe --tags --abbrev=0 || echo "v0.0.0") COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") +VERSION="${TAG}-dev-${COMMIT}" go install -ldflags "-X github.com/entireio/cli/cmd/entire/cli/versioninfo.Version=${VERSION} -X github.com/entireio/cli/cmd/entire/cli/versioninfo.Commit=${COMMIT}" ./cmd/entire diff --git a/mise.toml b/mise.toml index 1377d8da1..9e766a40a 100644 --- a/mise.toml +++ b/mise.toml @@ -20,8 +20,3 @@ run = "go test -tags=integration ./cmd/entire/cli/integration_test/..." [tasks."test:ci"] description = "Run all tests (unit + integration) with race detection" run = "go test -tags=integration -race ./..." - -[tasks."build:all"] -description = "Build for all platforms using goreleaser" -run = "goreleaser build --snapshot --clean" -