Post-V7 file format questions

Are there any plans related to the File formats used by the 7.99 ?
Hands-on the 7.99 might be way easier if the file formats were compatible with 7.00
Assuming no file-format changes at the beginning of 7.99 development, will there be awarning IF there will be compatibility breaking file format change upcoming?

As far as I know the current implementation just looks at the version string at the top of the file and refuses to open it if it’s a “future” version. I did a short search for forward compatibility on gitlab but found no results.

Now that all of KiCad’s files are in S-expression format, it should be quite easy to write a filter that just dumps all unrecognized attributes in a text window (with an option to save). But that would also be a bit naive. There is no guarantee that that a future version uses the same tags in exactly the same manner.

But the problem here is the amount of developer hours available. It is a limited resource for KiCad and there are many features competing for implementation. This does not have a high priority. The nightlies are not intended for a “production environment”, and certainly not for collaborating on a design with multiple people. Upgrades for stable versions are also free, so it should not be difficult to decide on a version to use for a project when working in a group.

On the other side of the equation, if there is a way back from the nightly to a stable version, this would probably mean more people are test driving the nightlies, and bugs get discovered earlier.

I suppose that the version signature is not the version of the KiCad itself (as in this case, there would be no compatibility between different update levels KiCads). Instead, probably the devs just bump the version “manually” once some breaking changes are taking place.

My question was not on the technical matters, but rather communication; and the goal was to find out if one can play with his/her production files without the risk of being locked with the files updated to last version without prior clear warning.

Maybe some message that “you’re about to save your file in a format that will not be compatible with latest release version of the software, are you sure?” (so clear warning things are going deep into experimental area).

Some technical idea might be to use an approach with two design files, one (base) file compatible with the last release version, and a “shadow” file that contain all the new Extras. Both file would be then opened and parsed so the new Kicad would get all the extended info while old one could open the base file. Of course there’s no way to assure the design completness without this extra data - that all depends on what changes are there.

But yes, file compatibility can be a huge factor in gaining the testing audience. I held back with 6.99 for a long time, for this exact reason. Previoulsy with 5.99 I was quicker because there were things in 5.99 that were particularly interesting to me (don’t remember exactly what was it now… but I’m perfectly happy with my 6.0).

This is already implemented in KiCad (and has been for at least a year). Any time you open a schematic or PCB of an older format it has an infobar at the top.

Yes, the version strings are a limited number of fixed strings that are hardcoded in the source code. (Edit: MitjaN posted links below), and they get bumped whenever the file format gets new functionality.

An example from a schematic file:

(kicad_sch (version 20211123) (generator eeschema)

And from a PCB:

(kicad_pcb (version 20211014) (generator pcbnew)

This I don’t quite understand:

If compatibility is an important factor for you, use the stable versions, and not the nightlies.

I also got bitten once by this. I think it was in 2015. Back then I had a (hobby) project that got stranded for a few months because the nightly would not run at all, and I could not open it in the stable version anymore. The difference between functionality between the stable and the nightly was also very big, so going back to the stable version was no fun anyway.

You can see current nightly shematic and layout identifiers here and here

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.