kicad-developers team mailing list archive
Mailing list archive
Re: kicad_pcb, kicad_mod format change for daily build?
On 4/24/19 7:39 PM, Dick Hollenbeck wrote:
On 4/15/19 8:50 AM, jp charras wrote:
Le 15/04/2019 à 15:34, Jeff Young a écrit :
Yes, this was intentional. It allows users to put things like spaces in layer names and other user-editable things.
I’ll fix up the STEP exporter….
On 15 Apr 2019, at 13:56, easyw <easyw@xxxxxxxxxxxx> wrote:
recently I have noticed that both kicad_pcb and kicad_mod seems to have changed their format.
It have been introduced double quotes for layers pads etc.
Is that necessary or intentional?
Here two related issues links:
and a small diff example:
(0 F.Cu signal)
(31 B.Cu signal)
(0 "F.Cu" signal)
(31 "B.Cu" signal)
Exactly, in these files, user strings (like fields, pad names, layer
names...) were previously quoted on request, i.e. if they contained a
space or some other special delimiter char.
Now they are always quoted, which is better: user strings are always
This is not really a format change.
JP, I think you are blending syntax with grammar. I do not understand the need for this
change and currently do not agree with it. It creates noise in version control systems,
and makes the files bigger, for no real gain.
The save functions have always done a nice job of deciding whether a quote is necessary.
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
I understand and share your concerns. This was not a decision made
lightly but this change is on me. I gave the go ahead. It was a
decision based on the lesser of three evils. The decision to allow
users to rename copper layers and not rename non-copper layers when we
implemented the new file format was probably less than ideal. We are in
the process of allowing unrestricted layer names so quoting was
inevitable and so now we are paying the price for the initial decision.
I saw three potential paths forward:
Quote all layer names to prevent layer names from being both quoted and
unquoted. Allowing both quoted and unquoted layer names would have been
both ugly and confusing in the file format. The unfortunate side effect
of always quoting all layer names is the noisier file format and the one
time change which would be an issue for vcs users. The advantage is
that this was that no additional coding was required to support
unrestricted layer names on all layers. This option was the path of
least effort which is why I chose it.
Force all layer names to the default name for all internal objects and
add an optional quoted name to the layer definition. This option would
maintain the naming symmetry and not require any quoting resulting in a
smaller change set for vcs users who use the default names. For users
who changed copper layer names, there would still be a one time larger
change set hit. This also would have required a fair amount of code to
check for renamed copper layers and rename the internal layer names to
the default and all of the places in the code that display the user's
preferred layer name would have to be updated.
Add optional layer name string only to the non-copper layers. This
would make the layer table and the object layer names inconsistent. It
would also complicate any code that uses the user defined layer names.
This option would result in the least intrusive file changes.
I'm am not opposed to option 2 but there will be a one time hit for vcs
users who rename their copper layers so I do not see any path forward
where we don't have to make a compromise. I really don't like option 3.
If you or anyone else has a better idea, I'm always open to suggestion.
I am traveling and have a busy schedule over the weekend so my response
time will be a bit delayed.