On 22.10.2013, at 10:02, Daniel Lindsley <
dan...@toastdriven.com> wrote:
> Sorry for the delay, I've been consumed by the Django Dash & the WSGI Wrestle. Wish I could say I was in love with the idea, but I'm not impressed with that PR for a couple reasons.
>
> 1. It still seems like some existing installs that override behavior *will* break. There are a non-trival number (think: hundreds) of these. If this PR passes the built-in tests, maybe it's OK & I'm wrong, but we need to verify this.
> 2. Zero tests despite tons of new behavior & changes. This alone is enough to not ship it.
> 3. Several spelling errors & typos, not to mention not matching the existing style.
> 4. No documentation on the changes or how to use them.
>
> IMO, we *do* have to support the new-style CBVs (much as I dislike them). But I feel like that should be an alternate module that we ship alongside (either with something like this becoming the main ``views.py`` & we move the existing module to ``legacy_views.py`` or vice versa).
>
> Further, what we ship absolutely needs docs & tests. Too many people lean on it to ship something that half works just because there's social pressure for it. And a migration guide for the existing install base needs to be present if we're actually ever going to deprecate the original views. I'm fine with also establishing a deprecation cycle for the old views at the same time (say 2.2 they're deprecated & 2.4 they're out or something, whatever we think we can support).
>
> Sorry to be the bearer of bad news, but there are literally thousands of sites that depend on the these views & we need to support them the best we can.
Actually I don’t think this is bad news, just a reminder that we need to be careful about revamping APIs — especially when it comes to the CBV API.
What if — as a compromise — use the name “SearchFormView” for the new CBV based view? That would fit into the naming convention of CBVs and would allow us to keep only one haystack.views module. I’d rather prevent having a “newviews” module or whatever as it could require changing import twice.