I gave a talk at the Linux Application Summit titled “GNOME Desktop Snap Applications: Introducing Snapcraft GNOME extensions” and here are the slides.
Why snap/ should be in your upstream project
Flatpaks have json metadata files. AppImages have an AppDir. Snaps have a snap dir. If someone contributes one or more of these to a GNOME project (or any other upstream open source project for that matter), it enables a wider distribution of the software. However, depending on the project maintainer, not all of these packaging bits are welcome. Rejections of this kind causes unnecessary friction when we are all here to improve and promote open source software. This post will focus on snaps and point out some reasons why each maintainer should not only accept snap metadata, but encourage it.
Automatic Builds
If there is snap metadata in a project, then snaps are being built on launchpad. A build on launchpad is triggered whenever there is a new commit in master or the latest stable branch (ie. gnome-3-34). The snap built (on launchpad) from master commits is automatically pushed to the “edge” channel (think “bleeding edge”) and the snap built from the latest stable branch commits is automatically pushed to the “candidate” snap channel. After the maintainer of that snap in the snap store tests the candidate snap, they can go and move the snap to the “stable” channel.
So by just committing to master, you are getting the updated snap into the edge channel and making it automatically available to the many many users of snap!
More Testing
By providing your changes to users so quickly, you expedite the testing! More testing means more bug finding and reporting – not just snap related issues.
Maintenance
We understand that not every maintainer is familiar with snapping things. Snapcraft folks are happy to assist project maintainers in building and testing changes to snap metadata. To reach us, everyone is welcome to post a question to the very active forum.snapcraft.io or ask in the #snapcraft irc channel on irc.freenode.net.
If a maintainer is not interested in even touching it, then we are happy to maintain the snap metadata.
By accepting snap metadata into your project, you are casting a wider net for users to learn about and enjoy your software. More users means more testing and more bug reporting. With all of this in mind, I hope maintainers will consider encouraging snap metadata in their projects!
GUADEC 2019
This year was my very first GUADEC and I had one goal: find projects to contribute to. I am flexible in the type of contributions, although documentation is my favorite area, so I was looking for projects that could use some documentation help specifically. And to increase the frequency of contributions accepted, I was looking for projects with maintainers close to my timezone. GUADEC facilitated these connections and left me eager to contribute… right after vacation in beautiful Greece 🙂
Friday
The first day of the conference – how exciting! I showed up early, around 7am, to help out setting things up where I honed my t-shirt folding and paper cutting skills. From my past efforts helping out organizing Libre Application Summit, I know that there are a million little things that go into running a conference and I was happy to help out any way I could. However, once the conference started, I was ready to absorb information from talks.
After attending the opening talk, I went to Britt’s “Setting a Positive Voice for GNOME” where I learned all about the Engagement Team, and later offered to join. I have noticed the increased positivity in the GNOME subreddit and am proud to be part of this positive community. Since I’m already helping organize the Linux App Summit 2019, I’m already doing some of the things the Engagement Team represent, so it makes sense to be part of this team.
Afterward, I hopped down to the main auditorium to attend Benjamin and Iain’s joint talk on “Managing GNOME Sessions with Systemd” where I learned that there are many more parts of gnome-session than I had ever imagined!
The coffee break followed, and the coffee was much appreciated to help fight off the lingering jet lag while chatting with coworkers and mingling with others.
Then it was back to the auditorium, to hear Christian’s talk on “Designing Multi-Process Application Security” where he really dove into sandboxing of multi-process applications. It was really interesting to hear the methods using bubblewrap to facilitate the fine-grained sandboxing.
Then Matthias gave a natural follow-up talk on “Portals – Principles and Practice”, where I learned about punching holes (portals) in a flatpak sandbox to give the flatpak temporary privileges which is a really neat concept!
I also really enjoyed the keynote talk on GNU in Healthcare in various countries.
Saturday
In the morning, I attended the “Impostor Syndrome Workshop” where I identified with the feeling that my contributions are not good enough and it certainly opened my eyes that I am not the only one. After the coffee break, it was time to get technical again with “Freedesktop-sdk Status Update and Future Plans”, presented by Codethinkers where it was nice to get an update on the status of the freedesktop sdk. The next talk in the auditorium was on “Modernizing Desktop Linux Development with Containers” where I learned so much about what’s under the hood on Builder!
After a delicious lunch, I was touched by Georges’ talk on “Maintainers and Contributors”, where he personalized the strife that maintainers bear while pointing out that maintainers are not the all-knowing person about a project but rather a real human that is just trying their best to improve their application. This talk perhaps captivated me the most, as a newcomer, who has always thought of maintainers as being on a pedestal, enjoying the powerful status of maintainership.
I stuck around in the conference room to hear Kat’s talk on “Finding open source developers” where it was interesting to hear about the challenges of recruiting open source talent that is used to working on closed source software.
Then it was time to go back to the auditorium to participate in the first AGM – how exciting!
After the AGM, everyone packed up and headed over to beautiful Platanakia for food, drinks, and good conversations.
Sunday
Unfortunately, I had to miss the entire day due a family issue. I brought my husband and 8 month old baby with me to Greece and my daughter needed immediate medical attention (had an eye infection in both eyes). A million thanks goes out to the local team – especially Paty and her family – for helping us get to the hospital, translate with the medical professionals, and get the needed medication (hard to find an open pharmacy on a Sunday)! Thankfully my daughter is fine now and it means the world to me that the local team was so sincere and helpful.
Monday
Monday morning I headed over to the newcomers workshop, run by Felipe, because.. well, I’m a newcomer 🙂
It is here that I made my first contribution (to sound recorder) and I was encouraged by the other newcomers there and even met some folks with similar interests (documentation) so I hope I get to interact with them in the GNOME community again.
Tuesday
Tuesday morning, I listened in a bit on the “Vendor Themes” BoF before heading over to SpinachCon. I really enjoyed pairing up with someone in SpinachCon to do some user testing of GNOME Settings. We typed up our findings and sent them on to the organizer, so I hope our test case results are found useful to the Settings maintainers.
Summary
I had a wonderful (except the whole baby/hospital scenario) and fruitful time at GUADEC. I came with a goal to find ways to contribute, specifically to documentation. Through various conversations at coffee breaks, after talks, and just random hallway conversations, I have made personal connections and hope to provide some documentation help to Builder and Calendar – to start. Of course my contributions don’t need to be limited to documentation but since it’s my passion, that is where I’d like to start. Everyone in the GNOME community has been so welcoming and encouraging that I’m excited to help out and see how far I’ve come in the coming year, before next GUADEC. So thank you, GNOME Foundation, for providing travel assistance to this eager newcomer 🙂
