Snapcraft, Charmcraft, Rockcraft … you may have heard of these tools, but have you ever wondered how – and by who – they are developed? These tools are the intellectual and keyboard-driven product of Canonical’s Craft team. Officially, the team’s name is *Craft, and the asterisk symbol can easily be seen as a “star” (The asterisk is also a play on the glob wildcard character because the *Craft team maintains all Canonical tools whose name ends in ‘craft’). However, due to obvious trademark implications in calling the team Starcraft, we will stick with the shorter and somewhat less glamorous Craft henceforth.
In this article, a first of many, we’d like to share the work being done in the team. After all, if you’re using these tools to build your snaps or charms, you may also be interested to know what the team is doing day to day, or rather fortnight to fortnight, as we conduct our business on a bi-weekly cadence. So let us show you what we have done in the last two weeks.
If you’re building snaps, you will surely want to try the latest release in the candidate channel. As we’ve announced a while back, the craft tools are being refactored to use a common backend of parts and providers, and this work continues, with additional improvements and features being added. Furthermore, there is also a new core22 flutter plugin, and Craft Parts also includes SCons, Ant and Maven plugins. On the extension side, there is a new (KDE neon) content snap for kf5 5.98 and qt 5.15.6.
The team is also working on support for core24, which will improve compatibility with interim Ubuntu releases. We will share more details as we make progress on this milestone.
An important milestone in the Charmcraft functionality is the support for CentOS, allowing the use of the yum package manager when building charms. This is still an ongoing effort, and should be achieved in the coming weeks.
For those about to rock, we … snap you? If you don’t know what Rockcraft is (you must have been living under a rock), it is a tool designed to help build ROCKs, OCI-compliant container images. In the last two weeks, the team focused on resolving several issues between how parts work and the layering mechanics of OCI. That said, Rockcraft has been updated to Craft Providers 1.7.2 and enjoys the same, recently introduced performance benefits as Snapcraft.
There has also been work on significantly improving the launch time for container instances, better handling of images, and new linters, provided [sic] by the Craft Providers update.
Some of the stuff is purely internal, boring or both. But we also have on our hands a schedule of conferences where we want to speak and showcase our tooling, we also have a pretty robust internal set of technical training (which we may open to the world one day), we closely work with companies and the community on the adoption of snaps, and constantly brainstorm ideas and solutions on how to make the entire ecosystem better, friendlier and more useful both to developers and end users.
There we go. A glimpse into the world of the Craft team. If you’d like to learn more, or perhaps even talk to the team, you may want to join the public Snapcraft, Charmcraft and Rockcraft Mattermost channels. This is a good opportunity to ask any questions, bring interesting problems and proposals to the team, discuss the development of the tooling, or say a nice word. We appreciate feedback, and any chance to make our products more relevant to its target audience. Until next time.
Photo by Nick Karvounis on Unsplash.