Hi Andras- Push your branch to a draft Merge Request for discussion.
In general, relaxing this sort of antiquated constraint is a good thing. However, there are many places that KiCad expects a prefix+number, so ensuring that you've addressed them all will be key to accepting this change. Some things to consider: How do you reannotate a schematic? If we know that a refdes ending in a number is annotated, then the number can be stripped and re-assigned. If we don't, then we need some other way to know what the proper prefix is. This would entail storing the prefix separately from the reference (see https://gitlab.com/kicad/code/kicad/-/issues/12079 for some more discussion) Seth [image: KiCad Services Corporation Logo] Seth Hillbrand *Lead Developer* +1-530-302-5483 Long Beach, CA www.kipro-pcb.com [email protected] On Tue, Sep 3, 2024 at 11:46 AM Andras Tantos <[email protected]> wrote: > Hello all! > > My name is Andras Tantos. I'm new to this group, but a relatively > long-time user of KiCAD. I would like to suggest a change to the way KiCAD > determines if annotation is needed for a schematic. > > *Right now* the behavior is that if any reference ends with a '?' or not > end with a number, the schematic is deemed not fully annotated. Since only > fully annotated schematics can be synchronized, this prevents updating the > PCB from the schematic. > > *The suggested new behavior* would be to relax this and only deem the > schematic unannotated if more than one component has the same reference, or > if any of them have a terminal '?'. > > *Examples:* placing a single capacitor with reference 'C' would be OK. > Placing a second capacitor with the same reference would now force > annotation. If the reference of the first capacitor is changed to > 'BYPASS_C', the schematic would be considered fully annotated. If a > capacitor with reference 'C?' is placed, the schematic is considered > unannotated until the name is changed, even if only a single such entity > exists. > > Obviously multi-part symbols allow replication of reference. So, if U_CPU > has two units (A and B), that's fine. If there are two unit A-s with the > same reference (U_CPU again for the sake of argument) that would trigger > annotation. > > *Why?* This annotation logic aligns better with other packages such as > Altium. Apart from the user-education part, this is important for imported > projects: these schematic and PCB files can violate assumptions about > component naming after import and would be impossible to synchronize > further changes between PCB and schematic. > > *Why not?* It's a change to existing behavior. Things that didn't work > before would start working and can cause confusion. Libraries are usually > developed with no '?' in the reference name, so as long as a single > component is placed on the schematic no annotation would be triggered. This > could potentially be confusing for users. > > I have created a fork where I implemented this change. It seems to be > working (CI is still running) and is ready for a pull-request. I wanted to > have a discussion about it before submitting it though. > > Thanks, > Andras > > -- > You received this message because you are subscribed to the Google Groups > "KiCad Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/a/kicad.org/d/msgid/devlist/6af07dfc-2ccb-46d2-9fb5-73bc7516ac95n%40kicad.org > <https://groups.google.com/a/kicad.org/d/msgid/devlist/6af07dfc-2ccb-46d2-9fb5-73bc7516ac95n%40kicad.org?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "KiCad Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/kicad.org/d/msgid/devlist/CAFdeG-pB5iWAmRgLv66jW2uyjTtdWu76Ov89Mx1op1CvxjxYqA%40mail.gmail.com.
