pinchord-18 Build Process

Pinchord · pinchord.git · Tickets · Changelog

A Pinchord Ticket (Triaged):

Ticket · History

Git branch: build-process

Att: attachment: build process

While this page is a lot about Javelin, which has been dropped, it is not strictly, so it should be kept and reworded.

Symptoms

Pinchord

Pinchord has a long and arduous build process that is not documented anywhere. This causes a lot of friction in shipping out updates, and often leads to things being forgotten and being patched on later.

Derivations

As talked about in pinchord-14 Chords Format, pinchord derivations are currently fragmented across Plover and Javelin. Pinchord sits on these 2 steno engines, but people almost exclusively use one or the other. It is unreasonable to expect a derivation author to go through the build process that I do for the engine that they don't use.

This fragmentation of derivations harms adoption and leaves derivation authors with a poor choice of either wasting their own time, or making their system inaccessible to half of its potential users.

Problem

Potential Solutions

Have a unified build process that takes a set of input files, such as the existing chords.edn, and generates the Plover plugin and Javelin files - and later, firmware images. See attachment: chords format implementation for more about what this might look like.

Implementation

I think the best way to implement this would be to rewrite the existing generate-dictionary.clj, test for parity, and then start generating more files from chords.edn.

generate-dictionary.clj currently bundles a lot of assumptions about Pinchord, so it will need to be updated.

Sub-things: