+== 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)
=== modified file 'lib/lp/ soyuz/doc/ package- diff.txt' soyuz/doc/ package- diff.txt 2009-07-16 03:31:45 +0000 soyuz/doc/ package- diff.txt 2009-09-23 10:16:13 +0000
--- lib/lp/
+++ lib/lp/
@@ -672,6 +672,32 @@
None
+== Problematic packages == tests.test_ publishing import SoyuzTestPublisher interfaces. publishing import PackagePublishi ngStatus her() tDistroSeries( hoary) PackagePublishi ngStatus. PUBLISHED) PackagePublishi ngStatus. PENDING) sourcepackagere lease.requestDi ffTo( erelease= udev_new. sourcepackagere lease) status. name
+
+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.
+ >>> from lp.soyuz.
+ >>> stp = SoyuzTestPublis
+ >>> discard = stp.setUpDefaul
+ >>> udev_orig = stp.getPubSource(
+ ... sourcename="udev", version="1.0",
+ ... status=
+ >>> udev_new = stp.getPubSource(
+ ... sourcename="udev", version="1.1",
+ ... status=
+
+ >>> udev_diff = udev_orig.
+ ... requester=cprov,
+ ... to_sourcepackag
+
+ >>> print udev_diff.
+ FAILED
+
+
== PackageDiff privacy ==
Packagediff decides whether the 'diff_content' file should be
=== modified file 'lib/lp/ soyuz/model/ sourcepackagere lease.py' soyuz/model/ sourcepackagere lease.py 2009-07-20 15:05:42 +0000 soyuz/model/ sourcepackagere lease.py 2009-09-23 10:31:47 +0000 interfaces. archive import ( pose, IArchiveSet, MAIN_ARCHIVE_ PURPOSES) interfaces. build import BuildStatus interfaces. packagediff import PackageDiffAlre adyRequested interfaces. packagediff import ( adyRequested, PackageDiffStatus) interfaces. publishing import PackagePublishi ngStatus interfaces. sourcepackagere lease import ISourcePackageR elease model.build import Build
"%s was already requested by %s" requester. displayname) )
--- lib/lp/
+++ lib/lp/
@@ -39,7 +39,8 @@
from lp.soyuz.
ArchivePur
from lp.soyuz.
-from lp.soyuz.
+from lp.soyuz.
+ PackageDiffAlre
from lp.soyuz.
from lp.soyuz.
from lp.soyuz.
@@ -602,6 +603,14 @@
% (candidate.title, candidate.
+ if self.sourcepack agename. name == 'udev': us.FAILED us.PENDING
from_ source= self, to_source= to_sourcepackag erelease, requester) requester, status=status)
+ # XXX Julian bug=314436
+ # Currently diff output for udev will fill disks. It's
+ # disabled until diffutils is fixed in that bug.
+ status = PackageDiffStat
+ else:
+ status = PackageDiffStat
+
return PackageDiff(
- requester=
+ requester=