This has been briefly discussed before, but we need to form a consensus on 
whether we vendor or depend on the multipledispatch 
<https://github.com/mrocklin/multipledispatch> library for the following 
PR: https://github.com/django/django/pull/6395

The brief overview of the patch is to allow operators on different 
expressions to generate different SQL. An example:

.annotate(combined=F('cost') + F('tax')) -> SELECT .. cost + tax as 
combined ..
.annotate(combined=F('first_name') + F('last_name')) -> SELECT .. 
CONCAT(first_name, last_name) ..

As you can see, the operators are the same (+) but most (all?) SQL dialects 
don't allow you to use the + symbol for concatenation.

As for whether or not to add the dependency we can look 
to https://github.com/django/deps/blob/master/draft/0007-dependency-policy.rst 
for guidance. I'll copy the guidelines below:

   - Stable *- there aren't many releases. Seems to keep up to date with 
   Python releases but not much else.*
   - Maintained *- last release was 3 months ago, but see point above.*
   - Takes security seriously* - N/A to date*
   - Works on all the same platforms as Django does* - Yes*
   - Backwards compatible in minor releases*. - Yes*
   - Confident that point-releases of won't break Django. *- Yes.*
   
I believe multipledispatch meets all the criteria for being an acceptable 
dependency. I don't see much value in vendoring the library if we're going 
to need to remember to keep it up to date with Django releases. The 
precedent was set with pytz recently.

Does anyone have a problem with declaring multipledispatch as a dependency?

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/d46cfb10-1698-4534-8a0f-ec5d75b5226d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to