[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Binary naming for Django Related Packages



On Monday, November 28, 2016 05:50:24 PM Piotr Ożarowski wrote:
> [Scott Kitterman, 2016-11-28]
> 
> > I've recently done some Django related packaging for the first time and
> > noticed that we have organically (as far as I can tell) grown a slightly
> > different naming convention for such packages.  Instead of python*-foo, we
> > use python*-django-foo.
> > 
> > I think this is a reasonable approach and followed it in the new packages
> > I've recently done.
> > 
> > I decided to check and see how common the approach is.  Here's what I
> > found in Sid:
> > 
> > Start with django: 7
> > Start w/django, not transitional: 2
> > Start with django3: 0
> > 
> > Start with python-django (excluding -doc): 136
> > Start with python3-django: 84
> > 
> > I think it would make sense to add this to the Python policy so how we're
> > doing it is documented.  I am attaching a proposed diff.  I made it a
> > should because there are two non-DPMT packages that don't follow this
> > rule and I think it's late in the cycle to be adding to must policy
> > requirements.
> > 
> > Please let me know what you think.  I'm open to suggestions on wording. 
> > I'd like to get this done in the next week and do a python-defaults
> > upload with this and a few minor (non-policy) changes that are pending.
> 
> -1 from me
> 
> 
> If Django packages have no use outside Django¹, they should be moved out²
> of public dist-packages IMO. If they are useful, "-django" part is
> misleading.
> 
> [¹] dash suggest they're not in django namespace, otherwise binary
>     package name would be python3-django.foo
>     (or python3-django.ext.foo, like in flask?)
> [²] sys.path.append('/usr/lib/python3/django-packages/') in
>     django/__init__.py if django import always prepends other imports
>     (python3-django- namespace would be tolerable then, I guess)

Some, but not all of them, are shipped as django_foo, so for those, I think 
python*-django-foo is actually correct.  

>From a django perspective, it makes a difference.  As an example, django-
python-hstore (which I just packaged with python*-django-hstore binaries) is 
django_hstore.  When added to Django INSTALLED_APPS, it's added as 
django_hstore.  The django. namespace is for things shipped with Django, not 
third-party packages.

Asking upstreams to rename to use django_ where they don't will complicate 
things for upgrades, so I don't think that's a great idea.

I'm not one of the python-django uploaders, so we'd need their feedback on 
[2].  I think something like that is a reasonable compromise if they are 
willing to support it.

Thanks,

Scott K


Reply to: