[Zope-dev] zope.app.wsgi.paste doesn't emit a ProcessStarting event

Jim Fulton jim at zope.com
Thu Jan 19 11:30:35 UTC 2012


On Wed, Jan 18, 2012 at 6:50 PM, Marius Gedminas <marius at gedmin.as> wrote:
> On Wed, Jan 18, 2012 at 05:00:27PM -0500, Jim Fulton wrote:
>> zope.app.server emits a ProcessStarting event on startup.
>>
>> zope.app.wsgi.paste doesn't.  I think it should.
>
> +1
>
>> If there are no
>> objections, I'll make a bug fix release for this.
>
> Hm.  I've an app that wraps zope.app.wsgi like this:
>
>    from zope.app.wsgi import getWSGIApplication
>    from zope.app.appsetup.interfaces import ProcessStarting
>    from zope.event import notify
>
>    def app_factory(global_config, **local_conf):
>        """Create a Zope WSGI application given a zope configuration.
...
>        """
>        app = getWSGIApplication(StringIO(local_conf['config']))
>        notify(ProcessStarting())
>        return app
>
> Would this result in duplicate ProcessStarting() events after your proposed
> change?

Yes.

> Can duplicate ProcessStarting() events cause harm?

I don't know. Theoretically.

> If so, I'd rather
> see a bigger version bump than just a bugfix.

Ideally, but ...

> (We are pinning all our dependency versions with buildout-versions, so our app
> won't break if you rele--oh, I see you already released 3.9.3zc2 with the
> change.)

Yup, yup.

>
>> BTW, I ended up making a 3.9.3zc1 release (this will spur 3.9.3zc2
>> release) because the latest release breaks our apps' tests.  Not sure
>> if this was due to zope.testbrowser 4, or the (until recently)
>> unreleased zope.app.testing changes needed to work with
>> zope.testbrowser 4.  I haven't had time to chase these down, thus the
>> 3.9.3zc1 release, which I'm not terribly proud of.
>
> I'm confused about this.  "Latest release" refers to what, 3.9.3?  or was there
> a newer version that is now hidden on PyPI?

Sorry, my bad. I forgot to unhide 3.14.0 (and hide 3.9.3zc2).  Michael
Howitz fixed that. Thanks Michael.

Your argument about the duplicate events is a reasonable one. I
considered it, but thought that either people weren't using
zope.app.wsgi.paste or didn't care about the event, given how long the
problem has existed.  I could reverese the change with a 3.9.3zc3
release. That would force me into trying to figure out the breakages
introduced by "later" releases, or fork or monkey patch
zope.app.wsgi. I'd rather not. :)  Given that an unpinned fetch of
zope.app.wsgi won't get 3.9.3zc2 I'm thinking that my small foul is
unlikely to do harm.

I'll also release this change as zope.app.wsgi 3.15.0, or do you think
this should be 4.0.0?

Jim

--
Jim Fulton
http://www.linkedin.com/in/jimfulton


More information about the Zope-Dev mailing list