Skip to content

Conversation

@graingert
Copy link
Contributor

No description provided.

@graingert
Copy link
Contributor Author

Like #43 but I ran the tests.

@f2prateek
Copy link
Contributor

Is there any way we can give users the option of both segment and analytics? It'd be nice not to have to make a breaking change.

@graingert
Copy link
Contributor Author

Yes, look at the magic I used in sqlalchemy-redshift when renaming from redshift-sqlalchemy:

https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/blob/master/redshift_sqlalchemy/__init__.py

@f2prateek
Copy link
Contributor

That's neat! Will this interfere with other packages that are named analytics?

@graingert
Copy link
Contributor Author

Yes. That's why you should get rid of it after a few versions

On 4 Nov 2016 08:48, "Prateek Srivastava" notifications@github.com wrote:

That's neat! Will this interfere with other packages that are named
analytics?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#82 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZQTD-OF9IZFUrzXVuKyO-fXQQfHVWKks5q6vFFgaJpZM4Jc5CZ
.

@f2prateek
Copy link
Contributor

I see, it's not great that we'll have to remove it eventually.

I'd love to to come up with a long term solution where people could use analytics as the package by default, but override and use it as segment if the default analytics is problematic. Is that possible?

@graingert
Copy link
Contributor Author

lets say I hand the package segment to you guys. Then you maintain that as is going forward.

You can then depend on it from analytics-python and put a module like https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/blob/master/redshift_sqlalchemy/__init__.py in it.

@graingert
Copy link
Contributor Author

this way anyone using pip install analytics-python can still use analytics, and anyone that don't want the analytics package in their site_packages can just pip install segment

@jordanambra
Copy link

Any update on this? Like @graingert said above, you can just push a final notice to the analytics-python package that segment is the new name for the package and the import, then stop maintaining that pypi package.

Nobody will be very concerned that you would be deprecating the old name. Just update your docs and it's fine.

@f2prateek
Copy link
Contributor

For the time being, there are no plans to deprecate the current name - unfortunately, there are absolutely customers who will notice such a breaking change.

@f2prateek f2prateek closed this Oct 31, 2017
@f2prateek
Copy link
Contributor

Also to add, as I mentioned previously in #82 (comment); if there's a solution to continue to use analytics as a default but provide a way for customers to use segment if needed (or other way around event) and does not require having to maintain two versions of the library in parallel, we would be open to that as well.

@jordanambra
Copy link

Your customers who would notice would have updated documentation right in front of them next time they need to update.

What about the rest of us customers who have to resort to hacks to try to implement your library because of the naming conflict? I'm on a fork because I can't use this library directly due to the extremely common name.

@f2prateek
Copy link
Contributor

f2prateek commented Oct 31, 2017

If you can suggest a solution with the requirements I mentioned in #82 (comment), we'd be happy to consider it.

Making breaking API changes (even with updated docs) or maintaining two versions of the library are not realistic at the moment. I agree it's a downside for new customers who run into this issue, but we have existing customers to think about too.

@graingert
Copy link
Contributor Author

graingert commented Oct 31, 2017 via email

@jordanambra
Copy link

It's not really possible to release them like that because the name of the directory inside is what determines the module name to import.

It's weird to me that across all of the Segment SDKs, they're all named Analytics or some similar variation of it instead of Segment. That's not normal in any of the languages you guys have an SDK for, and ends up being confusing.

@f2prateek
Copy link
Contributor

You don't need to sign up for segment to use the client side libraries, they can be used with the embedded tools directly. Hence they were named more generically "analytics", though I can see why it makes less sense for the server side libraries.

It's also not really a problem in most other languages, most others are under com.segment.analytics or something similar. There are other libraries that are examples of this as well - https://github.com/orta/ARAnalytics and https://github.com/jkrall/analytical are two examples that come to my mind.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants