Code review comment for lp:~julian-edwards/launchpad/no-udev-diff

Revision history for this message
Julian Edwards (julian-edwards) wrote :

=== modified file 'lib/lp/soyuz/doc/package-diff.txt'
--- lib/lp/soyuz/doc/package-diff.txt 2009-07-16 03:31:45 +0000
+++ lib/lp/soyuz/doc/package-diff.txt 2009-09-23 10:16:13 +0000
@@ -672,6 +672,32 @@
     None

+== Problematic packages ==
+
+XXX Julian bug=314436
+Because of bug 314436, diffs of udev can generate huge output which fills the
+disk very quickly. For that reason, diffs of udev are created FAILED by
+default, which will stop the diff script from attempting to create the diff.
+
+ >>> from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
+ >>> from lp.soyuz.interfaces.publishing import PackagePublishingStatus
+ >>> stp = SoyuzTestPublisher()
+ >>> discard = stp.setUpDefaultDistroSeries(hoary)
+ >>> udev_orig = stp.getPubSource(
+ ... sourcename="udev", version="1.0",
+ ... status=PackagePublishingStatus.PUBLISHED)
+ >>> udev_new = stp.getPubSource(
+ ... sourcename="udev", version="1.1",
+ ... status=PackagePublishingStatus.PENDING)
+
+ >>> udev_diff = udev_orig.sourcepackagerelease.requestDiffTo(
+ ... requester=cprov,
+ ... to_sourcepackagerelease=udev_new.sourcepackagerelease)
+
+ >>> print udev_diff.status.name
+ FAILED
+
+
 == PackageDiff privacy ==

 Packagediff decides whether the 'diff_content' file should be

=== modified file 'lib/lp/soyuz/model/sourcepackagerelease.py'
--- lib/lp/soyuz/model/sourcepackagerelease.py 2009-07-20 15:05:42 +0000
+++ lib/lp/soyuz/model/sourcepackagerelease.py 2009-09-23 10:31:47 +0000
@@ -39,7 +39,8 @@
 from lp.soyuz.interfaces.archive import (
     ArchivePurpose, IArchiveSet, MAIN_ARCHIVE_PURPOSES)
 from lp.soyuz.interfaces.build import BuildStatus
-from lp.soyuz.interfaces.packagediff import PackageDiffAlreadyRequested
+from lp.soyuz.interfaces.packagediff import (
+ PackageDiffAlreadyRequested, PackageDiffStatus)
 from lp.soyuz.interfaces.publishing import PackagePublishingStatus
 from lp.soyuz.interfaces.sourcepackagerelease import ISourcePackageRelease
 from lp.soyuz.model.build import Build
@@ -602,6 +603,14 @@
                 "%s was already requested by %s"
                 % (candidate.title, candidate.requester.displayname))

+ if self.sourcepackagename.name == 'udev':
+ # XXX Julian bug=314436
+ # Currently diff output for udev will fill disks. It's
+ # disabled until diffutils is fixed in that bug.
+ status = PackageDiffStatus.FAILED
+ else:
+ status = PackageDiffStatus.PENDING
+
         return PackageDiff(
             from_source=self, to_source=to_sourcepackagerelease,
- requester=requester)
+ requester=requester, status=status)

« Back to merge proposal