X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Thu, 9 Jul 2015 16:38:24 +0200 (CEST) X-X-Sender: igor2 AT igor2priv To: geda-user AT delorie DOT com X-Debug: to=geda-user AT delorie DOT com from="gedau AT igor2 DOT repo DOT hu" From: gedau AT igor2 DOT repo DOT hu Subject: Re: [geda-user] Back annotation (was: developer excitement?) In-Reply-To: Message-ID: References: <44FED82A-8277-427B-87A8-FBC5E9A3D0E5 AT noqsi DOT com> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Reply-To: geda-user AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-user AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Thu, 9 Jul 2015, Roland Lutz wrote: > On Thu, 9 Jul 2015, John Doty wrote: >> If you?re just making changes until a diff shows nothing, it doesn?t matter >> whether you make them upstream or downstream. Just quit when you have a >> match! > > This sounds reasonable to me. So the common denominator is to load a "target > netlist" into gschem and show the differences between the current state and > the target state, either by highlighting them in the schematic or by showing a > diff? This shouldn't be too difficult to implement. On gschem's side, I think so. Although things could get a little more tricky with multipage schematics, hierarchical schematics, buses, and so on. > >> nearly all of the unnamed nets changed their names in this case > > A clever diff algorithm would have to compare connectivities independently of > net names, so the remaining net name changes could easily be ignored. Good point about nets. A separate issue is attributes; replacing the footprint during layout (common in my practice) is actually a change in the attribute in gschem. For the first glance, as an user, I'd be happier if it went automatically, but I have corner cases where it could break slightly or terribly. Example for the latter is my special gsch2pcb variant for breadboards; there I can have multiple footprint attributes (with different attribute names) and my gnetlist variant decides which one to use (tru-hole for breadboard modelling and smd for the final board). If I wanted to back annotate a footprint change automatically, the back annotation script would need to understand this mechanism. This suggests the obvious: back annotation glue scripts should be external and easy to replace. We can avoid language-lock-in with John's idea I also support: design a good and well documented netlist/attribute-changes language for back annotation, so anyone can code their own scripts in whatever language they prefer. An alternative to tricky back annotation scripts: if attribute changes don't happen automatically, nothing gets messed up (but the user has to spend more time manually changing things on the sch). Maybe this could be a setting somewhere. Regards, Igor2