macOS is now field-tested and working; the README platform notes say so instead of untested. Linux remains audited-only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -30,14 +30,14 @@ SWIG API. Requires KiCad **10.0.1+**.
|
|||||||
|
|
||||||
## Setup (one-time)
|
## Setup (one-time)
|
||||||
|
|
||||||
The plugin is developed and tested on **Windows**. **Linux and macOS
|
The plugin is developed and tested on **Windows**; **macOS works**
|
||||||
are expected to work but are untested so far** — the code and the
|
(field-tested on KiCad 10 after a round of mac-specific fixes).
|
||||||
dependency stack have been audited for all three OSes (KiCad builds
|
**Linux is expected to work but is untested so far** — the code and
|
||||||
the plugin a private Python venv from `requirements.txt` on every
|
the dependency stack have been audited (KiCad builds the plugin a
|
||||||
platform, from pre-built wheels only, no compiler needed), but nobody
|
private Python venv from `requirements.txt` on every platform, from
|
||||||
has run the plugin there yet. Reports welcome! Steps 1–4 are the same
|
pre-built wheels only, no compiler needed), but nobody has run the
|
||||||
everywhere; OS specifics are spelled out per step and in *Platform
|
plugin there yet. Reports welcome! Steps 1–4 are the same everywhere;
|
||||||
notes* below.
|
OS specifics are spelled out per step and in *Platform notes* below.
|
||||||
|
|
||||||
1. **Enable the API server**: KiCad → Preferences → Plugins → check
|
1. **Enable the API server**: KiCad → Preferences → Plugins → check
|
||||||
*Enable KiCad API*.
|
*Enable KiCad API*.
|
||||||
@@ -78,15 +78,15 @@ notes* below.
|
|||||||
- **Windows** is the development and test platform — everything in
|
- **Windows** is the development and test platform — everything in
|
||||||
this README was exercised here. KiCad's bundled Python is 3.13, so
|
this README was exercised here. KiCad's bundled Python is 3.13, so
|
||||||
the venv gets the current dependency stack.
|
the venv gets the current dependency stack.
|
||||||
- **macOS** — **untested** (audited only: dependency wheels, paths and
|
- **macOS** — **works** (field-tested on KiCad 10). Requires
|
||||||
Python-version compatibility were checked, the plugin was never run
|
macOS 12+ (KiCad's own minimum; Intel and Apple Silicon — the dmg
|
||||||
on a Mac). Requires macOS 12+ (KiCad's own minimum; Intel and Apple
|
is universal). KiCad's bundled Python is **3.9**, so pip resolves
|
||||||
Silicon — the dmg is universal). KiCad's bundled Python is **3.9**,
|
an older stack (numpy 2.0, scipy 1.13, matplotlib 3.9,
|
||||||
so pip resolves an older stack (numpy 2.0, scipy 1.13,
|
PySide6 6.9/6.10); the plugin code is kept 3.9-compatible (guarded
|
||||||
matplotlib 3.9, PySide6 6.9/6.10) that the plugin code is kept
|
by a test) and the suite is also run against that older stack.
|
||||||
compatible with. Expect plot and dialog windows to open **behind**
|
Plot and dialog windows may open **behind** the KiCad window (they
|
||||||
the KiCad window (they are raised best-effort) — check the Dock if
|
are raised best-effort) — check the Dock if nothing seems to appear
|
||||||
nothing seems to appear after a solve.
|
after a solve.
|
||||||
- **Linux** — **untested** (audited only, same caveat). The venv uses
|
- **Linux** — **untested** (audited only, same caveat). The venv uses
|
||||||
the system Python (3.9+), so the stack matches your distribution.
|
the system Python (3.9+), so the stack matches your distribution.
|
||||||
On **ARM64 (aarch64)** there are no pyamg wheels —
|
On **ARM64 (aarch64)** there are no pyamg wheels —
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
The plugin now works on macOS. Results are unchanged from 1.2.2 for
|
||||||
|
the same board and settings - nothing in the numerics was touched;
|
||||||
|
this release is platform fixes and per-OS documentation.
|
||||||
|
|
||||||
|
macOS (field-tested on KiCad 10):
|
||||||
|
|
||||||
|
- Fixed a crash on launch. KiCad's macOS builds bundle Python 3.9,
|
||||||
|
and one module's type annotations were evaluated at import there
|
||||||
|
("unsupported operand type(s) for |: 'type' and 'NoneType'"). The
|
||||||
|
plugin now runs on 3.9, and a test walks every shipped module so
|
||||||
|
the incompatibility cannot silently return.
|
||||||
|
- Fixed every figure - the error figure included - refusing to render
|
||||||
|
with "Cannot load backend 'TkAgg' ... as 'qt' is currently
|
||||||
|
running". macOS' bundled Python ships tkinter, so matplotlib
|
||||||
|
preferred Tk while the selection dialog had already made the
|
||||||
|
process a Qt one. Qt (PySide6, a hard dependency) is now always
|
||||||
|
the first choice on every platform.
|
||||||
|
- A board in a read-only location - such as the demo projects opened
|
||||||
|
straight from the mounted installer image - no longer kills the run
|
||||||
|
when the results directory cannot be created next to the board.
|
||||||
|
Results fall back to a temp directory and the path is printed to
|
||||||
|
the Messages panel.
|
||||||
|
- The test suite additionally runs against the stack a Mac plugin
|
||||||
|
environment actually resolves (Python 3.9, numpy 2.0, scipy 1.13,
|
||||||
|
matplotlib 3.9, PySide6 6.10) - 140 tests on both stacks.
|
||||||
|
|
||||||
|
Linux:
|
||||||
|
|
||||||
|
- On ARM64 (aarch64) the plugin environment could never build: pyamg
|
||||||
|
publishes no wheels for that platform, KiCad installs wheels only,
|
||||||
|
and one unresolvable requirement fails the whole environment.
|
||||||
|
pyamg is now skipped there and the solver falls back to Jacobi-CG -
|
||||||
|
same results, noticeably slower on large grids. Linux as a whole
|
||||||
|
remains untested; reports welcome.
|
||||||
|
|
||||||
|
Documentation:
|
||||||
|
|
||||||
|
- Setup now gives dedicated instructions per operating system: which
|
||||||
|
interpreter path to check, how to deploy, and where the plugin's
|
||||||
|
Python environment lives on Windows, macOS and Linux (for the
|
||||||
|
delete-and-restart recovery). A platform-notes section records what
|
||||||
|
is actually tested on each OS and what to expect there.
|
||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
},
|
},
|
||||||
"versions": [
|
"versions": [
|
||||||
{
|
{
|
||||||
"version": "1.2.2",
|
"version": "1.3.0",
|
||||||
"status": "stable",
|
"status": "stable",
|
||||||
"kicad_version": "10.0",
|
"kicad_version": "10.0",
|
||||||
"runtime": "ipc"
|
"runtime": "ipc"
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
# the dependency list there in sync with [project.dependencies].
|
# the dependency list there in sync with [project.dependencies].
|
||||||
[project]
|
[project]
|
||||||
name = "fill-resistance"
|
name = "fill-resistance"
|
||||||
version = "1.2.2"
|
version = "1.3.0"
|
||||||
description = "DC resistance of copper zone fills and traces between two contacts (KiCad 10 plugin)"
|
description = "DC resistance of copper zone fills and traces between two contacts (KiCad 10 plugin)"
|
||||||
license = "GPL-3.0-or-later"
|
license = "GPL-3.0-or-later"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fill-resistance"
|
name = "fill-resistance"
|
||||||
version = "1.2.2"
|
version = "1.3.0"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "kicad-python" },
|
{ name = "kicad-python" },
|
||||||
|
|||||||
Reference in New Issue
Block a user