I’m trying to use build.snapcraft.io service to automaticaly build a webapp snap from a github repo. Unfortunately it always failed due to:
Could not find a required package in 'build-packages': "The cache has no package named 'libubuntumetrics5-dev'"
The entire logs can be found at : https://build.snapcraft.io/user/Winael/snaps-Webapps-Extia/33420
snapcraft.yaml file id located here : https://github.com/Winael/snaps-Webapps-Extia/blob/master/snap/snapcraft.yaml. it’s based on the “Snap a website” tutorial
Is it something to due with one of the remote part ? How can I fix it from a developement software factory point of view ?
Thx for your help.
Looks like the package referred to only exists on Yakkety (16.10) and Zesty (17.04) according to http://packages.ubuntu.com/search?keywords=libubuntumetrics5-dev. The build servers behind build.snapcraft.io use Ubuntu Xenial (16.04). So in the tutorial a PPA is added which won’t be enabled on the builds servers.
In this case you could either build locally, or manually use launchpad to build, and within the ppa where you build, in the “Edit PPA dependencies” set it to depend on the ppa in the image above.
The documentation for manually using Launchpad to build is at https://snapcraft.io/docs/build-snaps/ci-integration
Right, the ubuntu-app-platform part requires packages that are only available in 16.10. They’re not present in 16.04 or that PPA.
So your options are, as @popey said, to either build locally or use Launchpad. If you choose the later, be sure to select Ubuntu 16.10 under “Series” on the “Edit snap package” page.
Generally, I think allowing remote parts to specify packages that are only resolvable using sources beyond 16.04 will prove problematic. I think we should make it a requirement that remote parts can only reference 16.04 packages. I’ve filed a bug.
Good to know. I’ll talk about how to build snaps in a talk I’ll made soon, so I will specify that build.snapcraft.io servers are 16.04 based, and doesn’t work with PPA dependencies (yet ?) .
Thx for your answer
I don’t think we want to support PPAs at all. The fact that
build-packages can be used with PPAs is an implementation side effect. If you really need something that is not in the archives, using a snap as a source of binaries would be much better.
Well, maybe the tutorials Snap a website need to take it in account. Because I imagine some new guys trying the tutorial and the tool from snapcraft.io will encounter the same situation and can be totally disturb, from DX perpectiv
Will it be possible to use a remote part (to be created) instead of the PPA ? As I understand this step is done to have qt librairies ah the same version of ubuntu-app-platform. So using remote part could be a more ‘snappy’ solution, or am I wrong ?
@sergiusens Unanswered follow up from @Winael to your earlier point.
I don’t know what DX means, but will try to answer.
To the best of my knowledge, that tutorial is being rewritten to not use the
ubuntu-app-platform and yes, the team that was working on the
ubuntu-app-platform never got to the point of providing a part one could develop against.
There are already nice examples with the ROS demos on how to provide a part as an SDK https://github.com/snapcore/snapcraft/tree/master/demos/shared-ros
@sergiusens Thx for your update
DX means Developement eXperience. It’s more to do with communication and evangelism stuff. If you want to attract devs, the experience to learn how to use the tool, must be the most suitable as possible. So having a tutorial published in an official platform that doesn’t work with the official tools give the impression of a non mature product.
I know that the experiment is very great, the documentation is very clear, the tutorials are good and video stuff by @popey for ex are very good, but if we can fix the few disturbing points, it’s better
I will present snap system soon in a Meetup, and certainly orginize a workshop soon, I’d like to show to the audience how great are the ressources ^^