⚠️ The new ZFordDev Documentation Portal is currently under active development. Search is not yet enabled and some pages are still missing. Please bear with us while we transition to the new system.

Crafty-Snap (R&D Specification)

Crafty‑Snap is an experimental tool designed to make Snap packaging far less painful. Instead of rewriting your project metadata into Snapcraft’s strict format, Crafty‑Snap reads your existing files and builds a matching snapcraft.yaml for you.


The Core Problem

Packaging for the Snap Store is… a lot. The rules are strict, the sandboxing model is complex, and the documentation often feels scattered. Most developers already maintain detailed metadata in files like pyproject.toml, Cargo.toml, or package.json. Rewriting all of that into a Snapcraft config shouldn’t be necessary.

Crafty‑Snap aims to fix this by automatically translating your project’s existing metadata into a working, compliant snapcraft.yaml. The goal is simple: use the information you already have instead of making you duplicate it.


Target Parse Roadmap

Crafty‑Snap is being built in stages, adding support for major ecosystems one at a time:


Current Implementation & R&D Flow

Crafty‑Snap is still in early research and prototyping. The current version sets up the command‑line interface, routes arguments, and generates placeholder scaffolding so you can see the direction the tool is heading.

Initialization & Quick Start

# Clone the tracking tree
git clone https://github.com/ZFordDev/Crafty-Snap.git
cd Crafty-Snap

# Spin up an isolated python environment
python3 -m venv .venv
source .venv/bin/activate

# Install the tool in editable development mode
pip install -e .

# Fire the placeholder init engine
crafty-snap init

Expected Sandbox Outputs

Running the early CLI gives you a simple R&D message:

Crafty-Snap: R&D for Snapcraft packaging.
Nothing works yet, but it's a start.
Stay tuned...

It also generates a basic scaffolding file to show how the future YAML builder will behave:

# Generated by Crafty-Snap (R&D mode)
name: example-app
base: core22
version: '0.1'
summary: Example snap generated by Crafty-Snap
description: |
  This is a placeholder snapcraft.yaml generated during R&D. 
  You will need to wait for the real thing to be implemented.