GaretJax / lancet

Command line utility to streamline various development activities.
MIT License
9 stars 5 forks source link

Please reconsider the project name #24

Open jlstevens opened 9 years ago

jlstevens commented 9 years ago

Hi!

Please consider the problems caused by calling your package 'lancet' when an older and more mature python package called Lancet already exists: Lancet Website and GitHub repository.

This wouldn't be an issue if your library weren't also written in Python with an entry on PyPI. As it is, there will be a package clash for anyone trying to import:

import lancet

The repository ioam/lancet is part of the IOAM educational organization: we are computational neuroscientists using the Topographica neural simulator. We use the Lancet package to launch our simulations and we would all be very grateful if we can avoid a name clash on PyPI.

I fully realize this is our own fault for not registering a PyPI package called "lancet" earlier on! I made the incorrect assumption that having an older GitHub repository, an official website as well as a paper publication would discourage anyone from picking the same name.

Further, I realize there is no way I can compel you to change your project in any way. That said, I do hope you will listen as I can make a fairly strong argument that both our projects would benefit by avoiding confusion.

Firstly, not only does Lancet on IOAM have an older GitHub repository (with more commits and contributors), there is a published paper, specifically about Lancet. It was published as part of a special research topic talking about the use of Python tools in Neuroscience (Python in Neuroscience II):

Frontiers in Neuroinformatics (Dec 30, 2013): An automated and reproducible workflow for running and analyzing neural simulations using Lancet and IPython Notebook

There are also a number of research papers already published using Lancet; it is used by other researchers as well as undergraduate and Masters students. Here is one paper published using Lancet:

Journal of Neuroscience (Oct 2, 2013): Mechanisms for Stable, Robust, and Adaptive Development of Orientation Maps in the Primary Visual Cortex

And here is another paper that used Lancet to launch simulations in the field of computer architecture:

HPCA 2014: TSO-CC: Consistency directed cache coherence for TSO

Next, I should point out that the Lancet GitHub repository on IOAM is over two years older, has more commits and also more contributors:

ioam/lancet: Sep 21, 2012 [247 commits - 5 contributors] GaretJax/lancet: Nov 18, 2014 [168 commits - 3 contributors]

Thirdly, Lancet is about to get a lot of exposure which will then prevent people from using your work! I expect a lot of people to be installing it soon (which is why I am working on a PyPI and conda release). Everyone who installs Lancet from IOAM won't be able to install your project without encountering installation problems.

In particular, I will be giving a talk both at the SciPy and EuroScipy this summer and I will be encouraging people to install the IOAM version of Lancet. I am also presenting Lancet at a talk in September at the Bernstein conference and I am planning to give tutorials about using Lancet for scientific research at future SciPy conferences.

Lastly, I am the author of HoloViews which is becoming popular (and growing!). When people use pip install 'holoviews[extras]' they automatically install additional dependencies: I am now considering adding ioam/lancet to that list in order to avoid people getting confused if they try pip install lancet (the Lancet package is designed to complement HoloViews).

Having a name clash will only cause trouble for the rest of the Python community and will harm both our projects. Our work is free and open source and we are all trying to contribute something useful to the community. This is why it would be good if our two projects play nicely with each other without confusing people. I doubt either of us want people filing bugs in your project about my code and vice versa! :-)

So please do consider renaming your project - or at minimum freeing up the registered PyPI name for use by the IOAM organization! I wish to instruct people to use pip install lancet at SciPy, otherwise I will need to work around this issue. This will cause problems for me, everyone attending the talks and then also you because people won't also be able to use your project! No one benefits from such a situation. If you are willing to transfer the PyPI package name 'lancet' to the IOAM organization then that would probably be enough...

On PyPI, you could register garetjax-lancetor maybe lancet-utility for yourself so you can keep your existing project name. Sadly, this won't help resolve the import clash...

I understand that this is difficult coming up with a good name for a project that is unique - it is important to have a unique name for the Python community and good for you if you want people to use your software. I am willing to assist you in any way to help resolve this - I am certain that having a distinct name will help your project become successful and gain users.

If we don't resolve this now, it will causes problems for both projects down the line. Once your project grows, you don't want to inconvenience your users with a name change at a later date, once we really start experiencing the problems I have described.

