← Back to team overview

kicad-developers team mailing list archive

Re: file version compatibility (optional tokens in s-expression files)

 

On 1/20/2015 12:44 AM, LordBlick wrote:
> In response to a message written on 13.01.2015, 19:20, from Tomasz
> Wlostowski:
>> Hi all,
>>
>> During my work on diff pairs/matched length tools, I've encountered a
>> rather tricky problem: as the diff pair gap specific to a particular
>> pair of traces is stored nowhere, the shove algorithm will mess up DP
>> coupling after saving and re-loading the board. Ergo: the DP gaps (and
>> possibly other settings) need to be stored somewhere in .kicad_pcb
>> files. Perhaps in a yet another s-expr token.
>>
>> The problem is that adding any new token to the file format causes all
>> precedent versions of pcbnew to drop an error attempting to load the
>> file. I would propose two solutions to overcome this:
>> - (a dumb one) if the version in the file header is newer than the
>> version supported by the running application, issue warnings instead of
>> fatal errors on unknown tokens,
>> - (a bit smarter) enclose all optional tokens in a "minimum" version
>> block ( min_version version_number ( optional_token ( ... ) ) ) that
>> would be ignored if the application version < version_number.
>>
>> I consider this modification quite important from the point of view of
>> adding future features and the upcoming stable version: if we keep
>> things as they are, adding any new feature will either make the files
>> unreadable to the stable version or force us to support saving in
>> multiple format versions.
>>
>> Looking forward to your feedback,
>> Tom
> I think that may be sufficient to add section [gal] to .pro file as
> usual project setting. In this way you can avoid the next .kicad_pcb
> format version change.
> 

I'm not terribly thrilled about that idea.  One of the things we have
changed over the years is to move board specific settings out of the
project file and into the board file.  This makes the board file more
portable.  If you put board configuration information in the project
file, you will loose it when you try to use the board file as a stand
alone board.  Ultimately, the project file should only contain settings
that have project wide scope.  All board and schematic specific
configuration should be saved in the appropriate file.



Follow ups

References