So in the process of removing simplejson I realized it's not strictly true that we no longer need to bundle it: if someone uses 2.6+ but has a 'json' module with a different interface sitting in front of the system json on sys.path, then Django currently falls back to bundled simplejson. I don't know how common that is, most alternate json modules appear pretty inactive but you never know.
Also, whether or not that is common, it turns out there has been a bug that looks like it was added last October that means that no one has been using the system json module at all. Best, Alex Ogier On Thu, Mar 29, 2012 at 8:10 PM, Alex Ogier <[email protected]> wrote: > There's still a ~20x performance gain over 2.6's stdlib by using > simplejson even without C-extensions according to > http://bugs.python.org/issue6013. Depending on how heavily people > depend on the module, removing simplejson may be a "backwards > incompatibility" in the sense that performance may nosedive when they > upgrade to Django 1.6. Django has always considered system-simplejson >> system-json > vendored-simplejson. This means that in 2.6+ no one > should be using the vendored simplejson, but the shim is still > valuable for people who use their system's simplejson (possibly with C > extensions) whenever available. > > Therefore I am in favor of option #1, unless the shim is so trivial as > to warrant asking any developers who use it to rewrite it themselves. > > Best, > Alex Ogier > > On Thu, Mar 29, 2012 at 7:43 PM, Russell Keith-Magee > <[email protected]> wrote: >> >> Option 2 looks best to me. There's no reason for us to ship JSON any more, >> but we should still guide people through the transition process. >> >> Yours, >> Russ Magee %-) >> >> On 30/03/2012, at 7:07 AM, Łukasz Rekucki wrote: >> >>> Alex's comment on ticket #18013 reminded me of this. Is there any >>> reason not to get rid of the Django's version of simplejson now that >>> Python 2.6 always has the json module? >>> >>> I see three options here: >>> >>> 1) Remove Django's copy and only leave the simplejson/json fallback. >>> 2) Above, plus deprecate "django.utils.simplejson" in 1.5 and remove it 1.6 >>> 3) Replace the code with anyjson, so it does something useful: >>> http://pypi.python.org/pypi/anyjson >>> >>> What do you think ? >>> >>> -- >>> Łukasz Rekucki >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Django developers" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/django-developers?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django developers" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/django-developers?hl=en. >> -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
