A pledge for adding Forward Compatibility in KiCad

In a recent thread (Version 88.0.0 vs 7.0.11) a request for having the ability to save in an older KiCad format was mentioned, and I also added Forward compatibility myself.

I have vague memories that forward compatibility was rejected several years ago. Mostly because of limited developer time for the KiCad project and an instability in the file formats, which were changing a lot back then.

In my opinion it’s time to create a new request for this. The Idea is that now both the PCB and schematic are based on S-Expressions, it would be quite easy for KiCad to do an “best effort” attempt in reading files from a future KiCad version. KiCad would then dump any constructs that it does not understand on the screen, with an option to save it in a log file (That functionality is already implemented for other error messages).

I am also aware that this feature is not for “everyone” as marekr mentioned in the thread I mentioned above. It would not be a good option if design integrity is important, or for when multiple people are collaborating on a single project (They should agree to all use the same KiCad version, and synchronize uptgrades). But I do believe this function is relatively easy to implement, and it will be useful to a lot of people. At the moment, as soon as anything changes in KiCad’s file format (for KiCad-Nightly), then a datetime string in the file format changes, and KiCad simply refuses to open the file anymore. This is “simple and safe”, but also very limiting. In preparation to making an official request on Gitlab for forward compatibility, I want to collect some opinions / reasons / ideas from users on this forum.

  • It allows opening of (future) projects found on gitlab, github, etc.
  • It lowers the threshold of experimenting with KiCad-Nightly, which hopefully results in more testing and bug reports.
  • It can allow for plugins (such as StepUp) to be run if they not available yet for the latest KiCad version.

Feel free to add more reaons (or other thoughts) surrounding this feature.

2 Likes

I’m fully with this suggestion.
There’s one more scenario: A lot of professinal users have a “version freeze”, say at V7 to keep compatibility within the company.
The option to convert to earlier versions or just to save in an earlier version format would be gold.

There is an existing issue (wishlist) for one approach to this, specifically pitched as improving nightly testing by allowing exporting in the format of the most recent stable version. Consider giving it a thumbs up as a starting point, though it sounds like your suggestion is more aimed at previous stable version opening future stable version.

Save as Old Version is something we’ve discussed and are open to. It’s not trivial to implement but also not too bad.

3 Likes

There would also be the ability to import a more recent KiCad version back into Altium designer, as (at the moment) the Altium importer is frozen at version 6. Altium users are complaining on their user forum that they need to update their importer, but it seems they are reluctant to help for some reason.

1 Like

Altium users are paying for support, so this request should be aimed at Altium. KiCad developers can never be certain that their understanding of Altium file structures is 100% correct.

5 Likes