[Python-Dev] Status of json (simplejson) in cpython

Sandro Tosi sandro.tosi at gmail.com
Thu Apr 14 21:22:27 CEST 2011

Hi all,
it all started with issue10019.

The version we have in cpython of json is simplejson 2.0.9 highly
patched (either because it was converted to py3k, and because of the
normal flow of issues/bugfixes) while upstream have already released
2.1.13 .

Their 2 roads had diverged a lot, and since this blocks any further
update of cpython's json from upstream, I'd like to close this gap.

This isn't exactly an easy task, and this email is more about a
brainstorming on the ways we have to achieve the goal: being able to
upgrade json to 2.1.13.

Luckily, upstream is receptive for patches, so part of the job is to
forward patches written for cpython not already in the upstream code.

But how am I going to do this? let's do a brain-dump:

- the history goes back at changeset f686aced02a3 (May 2009, wow) when
2.0.9 was merged on trunk
- I can navigate from that CS up to tip, and examine the diffs and see
if they apply to 2.1.3 and prepare a set of patches to be forwarded
- part of those diffs is about py3k conversion, that probably needs to
be extended to other part of the upstream code not currently in
cpython. For those "new" code parts, do you have some guides about
porting a project to py3k? it would be my first time and other than
building it and running it with python3 i don't know what to do :)
- once (and if :) I reach the point where I've all the relevant
patches applied on 2.1.3 what's the next step?
-- take 2.1.3 + patches, copy it on Lib/json + test + Modules and see
what breaks?
-- what about the doc? (uh luckily I just noticed it's already in the
upstream repo, so another thing to sync)
- what are we going to do in the long run? how can we assure we'll be
having a healthy collaboration with upsteam? f.e. in case a bug is
reported (and later on fixed) in cpython? is there a policy for
projects present in cpython and also maintained elsewhere?

At the end: do you have some suggestions that might this task be
successful? advice on the steps above, tips about the merge, something
like this.

Thanks a lot for your time,
Sandro Tosi (aka morph, morpheus, matrixhasu)
My website: http://matrixhasu.altervista.org/
Me at Debian: http://wiki.debian.org/SandroTosi

More information about the Python-Dev mailing list