Hi All,
tldr: I think we should keep django.core.urlresolvers forever, or at least much much longer. Moving things to django.core.urls makes sense; removing the one line import shim from django.core.urlresolvers doesn't make sense to me.
General thoughts about compatibility, using this situation an example:
I think that if it's not broken, we should avoid breaking it. :) Some features are buggy or problematic or have bad api design and should be deprecated and removed. This is a simple rename so it only requires one file with one line of code (an import statement) to maintain full backwards compatibility here. Maybe we need also need a little doc stub saying that django.core.urlresolvers was renamed to django.core.urls and the new location is preferred. It seems to me when there's almost zero maintenance burden to not removing something, we shouldn't remove it, especially when it's an established and core api.
We have a stable api promise[1], and we should stick to it. "If, for some reason, an API declared stable must be removed or replaced, it will be declared deprecated but will remain in the API for at least two feature releases". I don't see this as a "must" situation.
There's enough changes to undocumented api's already happening that it would be great if the documented ones didn't change as much.
I hard code most of my urls, so it's only 41 lines of my code across 7 projects of mine that would need to eventually get changed. Sure, it's a simple find and replace, but it's one more thing that almost every django project maintainer will need to eventually do.
Or, maybe I'm the the only one who thinks we deprecate and remove things too often. I feel like I ask for backwards compatibility a lot, even though I haven't been helping out with django as much as I used to.
Again, there's nothing specific about this case, there are plenty of other changes that I wish I noticed and spoke up about earlier: (assignment_tag, patterns(), django.conf.urls.defaults, generic.simple, etc).
And to be clear, some deprecations (like removing allow_tags) are really, really good. :)
Thanks,
Collin