-
Notifications
You must be signed in to change notification settings - Fork 136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Show latest not working on .toml and README needs to be updated #252
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- My comments to
README
apply toQuick-Start.md
. - I feel like
main.go
should not have hardcoded values for outputs of-S
and-s
, but rather have constraints mentioned the same way you PR'ed toREADME
.
@@ -85,24 +85,24 @@ tfswitch #will automatically switch to terraform version 0.14.4 | |||
3. Hit **Enter** to install. | |||
### Install latest implicit version for stable releases | |||
1. Install the latest implicit stable version. | |||
2. Ex: `tfswitch -s 0.13` or `tfswitch --latest-stable 0.13` downloads 0.13.6 (latest) version. | |||
2. Ex: `tfswitch -s 0.13` or `tfswitch --latest-stable 0.13` downloads <1.1.0, >=1.0.0, 1.0 downloads <2.0.0, >=1.0.0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to re-read several times to make myself sure I get the things, hence the suggestion from regular user's standpoint:
2. Ex: `tfswitch -s 0.13` or `tfswitch --latest-stable 0.13` downloads <1.1.0, >=1.0.0, 1.0 downloads <2.0.0, >=1.0.0. | |
2. Ex: `tfswitch -s 0.13` or `tfswitch --latest-stable 0.13` downloads `>=1.0.0, <1.1.0`, and `tfswitch -s 1.0` or `tfswitch --latest-stable 1.0` downloads `>=1.0.0, <2.0.0`. |
Also would it worth to mention the logic is the same as what pessimistic constraint operator does in TF version constraint?
https://www.terraform.io/language/expressions/version-constraints#-3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will try to reword it
3. Hit **Enter** to install. | ||
### Install latest implicit version for beta, alpha and release candidates(rc) | ||
1. Install the latest implicit pre-release version. | ||
2. Ex: `tfswitch -p 0.13` or `tfswitch --latest-pre 0.13` downloads 0.13.0-rc1 (latest) version. | ||
2. Ex: `tfswitch -p 0.13` or `tfswitch --latest-pre 0.13` downloads 0.13.0-rc1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a bit confusing that -p
works differently than e.g. -s
. Though this flag's audience assumably is quite small to rework the logic 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, -p
only works for major.minor
while -s
works for major.minor.patch
.
At that time, I do not know modify the regex to work with 0.0.X
with X
being 0-rc1
(alphanumeral+dash).
I am open to modifications, if anyone can make it better.
### Show latest implicit version for stable releases | ||
1. Show the latest implicit stable version. | ||
2. Ex: `tfswitch -S 0.13` or `tfswitch --show-latest-stable 0.13` shows 0.13.6 (latest) version. | ||
3. Hit **Enter** to show. | ||
2. Ex: `tfswitch -S 0.13` or `tfswitch --show-latest-stable 0.13` prints 0.15.5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sure they won't release any more version lower than 1.0, but just to stay on safe side:
2. Ex: `tfswitch -S 0.13` or `tfswitch --show-latest-stable 0.13` prints 0.15.5 | |
2. Ex: `tfswitch -S 0.13` or `tfswitch --show-latest-stable 0.13` prints 0.15.5 (latest version which falls under `>=1.0.0, <1.1.0` constraint as of June, 2022) |
### Show latest implicit version for beta, alpha and release candidates(rc) | ||
1. Show the latest implicit pre-release version. | ||
2. Ex: `tfswitch -P 0.13` or `tfswitch --show-latest-pre 0.13` shows 0.13.0-rc1 (latest) version. | ||
3. Hit **Enter** to show. | ||
2. Ex: `tfswitch -P 0.13` or `tfswitch --show-latest-pre 0.13` prints 0.13.0-rc1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a bit confusing that -P
works differently than e.g. -S
. Though this flag's audience assumably is quite small to rework the logic 🤔
I will look at this for release v1.12. |
showLatestPre := getopt.StringLong("show-latest-pre", 'P', defaultLatest, "Show latest pre-release implicit version. Ex: tfswitch --show-latest-pre 0.13 prints 0.13.0-rc1 (latest)") | ||
latestStable := getopt.StringLong("latest-stable", 's', defaultLatest, "Latest implicit version based on a constraint. Ex: tfswitch --latest-stable 0.13.0 downloads 0.13.7 and 0.13 downloads 0.15.5 (latest)") | ||
showLatestStable := getopt.StringLong("show-latest-stable", 'S', defaultLatest, "Show latest implicit version. Ex: tfswitch --show-latest-stable 0.13 prints 0.13.7 (latest)") | ||
latestPre := getopt.StringLong("latest-pre", 'p', defaultLatest, "Latest pre-release implicit version. Ex: tfswitch --latest-pre 0.13 downloads 0.13.0-rc1") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth quoting the command here to provide visible separation between the command and the expected result?
e.g.
latestPre := getopt.StringLong("latest-pre", 'p', defaultLatest, "Latest pre-release implicit version. Ex: `tfswitch --latest-pre 0.13` - downloads 0.13.0-rc1")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
Though I'd suggest to use double quotes instead of backticks as a more common thing in descriptions I guess.
@@ -102,21 +102,29 @@ func main() { | |||
|
|||
switch { | |||
/* GIVEN A TOML FILE, */ | |||
/* show all terraform version including betas and RCs*/ | |||
/* show all terraform version including betas and RCs */ | |||
case *listAllFlag: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm trying to work out why this case switch logic is duplicated for the TOML file.
Can the TOML file detection not be done before the switch case and just update the variables for version/binPath and then run the single case switch?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Though, I'm happy to take a look at trying to simplify this outside of this PR, if you agree?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, just realised the PR was started 2 years ago 😅
@yermulnik is this still relevant or can we close this? |
Not sure this is still relevant (even if the "issue" is till there) as it's been a while. I'd suggest we close it and re-open via another issue if this is still relevant. |
Context
The documentation on the website and README is not up-to-date.
The show latest feature was not working for users using the .toml file
Fixed
Upgrade
N/A
Added
N/A
Removed
N/A
Fixes:
#249