Call for testing: xkcdpass, my first snap!


I’ve released my first snap to the ubuntu store in “beta” status for xkcdpass. xkcdpass generates a random 4 word password (as seen here: )

To install, try:

$ sudo snap install xkcdpass --beta

Then run the command

$ xkcdpass

You can view and comment on my code here:

Also, I’ve pasted it here for your convenience:

name: xkcdpass
version: 1.0
summary: xkcd password generator
description: Generate secure multiword passwords/passphrases, inspired by XKCD

grade: devel
confinement: strict

    command: bin/xkcdpass

    plugin: python

I’m really really new to this, so I appreciate any feedback. Let me know if I’m leaving anything out in this posting. I’m still not really sure of all the details.




That’s a nice one, thanks @roxyd!

One of the sweet particularities of this snap is that it needs absolutely nothing from the system. No plugs. So anyone using it can be sure that the password isn’t leaking to any remote web site.

I also have no recommendations that I can think of. It’s great that it’s so simple.

Have you considered submitting it to the upstream project?


Isn’t it rather important the developer maintains their own Snappy Store package? How can they reclaim the package name off @roxd?

@roxd perhaps you could file a GitHub Issue with your snapcraft.yaml and suggest they upload it to the Ubuntu Store (maybe give them the commands to build the Snap and upload it to the Store? But you need to give them the name you registered somehow…)


The question there is whether the developer is willing to do the upload. If they are interested in doing that regularly, then @roxd may willingfully choose to hand the control to the upstream. Otherwise, if there’s no clear indication that there’s interest in maintaining it up-to-date, it’s much better for @roxd to keep control and publish so people can benefit of newer releases. That’s true independently from whether the snapcraft.yaml lives inside the upstream project or not.


Not sure why this debate isn’t on other calls for testing. I do want to allow the developer a chance to maintain it. However, before I get to that step, I would like to move it over to stable. Given that this is my first snap, even though it is a simple one, I want to go through testing and create a more finished product.

Thank you niemeyer for testing and offering up your feedback!

I will soon move this over to stable and contact the developer.


Thanks @roxd, nice work. I’ve tested the snap and have no complaints.

Now, @roxd is helping us here not just by making one more snap in the store, she also graciously accepted to do it all on her own by only looking at the getting started docs and tutorials. We have a brave soul here :slight_smile:, I’m very happy you joined our community.

So the fact that she could package and push the snap is a nice indication. But we also identified things to improve when somebody new to snaps wants to jump and package a project. I know you have been telling us about your journey in rocket chat, but would you mind making a summary for everybody else here at the forum? Like what went well, what went bad.

pura vida.


Yes Elopio, thank you! I will make another post. I have to go back and look at my bookmarks and walk through my issues again. For the most part - it was fairly easy. There was I believe one “bug report” that I made regarding documentation, and a workaround that was not documented. If I recall…bad memory…

I have enjoyed being a part of this community so far, and am clearing up more time for it after this wonderful experience.


@roxd The details above are definitely not specific to this one snap. The upstream integration is just a good way to get more collaboration and mindshare around the snap, so useful in general.

On a quick self-analysis, the reason I mentioned it here and not elsewhere is probably because this looked like a good candidate for integration for being so crisp and clean already.


I understand, I was just confused as to why Ads20000 brought up contacting the developers as I am new to this and I thought that it wasn’t a big deal, that they can be contacted at any point.


additionally I have not had coffee and i’m very confused in general, after reading a few other calls for testing I put together my post the best I could :slight_smile:


Ah sorry it’s my bad I guess please don’t worry about it! I didn’t realise that it will be fairly easy to transfer ownership of the Snappy Store app to the original developers later. You’re doing the right thing, try and get an initial snapcraft.yaml working and then hopefully they can integrate it into their build process later (thus making updates faster because we don’t need to do the updating ourselves).


:grin: please don’t use my calls for testing as a strong guideline of how to do them. I tend to talk a lot about a lot of random stuff, I’ve been told.

Only the steps for how to help are required. The rest is free form.

Short and to the point is a nice goal that I try to apply everyday, and fail.


Elopio, thank you for clarifying, I know as we go along it will become easier for me a bit more and I can make everything up as I go along :smiley:
Ads20000 I’m sorry for being a bit “snappy” !!

So far I have had a few tests and all good feedback. I’m looking forward to making more snaps! Thank you to the community for helping me feel so welcome!


What isn’t working with the snap atm? :slight_smile:


it’s so simple so not much can get wrong, eh? Also, I cheated and had elopio check it first :wink:


8 downloads is close enough for testing :wink: moving it over to stable now. Thank you! Let me know if there are any errors though or any ideas.

I opened an issue here: to see if the developer would like to maintain the snap on their own. Wasn’t sure what to say or how to go about asking. Posted the link to this posting just in case they couldn’t contact me if they decide to maintain it later on.


Oh cool, could you write a new snapcraft.yaml which uses a released version of xkcdpass (just needs to be the same as this one, but with a different source)? Does the Python plugin allow you to point to a release .tar.gz of the app (give it a go)? You could then push that to beta (and candidate and even stable if there’s no bugs!) and have your Git source one in edge.


Not sure… @elopio do you know?

Would this be a separate snap?


I think it would be a separate snapcraft.yaml but the same Snap. You would push the one pointing to the GitHub repository to the edge channel and the one pointing to a release to beta, candidate, and eventually stable.


Hello, I’m back!

snapcraft is flexible enough to let you do (almost) anything. So you could use a released tar.gz as the source without problems. However, that’s not the approach I would use.

Now that everybody seems to be happy with the quality of the snap, and @roxd explored the features available in snapcraft, I would recommend to contact upstream to see if they are interested in maintaining it. If so, after the transfer they can just hook their CI system to make continuous delivery following the instructions here:

Whenever they make a new stable release, that will get immediately to the store and can be made available to all the users in the stable channel.

If they are not interested in maintaining it, this snap repo can also be hooked to the daily cron from travis, so it’s extremely low maintenance for roxd and she can use her time in something more interesting like new snaps or other types of contributions.

I think there’s no need for a different snapcraft.yaml here. And I’d be happy to help in any of the two cases. Let me know how it goes.

pura vida