Repository navigation
gpython: Display build information and support some builtin attribute #44
Description
Activity
- 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 Looks like we can inject the commit log by using ldflag during build time.
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.
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, thercloneway is fine by me.Probably the simplest thing is to go with what goreleaser provides us with:
So make a version.go file with this in
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@ncw LGTM
Looks like a good first issue for a newbie of this project.
- Display build information
- added a commit that references this issue
on Mar 3, 2019
Likewise, PyPy3, if we can display build information such as commit information, go version.
it will be awesome.
Also, we need to implement
copyright,creditsandlicenseas a built-in attribute.