Skip to content

get rid of the https://grpc.io/release plague#21891

Merged
jtattermusch merged 1 commit intogrpc:masterfrom
jtattermusch:remove_useless_release_links
Feb 13, 2020
Merged

get rid of the https://grpc.io/release plague#21891
jtattermusch merged 1 commit intogrpc:masterfrom
jtattermusch:remove_useless_release_links

Conversation

@jtattermusch
Copy link
Copy Markdown
Contributor

Also see internal issue b/148844497

Generally the curl -L https://grpc.io/release subcommand does more harm than good

  • it makes the cmdline hard to read and obfuscates the real command
  • https://grpc.io/release requires maintenance: https://grpc.io/release is now way out of date which proves we continue forgetting to update it
  • it's not easy to figure out how the https://grpc.io/release file is updated (I didn't figure it out).

In short the https://grpc.io/release is harmful and we should get rid of it.

@gnossen
Copy link
Copy Markdown
Contributor

gnossen commented Feb 4, 2020

I'm not against this change in principle, but I wanted to point out that your second and third bullets are criticisms of our current release process, not of the release uri.

FWIW, it's actually defined here in the old site's repo, via a redirect in the new site. Personally, I'd prefer to just get rid of the redirect and make updating the tag on the new site a part of the release manager's document.

@srini100
Copy link
Copy Markdown
Contributor

srini100 commented Feb 4, 2020

This was broken since the time grpc.io website was updated. We have been updating the document every release as it is part of the release process now and it not a big overhead to do that. See config.toml in grpc/grpc.io. It shows:
[params]
grpc_release_tag = "v1.25.0"
grpc_release_tag_no_v = "1.25.0"
grpc_java_release_tag = "v1.26.0"

I am not totally convinced that this needs to go. I think this is a nice way to point to the latest stable release instead of asking users to replace RELEASE_TAG_HERE in various instructions. Beginners like to just cut and paste.

@gnossen
Copy link
Copy Markdown
Contributor

gnossen commented Feb 4, 2020

This should fix the redirect and break the dependency on the old site.

@jtattermusch
Copy link
Copy Markdown
Contributor Author

@gnossen thanks for the fix.

@srini100 I understand that the idea is to make the commands copy-and-pastable, which is useful, but I think that the argument that the resulting command is not very readable (as a beginner, I can imagine being confused about what the subcommand $(curl -L ...) does).

Btw, on windows, the readability issue is much more apparent - the original command powershell git clone --recursive -b ((New-Object System.Net.WebClient).DownloadString(\"https://grpc.io/release\").Trim()) https://github.com/grpc/grpc is a real mess and completely hides the purpose of the command (which is to do a git clone; imagine trying to decode that as someone who is not super familiar with git, because they are used to a different version control).

Besides that, I'd understand if we used this "get the latest version" trick in one or two places in the repo (the actual getting started docs), but seeing it copy pasted in many different places that have a different (e.g. loadbalancing tutorial) focus seems off.

Btw, for the tutorials on grpc.io page, things work better because the page renders the right version number automatically - that a much better approach and it doesn't impose intellectual burden on the user.

@gnossen
Copy link
Copy Markdown
Contributor

gnossen commented Feb 6, 2020

@jtattermusch An alternate approach would be to start updating a mutable release tag on Github with each release. Then we could advertise git clone -b release https://github.com/grpc/grpc

@jtattermusch
Copy link
Copy Markdown
Contributor Author

@jtattermusch An alternate approach would be to start updating a mutable release tag on Github with each release. Then we could advertise git clone -b release https://github.com/grpc/grpc

I am not a fan of that either. None of the open source projects I know of does this.
This is definitely a question of taste, but I'm more in favor of a solution that requires no extra maintenance steps and is conceptually simple and completely transparent to the users, even though it might cost users one extra (trivial) manual step.
Another is argument is that anyone who's serious about using gRPC in a real project likely won't mind looking up what's the latest release version. Staying aware of the release notes and regularly checking if one should/shouldn't upgrade to the next release is something I'd recommend anyway. So I see pointing people to https://github.com/grpc/grpc/releases as something rather positive.

Copy link
Copy Markdown
Contributor

@srini100 srini100 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am fine to go ahead with this change but let's keep grpc.io the same since it can render the value.

@jtattermusch jtattermusch merged commit a28d67f into grpc:master Feb 13, 2020
@jtattermusch
Copy link
Copy Markdown
Contributor Author

@srini100 grpc.io will stay the same in the sense that I will replace occurrences of the curlable link with a token that will be rendered directly into the page.
See PR grpc/grpc.io#79 that does exactly that.

@lock lock bot locked as resolved and limited conversation to collaborators May 20, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

lang/all wrapped languages release notes: no Indicates if PR should not be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants