[Tracker-discuss] List of recently modified issues

"Martin v. Löwis" martin at v.loewis.de
Sun Jun 10 22:36:59 CEST 2007


> I went the update-on-change road, as it seemed more straightforward.
> Attached to this mail is "changes_xml_writer.py" detector, which
> updates recent-changes.xml file each time a file is uploaded to a
> tracker. After uploading a sample attachment go to
> http://localhost:9999/python-dev/_file/recent-changes.xml to see the
> generated file. A single change looks like this in XML:
> 
> <change date="Sun, 10 Jun 2007 20:00:58 +0000"
> id="file45-added-to-issue6" type="file-added">
>  <file-id>45</file-id>
>  <file-name>sample.patch</file-name>
>  <file-type>text/x-diff</file-type>
>  <file-url>http://localhost:9999/python-dev/file45/sample.patch</file-url>
>  <issue-id>6</issue-id>
> </change>

Just to clarify: this is not RSS, right?

> I have a question about Roundup updates though. Is a reactor function
> called atomically, i.e. should I worry about two processes writing to
> recent-changes.xml?

I'm not sure, but I *think* this might happen. I don't know what
depends on these data, but I wouldn't be too worried if that could cause
the file to lose changes sometimes, or if the file could get
truncated.

The one thing I *am* worried about is exception-safety: you need
to make absolutely sure that the reactor doesn't fail, because
otherwise the entire change being made gets rolled back, and
the user gets an error message. In particular, if the previous
file gets corrupt for some reason, make sure the generator can
recover from that. I point this out because this precise problem
happened to me with the RSS generator.

Regards,
Martin


More information about the Tracker-discuss mailing list