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

RFC: v4 package name #4710

Closed
martinbonnin opened this issue Feb 27, 2023 · 5 comments
Closed

RFC: v4 package name #4710

martinbonnin opened this issue Feb 27, 2023 · 5 comments
Labels
📜 Feedback Wanted This feature/API needs more use cases and details before it can be implemented.

Comments

@martinbonnin
Copy link
Contributor

Question

As we're starting to think about 4.0, there's a question what to do with the current package name (com.apollographql.apollo3).

For some background, we changed it according to https://jakewharton.com/java-interoperability-policy-for-major-version-updates/ when going from 2.x to 3.x in order to allow having both versions in parallel.

But the 3.x -> 4.x transition is going to be a lot more compatible than the 2.x -> 3.x one and changing all the package names is not the funniest thing in the world. That raises the question whether it's worth the hassle of going through yet another package name change. 4.x will remove some deprecated symbols so there's the risk that older binaries will crash with NoSuchMethodError but maybe that's an acceptable risk to take if that saves the vast majority the hassle of changing the package name, Maven group id and Gradle plugin id everywhere?

And if we decide to change the package name, maybe it's worth going for something that's less verbose and more future proof like or com.apollographql.apollo or just apollographql?

I wish we could do polls in GitHub issues but doesn't look like it's the case so here's a poor man's poll. React to this issue with your favorite emoji (there's no other meaning to them than just the line they're matching with..). Or feel free to comment below!

  • ❤️ keep com.apollographql.apollo3
  • 👍 change to com.apollographql.apollo4
  • 🚀 change to com.apollographql.apollo
  • 🎉 change to apollographql
  • 👀 other (comment below)
@martinbonnin martinbonnin pinned this issue Feb 27, 2023
@martinbonnin martinbonnin changed the title RFC: package name for 4.0 RFC: v4 package name Feb 28, 2023
@martinbonnin martinbonnin added 📜 Feedback Wanted This feature/API needs more use cases and details before it can be implemented. and removed ❓ Type: Question labels Feb 28, 2023
@calvincestari
Copy link
Member

Is the 'chore' of this work mostly for our team or is there pain for the end-user too?

@martinbonnin
Copy link
Contributor Author

martinbonnin commented Mar 6, 2023

@calvincestari It's mostly the same amount of work except there are a lot less maintainers than there are users 😅 . So if we were to minimize the global amount of energy needed to do the change, ❤️ (no change) is the best option. Only concern is in the long term it's weird to have this "3" lying around and it might create some confusion.

@StylianosGakis
Copy link
Contributor

I kinda like the apollographql approach, which is very similar to what okio or okhttp does with the super simple namespace.
This does also give the potential room for growth to apollographql5 when that time comes if there is such a need for a non-backwards compat change. Again, the same way that okhttp3 exists.
So I wouldn't hate seeing it here too, it's not like com.apollographql.apollo gives any more context that we would be missing out on otherwise.
Just my opinion 😊

@BoD
Copy link
Contributor

BoD commented May 16, 2023

Closing this now as the first alpha of 4.0.0 is about to be released: we are keeping the com.apollographql.apollo3 package name to ease the migration to this version.

@BoD BoD closed this as completed May 16, 2023
@martinbonnin martinbonnin unpinned this issue Jun 5, 2023
@martinbonnin martinbonnin pinned this issue Nov 28, 2023
@martinbonnin
Copy link
Contributor Author

martinbonnin commented Nov 28, 2023

Additional data point: transitive usages of Apollo Kotlin in maven central artifacts

It's ~40 but some of them are internal usages and others are grouped of artifacts so I would say ~10 transitive usages that will break if an app tries to update to v4 before the SDK had a chance to (or updates the SDK without updating itself).

As a comparison, guava has 35946 transitive usages so I think/hope we're fine to keep the package name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📜 Feedback Wanted This feature/API needs more use cases and details before it can be implemented.
Projects
None yet
Development

No branches or pull requests

4 participants