LibrePCB in the Snap Store

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

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 :heart:.

2 Likes

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! :slightly_smiling_face:

Oh very nice, thank you! :tada: 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 :wink:

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 :+1:

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?

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

There’s not actually a lot to do, to maintain the snap. The yaml is in my git repo. It has some simple logic 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 :slight_smile:

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

1 Like

Cool, thank you @popey :slight_smile:

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 :slightly_smiling_face:

1 Like

Thanks for the explanation! :+1:

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

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?

:+1:

1 Like

Sure. Just import my repo from 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. https://forum.snapcraft.io/t/please-transfer-librepcb/15493

It will likely be actioned next week.

Thanks!

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

1 Like