@Wayne, did you have any thoughts on this iteration? > On 20 Mar 2018, at 10:22, Jeff Young <j...@rokeby.ie> wrote: > > Oh, and I don’t think this materially alters the support equation: we already > have to deal with hand-edited boards, so what’s in the file is never > guaranteed to be something Kicad put there. > >> On 20 Mar 2018, at 10:19, Jeff Young <j...@rokeby.ie >> <mailto:j...@rokeby.ie>> wrote: >> >> Hi Seth, >> >> The original version spit out log entries for skipped elements. This >> version follows the XML/browser convention of silently ignoring. Even >> though this isn’t an XML format, I think we need to recognise that we live >> in an XML world and XML processing conventions set expectations. >> >> The patch strictly checks everything for round-tripping so that there is no >> data loss. The pad stuff is really a separate issue: it was meant to be >> loose only during development and then tightened up, but the tightening step >> was forgotten. Since we don’t store pad stuff we don’t understand, it has >> to be tightened. In short: if you can round trip stuff you don’t understand >> then do so; otherwise throw. >> >> Certainly one use case is opening boards from future versions. If you edit >> them, then you’re at your own peril. This behaviour is common enough that I >> believe it is well understood (although we should obviously mention it in a >> version-check dialog). >> >> Another use case is 3rd-party tools (which might even be written as Python >> plugins) that want to carry their own stuff around in the board. These >> might even be processing/manufacturing instructions that don’t have any >> visual expression in Kicad anyway. >> >> Cheers, >> Jeff. >> >> >>> On 19 Mar 2018, at 22:51, Seth Hillbrand <seth.hillbr...@gmail.com >>> <mailto:seth.hillbr...@gmail.com>> wrote: >>> >>> Hi Jeff- >>> >>> A few questions on how you are implementing this: >>> >>> 1) How does the user know what was skipped? I can imagine team members >>> with different versions getting into difficulty, especially if the features >>> being skipped change the board layout. >>> >>> 2) You are removing strict checking for most of the board but you are >>> adding strict checking for pad options. What's the difference? >>> >>> 3) If we keep these options around but don't allow editing/removing, don't >>> we run into a risk of generating a really wonk-y board that only looks >>> wonky in a newer version of KiCad but looks fine in an older version? For >>> example, imagine we implement rounded corners as a parameter and then a >>> user with an older version of KiCad edits and saves the board. The rounded >>> corner is only visible in KiCad 6 but the user in KiCad 5 can edit the >>> board to look right to her only to have her colleague use KiCad 6 and see >>> the track violating DRC. I think that might be counter-intuitive for users >>> but maybe there's a way around it. >>> >>> In general, if I understand the use-case, this is to allow users to open >>> newer boards in older KiCad versions? Is there another use case? >>> >>> I think I can see clear to this for options like the 3d-model offset where >>> it could be either inches or mm but there isn't a difference in the actual >>> layout. Allowing general unrecognized options would seem to open up a worm >>> can in terms of support as in "Please post the KiCad version and the file >>> version in order to figure out the problem." >>> >>> -S >>> >>> >>> >>> 2018-03-18 9:46 GMT-07:00 Jeff Young <j...@rokeby.ie >>> <mailto:j...@rokeby.ie>>: >>> OK, for your guys’ (re)viewing pleasure, a patch which losslessly >>> round-trips stuff it doesn’t understand. >>> >>> >>> >>> >>>> On 16 Mar 2018, at 19:15, hauptmech <hauptm...@gmail.com >>>> <mailto:hauptm...@gmail.com>> wrote: >>>> >>>> While i would still like to see this (my) shim go in, I agree with wayne. >>>> Until/unless a less brittle approach is used for the parser, it's better >>>> to signal a problem painfully and maintain the integrity of the file. >>>> >>>> I have to admit that when i first heard the s-expressions idea I assumed >>>> that the intention was to use a lisp like virtual machine for loading and >>>> maintaining design data. I've used vm's for data storage before (lua and >>>> python), and it's great. Parsing is free and you can jam in functions and >>>> other data when needed. >>>> >>>> >>>> >>>> On 17 Mar 2018 07:17, "Jeff Young" <j...@rokeby.ie >>>> <mailto:j...@rokeby.ie>> wrote: >>>> Hi Wayne, >>>> >>>> Patch reverted. >>>> >>>> However, I think your concern is misplaced. If we want to prevent >>>> dataloss (ie: from reading a 6.0 file into 5.0), then we should warn the >>>> user based on the version string (and give them a chance to say “I still >>>> want to open”). >>>> >>>> But either way, actually failing to read the file leaves the user in a >>>> pickle (especially when it’s easy enough for them to try out a nightly >>>> that may very well be ahead of their stable). >>>> >>>> (And for that reason I think it’s important to put it into 5.0, as >>>> otherwise it won’t help until we start making 7.0 file format changes.) >>>> >>>> Cheers, >>>> Jeff. >>>> >>>> > On 16 Mar 2018, at 18:00, Wayne Stambaugh <stambau...@gmail.com >>>> > <mailto:stambau...@gmail.com>> wrote: >>>> > >>>> > Jeff, >>>> > >>>> > Please revert this patch. Any changes to the board file parser and/or >>>> > formatter need to be discussed before the changes are committed. It has >>>> > been the intention that the board parser be pendantic by design to >>>> > prevent data loss by ignoring unknown formatting. Allowing anything >>>> > outside of the expected formatting in the board file is not something >>>> > that I want to introduce without some discussion. Even should we decide >>>> > to accept this patch, I would prefer we put it off until v6. >>>> > >>>> > That being said, the patch fails to build on windows with following >>>> > error: >>>> > >>>> > C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/pcb_parser.cpp: In >>>> > member function 'void PCB_PARSER::parseUnknown()': >>>> > C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/pcb_parser.cpp:1269:12: >>>> > error: request for member 'LogText' in '__acrt_iob_func(2)', which is of >>>> > pointer type FILE* {aka _iobuf*}' (maybe you meant to use '->' ?) >>>> > stderr.LogText( msg ); >>>> > ^~~~~~~ >>>> > >>>> > Cheers, >>>> > >>>> > Wayne >>>> > >>>> > On 3/16/2018 1:08 PM, Jeff Young wrote: >>>> >> Perhaps somewhat germane to this discussion I have removed the >>>> >> strict-format nags from the PCB parser. It now logs warnings to stderr >>>> >> but otherwise ignores structures it doesn’t understand. >>>> >> >>>> >> I’m not sure that helps hauptmech much as if the file is subsequently >>>> >> written the unknown markup will be lost, but I thought I’d mention it. >>>> >> >>>> >> Cheers, >>>> >> Jeff. >>>> >> >>>> >>> On 7 Mar 2018, at 20:12, hauptmech <hauptm...@gmail.com >>>> >>> <mailto:hauptm...@gmail.com>> wrote: >>>> >>> >>>> >>> Hi Thomasz, >>>> >>> >>>> >>> I hope I'm able to address you concerns. I'm stuck using kicad stable >>>> >>> in many situations. I brought clearances up for discussion last July >>>> >>> but no one moved on it, nor are they required to. Clearance management >>>> >>> is a major pain point for me so I wrote a fix. This patch will let us >>>> >>> (me and the people I collaborate with) work using version 5, but open >>>> >>> and close files written with a version patched with clearance handling >>>> >>> code. >>>> >>> >>>> >>> I believe that code exactly like this will go into version 6. Getting >>>> >>> it in earlier makes a huge difference to me, so I'm submitting it. >>>> >>> >>>> >>> On 07/03/18 23:30, Tomasz Wlostowski wrote: >>>> >>>> Hi hauptmech, >>>> >>>> >>>> >>>> I'm sorry but IMHO we can't accept your patch: >>>> >>>> - it changes the file format while we are already in feature freeze. >>>> >>>> This is a way too big change to accept for the V5. >>>> >>> >>>> >>> This patch simply adds tokens to the file format. No clearance data is >>>> >>> saved for files that use the netclass only. Files without clearance >>>> >>> tokens continue to remain without them. >>>> >>> >>>> >>> Yes it is a backward compatible file format change, but it does no >>>> >>> harm to V5 files already in the wild. >>>> >>> >>>> >>>> - we are planning to overhaul the clearance/design rules system in V6. >>>> >>>> Storing the clearance *DIRECTLY* for each track segment/via will >>>> >>>> conflict with any more sophisticated design rule management system. >>>> >>>> >>>> >>> I'm glad you are planning this. I am sure that regardless of the >>>> >>> sophistication of the rule system, you will store clearance directly >>>> >>> for exactly the same reason that track width is stored directly now. >>>> >>> There are always exceptions to the rules. >>>> >>> >>>> >>> If kicad choose a direction that does not store clearances per item, >>>> >>> then it is easy to rip these few lines back out. >>>> >>> >>>> >>> Did this answer your existing concerns about this patch? Are there any >>>> >>> other concerns you have about this patch? >>>> >>> >>>> >>> >>>> >>> >>>> >>> _______________________________________________ >>>> >>> Mailing list: https://launchpad.net/~kicad-developers >>>> >>> <https://launchpad.net/~kicad-developers> >>>> >>> Post to : kicad-developers@lists.launchpad.net >>>> >>> <mailto:kicad-developers@lists.launchpad.net> >>>> >>> Unsubscribe : https://launchpad.net/~kicad-developers >>>> >>> <https://launchpad.net/~kicad-developers> >>>> >>> More help : https://help.launchpad.net/ListHelp >>>> >>> <https://help.launchpad.net/ListHelp> >>>> >> >>>> >> >>>> >> _______________________________________________ >>>> >> Mailing list: https://launchpad.net/~kicad-developers >>>> >> <https://launchpad.net/~kicad-developers> >>>> >> Post to : kicad-developers@lists.launchpad.net >>>> >> <mailto:kicad-developers@lists.launchpad.net> >>>> >> Unsubscribe : https://launchpad.net/~kicad-developers >>>> >> <https://launchpad.net/~kicad-developers> >>>> >> More help : https://help.launchpad.net/ListHelp >>>> >> <https://help.launchpad.net/ListHelp> >>>> >> >>>> > >>>> > _______________________________________________ >>>> > Mailing list: https://launchpad.net/~kicad-developers >>>> > <https://launchpad.net/~kicad-developers> >>>> > Post to : kicad-developers@lists.launchpad.net >>>> > <mailto:kicad-developers@lists.launchpad.net> >>>> > Unsubscribe : https://launchpad.net/~kicad-developers >>>> > <https://launchpad.net/~kicad-developers> >>>> > More help : https://help.launchpad.net/ListHelp >>>> > <https://help.launchpad.net/ListHelp> >>>> >>>> >>>> _______________________________________________ >>>> Mailing list: https://launchpad.net/~kicad-developers >>>> <https://launchpad.net/~kicad-developers> >>>> Post to : kicad-developers@lists.launchpad.net >>>> <mailto:kicad-developers@lists.launchpad.net> >>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>> <https://launchpad.net/~kicad-developers> >>>> More help : https://help.launchpad.net/ListHelp >>>> <https://help.launchpad.net/ListHelp> >>> >>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~kicad-developers >>> <https://launchpad.net/~kicad-developers> >>> Post to : kicad-developers@lists.launchpad.net >>> <mailto:kicad-developers@lists.launchpad.net> >>> Unsubscribe : https://launchpad.net/~kicad-developers >>> <https://launchpad.net/~kicad-developers> >>> More help : https://help.launchpad.net/ListHelp >>> <https://help.launchpad.net/ListHelp> >>> >>> >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~kicad-developers >> <https://launchpad.net/~kicad-developers> >> Post to : kicad-developers@lists.launchpad.net >> <mailto:kicad-developers@lists.launchpad.net> >> Unsubscribe : https://launchpad.net/~kicad-developers >> <https://launchpad.net/~kicad-developers> >> More help : https://help.launchpad.net/ListHelp >> <https://help.launchpad.net/ListHelp> > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : kicad-developers@lists.launchpad.net > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp