Output jobs and releases
Named output jobs and gated releases with a version stamp, notes and a zip.
An output job is a named list of output steps kept in the .kicad_pro (softforge.outputJobs). Without your
own, a project has fab (Gerbers, drill), assembly (position files, BOM, an assembly PDF of F.Fab and
B.Fab with the outline), docs (documentation set and one board PDF with a page per layer), panel (the
panel’s outputs), webviewer (the static web viewer folder) and all (every output, the web viewer included). Step kinds: gerber, drill, position,
bom, pdfSch, pdfPcb, svg, dxf, step, glb, odb, ipc2581, ipcd356, netlist, docset,
panel, reqReport, webviewer (the web viewer folder; skipped with a notice when the viewer bundle is
missing) and custom (a shell command with ${board},
${schematic}, ${out} placeholders, or a registry command id with args). File names follow a template,
${project}-${version}-${kind} by default (also ${job}, ${date}, ${variant}); a job writes into its own
folder, manifest.json lists every file with its size and SHA-256, and zip: true packs the folder. Run a job
from the Plot dialog’s Output jobs section (pick, Run, progress, Open folder) or with edsnx jobs run fab --out out.
Electronics Designer: Release… opens the Release dialog: the version (the next patch is suggested), the checks gate — ERC, DRC (errors and unrouted), requirements, a DFM profile, test access %, panel DRC and a clean git working tree — each ✓ or ✗ with its detail, the output jobs to run and their contents, and Notes. Fix gate opens the first failing check; Release (tag v…) is enabled when the gate passes (or with Force). A release:
- stamps the version: the
REVISIONtext variable (title blocks show it as${REVISION}),softforge.release.versionin the.kicad_pro, and every drawing of the project: the board, every schematic sheet (the hierarchy and the other sheets of the folder), the documentation sheets of*.kicad_doc.jsonand the generated panel boards. A file with a title block gets itsrev; a file without one gets a plainRev <version>text (board: on F.Fab under the outline’s lower-left corner; sheet: the page’s lower-left corner), replaced by the next release.release.jsonlists each file and how it was stamped (stamps); - runs the jobs into
releases/<version>/(by default fab, assembly, docs and webviewer); - writes
release-notes.md: the commits since the lastv*tag, the board changes against that tag (the review diff: added, removed, moved, changed items), the gate table and the outputs, with a link to the web viewer’sindex.htmlfirst. It is plain Markdown: edit it afterwards; - writes
release.jsonand<project>-<version>.zipwith everything; - with Commit stamped files (
--commit, off by default) commits the stamped files (.kicad_pro, board, schematics, panel boards) as “Release”, and with Tag ( --tag) runsgit tag -a v<version>(git errors are reported). Without--committhe stamped files stay modified in the working tree, so the tag points at the commit before the stamp and the next release’sgitgate fails until you commit them. Thereleases/folder is never committed: add it to.gitignoreor commit it yourself.
The Project view lists releases under Releases (notes, package, job folders).
edsnx release plan --version 1.4.0 --gate drc,erc,dfm:jlcpcb-4,git # the gate only, nothing written
edsnx release run --version 1.4.0 --jobs fab,assembly,docs,panel --gate drc,erc,dfm:jlcpcb-4 --commit --tag
edsnx release list
edsnx jobs listGate tokens: erc, drc, req, dfm (active profile) or dfm:<profile>, test:<min %>, panel, git,
none. A failing gate refuses the release and names the failing entry; --force releases anyway.