New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add snapcraft support for building snaps #53
Conversation
Is snapcraft popular? We already have npm, brew and binary distribution. How many user will install it through span? |
ping @popey |
Apologies for the delay replying. From a developer point of view, some significant developers have adopted it for shipping their products. Such as Google, Amazon, Microsoft, NodeSource and so on. So, millions of users have it pre-installed. Hundreds of thousands more can optionally install support for snaps. Thousands of developers are distributing command line utilities, server products and desktop graphical applications as snaps. We like to promote snaps via the social channels, and blog posts, so while I can't tell you how many installs you'll get, I can say we'll do our best to promote the application. However, once in the store, you get access to metrics, so you can see how many installs you have, across which distributions and geographies, which may be useful to you as a decision maker on your project. This kind of thing. Hope that all makes sense. |
Done: https://build.snapcraft.io/user/antonmedv/fx |
Looks like nodejs don't currently support s390x and ppc64el architectures. I'll do a PR to disable building on those for now. |
As per comment in antonmedv#53 - looks like nodejs isn't supported on [s390x]https://launchpadlibrarian.net/401523666/buildlog_snap_ubuntu_xenial_s390x_d862f303dc85a1886a1db80b5e691216-xenial_BUILDING.txt.gz) and [ppc64el](https://launchpadlibrarian.net/401523830/buildlog_snap_ubuntu_xenial_ppc64el_d862f303dc85a1886a1db80b5e691216-xenial_BUILDING.txt.gz). This change tells the build system to only build on the listed supported architectures.
As per comment in #53 - looks like nodejs isn't supported on [s390x]https://launchpadlibrarian.net/401523666/buildlog_snap_ubuntu_xenial_s390x_d862f303dc85a1886a1db80b5e691216-xenial_BUILDING.txt.gz) and [ppc64el](https://launchpadlibrarian.net/401523830/buildlog_snap_ubuntu_xenial_ppc64el_d862f303dc85a1886a1db80b5e691216-xenial_BUILDING.txt.gz). This change tells the build system to only build on the listed supported architectures.
@popey I'm gonna publish on tuesday blog post on medium. Can you also promote fx? |
Totally. Will line up a social post for Tuesday. Throw us the URL when it's ready and I'll share it. |
@popey Hi, just published https://medium.com/@antonmedv/discover-how-to-use-fx-effectively-668845d2a4ea |
Awesome, great post. They'll go out over the snapcraftio socials today and ubuntu socials tomorrow. Thanks! |
This removes: - find.js - find-releated code in fx.js - statusBar in fx.js * upstream/master: Update snapcraft.yaml Update snapcraft.yaml Update README.md Add snap Release 10.0.0 Fix style on search cancel Search on keys, not paths Implement for advance highlighting Update docs.md Show status bar if pattern not found Forgive errors to user Fix pattern creation Separate regexp generation Update package.json Make current highlight path different Remove console.error Search feature Only build on supported architectures (antonmedv#55) Update snapcraft.yaml Add snapcraft support for building snaps (antonmedv#53)
* merge-upstream: Update snapcraft.yaml Update snapcraft.yaml Update README.md Add snap Release 10.0.0 Fix style on search cancel Search on keys, not paths Implement for advance highlighting Update docs.md Show status bar if pattern not found Forgive errors to user Fix pattern creation Separate regexp generation Update package.json Make current highlight path different Remove console.error Search feature Only build on supported architectures (antonmedv#55) Update snapcraft.yaml Add snapcraft support for building snaps (antonmedv#53)
Hi! |
@popey Hi, why snap build isnt working couple days now? :) |
* Add support to build snaps * Update snapcraft.yaml * Update snapcraft.yaml
As per comment in antonmedv#53 - looks like nodejs isn't supported on [s390x]https://launchpadlibrarian.net/401523666/buildlog_snap_ubuntu_xenial_s390x_d862f303dc85a1886a1db80b5e691216-xenial_BUILDING.txt.gz) and [ppc64el](https://launchpadlibrarian.net/401523830/buildlog_snap_ubuntu_xenial_ppc64el_d862f303dc85a1886a1db80b5e691216-xenial_BUILDING.txt.gz). This change tells the build system to only build on the listed supported architectures.
This removes: - find.js - find-releated code in fx.js - statusBar in fx.js * upstream/master: Update snapcraft.yaml Update snapcraft.yaml Update README.md Add snap Release 10.0.0 Fix style on search cancel Search on keys, not paths Implement for advance highlighting Update docs.md Show status bar if pattern not found Forgive errors to user Fix pattern creation Separate regexp generation Update package.json Make current highlight path different Remove console.error Search feature Only build on supported architectures (antonmedv#55) Update snapcraft.yaml Add snapcraft support for building snaps (antonmedv#53)
* merge-upstream: Update snapcraft.yaml Update snapcraft.yaml Update README.md Add snap Release 10.0.0 Fix style on search cancel Search on keys, not paths Implement for advance highlighting Update docs.md Show status bar if pattern not found Forgive errors to user Fix pattern creation Separate regexp generation Update package.json Make current highlight path different Remove console.error Search feature Only build on supported architectures (antonmedv#55) Update snapcraft.yaml Add snapcraft support for building snaps (antonmedv#53)
I’ve been using fx for a while to make consumption of various APIs more palatable on the command line. I wish I’d know about it earlier, as it’s far superior to jq! :)
This pull request enables creation of a snap package of fx. The single snap (built for many architectures) in the Snap Store will be installable on numerous popular Linux distributions with no changes. It’ll also be discoverable via the Snap Store, where releases are under your control.
If you're willing to publish this under the fx project name, you just need to create an account and then register the fx name.
A snap file created by snapcraft (our free software tool for building snaps) can then be released in the Snap Store with
snap push --release stable *.snap
. You'll want to install snapcraft (brew install snapcraft, snap install snapcraft, or apt install snapcraft) and login (snapcraft login) first, though.You may also want to consider using https://build.snapcraft.io/ which is a free build service, that can create armhf, amd64, i386, arm64 and other builds of fx, and push them to the store automatically. Alternatively it’s possible to integrate publishing the snap via a third party CI system such as travis or circle-ci.
I appreciate snaps and snapcraft may be a new thing to you, so I’d be happy to answer any questions you may have.