← Back to team overview

kicad-developers team mailing list archive

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

 

On 20.01.2015 16:19, Wayne Stambaugh wrote:
> 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. 

Hi Wayne,

Fully agree here. What I meant when I started this thread was defining a
way to store more complex DRC constraints than simple clearance/track
width. The current model can't handle differential pair and constrained
trace length. Such parameters surely belong to a PCB design, so their
place is IMHO in the .kicad_pcb file.

Anyway, for the first release of the new P&S features, I'm not going to
modify the file format.

Cheers,
Tom





Follow ups

References