From 644df8dcdcbee48c71ceb6bf36c4b35c327e8d79 Mon Sep 17 00:00:00 2001 From: Egon Elbre Date: Wed, 1 Apr 2020 10:12:26 +0300 Subject: [PATCH] private/version: minimal fix for tag-release.sh Previous split to a storj.io/private repository broke tag-release.sh script. This is the minimal temporary fix to make things work. This links the build information to specified variables and sets them inline. This approach, of course, is very fragile. Change-Id: I73db2305e6c304146e5a14b13f1d917881a7455c --- cmd/certificates/main.go | 1 + cmd/identity/main.go | 1 + cmd/inspector/main.go | 1 + cmd/satellite/main.go | 1 + cmd/segment-reaper/main.go | 1 + cmd/storagenode-updater/main.go | 1 + cmd/storagenode/main.go | 1 + cmd/uplink/main.go | 1 + cmd/versioncontrol/main.go | 1 + private/version/release.go | 23 +++++++++++++++++++++++ scripts/tag-release.sh | 26 +++++++++++++++++++------- 11 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 private/version/release.go diff --git a/cmd/certificates/main.go b/cmd/certificates/main.go index 76789b391..2ada309df 100644 --- a/cmd/certificates/main.go +++ b/cmd/certificates/main.go @@ -14,6 +14,7 @@ import ( "storj.io/storj/certificate" "storj.io/storj/certificate/authorization" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. ) var ( diff --git a/cmd/identity/main.go b/cmd/identity/main.go index fd7ea8bfa..ca7ab6894 100644 --- a/cmd/identity/main.go +++ b/cmd/identity/main.go @@ -25,6 +25,7 @@ import ( "storj.io/private/version" "storj.io/storj/certificate/certificateclient" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/private/version/checker" ) diff --git a/cmd/inspector/main.go b/cmd/inspector/main.go index 1b2485cf0..6000073f9 100644 --- a/cmd/inspector/main.go +++ b/cmd/inspector/main.go @@ -23,6 +23,7 @@ import ( "storj.io/common/storj" "storj.io/private/process" "storj.io/storj/private/prompt" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/uplink/private/eestream" ) diff --git a/cmd/satellite/main.go b/cmd/satellite/main.go index 6b1c4a6f7..17ef49fec 100644 --- a/cmd/satellite/main.go +++ b/cmd/satellite/main.go @@ -26,6 +26,7 @@ import ( "storj.io/storj/cmd/satellite/reports" "storj.io/storj/pkg/cache" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/satellite" "storj.io/storj/satellite/accounting/live" "storj.io/storj/satellite/compensation" diff --git a/cmd/segment-reaper/main.go b/cmd/segment-reaper/main.go index dcf4d323d..a8e8bd427 100644 --- a/cmd/segment-reaper/main.go +++ b/cmd/segment-reaper/main.go @@ -7,6 +7,7 @@ import ( "github.com/spf13/cobra" "storj.io/private/process" + _ "storj.io/storj/private/version" // This attaches version information during release builds. ) var ( diff --git a/cmd/storagenode-updater/main.go b/cmd/storagenode-updater/main.go index d009461b7..bc50edf35 100644 --- a/cmd/storagenode-updater/main.go +++ b/cmd/storagenode-updater/main.go @@ -34,6 +34,7 @@ import ( "storj.io/private/cfgstruct" "storj.io/private/process" "storj.io/private/version" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/private/version/checker" ) diff --git a/cmd/storagenode/main.go b/cmd/storagenode/main.go index 58300ff08..669c23ab8 100644 --- a/cmd/storagenode/main.go +++ b/cmd/storagenode/main.go @@ -22,6 +22,7 @@ import ( "storj.io/private/process" "storj.io/private/version" "storj.io/storj/pkg/revocation" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/storagenode" "storj.io/storj/storagenode/storagenodedb" ) diff --git a/cmd/uplink/main.go b/cmd/uplink/main.go index 1f6a6e886..3b28398e0 100644 --- a/cmd/uplink/main.go +++ b/cmd/uplink/main.go @@ -9,6 +9,7 @@ import ( "storj.io/private/process" "storj.io/storj/cmd/uplink/cmd" + _ "storj.io/storj/private/version" // This attaches version information during release builds. ) func main() { diff --git a/cmd/versioncontrol/main.go b/cmd/versioncontrol/main.go index a5f8b5e33..6bb2dd219 100644 --- a/cmd/versioncontrol/main.go +++ b/cmd/versioncontrol/main.go @@ -14,6 +14,7 @@ import ( "storj.io/common/fpath" "storj.io/private/cfgstruct" "storj.io/private/process" + _ "storj.io/storj/private/version" // This attaches version information during release builds. "storj.io/storj/versioncontrol" ) diff --git a/private/version/release.go b/private/version/release.go new file mode 100644 index 000000000..ae486db4c --- /dev/null +++ b/private/version/release.go @@ -0,0 +1,23 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + +package version + +import _ "unsafe" // needed for go:linkname + +//go:linkname buildTimestamp storj.io/private/version.buildTimestamp +var buildTimestamp string + +//go:linkname buildCommitHash storj.io/private/version.buildCommitHash +var buildCommitHash string + +//go:linkname buildVersion storj.io/private/version.buildVersion +var buildVersion string + +//go:linkname buildRelease storj.io/private/version.buildRelease +var buildRelease string + +// ensure that linter understands that the variables are being used. +func init() { use(buildTimestamp, buildCommitHash, buildVersion, buildRelease) } + +func use(...interface{}) {} diff --git a/scripts/tag-release.sh b/scripts/tag-release.sh index 4955b6136..6f1b6c362 100755 --- a/scripts/tag-release.sh +++ b/scripts/tag-release.sh @@ -35,17 +35,29 @@ TIMESTAMP=$(date +%s) COMMIT=$(git rev-parse HEAD) cat > ./private/version/release.go <