Review: Approve code


Diff comments:

> === modified file 'lib/lp/snappy/interfaces/snap.py'
> --- lib/lp/snappy/interfaces/snap.py  2017-08-22 11:36:30 +0000
> +++ lib/lp/snappy/interfaces/snap.py  2018-02-08 13:37:58 +0000
> @@ -281,17 +282,23 @@
>      @operation_parameters(
>          archive=Reference(schema=IArchive),
>          distro_arch_series=Reference(schema=IDistroArchSeries),
> -        pocket=Choice(vocabulary=PackagePublishingPocket))
> +        pocket=Choice(vocabulary=PackagePublishingPocket),
> +        channels=Dict(
> +            title=_("Source channels to use for this build."),

Can you copy_field this from ISnapBuild['channels'], or at least bring the 
title across from there?

> +            key_type=TextLine(), required=False))
>      # Really ISnapBuild, patched in lp.snappy.interfaces.webservice.
>      @export_factory_operation(Interface, [])
>      @operation_for_version("devel")
> -    def requestBuild(requester, archive, distro_arch_series, pocket):
> +    def requestBuild(requester, archive, distro_arch_series, pocket,
> +                     channels=None):
>          """Request that the snap package be built.
>  
>          :param requester: The person requesting the build.
>          :param archive: The IArchive to associate the build with.
>          :param distro_arch_series: The architecture to build for.
>          :param pocket: The pocket that should be targeted.
> +        :param channels: A dictionary mapping snap names to channels to use
> +            for this build.
>          :return: `ISnapBuild`.
>          """
>  
> @@ -509,6 +516,14 @@
>              "The package stream within the source distribution series to use 
> "
>              "when building the snap package.")))
>  
> +    auto_build_channels = exported(Dict(
> +        title=_("Source channels for automatic builds"),

"Source snap channels" maybe? Otherwise it sounds like some weird source code 
thing.

> +        key_type=TextLine(), required=False, readonly=False,
> +        description=_(
> +            "A dictionary mapping snap names to channels to use when 
> building "
> +            "this snap package.  Currently only 'core' and 'snapcraft' keys "
> +            "are supported.")))
> +
>      is_stale = Bool(
>          title=_("Snap package is stale and is due to be rebuilt."),
>          required=True, readonly=False)
> 
> === modified file 'lib/lp/snappy/model/snap.py'
> --- lib/lp/snappy/model/snap.py       2017-11-10 11:23:27 +0000
> +++ lib/lp/snappy/model/snap.py       2018-02-08 13:37:58 +0000
> @@ -917,6 +926,15 @@
>                      SnapBuild.snap_id == Snap.id,
>                      SnapBuild.archive_id == Snap.auto_build_archive_id,
>                      SnapBuild.pocket == Snap.auto_build_pocket,
> +                    # These columns are nullable so require some care, since
> +                    # a straightforward equality check will compile to
> +                    # "SnapBuild.channels = Snap.auto_build_channels" which
> +                    # is false if both are NULL.
> +                    Or(
> +                        And(
> +                            SnapBuild.channels == None,
> +                            Snap.auto_build_channels == None),
> +                        SnapBuild.channels == Snap.auto_build_channels),

IsDistinctFrom?

>                      # We only want Snaps that haven't had an automatic
>                      # SnapBuild dispatched for them recently.
>                      SnapBuild.date_created >= threshold_date)),


-- 
https://code.launchpad.net/~cjwatson/launchpad/snap-build-channels/+merge/337360
Your team Launchpad code reviewers is subscribed to branch lp:launchpad.

_______________________________________________
Mailing list: https://launchpad.net/~launchpad-reviewers
Post to     : launchpad-reviewers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~launchpad-reviewers
More help   : https://help.launchpad.net/ListHelp

Reply via email to