Call for testing: snapcraft 2.41

snapcraft 2.41 is now available for testing in these forms:

  • As a snap on the candidate channel (snap refresh snapcraft --candidate if installed or snap install snapcraft --candidate to install).
  • In xenial-proposed tracked by the SRU bug LP: #1763934. More information on SRU testing at https://wiki.ubuntu.com/Testing/EnableProposed
  • By using docker, docker pull snapcore/snapcraft:candidate

The release notes are currently being drafted but already provide a good indication of the set of changes in this release. For all releases hop over to https://github.com/snapcore/snapcraft/releases to get an idea of the changes since you last updated or used snapcraft.

The list of bugs fixed in this release are:

  • LP: #1719952 When cleanbuild starts, the container has no connection and prints an ugly error
  • LP: #1759592 kernel build fails for lack of modprobe
  • LP: #1751749 install scriptlet fails with stacktrace and failed command in deleted tmp files
  • LP: #1742559 node: yarn extra args
  • LP: #1760857 SNAPCRAFT_IMAGE_INFO contains wrong architecture
  • LP: #1761127
    On Travis (not a real vte), releasing to a branch name during snapcraft push prints a stacktrace
  • LP: #1628098 organize needs to run after build in stage
  • LP: #1761488 snapcraft 2.39.2 failed to release a snap: snapcraft.storeapi.errors.StoreReleaseError: <exception str() failed>
  • LP: #1750177 When asking to release to a branch that’s too long, a traceback is printed that gives no hints as to the source of the error.

We would appreciate anyone to try out their common workloads with this release and maybe some new ones as exploratory testing.

Cheers,
Sergio

2 Likes

I’ve found one potential issue with the warning when using passthrough option - see my comment here Support for passthrough into snap.yaml

Thanks, we shall fix that in 2.42 (which is due early next week).

EDIT: not that what we will fix is the messaging, nothing prevents a push or release (if there are no review issues store side).

Is it something expected that if I’ve B depending on part A, and then I do snapcraft prime B then it complains about the fact that A has not been pulled?

I.e:

marco@udevel:/data/telegram-snap (master):✓ $ snapcraft prime qt
Loaded local plugin for autotools-subsource
Loaded local plugin for qtbuilder
Loaded local plugin for patched-python
Loaded local plugin for gyp-cmake
Skipping pull libva (already ran)
Skipping pull libvdpau (already ran)
Skipping build libvdpau (already ran)
Skipping pull opus (already ran)
Skipping build opus (already ran)
Skipping pull desktop-gtk3 (already ran)
Skipping pull desktop-integration (already ran)
Sorry, Snapcraft ran into an error when trying to running through its
lifecycle that generated the following traceback:
Traceback (most recent call last):
  File "/usr/bin/snapcraft", line 9, in <module>
    load_entry_point('snapcraft==2.41', 'console_scripts', 'snapcraft')()
  File "/usr/lib/python3/dist-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python3/dist-packages/click/core.py", line 86, in augment_usage_errors
    yield
  File "/usr/lib/python3/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py", line 111, in prime
    _execute('prime', parts, **kwargs)
  File "/usr/lib/python3/dist-packages/snapcraft/cli/lifecycle.py", line 33, in _execute
    lifecycle.execute(command, project_options, parts)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 80, in execute
    _Executor(config, project_options).run(step, part_names)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 191, in run
    self._run_step(step, part, part_names)
  File "/usr/lib/python3/dist-packages/snapcraft/internal/lifecycle/_runner.py", line 217, in _run_step
    step, part.name, ' '.join(missing_parts)))
RuntimeError: Requested 'pull' of 'qt' but there are unsatisfied prerequisites: 'libxkbcommon gcc7'

This is a historic issue, I have it on my todo to fix.

Fine… It was working before though.

On a similar thing, it could be added a flag to make snapcraft to automatically clean the parts that needs to be pulled/built/staged when you launch an operation?

It could be helpful to do some caching and so avoiding to redo operations which were already done, but to smartly cleanup what’s needed if prerequisite are outdated.

1 Like

That is what @kyrofa will be working on early in the cycle.

1 Like

If it was working before, mind logging a bug with that so it doesn’t fall through the cracks? Was it working on 2.40 or prior?
Do you usually use the snapcraft snap or the deb?