-
Notifications
You must be signed in to change notification settings - Fork 60
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
Use python-*
naming convention for Python packages?
#795
Comments
This was why I proposed namespace packages a while back. I'm not a huge fan of prepending python to everything, but I don't want to get in the way if everybody else thinks this is a good idea. I guess that makes me -0.1? |
@ahmadia just to clarify: you seem to agree with the policy that I proposed above? I.e. the -0.1 is to prepending |
I have no problem with this as guidance of the form "If a python package On Wed, May 27, 2015 at 1:01 AM, Ondřej Čertík [email protected]
|
Yeah, I don't like it. It means we're creating our own naming convention, as opposed to sticking to some established convention (PyPI, Ubuntu, Debian, etc...) It makes it harder to discover packages. |
@ahmadia I don't remember the namespaced packages proposal, what is it? Debian convention seems to be prefix |
@ahmadia you don't like my policy and you do not like the Debian policy of prefixing everything with You can read the Debian policy here: https://www.debian.org/doc/packaging-manuals/python-policy/ch-module_packages.html, section "3.3 Module Package Names":
|
Yeah, I don't know what I want here. I had proposed that we do something like: pkgs/python/numpy.yaml Then the profile could do either python.numpy or in some other way refer to the numpy package in python. It's using the Python namespace concept as applied to the Debian naming approach. The official package name in HashStack might be python.numpy, but there should still be an easy way to refer to it as numpy. |
I see. I like this. Obviously, currently the |
I think the complexity and learning curve is higher than just doing straight-out But in the interest of the discussion I guess it'd go like this:
dependencies:
build:
- numpy # same namespace
- .blas # '.blas' means "blas", while "blas" would mean "python.blas" And in profile.yaml? packages:
python: # the namespace
python: # python.python is the Python interpreter package
numpy: # python.numpy
blas: .blas # root blas..
scipy: # python.scipy
numpy: numpy # python.numpy What I don't like is the mix of namespace and packages. So perhaps we require that everything is in exactly one namespace, and we say packages:
general:
blas:
zlib:
python:
numpy:
blas: general.blas But I'm not sold on this at all, I think I prefer |
My preferences goes something like: namespaced packages (+1), python everywhere (+0), mixed usage (-0.1). |
I really can't vote until I see another fledged-out proposals for namespaced packages than the ones I drew up; whether it can work or not depends all on the details. |
I like except:
I'd do it the other way. Regardless, this is basically how I see it working (with a few more details I hadn't imagined). Namespaces also make it much easier to refer to other people's hashstacks and allow you to use, for example, somebody's custom python build in your profile. |
Right, so your proposal is build:
- numpy # python namespace
- yaml # root namespace
- .yaml # python namespace ? And packages:
python: # the namespace
python: # python.python is the Python interpreter package
numpy: # python.numpy
blas: blas # root blas..
scipy: # python.scipy
numpy: numpy # python.numpy ? About somebody else's hashstack, I think it is more constructive to view every hashstack as a function with parameters, then you compose these together -- it's not really the same as namespaces at all IMO. But on the syntax level they probably overlap. We're onto something here but I feel it requires more consideration to get right. I think I'm -1 on namespaces until after summer at least, this needs more thinking. If there's some combination with parametrizable profiles that give tangible benefits in return for the increased learning curve that's great. If we adopt the Finally, how about instead of this whole discussion, we do something like a "recommends" feature where the combination of two packages (say, "python" and "yaml") triggers a third, potentially arcanely-named package (like "yaml-python-wrapper"). Seems to fix this particular issue from a user perspective... |
I'm fine with this, or just keeping what we have and fixing collisions as they show up for now. |
NOTE: Now that we soon support using So that makes me a lot less keen on Another namespace idea:
|
Why don't we just use |
If we do that, then your original propose of |
Nice idea... |
python/numpy.version seems fine |
Except that we agreed in hashdist/hashdist#325 to use |
@ahmadia even in Python hooks? I can make Now that |
I'm thinking like this in terms of roadmap here:
And that for now we go for And also I propose that package names should be |
So far it looks to me like we should kick namespaces down the road a bit On Wed, May 27, 2015 at 3:34 PM, Dag Sverre Seljebotn <
|
For example, the yaml package is actually a python yaml package. It should not be called
yaml
, but eitherpython-yaml
, orpyyaml
.Though, it seems to me that the best policy is:
numpy
, then the package should just be callednumpy
netcdf4
), then those should be called python-netcdf4. The same for readline / python-readline.We sort of already follow this policy. But it would be nice to write this down somewhere, before closing this issue.
What do you think?
The text was updated successfully, but these errors were encountered: