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.
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