Skip to content

Use excluded-component terminology while retaining legacy flags - #575

Draft
Metis-dot wants to merge 2 commits into
openscopeproject:masterfrom
Metis-dot:docs/clarify-kicad-virtual-filter-561
Draft

Metis-dot wants to merge 2 commits into
openscopeproject:masterfrom
Metis-dot:docs/clarify-kicad-virtual-filter-561

Conversation

@Metis-dot

@Metis-dot Metis-dot commented Oct 1, 2026 •

Copy link
Copy Markdown

AI-assisted contribution related to #561, updated in response to maintainer feedback. Current implementation: 716d0c1.

Summary

  • Add --no-filter-excluded and --filter-excluded, with help explaining modern KiCad's Exclude from BOM setting and the Virtual attribute used by older KiCad versions and other parsers.
  • Keep --no-blacklist-virtual and --blacklist-virtual supported as deprecated aliases, with help naming their replacements.
  • Rename the checkbox to Filter excluded components. Its tooltip explains the filtering semantics, retains the former Blacklist virtual components wording and clarifies that Unspecified alone does not exclude a footprint.
  • Preserve the existing INI key, configuration member, argparse destination, checkbox object name, default-enabled filtering and last-option-wins behavior. Component-filtering and ECAD parser implementations are unchanged.
  • Keep wxFormBuilder XML and generated Python label/tooltip text synchronized; add focused configuration tests.

Validation

  • Seven CPU unittest tests passed on Python 3.12.14, covering defaults, 84 ordered combinations of new/deprecated flags, both legacy INI values and CLI overrides, component filtering, help text and exact Python/FBP consistency.
  • The actual headless CLI --help rendered successfully. The existing module-import test was also invoked directly in headless CLI mode.
  • An independent reviewer passed 22 runs through CLI main() with PCB parsing and output generation stubbed, checking INI loading and mixed flag ordering.
  • Changed Python sources parse with Python 3.8 grammar; git diff --check passed.

Verification limits

KiCad/pcbnew and wxPython were unavailable locally. KiCad 8/9 board integration, actual GUI rendering and the full upstream hatch/pytest suite were not run locally. wxFormBuilder source/generated text was synchronized manually and checked statically; wxFormBuilder regeneration was not run.

The immediately checked upstream Test workflow for this head stopped at action_required with zero jobs executed. Full upstream CI remains unverified.

@qu1ck

qu1ck commented Oct 2, 2026

Copy link
Copy Markdown
Member

I would rather address this by moving to new terminology and marking old flags as deprecated (old wording in a tooltip).

  1. Mark --*blacklist-virtual as deprecated. Add --no-filter-excluded which does the same, add explanation in description that for old kicad and other parsers it looks at virtual attribute.
  2. Rename checkbox in dialog to "Filter excluded components", add a tooltip with same explanation as for the flag.

Deprecated flags can be dropped in next major version.

Retain legacy flags and INI compatibility; synchronize dialog terminology
and add CPU configuration tests. AI-assisted contribution.
@Metis-dot

Copy link
Copy Markdown
Author

@qu1ck Updated in 716d0c1. Added --no-filter-excluded and --filter-excluded; the old --*blacklist-virtual flags are deprecated aliases and remain supported. Existing INI keys, default filtering and last-option-wins behavior are preserved.

The checkbox now reads “Filter excluded components”; its tooltip retains the old wording and explains modern KiCad exclusion versus the Virtual attribute used by older KiCad/other parsers. FormBuilder and generated Python match.

Seven CPU unit tests and headless CLI --help pass. I couldn't test the KiCad/wxPython GUI or KiCad integration locally. This is an AI-assisted contribution.

@Metis-dot Metis-dot changed the title Clarify KiCad virtual-component filtering help Use excluded-component terminology while retaining legacy flags Oct 2, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants