<div dir="ltr">Nice work :) I will get started asap. Monday is a holiday though.<div>Cheers,</div><div>Scarlett</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 1, 2017 at 5:02 AM, Harald Sitter <span dir="ltr"><<a href="mailto:sitter@kde.org" target="_blank">sitter@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Final pieces are in place and we can build snapcraft.yamls from our<br>
unstable branch now without having an opaque auto generation step in<br>
between.<br>
<br>
job-updater generates jobs. the jobs are on the build view [1], the<br>
old view is now called 'snap (gen)' which is still auto generating<br>
release snaps from existing data.<br>
<br>
To generate new data you can use my autogen repo [2] to generate a<br>
simplified yaml file to get started<br>
<br>
```<br>
echo 'kblocks' > appname; SIMPLE=1 ruby generate.rb<br>
```<br>
<br>
this dumps a snapcraft.yaml which looks a lot like the existing<br>
autogenerated ones but with 2 core differences:<br>
<br>
- it doesn't include a massive exclusion list to not create overlap<br>
with the kf5 snap<br>
- it doesn't include the boilerplate parts for -dev and -env but still<br>
references them<br>
<br>
The former is injected by new build time tooling for CI only.<br>
<br>
The latter is now solved using the snapcraft native remote parts tech.<br>
Since I am currently still playing around with this we use a separate<br>
remote parts definition URI from upstream [3].<br>
<br>
To get started grab the snapcraft.yaml, desktop file and icon and put<br>
them in the packaging repo. kblocks is a good example [4]. Run<br>
job-updater. You should get a new job. Run the job. Barring mistakes,<br>
this should push a master build into the edge channel.<br>
<br>
This snapcraft.yaml will have a release tarball listed as source.<br>
Don't worry. The build time tooling automatically adjusts the file to<br>
be a git build and also adjusts the version to reflect this.<br>
<br>
You can technically build a snap on your machine in a container as<br>
well (needs unstable repo), though I am not sure why you would. You<br>
will need to change your snapcraft's parts uri though<br>
<br>
```<br>
export SNAPCRAFT_PARTS_URI=<a href="http://metadata.neon.kde.org/snap/parts.yaml" rel="noreferrer" target="_blank">http://<wbr>metadata.neon.kde.org/snap/<wbr>parts.yaml</a><br>
snapcraft update<br>
snapcraft<br>
```<br>
<br>
Also note that because of problem 10 [5] you'll have a hard time<br>
testing this unless you first push it to the edge channel and install<br>
it from the store.<br>
<br>
Limitations:<br>
- currently the jobs are only created for unstable<br>
- only for applications component<br>
- the built snaps will get landed in the edge channel and nowhere else<br>
(which is intentional for unstable mind you)<br>
- while all applications use master as development HEAD the tooling<br>
hardcodes this instead of following our existing override tech, so not<br>
really a problem right now but will be eventually<br>
- the repos do not get auto-polled for changes (which I think will<br>
need solving on the <a href="http://git.kde.org" rel="noreferrer" target="_blank">git.kde.org</a> as with snapcrafting we don't really<br>
need a daily poll anymore as everything is isolated and<br>
non-interfering)<br>
<br>
Go forth and snapeth the world.<br>
<br>
[1] <a href="https://build.neon.kde.org/view/snap%20(build)/" rel="noreferrer" target="_blank">https://build.neon.kde.org/<wbr>view/snap%20(build)/</a><br>
[2] <a href="https://github.com/apachelogger/kf5-snap-app" rel="noreferrer" target="_blank">https://github.com/<wbr>apachelogger/kf5-snap-app</a><br>
[3] <a href="http://metadata.neon.kde.org/snap/parts.yaml" rel="noreferrer" target="_blank">http://metadata.neon.kde.org/<wbr>snap/parts.yaml</a><br>
[4] <a href="https://packaging.neon.kde.org/applications/kblocks.git/tree/?h=Neon/unstable" rel="noreferrer" target="_blank">https://packaging.neon.kde.<wbr>org/applications/kblocks.git/<wbr>tree/?h=Neon/unstable</a><br>
[5] <a href="https://community.kde.org/Neon/Snap#Problems" rel="noreferrer" target="_blank">https://community.kde.org/<wbr>Neon/Snap#Problems</a><br>
</blockquote></div><br></div>