489 Commits

Author SHA1 Message Date
Marek Roszko
5029c2e0e8 Add lost cvpcb addition 2025-01-05 20:43:31 -05:00
Marek Roszko
ae0dc97929 Add qa for cli sch erc 2025-01-04 22:32:53 -05:00
Marek Roszko
02b3d03c23 Fix ctest for windows with env shim that is disabled for non windows, for now.
Also stuff a dummy fontconfig file to silence the dumb error on stdout, which interferes with testing
2025-01-04 22:08:58 -05:00
Jon Evans
7db75e4f50 API: expand board stackup serialization 2025-01-04 15:15:51 -05:00
Jon Evans
722ffa1c66 Update magic_enum to v0.9.7 2025-01-04 13:40:11 -05:00
Seth Hillbrand
074e6df3bc Revert "Move thread pool to singleton class"
This reverts commit 361f61a02380881efb59b1cebfdc3e73322b3d3c.
2025-01-03 21:22:44 -08:00
Seth Hillbrand
361f61a023 Move thread pool to singleton class
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started.  Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.

The singleton class can be extended to provide single instance
guarantee for any element across kifaces
2025-01-03 13:51:11 -08:00
JamesJCode
0c76b723b4 Add ERC QA for wire bus entry unconnected / off grid 2025-01-03 18:13:30 +00:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Jon Evans
19c748048c API: Add some board editor appearance settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18269
2024-12-29 22:10:01 -05:00
JamesJCode
dfe0d6345b Another go at supressing FOOTPRINT field on FOOTPRINT objects 2024-12-28 21:57:35 +00:00
JamesJCode
5ff21f9c2d Add ki::any and ki::any_cast for any_casts across translation units
ki::any is a standards-compliant implementation, based on the GCC
standard library. However, it uses type_info::hash_code() to check
the validitiy of a ki:any_cast, rather than comparing the type_info
objects directly. This comparison, used in the standard
implementations, is fragile across translation unit boundaries when
built with Clang.
2024-12-27 17:28:27 +00:00
Seth Hillbrand
e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
JamesJCode
3800bae281 Enforce thread safety in clearance and creepage checks
Previously, these checks injected a custom handler to add graphic
objects to a DRC marker. This was not thread-safe and was causing
non-deterministic crashes. The DRC reporting methods now accept
a customer handler which is called on the newly created
PCB_MARKER within the commit context. This defaults to nullptr
for DRC checks which do not require graphics or other additional
processing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19282
2024-12-23 18:10:47 +00:00
JamesJCode
98b204aab1 Fix up DRC QA 2024-12-23 18:06:19 +00:00
Seth Hillbrand
66ee4a1ddd Fix up Annular ring check
- Remove bespoke collide routine.  We should never rewrite these instead
  of using the geometry library
- Optimize check by creating unified geometry before colliding
- Make extra variable that we don't need but makes cherry-picks easier
  (min/maxAnnularWidth)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19325

(cherry picked from commit a611c72c27e1000afb385cc230f1c288309e4c16)
2024-12-23 08:38:45 -08:00
Jeff Young
eee28aa06a Clean up fields autoplacement control architecture.
Also adds a mode for AUTOADDED fields.

