On Wed, Aug 25, 2010 at 4:00 PM, Waldemar Kornewald
<wkornew...@gmail.com> wrote:
> On Wed, Aug 25, 2010 at 2:04 AM, Russell Keith-Magee
> <russ...@keith-magee.com> wrote:
>> Firstly -- Nobody has ever committed to getting Alex's query-refactor
>> branch merged in for Django 1.3. In fact, I'm on record in at least
>> one forum (DC.eu) saying "Almost certainly not before 1.4". As Alex
>> described in his end of GSoC announcement, there are still some loose
>> ends that need to be resolved, and the timeframe for the 1.3 release
>> doesn't provide enough time to get this stuff merged in time for a
>> feature freeze.
>
> The only big issue I can see is AutoField.

It's certainly the biggest issue, but it's not the only issue.

You're also ignoring the other side of the equation. Fixing the
problems in the query-refactor branch will take a certain amount of
time. There are many other ideas competing for time for the 1.3
release. Something has to give, and given the general priorities for
the 1.3 release (i.e., addressing the bugs and minor features that
didn't get enough attention during the 1.1 and 1.2 release cycles),
bigger features with outstanding design issues are taking second
priority for me.

> It doesn't really matter if
> the first release of Django has ListField support for PostgreSQL. What
> matters is that nonrel backends have ListField. Even EmbeddedDocument
> is not a MUST for the first release.

Says who? Non-relational datastores store data in a fundamentally
different way to relational databases. I want to know that whatever
API we provide will be rich enough to encompass commonly used (and
backend-appropriate) data modelling techniques.

> The point of the first release is
> to start the community building process, so at the time of the 1.4
> release you have enough people and enough features.

Again: Says who? I'd say the point of the *development* process is to
start the building the community. The point of the first release is to
put something in the water that can be used for some practical
purposes.

c.f., Multi-db as delivered in 1.2. It isn't perfect. However, it does
provide the tools necessary to build real systems and solve real
problems. I have a reasonable degree of confidence that the problems
that exist can be solved without fundamentally changing the API that
has been delivered.

> You can label this
> as the low-level preparation towards full nonrel support with the
> purpose of attracting backend authors for 1.4. Please don't wait until
> it's perfect and you have 100% features because (1) then people will
> have a nice ORM, but no backends, and (2) you'll be developing the ORM
> almost "blind" without real-world feedback. Fix AutoField and get this
> thing out, so people can give you real-world feedback and start
> writing backends.

I'm not waiting until it's perfect. I'm waiting until I have the
confidence that we're going to be able to meet the needs of the
various non-relational stores. MongoDB, CouchDB, GAE, and Cassandra
all have different ways of looking at the storage and retrieval
problem. I want to be confident that whatever solution we deliver, it
will be *possible* to solve represent those partitioning techniques
(or, if there is some limitation, that we know and have accepted that
limitation a-priori).

This is all a function of our backwards compatibility guarantee. Once
we publish an API, we don't change it. That means we need to get it
substantially right the first time. At the very least, we need to
understand the problems that we haven't solved, even if we haven't
actually solved them yet.

>> Secondly -- One of the reasons that this isn't going to happen for 1.4
>> is that we're not going to rush it. Aside from fixing the loose ends,
>> we need to be convinced that the changes that Alex has made are
>> sufficient to support multiple non-relational backends. So far, he's
>> got a compelling proof of concept with MongoDB; however, I need to see
>> similar proofs of concept for other stores (CouchDB, Cassandra and GAE
>> would be my ideal list) before I'm convinced that the proposed changes
>> are sufficient.
>
> As Alex' MongoDB backend demonstrates, all nonrel backends can
> retrieve the Query's filters.

No - Alex's MongoDB backend demonstrates that the basic query
requirements of MongoDB can be met.

> With this they can fetch or count the
> matching entities. What kind of problems do you expect with other
> backends?

I don't know. That's why I want a proof of concept. One rarely expects
unexpected problems :-)

> I can port the GAE backend pretty quickly if this is a prerequisite to
> getting it into 1.3.

As I said in my last mail, getting this into 1.3 is *highly* unlikely.
I have limited time to volunteer to the 1.3 timeframe. I have a couple
of larger features that I want to address. These are features that I
personally see as a higher priority than non-relational datastore
support. I also have a backlog of bugs and minor features that I want
to address.

Unless I magically find myself with a lot of free time in the next
month or two, I wouldn't count on inclusion in 1.3.

> But I really don't see why yet another backend
> (after the GAE backend port) would make you more convinced. The ORM
> merely needs to provide the filters and the backend merely needs to
> provide the result rows. All of this already works.

I'm glad that you're so confident about that. I'm not. You -- and the
rest of the non-relational community, with expertise in other data
stores -- need to prove to me that you're right.

Yours,
Russ Magee %-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to