You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
gpython: Display build information and support some builtin attribute #44
changed the title [-]gpython: Display build information and support some builtin variable[/-][+]gpython: Display build information and support some builtin attribute[/+]on Dec 26, 2018
If you build rclone not via the Makefile you get a v1.45-DEV build
I'm pretty sure you can do this with go-releaser which we use to build the release binaries.
I had a chat with the debian maintainer about rclone and this issue, and his thoughts were that the program should build using the normal go tools to make the correct version number at the releases. Which kind of implies when we make a release, we should check in the build description. That is what I do in rclone anyway, but the Makefile adds a git ID for non release builds.
package main
var (
version="dev"commit="none"date="unknown"
)
Then the release builds will have the correct version, commit and date in. The dev builds will have "dev" "none" and "unknown".
Python 3.5.3 (fdd60ed87e941677e8ea11acf9f1819466521bf2, Apr 26 2018, 01:23:42)
[PyPy 6.0.0 with GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
This provides most of what we need here.
Note that we should show the go runtime version os and arch too as that is really important debugging info.
fmt.Printf("- os/arch: %s/%s\n", runtime.GOOS, runtime.GOARCH)
fmt.Printf("- go version: %s\n", runtime.Version())
Reacted by Sebastien Binet, Donghee Na and Brian Wojtczak
Activity
corona10 commentedon Dec 26, 2018
@ncw @sbinet
What do you think about displaying build information?
And it will be able to implement it without 3rd party library?[-]gpython: Display build information and support some builtin variable[/-][+]gpython: Display build information and support some builtin attribute[/+]corona10 commentedon Dec 26, 2018
Looks like we can inject the commit log by using ldflag during build time.
ncw commentedon Dec 26, 2018
This is slightly awkward to do as it can't be done using the standard
go build(at least I haven't figured out how!)I do this in rclone and I have a Makefile which does the build
https://github.com/ncw/rclone/blob/39eac7a7658494a5404dfd75c80f0be3e6d222b2/Makefile#L35
If you build rclone not via the Makefile you get a
v1.45-DEVbuildI'm pretty sure you can do this with go-releaser which we use to build the release binaries.
I had a chat with the debian maintainer about rclone and this issue, and his thoughts were that the program should build using the normal go tools to make the correct version number at the releases. Which kind of implies when we make a release, we should check in the build description. That is what I do in rclone anyway, but the Makefile adds a git ID for non release builds.
corona10 commentedon Dec 27, 2018
@ncw
Yeah looks like
rcloneway is the best way from now on.@sbinet Do you have any ideas?
sbinet commentedon Dec 28, 2018
not sure there's anything else than what
rclonedoes.go generateisn't run by default, so that's out.if we wanted to also support Windows, we could perhaps use
mage, but that's another tool to install...so, yeah, the
rcloneway is fine by me.ncw commentedon Dec 29, 2018
Probably the simplest thing is to go with what goreleaser provides us with:
So make a version.go file with this in
Then the release builds will have the correct version, commit and date in. The dev builds will have "dev" "none" and "unknown".
This provides most of what we need here.
Note that we should show the go runtime version os and arch too as that is really important debugging info.
corona10 commentedon Jan 1, 2019
@ncw LGTM
corona10 commentedon Jan 2, 2019
Looks like a good first issue for a newbie of this project.
#44 Display build information (#52)