Also fixes a couple of bugs where a manual-level autoplaced
symbol would get reset back to auto-level when autoplaced.
2024-12-23 14:30:17 +00:00
Jeff Young
7da8b42206 Push more functionality to SYMBOL.
(This will allow us to run the fields autoplacer on SYMBOLs,
including LIB_SYMBOLs.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19247
2024-12-22 20:21:24 +00:00
Jeff Young
a048acf9db Don't assume all things with mask layers are in a footprint.
In particular, tracks can now have mask layers.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18878
2024-12-20 22:21:54 +00:00
JamesJCode
3a7aa7b660 Ensure deterministic ordering in cadstar netlist exporter
Also re-enable checking of exporter in qa_cli
2024-12-20 11:50:23 +00:00
Seth Hillbrand
41d4a8caab Adjust DRC clearance for net ties
Items that are part of net ties (pads and copper shapes that connect to
them) should allow connections from any net in the tie.  This prevents
clearance errors from being generated for matched nets

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14008
2024-12-10 15:54:47 -08:00
Seth Hillbrand
ad985aff9d Check secondary driver names when merging
If two nets are joined by a global power pin but both have global labels
that override the net name, we still want them to be merged.  This
checks for all net names in the drivers when looking for subgraph
merging candidates

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18092
2024-12-10 15:54:47 -08:00
Jon Evans
603c793f7e Fix off-by-one in LSET::Flip
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19265
2024-12-08 08:26:40 -05:00
jean-pierre charras
619c116a2e Fix a drc issue and a QA test after commit 57127f7d 2024-12-08 09:47:16 +01:00
Dhineshkumar S
57127f7d12 Add DRC warning for incorrectly mirrored text 2024-12-08 05:00:38 +00:00
Jon Evans
57aeb8dcd4 Fix 5cdff00e for non-mac 2024-12-01 17:17:34 -05:00
Jon Evans
92ef577aa9 API: Enable strict QA for Footprint
Since 9b1b3187 removed the Footprint field missing from the API,
we can now do full testing.
2024-12-01 16:02:32 -05:00
Jon Evans
5cdff00e98 Fix qa_cli running on macOS with the KICAD_RUN_FROM_BUILD_DIR flag set 2024-12-01 15:50:40 -05:00
Jon Evans
13625daeca API: Implement dimension serialization 2024-11-30 17:22:15 -05:00
Jon Evans
49d5e64428 API: Add initial definitions for dimensions 2024-11-29 21:18:51 -05:00
John Beard
44ca798925 Pcbnew IO: Use fill yes/no universally
There was a motion towards fill solid/none around
2020 (c.f. b31e97cfeda9b76a165854b98974d253e221e93b),
but it was only for PCB_SHAPE.

Use yes/no universally (solid/none parsing the same way
as currently). In future if there are other fill modes
for these shapes, they can use the same pattern as ZONEs
do now: (fill yes) (hatch etc ....) or similar.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/15232
2024-11-29 20:17:51 +08:00
Jeff Young
6686ade45b Remove (somewhat atrophied) manual pretty printing.
Also fixes a bug where the pretty printer didn't insert
linebreaks for a forest (it assumed a single tree root).

Also further regularises bool and quote formatting.
2024-11-28 11:08:16 +00:00
John Beard
ed9e66399e Pcbnew: negative layers are not copper layers, even or not
UNDEFINED_LAYER is -2, so simple checking evenness isn't
enough to check if it's copper or not. Notciable when the
FABMASTER import puts things on UNDEFINED_LAYER while it's
processing items.
2024-11-28 04:36:12 +08:00
Jon Evans
af91519e06 API: Implement Deserialize for ZONE 2024-11-23 12:06:54 -05:00
Jon Evans
62df972c2d API: implement serialization for ZONE 2024-11-23 11:04:34 -05:00
Daniel Treffenstädt
81ecccb21c Fixed: Fewer ERC items for pin connection conflicts in larger set of conflicting pins 2024-11-22 23:26:31 +00:00
Jon Evans
dd65a44dd6 API: Add initial spec for ZONE serialization 2024-11-21 22:09:14 -05:00
Jan Wichmann
30cebd17e0 Added ERC check for directive labels
Checks to see if directive labels are connected in the same manner that other labels are

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19075
2024-11-20 18:11:05 +00:00
Jon Evans
732f03753d Add drill shape to padstack API 2024-11-18 00:12:34 -05:00
jean-pierre charras
e1ba930900 Fix QA build 2024-11-12 15:03:11 +01:00
Seth Hillbrand
7916b1ddb8 Fix error in PointInside
If we are checking a point that is inline with multiple segments, we
were counting both the entry and exit as crossings, leading to points
inside a polygon being registered as outside.  Changing the conditional
to only catch one crossing as required.

Adds a QA check to ensure that this remains fixed

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18377
2024-11-07 09:09:00 -08:00
JamesJCode
231fa952fb Add auto-generation of placement rules areas from component classes 2024-11-03 21:43:55 +00:00
Tomasz Wlostowski
728e185b81 qa: make PNS test pass again 2024-11-02 19:59:09 +01:00
Alex Shvartzkop
0581423d50 Show failing strings in HTMLEscape test. 2024-10-30 09:38:18 +03:00
Alex Shvartzkop
19af37a143 Fix/improve HTML unescape function.
Also adds some tests.

(cherry picked from commit 6ae334a7517f41498f395004444b8fbb5423ce17)
2024-10-30 08:24:43 +03:00
John Beard
2c2ff64911 Allow incrementing different parts of strings with modifiers
Primary increment is the right most bit, secondary is the next
rightmost. So you can increment 'A1' to 'A2' or 'B1' with
Shift-Alt-Scroll and Ctrl-Alt-Scroll respectively.
2024-10-26 16:01:07 +08:00
Seth Hillbrand
64ff47c594 Handle edge cases in kissing zones
When zone kisses happen from different polygons, we need to be careful
not to use the different polygons for ear comparisons or prev/next
pointers

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18654
2024-10-24 17:40:25 -07:00
JamesJCode
660b7171f6 Fix display messages for multi netclass DRC QA checks 2024-10-24 22:25:37 +01:00
JamesJCode
db072a524c Consolidation of Component Class implementation
- Moves functionality to FOOTPRINT class from BOARD_ITEM
- Renames DRC property from ComponentClass to Component_Class
- Adds DRC checks QA for A.Component_Class and a.hasComponentClass('x')
2024-10-24 20:11:35 +01:00
John Beard
201b60c670 Point editor single-corner chamfer tool
Come up with a plausible default chamfer size, rather
than prompting every time with a modal (and then you have
to handle when the chanfer doesn't fit). This could be
changed if it's more annoying this way. But if we had
proper edge-dragging in zones, probably would be better
than setting a chanfer manually.

Also fix the GetNeighbourIndexes which seems to have
always been broken (but is not actually used by anything at
present).

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/16771
2024-10-13 11:10:49 +08:00