Skip to content
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

Add a minimal proxy package to route grpc to grpcio #21531

Closed
wants to merge 1 commit into from

Conversation

lidizheng
Copy link
Contributor

Adding a package that takes the same version of grpcio as dependency. It works as a proxy to install our official gRPC Python package. So, for people who typed grpc accidentally, now they should get grpcio installed properly.

Let's see if our infra are happy first...

@lidizheng lidizheng added kind/enhancement lang/Python release notes: yes Indicates if PR needs to be in release notes labels Dec 19, 2019
@mehrdada
Copy link
Member

mehrdada commented Dec 19, 2019

Why not do the opposite (make grpc official and grpcio depend on it). This can be achieved by putting up one last version of grpcio that depends on the latest grpc and publish future packages under grpc. Should not break anyone using the old versions. Anyone explicitly depending on an old version still uses the appropriate prefix and anyone deliberately depending on a new version uses the grpc prefix, and if they don't care about the version they'll get the proper one anyway. The weird package name of grpcio eventually fades away in history.

[I'm assuming somehow you took over grpc]

@lidizheng
Copy link
Contributor Author

@mehrdada Personally, I would like to keep grpcio official, so:

  1. We won't surprise our users about this change, no need to think about grpc or grpcio;
  2. Not breaking anyone, Hyrum's Law.

WDYT @gnossen

@gnossen
Copy link
Contributor

gnossen commented Dec 19, 2019

I agree with @mehrdada on this one. It would be great if no one had to use the word "grpcio" ever again. But @lidizheng has a point about Hyrum's law. It's possible that someone is explicitly depending on our current package name. I propose that we make grpcio the proxy and continue releasing in lockstep for a year. We'll emit a DeprecationWarning for users who continue using grpcio. We'll monitor the download numbers to make sure that usage of the old package has tapered off. Then, if the numbers look good, we'll upload a final version of grpcio that has an even more dire warning. Something along the lines of "If you're seeing this, you're not getting security updates."

I'll outline this in a gRFC so we can get community feedback on it.

@mehrdada
Copy link
Member

mehrdada commented Dec 20, 2019

@lidizheng @gnossen I mean, a sure way to not disrupt the user is to never improve anything ever, so I don't really buy that argument :) I believe grpc is a much better and more trustworthy package name than grpcio. For now, how about getting all grpc-* packages corresponding to grpcio-* (although I wish there was just one grpc-protobuf package that would depend oninclude on grpc, protobuf and status, reflection, with the notable exception of tools but whatever).

I think @gnossen's solution is excellent! If user is currently pinning to grpcio==xxx: won't be disrupted, unless they want to upgrade to grpcio==yyy, which must happen on a manual action anyway, at which point they see the deprecation warning. Users who don't pin will be just fine.

@stale
Copy link

stale bot commented May 6, 2020

This issue/PR has been automatically marked as stale because it has not had any update (including commits, comments, labels, milestones, etc) for 30 days. It will be closed automatically if no further update occurs in 7 day. Thank you for your contributions!

@lidizheng
Copy link
Contributor Author

Yield to #23094

@lidizheng lidizheng closed this May 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants