From 6d7c36bb8f87a89ebf7b6f55d47ec8332768834b Mon Sep 17 00:00:00 2001 From: Daniel Liu <139250065@qq.com> Date: Sat, 15 Nov 2025 19:16:54 +0800 Subject: [PATCH] all: upgrade package version #30638 (#1745) --- build/ci.go | 3 +- cmd/XDC/bugcmd.go | 10 +-- cmd/XDC/config.go | 5 +- cmd/XDC/consolecmd_test.go | 12 +++- cmd/XDC/main.go | 6 +- cmd/XDC/misccmd.go | 17 ++++-- cmd/abigen/main.go | 2 +- cmd/ethkey/main.go | 9 +-- cmd/evm/main.go | 4 +- cmd/p2psim/main.go | 7 +-- eth/backend.go | 6 +- internal/build/env.go | 108 +++++++++++++++++++++++++++------ internal/flags/helpers.go | 11 ++-- internal/version/vcs.go | 77 +++++++++++++++++++++++ internal/version/version.go | 52 ++++++++++++++++ {params => version}/version.go | 33 ++-------- 16 files changed, 271 insertions(+), 91 deletions(-) create mode 100644 internal/version/vcs.go create mode 100644 internal/version/version.go rename {params => version}/version.go (51%) diff --git a/build/ci.go b/build/ci.go index 8915c383c3..ae82bd1922 100644 --- a/build/ci.go +++ b/build/ci.go @@ -179,7 +179,8 @@ func doInstall(cmdline []string) { func buildFlags(env build.Environment) (flags []string) { var ld []string if env.Commit != "" { - ld = append(ld, "-X", "main.gitCommit="+env.Commit) + ld = append(ld, "-X", "github.com/XinFinOrg/XDPoSChain/internal/version.gitCommit="+env.Commit) + ld = append(ld, "-X", "github.com/XinFinOrg/XDPoSChain/internal/version.gitDate="+env.Date) } if runtime.GOOS == "darwin" { ld = append(ld, "-s") diff --git a/cmd/XDC/bugcmd.go b/cmd/XDC/bugcmd.go index 201883f8c9..9c31daf11b 100644 --- a/cmd/XDC/bugcmd.go +++ b/cmd/XDC/bugcmd.go @@ -27,7 +27,7 @@ import ( "strings" "github.com/XinFinOrg/XDPoSChain/cmd/internal/browser" - "github.com/XinFinOrg/XDPoSChain/params" + "github.com/XinFinOrg/XDPoSChain/internal/version" "github.com/urfave/cli/v2" ) @@ -47,7 +47,7 @@ func reportBug(ctx *cli.Context) error { var buff bytes.Buffer fmt.Fprintln(&buff, header) - fmt.Fprintln(&buff, "Version:", params.Version) + fmt.Fprintln(&buff, "Version:", version.WithMeta) fmt.Fprintln(&buff, "Go Version:", runtime.Version()) fmt.Fprintln(&buff, "OS:", runtime.GOOS) printOSDetails(&buff) @@ -97,9 +97,9 @@ func printCmdOut(w io.Writer, prefix, path string, args ...string) { const header = `Please answer these questions before submitting your issue. Thanks! #### What did you do? - + #### What did you expect to see? - + #### What did you see instead? - + #### System details` diff --git a/cmd/XDC/config.go b/cmd/XDC/config.go index a5afdc06d4..057dcbc263 100644 --- a/cmd/XDC/config.go +++ b/cmd/XDC/config.go @@ -39,10 +39,10 @@ import ( "github.com/XinFinOrg/XDPoSChain/eth/ethconfig" "github.com/XinFinOrg/XDPoSChain/internal/ethapi" "github.com/XinFinOrg/XDPoSChain/internal/flags" + "github.com/XinFinOrg/XDPoSChain/internal/version" "github.com/XinFinOrg/XDPoSChain/log" "github.com/XinFinOrg/XDPoSChain/metrics" "github.com/XinFinOrg/XDPoSChain/node" - "github.com/XinFinOrg/XDPoSChain/params" "github.com/naoina/toml" "github.com/urfave/cli/v2" ) @@ -122,9 +122,10 @@ func loadConfig(file string, cfg *XDCConfig) error { } func defaultNodeConfig() node.Config { + git, _ := version.VCS() cfg := node.DefaultConfig cfg.Name = clientIdentifier - cfg.Version = params.VersionWithCommit(gitCommit) + cfg.Version = version.WithCommit(git.Commit, git.Date) cfg.HTTPModules = append(cfg.HTTPModules, "eth") cfg.WSModules = append(cfg.WSModules, "eth") cfg.IPCPath = "XDC.ipc" diff --git a/cmd/XDC/consolecmd_test.go b/cmd/XDC/consolecmd_test.go index 51048491eb..7dc76c498c 100644 --- a/cmd/XDC/consolecmd_test.go +++ b/cmd/XDC/consolecmd_test.go @@ -26,7 +26,7 @@ import ( "testing" "time" - "github.com/XinFinOrg/XDPoSChain/params" + "github.com/XinFinOrg/XDPoSChain/internal/version" ) const ( @@ -50,7 +50,10 @@ func TestConsoleWelcome(t *testing.T) { XDC.SetTemplateFunc("goos", func() string { return runtime.GOOS }) XDC.SetTemplateFunc("goarch", func() string { return runtime.GOARCH }) XDC.SetTemplateFunc("gover", runtime.Version) - XDC.SetTemplateFunc("XDCver", func() string { return params.Version }) + XDC.SetTemplateFunc("XDCver", func() string { + git, _ := version.VCS() + return version.WithCommit(git.Commit, git.Date) + }) XDC.SetTemplateFunc("niltime", func() string { return time.Unix(1559211559, 0).Format("Mon Jan 02 2006 15:04:05 GMT-0700 (MST)") }) @@ -137,7 +140,10 @@ func testAttachWelcome(t *testing.T, XDC *testXDC, endpoint, apis string) { attach.SetTemplateFunc("goos", func() string { return runtime.GOOS }) attach.SetTemplateFunc("goarch", func() string { return runtime.GOARCH }) attach.SetTemplateFunc("gover", runtime.Version) - attach.SetTemplateFunc("XDCver", func() string { return params.Version }) + attach.SetTemplateFunc("XDCver", func() string { + git, _ := version.VCS() + return version.WithCommit(git.Commit, git.Date) + }) attach.SetTemplateFunc("etherbase", func() string { return XDC.Etherbase }) attach.SetTemplateFunc("niltime", func() string { return time.Unix(1559211559, 0).Format("Mon Jan 02 2006 15:04:05 GMT-0700 (MST)") diff --git a/cmd/XDC/main.go b/cmd/XDC/main.go index a3143c8508..7312769aec 100644 --- a/cmd/XDC/main.go +++ b/cmd/XDC/main.go @@ -53,10 +53,8 @@ const ( ) var ( - // Git SHA1 commit hash of the release (set via linker flags) - gitCommit = "" // The app that holds all commands and flags. - app = flags.NewApp(gitCommit, "the XDPoSChain command line interface") + app = flags.NewApp("the XDPoSChain command line interface") // The app that holds all commands and flags. nodeFlags = slices.Concat([]cli.Flag{ @@ -194,7 +192,7 @@ var ( func init() { // Initialize the CLI app and start XDC app.Action = XDC - app.Copyright = "Copyright (c) 2024 XDPoSChain" + app.Copyright = "Copyright (c) 2025 XDPoSChain" app.Commands = []*cli.Command{ // See chaincmd.go: initCommand, diff --git a/cmd/XDC/misccmd.go b/cmd/XDC/misccmd.go index cd5cdcc208..051613a0df 100644 --- a/cmd/XDC/misccmd.go +++ b/cmd/XDC/misccmd.go @@ -24,13 +24,13 @@ import ( "github.com/XinFinOrg/XDPoSChain/eth" "github.com/XinFinOrg/XDPoSChain/eth/ethconfig" - "github.com/XinFinOrg/XDPoSChain/params" + "github.com/XinFinOrg/XDPoSChain/internal/version" "github.com/urfave/cli/v2" ) var ( versionCommand = &cli.Command{ - Action: version, + Action: printVersion, Name: "version", Usage: "Print version numbers", ArgsUsage: " ", @@ -46,11 +46,16 @@ The output of this command is supposed to be machine-readable. } ) -func version(ctx *cli.Context) error { +func printVersion(ctx *cli.Context) error { + git, _ := version.VCS() + fmt.Println(strings.Title(clientIdentifier)) - fmt.Println("Version:", params.Version) - if gitCommit != "" { - fmt.Println("Git Commit:", gitCommit) + fmt.Println("Version:", version.WithMeta) + if git.Commit != "" { + fmt.Println("Git Commit:", git.Commit) + } + if git.Date != "" { + fmt.Println("Git Commit Date:", git.Date) } fmt.Println("Architecture:", runtime.GOARCH) fmt.Println("Protocol Versions:", eth.ProtocolVersions) diff --git a/cmd/abigen/main.go b/cmd/abigen/main.go index 5645f4582e..8338eb8e79 100644 --- a/cmd/abigen/main.go +++ b/cmd/abigen/main.go @@ -73,7 +73,7 @@ var ( } ) -var app = flags.NewApp("", "XDC ABI wrapper code generator") +var app = flags.NewApp("XDC ABI wrapper code generator") func init() { app.Name = "abigen" diff --git a/cmd/ethkey/main.go b/cmd/ethkey/main.go index f1840227a3..b3d182c53d 100644 --- a/cmd/ethkey/main.go +++ b/cmd/ethkey/main.go @@ -28,13 +28,10 @@ const ( defaultKeyfileName = "keyfile.json" ) -// Git SHA1 commit hash of the release (set via linker flags) -var gitCommit = "" - var app *cli.App func init() { - app = flags.NewApp(gitCommit, "an Ethereum key manager") + app = flags.NewApp("an Ethereum key manager") app.Commands = []*cli.Command{ commandGenerate, commandInspect, @@ -53,10 +50,6 @@ var ( Name: "json", Usage: "output JSON instead of human-readable format", } - messageFlag = &cli.StringFlag{ - Name: "message", - Usage: "the file that contains the message to sign/verify", - } ) func main() { diff --git a/cmd/evm/main.go b/cmd/evm/main.go index 0ac8e896e2..ec9d3e4245 100644 --- a/cmd/evm/main.go +++ b/cmd/evm/main.go @@ -27,9 +27,7 @@ import ( ) var ( - gitCommit = "" // Git SHA1 commit hash of the release (set via linker flags) - - app = flags.NewApp(gitCommit, "the evm command line interface") + app = flags.NewApp("the evm command line interface") ) var ( diff --git a/cmd/p2psim/main.go b/cmd/p2psim/main.go index eb9bb179be..3b0faa8ccd 100644 --- a/cmd/p2psim/main.go +++ b/cmd/p2psim/main.go @@ -100,13 +100,8 @@ var ( } ) -var ( - // Git information set by linker when building with ci.go. - gitCommit string -) - func main() { - app := flags.NewApp(gitCommit, "devp2p simulation command-line client") + app := flags.NewApp("devp2p simulation command-line client") app.Usage = "devp2p simulation command-line client" app.Flags = []cli.Flag{ apiFlag, diff --git a/eth/backend.go b/eth/backend.go index 54e36eaab4..7bcc796182 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -52,6 +52,7 @@ import ( "github.com/XinFinOrg/XDPoSChain/ethdb" "github.com/XinFinOrg/XDPoSChain/event" "github.com/XinFinOrg/XDPoSChain/internal/ethapi" + "github.com/XinFinOrg/XDPoSChain/internal/version" "github.com/XinFinOrg/XDPoSChain/log" "github.com/XinFinOrg/XDPoSChain/miner" "github.com/XinFinOrg/XDPoSChain/node" @@ -59,6 +60,7 @@ import ( "github.com/XinFinOrg/XDPoSChain/params" "github.com/XinFinOrg/XDPoSChain/rlp" "github.com/XinFinOrg/XDPoSChain/rpc" + ver "github.com/XinFinOrg/XDPoSChain/version" ) // Ethereum implements the Ethereum full node service. @@ -166,7 +168,7 @@ func New(stack *node.Node, config *ethconfig.Config, XDCXServ *XDCx.XDCX, lendin if !config.SkipBcVersionCheck { if bcVersion != nil && *bcVersion > core.BlockChainVersion { - return nil, fmt.Errorf("database version is v%d, not supports v%d", *bcVersion, core.BlockChainVersion) + return nil, fmt.Errorf("database version is v%d, XDC %s only supports v%d", *bcVersion, version.WithMeta, core.BlockChainVersion) } else if bcVersion == nil || *bcVersion < core.BlockChainVersion { if bcVersion != nil { // only print warning on upgrade, not on init log.Warn("Upgrade blockchain database version", "from", dbVer, "to", core.BlockChainVersion) @@ -358,7 +360,7 @@ func makeExtraData(extra []byte) []byte { if len(extra) == 0 { // create default extradata extra, _ = rlp.EncodeToBytes([]interface{}{ - uint(params.VersionMajor<<16 | params.VersionMinor<<8 | params.VersionPatch), + uint(ver.Major<<16 | ver.Minor<<8 | ver.Patch), "XDC", runtime.Version(), runtime.GOOS, diff --git a/internal/build/env.go b/internal/build/env.go index ef14627458..b2abd3e7c3 100644 --- a/internal/build/env.go +++ b/internal/build/env.go @@ -20,32 +20,38 @@ import ( "flag" "fmt" "os" + "regexp" + "strconv" "strings" + "time" ) var ( // These flags override values in build env. - GitCommitFlag = flag.String("git-commit", "", `Overrides git commit hash embedded into executables`) - GitBranchFlag = flag.String("git-branch", "", `Overrides git branch being built`) - GitTagFlag = flag.String("git-tag", "", `Overrides git tag being built`) - BuildnumFlag = flag.String("buildnum", "", `Overrides CI build number`) - PullRequestFlag = flag.Bool("pull-request", false, `Overrides pull request status of the build`) - CronJobFlag = flag.Bool("cron-job", false, `Overrides cron job status of the build`) + GitCommitFlag = flag.String("git-commit", "", `Overrides git commit hash embedded into executables`) + GitBranchFlag = flag.String("git-branch", "", `Overrides git branch being built`) + GitTagFlag = flag.String("git-tag", "", `Overrides git tag being built`) + BuildnumFlag = flag.String("buildnum", "", `Overrides CI build number`) + PullRequestFlag = flag.Bool("pull-request", false, `Overrides pull request status of the build`) + CronJobFlag = flag.Bool("cron-job", false, `Overrides cron job status of the build`) + UbuntuVersionFlag = flag.String("ubuntu", "", `Sets the ubuntu version being built for`) ) // Environment contains metadata provided by the build environment. type Environment struct { - Name string // name of the environment - Repo string // name of GitHub repo - Commit, Branch, Tag string // Git info - Buildnum string - IsPullRequest bool - IsCronJob bool + CI bool + Name string // name of the environment + Repo string // name of GitHub repo + Commit, Date, Branch, Tag string // Git info + Buildnum string + UbuntuVersion string // Ubuntu version being built for + IsPullRequest bool + IsCronJob bool } func (env Environment) String() string { - return fmt.Sprintf("%s env (commit:%s branch:%s tag:%s buildnum:%s pr:%t)", - env.Name, env.Commit, env.Branch, env.Tag, env.Buildnum, env.IsPullRequest) + return fmt.Sprintf("%s env (commit:%s date:%s branch:%s tag:%s buildnum:%s pr:%t)", + env.Name, env.Commit, env.Date, env.Branch, env.Tag, env.Buildnum, env.IsPullRequest) } // Env returns metadata about the current CI environment, falling back to LocalEnv @@ -53,10 +59,16 @@ func (env Environment) String() string { func Env() Environment { switch { case os.Getenv("CI") == "true" && os.Getenv("TRAVIS") == "true": + commit := os.Getenv("TRAVIS_PULL_REQUEST_SHA") + if commit == "" { + commit = os.Getenv("TRAVIS_COMMIT") + } return Environment{ + CI: true, Name: "travis", Repo: os.Getenv("TRAVIS_REPO_SLUG"), - Commit: os.Getenv("TRAVIS_COMMIT"), + Commit: commit, + Date: getDate(commit), Branch: os.Getenv("TRAVIS_BRANCH"), Tag: os.Getenv("TRAVIS_TAG"), Buildnum: os.Getenv("TRAVIS_BUILD_NUMBER"), @@ -64,16 +76,49 @@ func Env() Environment { IsCronJob: os.Getenv("TRAVIS_EVENT_TYPE") == "cron", } case os.Getenv("CI") == "True" && os.Getenv("APPVEYOR") == "True": + commit := os.Getenv("APPVEYOR_PULL_REQUEST_HEAD_COMMIT") + if commit == "" { + commit = os.Getenv("APPVEYOR_REPO_COMMIT") + } return Environment{ + CI: true, Name: "appveyor", Repo: os.Getenv("APPVEYOR_REPO_NAME"), - Commit: os.Getenv("APPVEYOR_REPO_COMMIT"), + Commit: commit, + Date: getDate(commit), Branch: os.Getenv("APPVEYOR_REPO_BRANCH"), Tag: os.Getenv("APPVEYOR_REPO_TAG_NAME"), Buildnum: os.Getenv("APPVEYOR_BUILD_NUMBER"), IsPullRequest: os.Getenv("APPVEYOR_PULL_REQUEST_NUMBER") != "", IsCronJob: os.Getenv("APPVEYOR_SCHEDULED_BUILD") == "True", } + case os.Getenv("CI") == "true" && os.Getenv("GITHUB_ACTIONS") == "true": + commit := os.Getenv("GITHUB_SHA") + reftype := os.Getenv("GITHUB_REF_TYPE") + isPR := os.Getenv("GITHUB_HEAD_REF") != "" + tag := "" + branch := "" + switch { + case isPR: + branch = os.Getenv("GITHUB_BASE_REF") + case reftype == "branch": + branch = os.Getenv("GITHUB_REF_NAME") + case reftype == "tag": + tag = os.Getenv("GITHUB_REF_NAME") + } + return Environment{ + CI: true, + Name: "github-actions", + Repo: os.Getenv("GITHUB_REPOSITORY"), + Commit: commit, + Date: getDate(commit), + Branch: branch, + Tag: tag, + IsPullRequest: isPR, + Buildnum: os.Getenv("GITHUB_RUN_ID"), + IsCronJob: os.Getenv("GITHUB_EVENT_NAME") == "schedule", + } + default: return LocalEnv() } @@ -84,14 +129,23 @@ func LocalEnv() Environment { env := applyEnvFlags(Environment{Name: "local", Repo: "XDPoSChain/XDPoSChain"}) head := readGitFile("HEAD") - if splits := strings.Split(head, " "); len(splits) == 2 { - head = splits[1] + if fields := strings.Fields(head); len(fields) == 2 { + head = fields[1] } else { + // In this case we are in "detached head" state + // see: https://git-scm.com/docs/git-checkout#_detached_head + // Additional check required to verify, that file contains commit hash + commitRe, _ := regexp.Compile("^([0-9a-f]{40})$") + if commit := commitRe.FindString(head); commit != "" && env.Commit == "" { + env.Commit = commit + env.Date = getDate(env.Commit) + } return env } if env.Commit == "" { env.Commit = readGitFile(head) } + env.Date = getDate(env.Commit) if env.Branch == "" { if head != "HEAD" { env.Branch = strings.TrimPrefix(head, "refs/heads/") @@ -107,6 +161,21 @@ func firstLine(s string) string { return strings.Split(s, "\n")[0] } +func getDate(commit string) string { + if commit == "" { + return "" + } + out := RunGit("show", "-s", "--format=%ct", commit) + if out == "" { + return "" + } + date, err := strconv.ParseInt(strings.TrimSpace(out), 10, 64) + if err != nil { + panic(fmt.Sprintf("failed to parse git commit date: %v", err)) + } + return time.Unix(date, 0).Format("20060102") +} + func applyEnvFlags(env Environment) Environment { if !flag.Parsed() { panic("you need to call flag.Parse before Env or LocalEnv") @@ -129,5 +198,8 @@ func applyEnvFlags(env Environment) Environment { if *CronJobFlag { env.IsCronJob = true } + if *UbuntuVersionFlag != "" { + env.UbuntuVersion = *UbuntuVersionFlag + } return env } diff --git a/internal/flags/helpers.go b/internal/flags/helpers.go index 32935e87f9..486acdcc7b 100644 --- a/internal/flags/helpers.go +++ b/internal/flags/helpers.go @@ -23,8 +23,8 @@ import ( "sort" "strings" + "github.com/XinFinOrg/XDPoSChain/internal/version" "github.com/XinFinOrg/XDPoSChain/log" - "github.com/XinFinOrg/XDPoSChain/params" "github.com/mattn/go-isatty" "github.com/urfave/cli/v2" ) @@ -34,12 +34,13 @@ import ( var usecolor = (isatty.IsTerminal(os.Stdout.Fd()) || isatty.IsCygwinTerminal(os.Stdout.Fd())) && os.Getenv("TERM") != "dumb" // NewApp creates an app with sane defaults. -func NewApp(gitCommit, usage string) *cli.App { +func NewApp(usage string) *cli.App { + git, _ := version.VCS() app := cli.NewApp() app.EnableBashCompletion = true - app.Version = params.VersionWithCommit(gitCommit) + app.Version = version.WithCommit(git.Commit, git.Date) app.Usage = usage - app.Copyright = "Copyright 2024 XDPoSChain" + app.Copyright = "Copyright 2025 XDPoSChain" app.Before = func(ctx *cli.Context) error { MigrateGlobalFlags(ctx) return nil @@ -104,7 +105,7 @@ func doMigrateFlags(ctx *cli.Context) { for _, parent := range ctx.Lineage()[1:] { if parent.IsSet(name) { // When iterating across the lineage, we will be served both - // the 'canon' and alias formats of all commmands. In most cases, + // the 'canon' and alias formats of all commands. In most cases, // it's fine to set it in the ctx multiple times (one for each // name), however, the Slice-flags are not fine. // The slice-flags accumulate, so if we set it once as diff --git a/internal/version/vcs.go b/internal/version/vcs.go new file mode 100644 index 0000000000..a6f14e0140 --- /dev/null +++ b/internal/version/vcs.go @@ -0,0 +1,77 @@ +// Copyright 2022 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +package version + +import ( + "runtime/debug" + "time" +) + +// the go tool embeds VCS information into the build. + +const ( + govcsTimeLayout = "2006-01-02T15:04:05Z" + ourTimeLayout = "20060102" +) + +// These variables are set at build-time by the linker when the build is +// done by build/ci.go. +var gitCommit, gitDate string + +// VCSInfo represents the git repository state. +type VCSInfo struct { + Commit string // head commit hash + Date string // commit time in YYYYMMDD format + Dirty bool +} + +// VCS returns version control information of the current executable. +func VCS() (VCSInfo, bool) { + if gitCommit != "" { + // Use information set by the build script if present. + return VCSInfo{Commit: gitCommit, Date: gitDate}, true + } + if buildInfo, ok := debug.ReadBuildInfo(); ok { + if buildInfo.Main.Path == ourPath { + return buildInfoVCS(buildInfo) + } + } + return VCSInfo{}, false +} + +// buildInfoVCS returns VCS information of the build. +func buildInfoVCS(info *debug.BuildInfo) (s VCSInfo, ok bool) { + for _, v := range info.Settings { + switch v.Key { + case "vcs.revision": + s.Commit = v.Value + case "vcs.modified": + if v.Value == "true" { + s.Dirty = true + } + case "vcs.time": + t, err := time.Parse(govcsTimeLayout, v.Value) + if err == nil { + s.Date = t.Format(ourTimeLayout) + } + } + } + if s.Commit != "" && s.Date != "" { + ok = true + } + return +} diff --git a/internal/version/version.go b/internal/version/version.go new file mode 100644 index 0000000000..4c066eb5dd --- /dev/null +++ b/internal/version/version.go @@ -0,0 +1,52 @@ +// Copyright 2022 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see . + +// Package version implements reading of build version information. +package version + +import ( + "fmt" + + "github.com/XinFinOrg/XDPoSChain/version" +) + +const ourPath = "github.com/XinFinOrg/XDPoSChain" // Path to our module + +// Family holds the textual version string for major.minor +var Family = fmt.Sprintf("%d.%d", version.Major, version.Minor) + +// Semantic holds the textual version string for major.minor.patch. +var Semantic = fmt.Sprintf("%d.%d.%d", version.Major, version.Minor, version.Patch) + +// WithMeta holds the textual version string including the metadata. +var WithMeta = func() string { + v := Semantic + if version.Meta != "" { + v += "-" + version.Meta + } + return v +}() + +func WithCommit(gitCommit, gitDate string) string { + vsn := WithMeta + if len(gitCommit) >= 8 { + vsn += "-" + gitCommit[:8] + } + if (version.Meta != "stable") && (gitDate != "") { + vsn += "-" + gitDate + } + return vsn +} diff --git a/params/version.go b/version/version.go similarity index 51% rename from params/version.go rename to version/version.go index 92dd888b0d..da413de079 100644 --- a/params/version.go +++ b/version/version.go @@ -1,4 +1,4 @@ -// Copyright 2016 The go-ethereum Authors +// Copyright 2024 The go-ethereum Authors // This file is part of the go-ethereum library. // // The go-ethereum library is free software: you can redistribute it and/or modify @@ -14,32 +14,11 @@ // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . -package params - -import ( - "fmt" -) +package version const ( - VersionMajor = 2 // Major version component of the current release - VersionMinor = 6 // Minor version component of the current release - VersionPatch = 1 // Patch version component of the current release - VersionMeta = "beta" // Version metadata to append to the version string + Major = 2 // Major version component of the current release + Minor = 6 // Minor version component of the current release + Patch = 5 // Patch version component of the current release + Meta = "testnet" // Version metadata to append to the version string ) - -// Version holds the textual version string. -var Version = func() string { - v := fmt.Sprintf("%d.%d.%d", VersionMajor, VersionMinor, VersionPatch) - if VersionMeta != "" { - v += "-" + VersionMeta - } - return v -}() - -func VersionWithCommit(gitCommit string) string { - vsn := Version - if len(gitCommit) >= 8 { - vsn += "-" + gitCommit[:8] - } - return vsn -}