Skip to content
This repository has been archived by the owner on Jan 17, 2021. It is now read-only.

sshcode --version does not print version info #154

Open
samuela opened this issue Nov 26, 2019 · 12 comments
Open

sshcode --version does not print version info #154

samuela opened this issue Nov 26, 2019 · 12 comments

Comments

@samuela
Copy link

samuela commented Nov 26, 2019

I installed sshcode via go get -u go.coder.com/sshcode, and when I run sshcode --version I don't get any version info:

pi@raspberrypi:~ $ sshcode --version

pi@raspberrypi:~ $ 
@fonnesbeck
Copy link

Confirming this on Debian Linux, using sshcode built from source.

@Merith-TK
Copy link
Contributor

Merith-TK commented Dec 19, 2019 via email

@IngCr3at1on
Copy link

Yeah this is an issue with fetching sshcode using go get instead of downloading a release binary. Since we're not running ci/build.sh the version information is never set. Off the top of my head I don't think there's an easy way to make this fill in automatically when running go get and the obvious intention is to not have to update the version manually... I wonder if instead of printing an empty string it should just say something like unofficial?

@Merith-TK
Copy link
Contributor

Maybe git version?

@IngCr3at1on
Copy link

IngCr3at1on commented Dec 27, 2019

How do you get the git version without a script? There's no way (to my knowledge) to get such a value using go get to build the binary.

@Merith-TK
Copy link
Contributor

uhm, check the git version of GOPATH/src/github.com/cdr/sshcode?

@IngCr3at1on
Copy link

IngCr3at1on commented Dec 27, 2019

The issue is that running go get -u go.coder.com/sshcode is leveraging the go tooling, it sees the presence of a main.go and compiles this to a binary. There's no way to make that tooling find the version and add it to the version string. The string value itself is set at compile-time using a ldflag which you otherwise don't get to pass in when running go get.

That's why it's blank currently, the string has no default value and nothing is being set using a ldflag. My suggestion above was to set a default value that would be overwritten by the script for official builds.

@deansheather
Copy link
Member

If you're installing from source there's no release version built into the binary. I don't think it's a big deal that it prints nothing in this case, but I'll accept a PR so custom builds say unofficial.

@IngCr3at1on
Copy link

If you're installing from source there's no release version built into the binary. I don't think it's a big deal that it prints nothing in this case, but I'll accept a PR so custom builds say unofficial.

Yeah personally I'm totally indifferent my comments and suggestions here were just to other's benefit. That said if it's wanted by others I'll gladly submit such a PR, another option might be to simply link this issue from a FAQ in the readme, or yes leave it entirely as is as it's a pretty small non-annoyance 😄

@Merith-TK
Copy link
Contributor

Merith-TK commented Mar 13, 2020 via email

@IngCr3at1on
Copy link

One way to build with git versions is to use a script to sed a go file that contained a variable? Contents would be package main const version = "Version/commit string"

The problem is that script will never be called by go get which is always going to be the preferred method for installing a go binary directly from source.

@Merith-TK
Copy link
Contributor

Merith-TK commented Mar 13, 2020 via email

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants