fix(ax): move version injection to module root
Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
parent
f34aedff05
commit
459a353c6b
9 changed files with 55 additions and 44 deletions
2
Makefile
2
Makefile
|
|
@ -10,7 +10,7 @@ LDFLAGS = ""
|
|||
|
||||
# If VERSION is set, inject into binary
|
||||
ifdef VERSION
|
||||
LDFLAGS = -ldflags "-X '$(MODULE_PATH).version=$(VERSION)'"
|
||||
LDFLAGS = -ldflags "-X '$(MODULE_PATH).Version=$(VERSION)'"
|
||||
endif
|
||||
|
||||
.PHONY: build install agent-dev test coverage
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import (
|
|||
"os"
|
||||
"testing"
|
||||
|
||||
agentpkg "dappco.re/go/agent"
|
||||
"dappco.re/go/core"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
|
@ -85,9 +86,9 @@ func TestCommands_RegisterAppCommands_Good(t *testing.T) {
|
|||
|
||||
func TestCommands_Version_Good(t *testing.T) {
|
||||
c := newTestCore(t)
|
||||
version = "0.8.0"
|
||||
agentpkg.Version = "0.8.0"
|
||||
t.Cleanup(func() {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
})
|
||||
|
||||
r := c.Cli().Run("version")
|
||||
|
|
@ -96,7 +97,7 @@ func TestCommands_Version_Good(t *testing.T) {
|
|||
|
||||
func TestCommands_VersionDev_Bad(t *testing.T) {
|
||||
c := newTestCore(t)
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
c.App().Version = "dev"
|
||||
|
||||
r := c.Cli().Run("version")
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import (
|
|||
"context"
|
||||
"syscall"
|
||||
|
||||
agentpkg "dappco.re/go/agent"
|
||||
"dappco.re/go/core"
|
||||
|
||||
"dappco.re/go/agent/pkg/agentic"
|
||||
|
|
@ -49,11 +50,11 @@ func newCoreAgent() *core.Core {
|
|||
|
||||
// appVersion resolves the build version injected at link time.
|
||||
//
|
||||
// version = "0.15.0"
|
||||
// agentpkg.Version = "0.15.0"
|
||||
// appVersion() // "0.15.0"
|
||||
func appVersion() string {
|
||||
if version != "" {
|
||||
return version
|
||||
if agentpkg.Version != "" {
|
||||
return agentpkg.Version
|
||||
}
|
||||
return "dev"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,15 @@
|
|||
|
||||
package main
|
||||
|
||||
import core "dappco.re/go/core"
|
||||
import (
|
||||
agentpkg "dappco.re/go/agent"
|
||||
core "dappco.re/go/core"
|
||||
)
|
||||
|
||||
func Example_newCoreAgent() {
|
||||
oldVersion := version
|
||||
version = "0.15.0"
|
||||
defer func() { version = oldVersion }()
|
||||
oldVersion := agentpkg.Version
|
||||
agentpkg.Version = "0.15.0"
|
||||
defer func() { agentpkg.Version = oldVersion }()
|
||||
|
||||
c := newCoreAgent()
|
||||
core.Println(c.App().Name)
|
||||
|
|
@ -20,9 +23,9 @@ func Example_newCoreAgent() {
|
|||
}
|
||||
|
||||
func Example_appVersion() {
|
||||
oldVersion := version
|
||||
version = "0.15.0"
|
||||
defer func() { version = oldVersion }()
|
||||
oldVersion := agentpkg.Version
|
||||
agentpkg.Version = "0.15.0"
|
||||
defer func() { agentpkg.Version = oldVersion }()
|
||||
|
||||
core.Println(appVersion())
|
||||
// Output: 0.15.0
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ package main
|
|||
import (
|
||||
"testing"
|
||||
|
||||
agentpkg "dappco.re/go/agent"
|
||||
"dappco.re/go/agent/pkg/agentic"
|
||||
"dappco.re/go/agent/pkg/brain"
|
||||
"dappco.re/go/agent/pkg/monitor"
|
||||
|
|
@ -16,9 +17,9 @@ import (
|
|||
|
||||
func withVersion(t *testing.T, value string) {
|
||||
t.Helper()
|
||||
oldVersion := version
|
||||
version = value
|
||||
t.Cleanup(func() { version = oldVersion })
|
||||
oldVersion := agentpkg.Version
|
||||
agentpkg.Version = value
|
||||
t.Cleanup(func() { agentpkg.Version = oldVersion })
|
||||
}
|
||||
|
||||
func TestMain_NewCoreAgent_Good(t *testing.T) {
|
||||
|
|
|
|||
|
|
@ -2,26 +2,19 @@
|
|||
|
||||
package main
|
||||
|
||||
// version is set at build time via ldflags:
|
||||
//
|
||||
// go build -ldflags "-X 'dappco.re/go/agent.version=0.15.0'" ./cmd/core-agent/
|
||||
var version string
|
||||
import agentpkg "dappco.re/go/agent"
|
||||
|
||||
// updateChannel maps the build version to the release channel.
|
||||
//
|
||||
// version = "0.15.0"
|
||||
// agentpkg.Version = "0.15.0"
|
||||
// updateChannel() // "stable"
|
||||
func updateChannel() string {
|
||||
switch {
|
||||
case version == "" || version == "dev":
|
||||
case agentpkg.Version == "" || agentpkg.Version == "dev":
|
||||
return "dev"
|
||||
case len(version) > 0 && (version[len(version)-1] >= 'a'):
|
||||
case len(agentpkg.Version) > 0 && (agentpkg.Version[len(agentpkg.Version)-1] >= 'a'):
|
||||
return "prerelease"
|
||||
default:
|
||||
return "stable"
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: wire go-update UpdateService for self-update command
|
||||
// Channels: stable → GitHub releases, prerelease → GitHub dev, dev → Forge main
|
||||
// Parked until version var moves to module root package (dappco.re/go/agent.Version)
|
||||
|
|
|
|||
|
|
@ -2,12 +2,15 @@
|
|||
|
||||
package main
|
||||
|
||||
import core "dappco.re/go/core"
|
||||
import (
|
||||
agentpkg "dappco.re/go/agent"
|
||||
core "dappco.re/go/core"
|
||||
)
|
||||
|
||||
func Example_updateChannel() {
|
||||
oldVersion := version
|
||||
version = "0.15.0-alpha"
|
||||
defer func() { version = oldVersion }()
|
||||
oldVersion := agentpkg.Version
|
||||
agentpkg.Version = "0.15.0-alpha"
|
||||
defer func() { agentpkg.Version = oldVersion }()
|
||||
|
||||
core.Println(updateChannel())
|
||||
// Output: prerelease
|
||||
|
|
|
|||
|
|
@ -5,56 +5,57 @@ package main
|
|||
import (
|
||||
"testing"
|
||||
|
||||
agentpkg "dappco.re/go/agent"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestUpdate_UpdateChannel_Good(t *testing.T) {
|
||||
version = "1.0.0"
|
||||
agentpkg.Version = "1.0.0"
|
||||
t.Cleanup(func() {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
})
|
||||
assert.Equal(t, "stable", updateChannel())
|
||||
}
|
||||
|
||||
func TestUpdate_UpdateChannelDev_Good(t *testing.T) {
|
||||
version = "dev"
|
||||
agentpkg.Version = "dev"
|
||||
t.Cleanup(func() {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
})
|
||||
assert.Equal(t, "dev", updateChannel())
|
||||
}
|
||||
|
||||
func TestUpdate_UpdateChannelEmpty_Bad(t *testing.T) {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
assert.Equal(t, "dev", updateChannel())
|
||||
}
|
||||
|
||||
func TestUpdate_UpdateChannelPrerelease_Ugly(t *testing.T) {
|
||||
version = "0.8.0-alpha"
|
||||
agentpkg.Version = "0.8.0-alpha"
|
||||
t.Cleanup(func() {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
})
|
||||
assert.Equal(t, "prerelease", updateChannel())
|
||||
}
|
||||
|
||||
func TestUpdate_UpdateChannelNumericSuffix_Ugly(t *testing.T) {
|
||||
version = "0.8.0-beta.1"
|
||||
agentpkg.Version = "0.8.0-beta.1"
|
||||
t.Cleanup(func() {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
})
|
||||
// Ends in '1' which is < 'a', so stable
|
||||
assert.Equal(t, "stable", updateChannel())
|
||||
}
|
||||
|
||||
func TestUpdate_AppVersion_Good(t *testing.T) {
|
||||
version = "1.2.3"
|
||||
agentpkg.Version = "1.2.3"
|
||||
t.Cleanup(func() {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
})
|
||||
assert.Equal(t, "1.2.3", appVersion())
|
||||
}
|
||||
|
||||
func TestUpdate_AppVersion_Bad(t *testing.T) {
|
||||
version = ""
|
||||
agentpkg.Version = ""
|
||||
assert.Equal(t, "dev", appVersion())
|
||||
}
|
||||
|
|
|
|||
8
version.go
Normal file
8
version.go
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
// SPDX-License-Identifier: EUPL-1.2
|
||||
|
||||
package agent
|
||||
|
||||
// Version is injected at build time via ldflags.
|
||||
//
|
||||
// go build -ldflags "-X 'dappco.re/go/agent.Version=0.15.0'" ./cmd/core-agent/
|
||||
var Version string
|
||||
Loading…
Add table
Reference in a new issue