Skip to content

proposal: runtime, time: add API BuildTimestamp to report an application's build time #23175

Closed
@vipally

Description

@vipally

Use build timestamp to distinguish different version of application binary is a common way in other languages.
eg: C has macros "__DATE__" and "__TIME__" to fetch compiler time.
But golang has no way to achive this feature nowadays.
I have made a patch to provide fllow API to achive it.

runtime.BuildTimestamp defines a buildtimestamp value which will be written by linker(cmd/link).

time.BuildTime() converts runtime.BuildTimestamp() to time.Time.
The expected usage of BuildTimestamp API is as follow:

func main() {
	println("hello world!")
	println("buildtimestamp:", runtime.BuildTimestamp())
	println("buildtime     :", time.BuildTime().String())
	// Output:
	// hello world!
	// buildtimestamp: 1513671919
	// buildtime     : 2017-12-19 16:25:19 +0800 CST
}

It will be my pleasure that if go team can accept this feature in go repository.
The branch

Activity

changed the title [-]runtime/time: API runtime.BuildTimestamp required to report appication build time[/-] [+]runtime/time: API runtime.BuildTimestamp required to report application build time[/+] on Dec 19, 2017
changed the title [-]runtime/time: API runtime.BuildTimestamp required to report application build time[/-] [+]proposal: runtime, time: add API BuildTimestamp to report an application's build time[/+] on Dec 19, 2017
added this to the Proposal milestone on Dec 19, 2017
ghost

ghost commented on Dec 19, 2017

@ghost

This proposal conflicts with #16860.

ianlancetaylor

ianlancetaylor commented on Dec 19, 2017

@ianlancetaylor
Contributor

If you want this, use the linker's -X option. We are not going to do this by default, as producing bit-identical binaries for bit-identical inputs is a goal. It would also prevent caching of go build results for main packages. Closing.

locked and limited conversation to collaborators on Dec 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @ianlancetaylor@vipally@gopherbot

        Issue actions

          proposal: runtime, time: add API BuildTimestamp to report an application's build time · Issue #23175 · golang/go