Hilarious dream-logic (was Re: [Twisted-Python] [patch] (etc)

glyph at divmod.com glyph at divmod.com
Sat May 20 00:26:42 MDT 2006


Well, I can't get to sleep, so here I go again...

On Fri, 19 May 2006 06:18:18 +0200, Andrea Arcangeli <andrea at cpushare.com> wrote:
>On Fri, May 19, 2006 at 03:15:40AM +0200, Terry Jones wrote:

>> My impression is the following: Andrea, having not followed project
>> guidelines and rules because he doesn't have the time, having not been
>> treated like a coding God for whom others will naturally rush to do the
>> mundane tasks in order to receive his patches, and being unwilling to go
>> the extra few yards to get his patches (eventually) incorporated, is now
>> using his formerly precious time to go out of his way to undermine the
>> project.

Thank you, Terry!  It's nice to have a vote of confidence from the larger community.  This is my impression exactly, and it is why I have become so rude.  I write these replies for other people's benefit (they do nothing for me but make my blood pressure go up) and I'm happy to see they've been useful to someone.

>My impression is that most of my fixes I did over the last years were
>getting merged for some time.  As far as I can tell things derailed when
>I didn't like the fact that epsilon was becoming a dependency for nevow.

Andrea, things derailed when you went from simply submitting mostly-useful fixes without tests to agressively badmouthing our developers, our quality-control process and a company (Divmod) that contributes heavily to Twisted and employs both the Twisted project lead (myself) and its most active maintainer (JP Calderone).  The epsilon thing was a coincidence of timing, and as a matter of fact, I ultimately agreed with you on that particular point.

((An aside on the point of Divmod - yes, it is where I work, and yes, I am *very* offended at the characterization of the company as a bunch of control freaks trying to destroy Twisted.  There are lots of companies that deserve scorn from the open source and free software communities, but Divmod not one of them.  Divmod is an _impeccably_ good citizen of the open source world.  We consider credibility with the technical people who make smart decisions like the use of Twisted extremely important.  So important, in fact, that we have made a number of decisions to preserve that credibility, to fold things back upstream into the community, at considerable pain and expense to ourselves.  Divmod has contributed more to Twisted than any other company at this point, period, and although I'm confident that is the right decision in the long run, we have had very few opportunities to reap any benefits from this good citizenship yet.))

Not only did you disregard and insult our quality control process, it was explicitly instituted to avoid applying patches like the callFromThread 'fix' which you insisted we apply.  From my perspective, you seem to be actively trying to sabotage Twisted.  (Your attitude certainly implies that you are.)  For all we know, all your other patches are similarly broken and there is nothing to demonstrate otherwise.  You say you have tracebacks?  Produce those tracebacks in the context of a unit test, and I would be happy to discuss them.

We're all generally open to constructive criticism - but not only did your comments not provide a realistic direction for improvement, they're not helpful even as flames because they are not based on truth.  Below are some more repetitions of the same corrections I've been offering you for the last year.  I see that you finally figured out that your callFromThread patch was buggy (after having been told a mere 5 times by 3 different people) so perhaps you will eventually figure the other stuff out and stop posting those, too.

Given that everyone I've spoken with about your posts here is under the impression that you are trying to cause trouble, maybe you could take a step back and reconsider your tone.  I am slow to anger and quick to forgive, but if you are really interested in participating in the community in a productive and useful way, you are going to have to stop posting insulting lies 3 or 4 times a day.

>I was nevow user at the time. You think it's good that next time there
>is a twisted bug you've to upgrade epsilon instead of upgrading twisted
>in the first place?  Upgrading twisted would fix the bug for _all_ apps
>and not only the apps shipped by divmod.

For those of you just tuning in, Epsilon is a Divmod utility package which includes certain things which are destined for inclusion in Twisted but which are still stabilizing, may not be a good idea, or depend on python features too recent for Twisted to use, such as Python 2.4.  In particular, Andrea is referring to the fact that it may include "hot fixes" for Twisted functionality that Divmod products will be broken without, but which has not yet made it into a public release of Twisted.

(The particular fix that Andrea was concerned might have been included in Epsilon and depended upon by Nevow was never actually necessary, and therefore not made.  Epsilon was never actually a dependency of Nevow.  Nevertheless, he continues to complain about it.)

This practice was instituted so that Divmod projects could both work with older versions of Twisted (so that Divmod products may be installed on stable distributions with system-installed Twisted such as Debian or Ubuntu) and be released before parallel versions of Twisted were ready for release, as Twisted has a larger community and a more rigorous, slower, release process.

Here is the process for including a "hot fix" in epsilon.  I am not airing my opinion about how things should work here, I am stating a fact, as I am responsible for setting this policy, and there are only three hotfixes yet made in Epsilon and they have all followed this exact procedure:

  - Bug gets fixed **in Twisted SVN HEAD**, not in Epsilon.
  - It is submitted, tested, reviewed, merged to trunk.
  - Twisted release process begins.
  - Twisted fix gets copied into Epsilon.
  - Divmod projects are released with Epsilon, including the fix.
  - Twisted is released, with the fix.

If you are interested, see the revision log here:

    http://divmod.org/trac/log/trunk/Epsilon/epsilon/hotfixes

and compare with the various Twisted revisions / commit times that these fixes were applied in.

These fixes will ALWAYS be contributed to Twisted.  They are made in Twisted FIRST.  The amount of time between the Epsilon release and the Twisted release will be kept to an absolute minimum.  It is absolutely, completely untrue that we would ever deliberately make fixes to Twisted functionality and not contribute them back to the project.

>When I noticed a combination of weirdness (to mention one more, the new
>axiom api that cannot work with real DBMS in the async way because it
>doesn't return deferreds)

Another good way to convince people that you are not deliberately trying to cause trouble is to stop bringing up unrelated disagreements.  The other things you are trying to talk about here have nothing to do with Axiom, and showcasing your ignorance in this fashion doesn't do much for your case.  But, in the hopes of bringing some useful technical insight to this thread, I will correct your misconception here yet again.

"real" RDBMSes have almost universally blocking interfaces; yet Twisted manages to make them "async" with adbapi.  A similar simple threadpooling system could easily make Axiom "real"-RDBMS friendly; in fact, there are reasons it may be desirable for some application architectures even with SQLite.  Per-thread isolation of store caches is fine; there is no reason the Store object has to be the same everywhere.

This is another thing that I hope someone will contract Divmod to do, since Divmod as such doesn't need it, but it is abstractly interesting to me.  However, as it turns out, the people using Axiom (and there are several) are mostly happy with its synchronous mode of operation and it turns out to be quite fast.  Scaling is achieved differently than with other RDBMS systems, but that is a topic too complex to cover here.

>So then I fail to see why twisted-web mailing list is on twistedmatrix
>domain if only divmod projects like nevow should be discussed. Can you
>provide a reasonable answer? I never asked cause I think I already knew
>the answer.

Nevow is the next version of *twisted*.web.woven, developed outside Twisted due to explicit community displeasure at the disparity between woven's breakneck and chaotic development pace and twisted.web's relatively sedate one.  It was initially created by Donovan Preston, the same developer who wrote Woven, who was employed by Divmod at the time.  It was done on Divmod time and for Divmod projects, because Woven was not working well enough.  It is a Twisted-based technology through and through, and only works with twisted web on purpose.

Cheetah is a template engine that can be used with multiple web servers and has nothing to do with Twisted.  If someone wants to start a Twisted/Cheetah integration project and actually release some code, maybe people wouldn't mind so much if you talked about it.  However, cheetah itself is not a "twisted web" technology, even if it's possible to use them together.  (You can run PHP or Perl as a CGI under Twisted, but postings about PHP and Perl would similarly be off-topic.)

>While I acknowledge I wasn't the best bugfix submitter (and obviously
>I'm no coding God either), I'm definitely not trying to undermine
>twisted, quite the opposite I'd like twisted to evolve and integrated
>with not-invented-here technologies, but I fail to see how it can evolve
>and integrate with cheetah or/and django in this environment.

You'll notice that certain NIH technologies get a much better reception.  For example, the recently announced sAsync <http://foss.eepatents.com/sAsync/> "competes" with Axiom, but nobody bothered Ed when he posted about it here.  I'm not going to use SQLAlchemy, I don't particularly like it: but sAsync seems like a neat idea and I'm perfectly happy to see Twisted integrating with lots and lots of different third-party libraries that I am, personally, not interested in.  In fact, we all love Ed, because he has promised to write some docs!  (Hi Ed!)

Here is an example of how to begin a release announcement.  Ed's announcement began like this:

"sAsync offers asynchronous access to the outstanding SQLAlchemy package by Michael Bayer."

Notice how it begins with a compliment?  Try that next time.

>It would be great to talk about
>these things if only we were allowed. I created the cpushare-twisted
>list as a place to talk about those things that seems not appropriate to
>talk about here.

I'm sure that the bustling cpushare-twisted and web2/cheetah integration community appreciates your attention a lot more than this one.  Perhaps you should go talk to them instead -- or maybe, as you keep saying you must do, write some code rather than trolling mailing lists.  I seriously think you could have written comprehensive unit tests for all your patches in the time it's taken to write all these posts.




More information about the Twisted-Python mailing list