On 12/16/2016 6:03 AM, Tomasz Wlostowski wrote: > On 15.12.2016 20:02, Chris Pavlina wrote: >> The addition of (diff_pair_gap) and (diff_pair_width) has made it such >> that NO PCBs made with 'master' builds can now be loaded in the 4.0 >> branch. Would a patch be accepted to do one of the following, to be >> added to the 4.0 branch to ease future conversion from 4 to 5? >> >> 1. Fully backport saving diff pair dimensions to v4, but only write them >> to the file if they already existed in it at load. This way, v4 >> writes files compatible with older v4 by default, but if editing a >> v5 file will not lose the data. >> >> or: >> 2. Specifically ignore these options on load, since dropping them >> doesn't actually lose any PCB objects. >> >> or: >> 3. Update the version number checker code I wrote before to have both >> Warnings and Errors, using Warnings when ignoring the unknown object >> and loading the board anyway will not lead to "important" data loss. >> Add these attributes to a list of unknown objects that generate >> Warnings. > > How about adding an additional section in the .pcb/.sch files describing > all objects used together with required versions and their descriptions, > e.g: > > (object-info > > (object "diff_pair_gap" ( minimum_version 4 ) ( severity warning ) > (message "This file contains differential pair gap settings that come > with XXXX version of Kicad. Older versions will not respect the defined > gap settings ) ) > > (object "fancy_geom_shape" ( minimum_version 12345 ) ( severity error ) > > )
I against polluting the board file format with this kind of information. Any attempt to provide forward compatibility would require a complete change in the project philosophy. We have always worked under the notion that backwards capability is a must. Forward compatibility is something we would not provide due to the effort required to maintain it. Given that KiCad has zero cost to the user, the need to provide forward compatibility is low. As for the diff pair parameter issue, why not have an undefined value which doesn't get written unless it is set by the user. If the user isn't using diff pairs, just don't write the diff pair parameter to the board file. This should be simple and much easier to maintain. > > Cheers, > Tom > > > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : [email protected] > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

