← Back to team overview

kicad-developers team mailing list archive

Re: New pcbnew features and versioning

 

Hi Wayne,

Nice concise response and good direction, exactly what is needed from a
Project Leader.

Regards
David G

On 12/04/16 07:32, Wayne Stambaugh wrote:
> I'm going to put on my project leader hat and try to respond to all of
> the issues discussed thus far rather than reply to each concern
> individually.  I'll start off by saying that many of you are going to
> disagree with me but I'm OK with that.  At the end of the day, I'm
> responsible for the code that ends up in KiCad so my opinion counts just
> a little so here it goes.
>
> As for providing the ability to save older file versions, I have very
> little interest in asking any of our developers to provide this given
> the project's limited manpower.  Comparing KiCad to LibreOffice shows a
> lack of understanding in just how few developers contribute to KiCad.
> There are many paid full time developers working on LO, and hundreds of
> volunteers.  KiCad has two very part time paid developers, a couple of
> regular contributors, and a handful of occasional contributors.  This
> does not mean that I do not care about our users.  On the contrary, I
> prefer to use our limited manpower resources to get the most bang for
> our buck.  I believe we have much bigger issues to resolve than being
> able to save to old file formats.
>
> Any changes to the file format, parser, and output formatter will be
> heavily scrutinized to ensure they meet the following criteria: the file
> format must be human readable without being overly verbose and the file
> parser and output formatter code must well designed, easy to understand,
> and easy to extend.  Everything I have seen discussed thus far runs
> counter to these design goals.  I am not saying that I will not allow
> any changes but these design goals are in play.  This means you should
> assume that the bar is going to be very high for any changes to this
> code and/or the file format.
>
> That being said, we should attempt to provide some type of file version
> information to help the user figure out what to do when they have file
> version issues so I propose we do the follow:
>
> * Use Chris' time stamp version number patch.
>
> * Allow the file to be parsed as is.
>
> * If the file fails to parse and the file header information is valid
> use the version number to determine if the file is corrupt (<= build
> file version) or the file may have failed because it contains features
> not available ( > build file version).
>
> * If the header was not successfully read, warn the user that the file
> does not appear to be a kicad board file.  If the file does parse
> successfully and the file version is > than the current build version,
> warn the user that the file was created with a newer version of KiCad
> which may result in data corruption and/or loss and see if they want to
> continue.
>
> * If the file version is <= the build file version than all is well.
> This should cover most of the file parsing cases and give the user some
> useful information on what steps they may or may not want to take to
> resolve their file version issues.
>
> This may not satisfy everyone's goal but it's far better than what we
> are doing currently without making a mess of our file format, parser,
> and output formatter.
>
> Cheers,
>
> Wayne
>
>
> On 4/11/2016 12:00 AM, David Godfrey wrote:
>> Hi All,
>>
>> On 11/04/16 07:37, Wayne Stambaugh wrote:
>>> Let's slow down and think about this a bit.  I'm not sure that this is
>>> the best way to resolve this.  Let me chew on it a bit and I will get
>>> back to you.  I've been busy today so hopefully by tomorrow I'll have an
>>> answer.
>> Wayne,
>> Off the cuff I'd propose a single "used features" block in the file format.
>> This would purely be a list of features that are used by this file. then
>> it's easy for the loading software to confirm what it supports
>> eg: roundrect-1, angletext-33
>> the appended number can be used to differentiate between non backwards
>> compatible versions of a feature
>>
>> This would be fairly easy to implement, and trivial to test at file load
>> The hardest part would be spending the time to go through and define the
>> struct to the project that records every feature we care about.
>> Although that could be done by only adding features to that struct when
>> a change is made from now on.
>>
>> Regards
>> David G
>>> Thanks,
>>>
>>> Wayne
>>>
>>> On 4/10/2016 12:36 PM, jp charras wrote:
>>>> Le 10/04/2016 16:11, Chris Pavlina a écrit :
>>>>> I like the idea. It'll take some work to implement properly, though. I can
>>>>> start working on it, but it will likely be at least a week before I have
>>>>> anything.
>>>> Thanks you to make me very happy ...
>>>>
>>>>> On Sun, Apr 10, 2016 at 04:05:42PM +0200, jp charras wrote:
>>>>>> Le 10/04/2016 15:31, Chris Pavlina a écrit :
>>>>>>> So - would you be happy with me just changing that to a warning that can be
>>>>>>> clicked through instead of an error, and rewriting the message a bit to agree?
>>>>>>>
>>>>>> I'll be more happy.
>>>>>>
>>>>>> But I'll be really very happy if a dynamic version numbering is also added, rather a fixed arbitrary
>>>>>> number.
>>>>>>
>>>>>> Currently the version is 4.
>>>>>> If a method is added (something like GetMinimalVersionNumber()) to all board items (tracks, texts
>>>>>> footprints, pads...), each item can return the needed minimal version to be read in file.
>>>>>> Currently they could return 4, but for a pad, if its type is rounded rect it will return 20160410,
>>>>>> and therefore its footprint parent returns 20160410 (or 4 if no rounded rect pad is found)
>>>>>>
>>>>>> Before writing the file, just run BOARD::GetMinimalVersionNumber() to know the actual needed version.
>>>>>>
>>>>>> -- 
>>>>>> Jean-Pierre CHARRAS
>>> _______________________________________________
>>> 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
>>>
>>
>>
>> _______________________________________________
>> 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
>>
>
> _______________________________________________
> 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