# LibrePCB in the Snap Store

**URL:** https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203
**Category:** Project
**Created:** [February 11, 2020, 9:28pm UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203 "2020-02-11T21:28:49Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![popey](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/popey/32/139_2.png) [@popey](https://librepcb.discourse.group/u/popey)
#### Post date: [February 11, 2020, 9:28pm UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203/1 "2020-02-11T21:28:50Z")

</div>

Hello! I recently discovered LibrePCB from a friend of mine. As a budding amateur maker and lover of digital electronics, I was delighted! Nice work so far! I am a Developer Advocate at Canonical working on Snapcraft and Ubuntu. I wanted to help bring LibrePCB to the wider world so I made a Snap (a Linux software package) of it, and published it in the Snap Store. You can see the store page here: [https://snapcraft.io/librepcb](https://snapcraft.io/librepcb)

For someone on Ubuntu (or any of the other 40+ distros supported by snaps) you can `snap install librepcb` to get the latest release. If you’re adventurous you can grab builds from the `edge` channel which are built periodically whenever the project changes on GitHub. You can get that with `snap install librepcb --edge` or switch from the `stable` channel to `edge` with `snap refresh librepcb --edge` - and of course switch back with `snap refresh librepcb --stable`.

I’m happy to keep publishing this and moving releases to the stable channel as you push them out. Also happy if the upstream developers would like to take over the package. I don’t mind either way. I appreciate that you’re busy and have focus on other things, so don’t worry if you don’t want to take it on. I’m just happy to be able to share LibrePCB with the world a little ❤.

---

<div class="post-metadata">

### Author: ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)
#### Post date: [February 11, 2020, 10:49pm UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203/2 "2020-02-11T22:49:16Z")

</div>

Hi Alan,

> I recently discovered LibrePCB from a friend of mine. As a budding amateur maker and lover of digital electronics, I was delighted! Nice work so far!

Good to hear, thanks! 🙂

> [@popey](#):
>
> I am a Developer Advocate at Canonical working on Snapcraft and Ubuntu. I wanted to help bring LibrePCB to the wider world so I made a Snap (a Linux software package) of it, and published it in the Snap Store. You can see the store page here: [Install LibrePCB on Linux | Snap Store](https://snapcraft.io/librepcb)

Oh very nice, thank you! 🎉 Unfortunately the description is slightly outdated, but on the master branch the AppData XML is already updated so it should get fixed automatically when releasing 0.1.4 😉

I quickly installed the Snap, worked flawlessly and is indeed a _very_ easy method to install LibrePCB on Ubuntu since it is listed in the software center 👍

> I’m happy to keep publishing this and moving releases to the stable channel as you push them out. Also happy if the upstream developers would like to take over the package. I don’t mind either way.

I suspect it’s basically only a matter of adjusting the tag name / commit SHA in some config file, isn’t it? In that case I think I’d be fine with take over the package maintenance. How would that work exactly, i.e. how would we get ownership and the permission to update the Snap package?

---

<div class="post-metadata">

### Author: ![popey](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/popey/32/139_2.png) [@popey](https://librepcb.discourse.group/u/popey)
#### Post date: [February 12, 2020, 9:22am UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203/3 "2020-02-12T09:22:08Z")

</div>

I’m glad you’re happy about the snap existing.

> [@ubruhin](#):
>
> I suspect it’s basically only a matter of adjusting the tag name / commit SHA in some config file, isn’t it? In that case I think I’d be fine with take over the package maintenance. How would that work exactly, i.e. how would we get ownership and the permission to update the Snap package?

There’s not actually a lot to do, to maintain the snap. The [yaml](https://github.com/popey/librepcb-snap/blob/master/snap/snapcraft.yaml) is in my git repo. It has some [simple logic](https://github.com/popey/librepcb-snap/blob/master/snap/snapcraft.yaml#L31) to tag the version which is built with whatever the current most recent version and git short name.

The idea behind that was as you’re currently under active development, if a user reports an issue you can ask them to `snap info librepcb` to find out what exact git commit they have installed. That should make debugging easier.

To hand this over to you, the following steps need to happen:

1. You sign up to the snap store at `snapcraft.io/account` (if you use a developer name in the store registration page like `librepcb` then it will be obvious to users that it comes directly from you).
2. I create a pull request on your repo with a working snapcraft.yaml (and optionally a travis config which can build a test snap on every pull request - which will prove a PR doesn’t break the snap build)
3. You merge that PR
4. I request the snap is handed over to you
5. You sign into `build.snapcraft.io` (our free build service) and connect it to your git repo. It will then auto-build every time you land a new commit, and publish directly to the edge channel in the Snap Store.
6. You can then visit `snapcraft.io/librepcb/listing` and maintain the presentation of the store page (description, screenshots, icon, license etc)

Time passes…

When you next do a release.

1. You tag the release as usual in github
2. You wait for `build.snapcraft.io` to build and land that in the edge channel
3. You visit `https://snapcraft.io/librepcb/releases` (which you will get access to in step 4 above) and highlight the builds in the edge channel, and publish them to stable.

I think that’s everything. It looks like a lot but it’s not really 🙂

( I had to break the links above as I’m a new user here )

---

<div class="post-metadata">

### Author: ![dbrgn](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/dbrgn/32/25_2.png) [@dbrgn](https://librepcb.discourse.group/u/dbrgn)
#### Post date: [February 12, 2020, 10:08am UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203/4 "2020-02-12T10:08:38Z")

</div>

Cool, thank you @popey 🙂

> [@popey](#):
>
> if a user reports an issue you can ask them to `snap info librepcb` to find out what exact git commit they have installed. That should make debugging easier.

The git commit should also be listed in the about dialog inside LibrePCB, as long as the package is being built from a directory that still has the `.git/` subdirectory inside 🙂

---

<div class="post-metadata">

### Author: ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)
#### Post date: [February 15, 2020, 8:46pm UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203/5 "2020-02-15T20:46:29Z")

</div>

Thanks for the explanation! 👍

> [@popey](#):
>
> - You sign up to the snap store at `snapcraft.io/account` (if you use a developer name in the store registration page like `librepcb` then it will be obvious to users that it comes directly from you).

OK done, I created an account with the username `librepcb`.

> [@popey](#):
>
> - I create a pull request on your repo with a working snapcraft.yaml (and optionally a travis config which can build a test snap on every pull request - which will prove a PR doesn’t break the snap build)

Actually I’d prefer to keep deployment separate from the sources (for example to avoid ever longer CI build times). Could we just fork (or move) your `librepcb-snap` repository into the LibrePCB organization on GitHub instead?

> [@popey](#):
>
> - I request the snap is handed over to you
> - You sign into `build.snapcraft.io` (our free build service) and connect it to your git repo. It will then auto-build every time you land a new commit, and publish directly to the edge channel in the Snap Store.
> - You can then visit `snapcraft.io/librepcb/listing` and maintain the presentation of the store page (description, screenshots, icon, license etc)

👍

---

<div class="post-metadata">

### Author: ![popey](https://yyz2.discourse-cdn.com/free1/user_avatar/librepcb.discourse.group/popey/32/139_2.png) [@popey](https://librepcb.discourse.group/u/popey)
#### Post date: [February 15, 2020, 8:50pm UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203/6 "2020-02-15T20:50:05Z")

</div>

> [@ubruhin](#):
>
> Actually I’d prefer to keep deployment separate from the sources (for example to avoid ever longer CI build times). Could we just fork (or move) your `librepcb-snap` repository into the LibrePCB organization on GitHub instead?

Sure. Just import my repo from [GitHub - popey/librepcb-snap: No longer maintained here. See -\>](https://github.com/popey/librepcb-snap/) to your org and I’ll archive mine and disable builds from it.

I have requested a transfer of the snap here. [Please transfer librepcb - store-requests - snapcraft.io](https://forum.snapcraft.io/t/please-transfer-librepcb/15493)

It will likely be actioned next week.

Thanks!

---

<div class="post-metadata">

### Author: ![ubruhin](https://avatars.discourse-cdn.com/v4/letter/u/c89c15/32.png) [@ubruhin](https://librepcb.discourse.group/u/ubruhin)
#### Post date: [February 15, 2020, 9:07pm UTC](https://librepcb.discourse.group/t/librepcb-in-the-snap-store/203/7 "2020-02-15T21:07:04Z")

</div>

Perfect, thanks! I imported your repository to [https://github.com/LibrePCB/librepcb-snap](https://github.com/LibrePCB/librepcb-snap)
