Replies: 1 comment
|
This is the most useful thing anyone has written about Konnect's KiCad-version exposure, mainly because of the distinction you drew and held to throughout: absent from the CLI is not the same as removed in KiCad 10. I checked each finding against the source and acted on the ones that were cheap and unambiguous. Corrected immediately — we were stating something falseYou are right and Konnect was wrong in three places:
Fixed in
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
KiCad 10 compatibility, deprecation, and removal audit
Published as Konnect discussion #224.
Research date: 2026-08-15
Konnect revision examined:
c74ebb01ee2376c53ce29cefe51a870d69d88130KiCad baseline: 10.0.5 (released 2026-07-22). KiCad 10.0.0 was released 2026-03-20.
Executive conclusion
There is no single official “everything removed in KiCad 10” page. The defensible list comes from comparing the official KiCad 9 and 10 CLI manuals and command-registration source, then separately checking the IPC API, legacy
pcbnewPython bindings, plugin manifests, and file-format writers.For Konnect, the confirmed KiCad 10 CLI removals are low impact: the singular
pcb export gerbercommand and the deprecated--plot-invisible-textoption disappeared, and Konnect uses neither. The repository's claims that KiCad 10 removedsch annotate,pcb sync, and Specctra DSN/SES CLI commands should be corrected: none appears in the official KiCad 8, 9, or 10 CLI command set. They are absent CLI capabilities, not proven KiCad 10 removals.Freerouting itself does work with KiCad 10 through the KiCad Freerouting ActionPlugin. A live Windows test with plugin version 2.3.0 successfully exported DSN through
pcbnew.ExportSpecctraDSN, ran Freerouting, imported the resulting session throughpcbnew.ImportSpecctraSES, and refreshed the PCB editor. The defect is narrower: Konnect's MCPautoroutehandler is disabled even though its README, registry, and tool description advertise it. This must not be reported as a missing KiCad 10 or Freerouting capability.The important forward-compatibility issue is KiCad 11: KiCad officially says the legacy SWIG
pcbnewPython bindings are removed there. That breaks Konnect'splugin/__init__.pyActionPlugin launcher/settings UI. Konnect's separate executableplugin.jsonIPC plugin follows the replacement architecture and should remain viable, but it does not by itself reproduce all of the legacy dialog and process-lifecycle behavior.Discussion-ready findings
pcb export gerber(singular)pcb export gerbers.export_gerberalready calls pluralgerbers.--plot-invisible-textpcb export hpglandsch export hpgl--pen-sizeand--originare also deprecated/no-op.sch export bom --include-excluded-from-bom--mode-multi.export_svg_pcbpasses no mode and treatsoutputas one file. This is a real future behavior risk.--mode-multi.--layers--layersargument containing a comma-separated list.--layers <layer>arguments for PDF and SVG. Parser behavior was not live-tested here, so this is a contract mismatch, not a confirmed failure. DXF correctly joins layers.sch annotate,pcb sync, Specctra DSN export/SES importDEV.md, theautoroutehandler, and a manufacturing diagnostic call the CLI operations “removed in v10.” Konnect's MCPautorouteis advertised but always errors; the independently installed KiCad plugin works.kicad-cli(not proven removed). Implement a Konnect bridge to the working plugin/API path or labelautorouteunavailable; do not describe Freerouting itself as unavailable.pcbnewSWIG Python API /ActionPluginplugin/__init__.pyimportspcbnew, subclassespcbnew.ActionPlugin, and implements the settings/start-stop UI. It will not load in KiCad 11.plugin.jsonIPC actionplugin/plugin.jsonalready declaresbin/konnect.exe. It is architecturally compatible with the replacement model.RunAction/ UI action stringsTOOL_ACTIONnames are not an API: names may change or disappear during refactoring.run_actionclient method, although no current MCP handler was found calling it.TextAttributes.visiblekonnect-ipc/src/builders.rs.NetCode/Net.code.kicad_pcbS-expression netsadd_netintentionally cannot add an empty top-level table entry to a KiCad 10 board.Evidence and source notes
CLI commands and options
The KiCad 9 CLI manual marks singular
pcb export gerberfor removal in 10 and marks--plot-invisible-textdeprecated/no-op. The KiCad 10 CLI manual documents the surviving command surface, the nonfunctional HPGL stubs, and the deprecated BOM flag. The KiCad 10 CLI registration source registers pluralgerbersbut not singulargerber.The absence finding for annotation, PCB synchronization, and Specctra exchange is based on all three official command inventories: KiCad 8, KiCad 9, and KiCad 10, plus the KiCad 9 and KiCad 10 registration source. This establishes “not in the documented CLI since at least KiCad 8,” not that no older release ever had a similarly named command.
These CLI absences must not be confused with GUI capabilities. KiCad's PCB editor retains the Specctra implementation in the KiCad 10
specctra_import_exportsource; PCB update from schematic is likewise an editor workflow. The issue is lack of akicad-clientry point for Konnect's current headless workflow, not lack of routing support in KiCad 10.That distinction was verified locally on 2026-08-15. The KiCad 10 PCM installation at
Documents/KiCad/10.0/3rdparty/plugins/app_freerouting_kicad-plugincontains Freerouting 2.3.0. Its log records two successful DSN-mode cycles againstPIC16F88_HDLG2416_Clock.kicad_pcb: DSN export succeeded, Freerouting completed, SES import succeeded, and the KiCad UI refreshed. The project directory also contains multiple DSN/SES routing artifacts from the earlier board workflow. This is direct evidence that the installed ActionPlugin is a functioning fallback and a candidate integration path.The SVG and DXF mode warnings are explicit in the KiCad 10 SVG exporter source and DXF exporter source. The common PCB exporter defines
--layersas a single comma-separated list incommand_pcb_export_base.cpp. The HPGL error behavior is implemented in the KiCad 10 PCB HPGL and schematic plot sources.Python, plugins, and IPC
KiCad's API and bindings overview records the SWIG deprecation, and the official
kicad-pythonproject states the concrete compatibility boundary: legacy SWIG is present in KiCad 9 and 10 and removed in KiCad 11.KiCad's add-on developer documentation describes executable
plugin.jsonactions and also records an important architecture constraint: in KiCad 9 and 10 the IPC API is GUI-only and does not expose plotting/export, so invokingkicad-clifor those jobs is the intended fallback rather than a deprecated design.The official IPC evolution rules say deprecated protobuf fields are retained for at least the current major version and may be removed at a later major release, but not a bug-fix release. The exact deprecations are in the KiCad 10.0.5
TextAttributesschema andNetschema.NetCoderemains present in the current development schema, so a specific removal release cannot yet be claimed.Typed protobuf stability does not extend to editor action names. The official
RunActionschema comment explicitly warns that these names are unstable and intended for low-level prototyping.File format
The official PCB file-format documentation explains the date-versioned header and cautions third-party writers about format ownership. For the KiCad 10 net representation, the authoritative primary evidence is the KiCad 10 PCB S-expression writer, which writes named nets on pads, tracks, and zones.
Known gaps and proposed watch list
--layersbehavior and complete Konnect CLI export suite were not. A Windows KiCad 10.0.5 smoke test should still cover every CLI wrapper Konnect registers.NetCodefields will be removed in KiCad 11. Watch each major-release schema diff rather than assigning an unsupported deadline..kicad_sch/.kicad_pcbediting has no protobuf-style compatibility guarantee. Diff the official writers and run open/save/DRC/ERC round trips for every KiCad major release.Official release references: KiCad 10.0.0, 2026-03-20 and KiCad 10.0.5, 2026-07-22.
All reactions