Changes in library format

The main question is:

  • Why does KiCad need to update the lib format in each KiCad Version? **
  • Why is the importer not more tolerant?
  • Why it could not be possible that a new KiCad version import the old Lib version? Of course only the stuff that does not changed.
  • Why we have two different Version tags in a lib (‘version 20xxxxxx’ and 'generator_version “8.0” ')?

In Altium you can open a Lib that is 20 years old with now problem in a never Version!

Cheers

** I am only talking about the new S-Format Libs

In Altium you can open a Lib that is 20 years old with now problem in a never Version!

This is also possible in kicad (I’m not sure with 20years, but at least the last 5 years). You can open any v6 library with a currrent kicad v9 installation. But once opened and subsequently saved the library can’t be opened anymore in the old kicad version.

Why does KiCad need to update the lib format in each KiCad Version? **

How would you advise to implement new features without any change to the file format?

note that all your questions are not helpful for the OP - normally they would deserve a own topic.

1 Like

But then I have to store all personal lib on my disk for each KiCad version I am using in parallel. Or check them out from a Git-Tag depending on which KiCad version I want to work on at the moment.

If read an old Lib format in a new KiCad Version don’t update the Lib. Read in as much as possible and use meaningful default values for new features if necessary.

If you read a new Lib format in a older KiCad Version read/import only the fields from the Lib that are supported in the old KiCad Version. Skip unknown features but try to import as much as possible.

Of corse new features would need new ‘field’ in the S-Format. A existing ‘field’ in the S-Format never ever does change its format. If a newer ‘field’ needs more datas/change type we need a new ‘field’ type.

Have a look in the Protbuf definitions… They are back/forward compatible with a best effort behavior. I know we can’t existing old KiCad code but the input parser for new version should be more flexible.

Agree, maybe we can split the thread with a new topic

It doesn’t. The S-expr syntax has not been changed. You do need to re-register (not import) your personal libraries and individual items in the standard library may have been updated. But the format has not changed

That is not true in general. The format of the libraries can and often does change between major versions, to support new features.