Hysen Labs
Open-source project
AllYarnsAreBeautiful/ayab-desktop avatar
AllYarnsAreBeautiful

ayab-desktop

The AYAB Software

100 stars40 forksPythonGPL-3.0
01
DEEP OPEN-SOURCE ANALYSIS

ayab-desktop, the software for AYAB knitting

The desktop side of the AYAB knitting project, covering a maintenance branch model, a Python 3.11 build setup, platform notes, and a CI build process that bundles firmware.

02
DEEP OPEN-SOURCE ANALYSIS

How branches are managed

ayab-desktop is the AYAB software, and the README opens with its branching model. Latest and upcoming features are developed on the main branch, while each major release gets a dedicated maintenance branch for bug fixes, security patches, and backporting, following a -maint naming convention like 0.95-maint. The goal is forward development without losing stability and long term support for older versions.

03
DEEP OPEN-SOURCE ANALYSIS

Running from source

The desktop software runs on Python 3.11. Dependencies are split into runtime dependencies in requirements.build.txt and development dependencies in requirements.txt. The repository uses pre-commit hooks, so after cloning and installing the dev dependencies you run pre-commit install to set up the git hook scripts.

04
DEEP OPEN-SOURCE ANALYSIS

Platform specific notes

Flashing firmware requires avrdude on the system, and building or running the app needs the Qt 6 system libraries, with the Qt 6 development tools as a heavy handed but simple way to get them. Communicating with an Arduino may mean adding your user to groups for USB communication rights. On macOS, Python should come from the official universal2 installer, since conda does not produce universal binaries, and the virtual environment prompt is the tell that setup worked.

05
DEEP OPEN-SOURCE ANALYSIS

Triggering a build

The test-tag convention suffixes the current date in YYMMdd format, with a letter appended if a test build already exists for that day, and test tags and releases are cleaned up manually from time to time. The tag can be pushed from your local environment or through the draft a new release button on the GitHub website.

06
DEEP OPEN-SOURCE ANALYSIS

Bundling the firmware

The CI automatically downloads a given firmware release from the ayab-firmware repository and packs it into the desktop release, with the firmware release name chosen in a manifest file in this repo. Building from source requires the firmware to exist as a compiled hex file at a specific path under resources. You can compile it and upload through something like VSCode with PlatformIO, or compile and drop it into the right directory for flashing through AYAB desktop.

07
DEEP OPEN-SOURCE ANALYSIS

Editorial conclusion

The README is written for contributors and maintainers more than end users, with the branching model and build process getting the most space. The firmware bundling step is the part that ties the desktop app to the wider AYAB project.

08
DEEP OPEN-SOURCE ANALYSIS

Official sources

09
Community notes

Community notes