snapcraft:release/3.9

Last commit made on 2020-01-26
Get this branch:
git clone -b release/3.9 https://git.launchpad.net/snapcraft

Branch merges

Branch information

Name:
release/3.9
Repository:
lp:snapcraft

Recent commits

6e85a68... by Sergio Schvezov

meta: always generate snapcraft-runner to workaround classic (#2889) (#2891)

Snapcraft previously generated wrappers for most commands. Once
snapcraft became more conserative about generating unnecessary wrappers,
issues began to surface with regard to PATH being set incorrectly
for classic snap apps that did not use shell.

To work around the issue, this commit adds an empty snapcraft-runner to
the command-chain for all apps, where they typically would have none.
Once this issue is resolved in snapd, we can probably remove this
workaround.

Add unit tests for snapcraft-runner generation

Add some additional parameters to the SnapcraftYaml fixture
to make it more configurable.

LP: #1860369

Signed-off-by: Sergio Schvezov <email address hidden>
Co-authored-by: Chris Patterson <email address hidden>

aedcaed... by Sergio Schvezov

plugs/slots: match output format read in snapcraft.yaml (#2884)

Snapcraft recently started always writing the long-form
of plugs for consistency, where the `interface` attribute
is always defined.

Unfortunately this seems to have tripped up a bug in review-tools
that won't likely be fixed for a while. This commit restores
the 3.8 behavior to ensure the output snap.yaml matches the syntax
used in the snapcraft.yaml.

Signed-off-by: Chris Patterson <email address hidden>

2ef3923... by Sergio Schvezov

lifecycle: only warn when a default provider snap is missing (#2885)

Snapcraft gained the ability to check for artifacts from snaps listed as plugs
when using the content interface.

The side effect, is that the snap needs to be published on the main Snap Store,
this is a requirement brand stores cannot meet, so instead of failing,
Snapcraft resorts to warning instead.

Signed-off-by: Sergio Schvezov <email address hidden>

f87bd94... by Sergio Schvezov

meta: fix missing provider case for get_provider_content_directories()

Ignore plugs without defined provider in get_provider_content_directories().

The type is declared as optional and mypy uprev errors on the fact that
provider could be None.

If processing a plug without a provider, just skip it and move on.

Signed-off-by: Chris Patterson <email address hidden>

6723102... by Chris Patterson

meta: ensure Snap's `assumes` is initialized as a set

When reading the config data dictionary, convert the list to a set.

The `assumes` property is defined as a set in Snap meta, but derives
from a list in the the snap meta. This causes an exception when
using `command-chain`, but `command-chain` is not already in
the `assumes` (due to the use of Snap's usage of `.add()` on the
set, which is not available for lists).

Add a test for coverage/verification.

Fixes SNAPCRAFT-16C

Signed-off-by: Chris Patterson <email address hidden>

b41f883... by Chris Patterson

meta: handle plug & slot string objects (#2876)

Although undocumented, the plug and slot objects may in
fact be a string, such as the case here:
https://git.launchpad.net/~snappy-hwe-team/snappy-hwe-snaps/+git/modem-manager/tree/snapcraft.yaml#n16

If the object is a string, use that string as the interface.

To ease the handling of this, we introduce cls.from_object() for
Slot and Plug to handle None, string, and dict cases. Snap will
now use these methods when populating the slots and plugs, instead
of cls.from_dict().

Add tests for coverage of from_object() and the string case.

LP #1859806

Signed-off-by: Chris Patterson <email address hidden>

aad6f15... by Sergio Schvezov

meta: assume command-chain fix for prepending snapcraft-runner (#2864)

`prepend_command_chain` was not checked when determining the need
for assuming command-chain.

- Add & update a test to ensure coverage of `assumes`.

- Check for use of `prepend_command_chain`.

- Update expected snap.yaml for adapter spread test.

Signed-off-by: Chris Patterson <email address hidden>

bbbb301... by Sergio Schvezov

spread tests: limit adapter test to amd64 (#2866)

The expected_snap.yaml includes the architecture definition,
which breaks when building on other architectures. Since
adapter isn't relevant to arch, simply limit the tests to amd64.

Signed-off-by: Chris Patterson <email address hidden>

eab8b16... by Sergio Schvezov

snap: set PYLXD_WARNINGS to inhibit unknown LXD attribute warnings (#2870)

pylxd is designed in such a way that it will display warnings every
attribute coming from the server that is unknown to the client.

pylxd 2.2.10 adds a way to inhibit these warnings.

Signed-off-by: Sergio Schvezov <email address hidden>

d3d35a4... by Sergio Schvezov

build providers: use multipass from stable (#2869)

Multipass 1.0 has been released to the stable channel. Consume multipass from
there from now on.

Signed-off-by: Sergio Schvezov <email address hidden>