lp:~james-w/python-timeline-django/clean-env

Created by James Westby and last modified
Get this branch:
bzr branch lp:~james-w/python-timeline-django/clean-env
Only James Westby can upload to this branch. If you are James Westby please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
James Westby
Project:
python-timeline-django
Status:
Merged

Recent revisions

24. By James Westby

Add missing space, thanks Natalia.

23. By James Westby

Be more careful about leaking objects.

1. Register signals with a dispatch_uid so that if register is called
   twice there aren't double receivers. There is a very slim chance that
   someone could two want two sets of receivers with timeline_factories
   that get different timelines. In that case this should be rewritten
   to not use dispatch_uid and offer a disconnect method that can be
   used in tests etc.

2. Re-set the environ stored in the thread local after the wsgi response
   is delivered. In a case where some requests go through wsgi and some
   don't (e.g. tests) the environ would leak in to those that don't use
   wsgi. This could lead to an ever-growing timeline.

22. By James Westby

Properly handle absence of query in filters

This fixes a TypeError that triggered because django-statsd db patches
caused a max recursion exception that propagated up until the filters,
rendering the query parameter of them as None. Because of this, while
the error was really passed through oops, the final error reported to
the user was related to python-timeline-django.

21. By James Westby

Make the hooks more robust.

20. By James Westby

Save the environ before sending the wsgi_request_started signal.

Code that listens to the wsgi_request_started signal may want to use the
environ, but instead of using the one passed to the signal, it may
call get_environ() to get the saved version. That has to be the
current request's environ, not any previous request, so save the environ
before triggering the signal.

19. By James Westby

Add signals for the start of the wsgi request and start of the response.

The django signal for request-finished fires when the client has consumed
the response. However, when generating an oops it can be done before this
meaning that the timeline doesn't have a reference for an end point.
This defines a response-started signal that fires when start_response
is called in the wsgi stack, making it more likely that there will be
an end point in the timeline.

18. By James Westby

Drop the model signal handlers.

They cause a lot of noise in the timeline, and slow down all requests,
for little benefit. The context they provide for db queries can
just as easily be inferred from the backtraces on the queries.

17. By James Westby

Fix the README formatting.

16. By James Westby

Post-release version bump.

15. By James Westby

Release 0.0.2.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:python-timeline-django
This branch contains Public information 
Everyone can see this information.

Subscribers