Finally, I am happy to help promote your project in various ways if you consider either renaming your package or freeing up the 'lancet' name of PyPI. For a start, I am happy to redirect people looking for your command-line tools from our README as well as from our main website (hence directing traffic to your project!). If you are kind enough to rename, I would also be happy to mention your project favorably at the start of my upcoming SciPy talks. This will help your project grow!

I am sure we can come to an amicable arrangement that it good for both projects and that will reduce confusion for everyone.

Thank you.

jmelett commented 9 years ago

Hi @jlstevens, as an avid user of this app, why not rename your app to lancet-ioam or ioam-lancet? This way it'd be clear for everyone that it's the official lancet backed by IOAM.

jlstevens commented 9 years ago

I would consider something like this if both project agree to do the same thing. I.e lancet-ioam and lancet-garetjax. As I mentioned, the IOAM lancet repository is older, has more commits and more contributors. Even then, this won't resolve the import issue.

jmelett commented 9 years ago

How would it help if both change the project name? Reduce confusion for your users, but add for the current users of this tool?

I agree that it's older, has more contributors and commits - but what exactly are you measuring with that? It's the same as saying 247 commits over ~33 months doesn't look like a very active project.

jlstevens commented 9 years ago

That is because ioam/lancet works very well and is mature. It is used all the time by our users without problem - it has been used to launch many thousands of simulations. I agree it has appeared to be relatively inactive recently but that is about to change significantly.

I assure you that asking you to rename the project is not something I want to do! I also realize it is my fault for not registering the name on PyPI earlier. All I will say in my defense is that, a Google search for 'python lancet' would have demonstrated that this name was already in use, as a Python package (even if it wasn't on PyPI). When I use use the search string above in Google, ioam/lancet corresponds to the top two matches.

Yes the name was free on PyPI but I don't think it would have been hard to discover that another Python project was already using this name. I don't want this discussion to devolve into an argument and I hope we can keep this discussion civilized and that we can find a good compromise!

jmelett commented 9 years ago

Same is GaretJax/lancet - stable, mature, used by quite a few users (~3k downloads last month on PyPi, unfortunately we can't compare those statistics).

Anyway, this is in the end the decision of the author and I was just trying to understand if there is a real reason (besides "older, more mature, more contributors").

jlstevens commented 9 years ago

I think I'll wait to let the devs have their say before we continue on with this discussion.

GaretJax commented 9 years ago

Hi @jlstevens,

Thanks for bringing up the issue about the naming of our packages.

I believe that our audiences are different enough that the clashing namespace will not be an issue. Also, (my) lancet is a command line tool, not a library or something you'd want to import into your projects; so again I don't see having the same namespace as an issue.

I would have considered freeing up the name on PyPI, but as you mentioned, you could consider doing the same if and only if I do:

I would consider something like this if both project agree to do the same thing. I.e lancet-ioam and lancet-garetjax.

If we were to do that, your (new) users would have to install lancet-ioam (no change for them!), while my users would have to switch from lancet to lancet-garetjax. I don't really see an advantage in doing so, sorry.

Your motivation about contributors/commits is, in my view, not significant. As @jmelett mentioned before me, the difference is very small, and if we consider the time factor, your project would appear less active than mine. Anyway, both projects are too small to conduct such an analysis (I could easily prove you wrong by tripling my contributor count before the end of the weekend, but let's childish stuff apart).

To summarize my position: everything boils down to the lancet name on PyPI. Changing that would be an inconvenience for my users while bringing no tangible advantages to yours.

P.S.: I took a look at holoviews though, and it seems really interesting!

jlstevens commented 9 years ago

@GaretJax I agree that our audiences are likely to be quite different and that the issue of an import clash is somewhat alleviated by your use of a command line interface.

In the end, I will have to register lancet-ioam on PyPI but I will also add Lancet to one of the HoloViews install options. This should help give researchers a good platform for doing reproducible science in the IPython Notebook and get Lancet in the hands of the intended audience.

There isn't much else I can do at this point and this has taught me not to hesitate before registering a name on PyPI. From your perspective, I hope it was worth making you aware of another Python package of the same name. Feel free to close this issue now if you wish.

GaretJax commented 9 years ago

Hi @jlstevens, thanks for understanding. Did you already register the name on PyPI? I'll add a link to the README pointing users looking for lancet-ioam to your project page.

I will also leave this issue open until I did so. If there are other things I can do to alleviate the issue, please let me know.