← Back to team overview

kicad-developers team mailing list archive

Re: PCB forward compatibility

 

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     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 



Follow ups

References