You are right, I should have tried out the trunk much earlier.  And I
agree that Python is a language for consenting adults (ad pretty much
everything you said) so I won't hash it out.  I went outside the
interface, and now I have to deal with it.

I think this came about because I really never communicated the "field
based save" paradigm (discussed in my previous response) that I am
trying to implement in an effective way.  I did mention it in bug
posts, but the developer response always focused on the details of the
"bug" I was reporting, and never on the paradigm.  Perhaps i didn't
describe the paradigm well enough.   For example, take a look at
http://code.djangoproject.com/ticket/12337, which relates to me trying
to change exclude dynamically.  In that bug I did try to describe the
field-based save paradigm I was trying to implement, but I didn't get
anywhere.  Perhaps I was to focused on the details of the "bug", and
instead I should create a more general ticket that discusses the
paradigm I am trying to implement?   It just hasn't seemed like I've
gotten any sort of acknowledgement that this paradigm is useful.  I
don't know if that's because I haven't explained it well, or I haven't
focused on it enough, or it's just too complex for folks to think
about, or if everyone is just busy.  No doubt some combination.

Would you suggest I create a bug ticket that describes this "field
based save" paradigm and asks if there is an interface we could
develop to formalize it?  I don't know exactly what that interface
would be yet, so I feel like it would be somewhat premature for me to
suggest the actual interface without some acceptance that the paradigm
is a good one, but if folks think the paradigm is a good one, I would
be happy to work on the interface.

Thanks for your comments.

Margie



On Jul 13, 6:46 am, Russell Keith-Magee <russ...@keith-magee.com>
wrote:
> On Tue, Jul 13, 2010 at 5:10 PM, Margie <margierogin...@gmail.com> wrote:
> > Hi developers,
>
> > I would suggest considering making this new model validation code path
> > optional.  IE, give users a way to stay with the old form validation.
> > Or better yet, keep the idea of model validation, but make it more
> > transparent by not actually saving the ModelForm to the instance.
> > It's hard for me to believe that no other developers have encountered
> > this same problem (the problem of having a ModelForm saved at a point
> > in the code where you have no control).   But my app may very likely
> > present more dynamic and sophisticated functionality, used in a
> > heavily multiuser environment, than many apps that are developed, so
> > perhaps I am the only one that will have an issue with this.
>
> Given the remainder of your message, this request is likely to get
> lost. I'd suggest raising this as a separate thread, wherein you just
> describe the specific use case and your proposed solution.
>
> > In any case, I hope this nail doesn't come across poorly.  I respect
> > the Django developers immensly, but I just want to go on record by
> > lettting you know that you have at least one user that has been caused
> > a lot of pain by this change.
>
> I don't want to appear rude, but I'm not sure what response you're looking 
> for.
>
> I'm not insensitive to the fact that you have code that requires
> refactoring as a result of the upgrade from 1.1 to 1.2. However, by
> your own admission, this was a problem of your own making. We have a
> documented interface. You're not using the documented interface. And
> as a result, code broke when you upgraded.
>
> Python is a language for "consenting adults" -- you have the liberty
> to modify the internals of anything you can see if you so wish.
> There's no such thing as a truly 'private' or inaccessible internal.
> However, just because you *can* tinker with the internals doesn't mean
> that it's good engineering practice to do so, or that it's our fault
> when that tinkering ends badly.
>
> > I also hope that you will accept me posting this on this "developers"
> > board.  I think it is important that you get feedback from someone who
> > is using django heavily, in behalf of a large corporation.  I find
> > that when I post tickets, if there is any hint of me doing something
> > out of the ordinary, that my ticket is always closed with the comment
> > that "I shouldn't be doing that".    I understand that of course you
> > cannot accommodate everyone, and that you are working as volunteers
> > and I totally respect that.  But there is little ability for someone
> > like me - basically one of your power users - to give feedback in any
> > sort of useful forum.  So I hope you can spend a few moments thinking
> > about what it feels like to be in my shoes.
>
> Without a history of specific tickets to reference, it's difficult to
> say what has happened with your tickets in the past. All I can say is
> that in general terms, the way in which a ticket is phrased can make a
> big difference to the way it is handled.
>
> In this specific case, you claimed there was a backwards
> incompatibility. That's a pretty big stick to shake -- we take
> backwards compatibility seriously -- so when it was discovered that
> you were using a private API, you were shown that it wasn't a
> backwards incompatibility, and the ticket was closed.
>
> By contrast, if your ticket had asked for a specific interface to be
> formalized or exposed, including the reasons why that interface needed
> to be formalized, your ticket wouldn't have been shot down
> immediately. "X doesn't work" is a bug claim that is easy to refute.
> "It should be possible to do X" is a feature request that at least
> requires consideration.
>
> Of course, a feature request can still be shot down; that's why the
> very best way to propose a feature is to start with a discussion on
> Django-developers, so you get the eyes of the entire development
> community, and you can have an active discussion with that community.
>
> Even then, you may find that some features get rejected. Django can't
> be all things to all people. If you really do have extreme use cases,
> and your proposal is especially invasive or complex, you may find that
> we say "no" in the interests of keeping things simple for the 90% of
> users that don't have extreme use cases.
>
> And finally -- sometimes the rejection will be along the lines of
> "well, it might be a nice idea, but it's a complex issue and we're not
> intending to look that any time soon". In that case, you will often
> find that offering to help out (both with your specific itch, and with
> other related tickets) will grease the wheels immensely.
>
> > As django moves forward, I think it might be useful to find a way to
> > partner with corporate developers such that you get feedback like this
> > at an earlier point.  While I try to keep an eye out for where things
> > are going with django, this change and it's impact on me just was not
> > at all clear.
>
> Django 1.2 was in development for 9 months. The feature you're
> describing was committed 5 months before the final release, and was in
> public development for *years* prior to that. We made several calls
> for public comment and feedback prior to the patch being merged in, as
> well as during the 5 months that the ticket was in trunk, including a
> full alpha, beta and RC release, and weekly calls for testing on our
> blog during the final release phase.
>
> What exactly do you think we should have done differently?
>
> Yours,
> Russ Magee %-)

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

Reply via email to