Project/Files backward compatibility

Once again a reference to Cadsoft/Autodesk Eagle: Almost whatever version used of that program (at least 6.6 to 9.62 = the last release before Fusion 360) it’s possible to open any version of the generated project files = also if the files are made with updated software versions with a lot of new functions (will just be a popup text error dialog as a warning) but the project files are still possible to work with, wow! Why’s that not possible in KiCad? Please have a look at that possibility, it’s not a bad function; at least make it possible to open files by the PREVIOUS application version which was released let’s say just a few days back…

I would tend to agree on the general idea of data portability between versions of the software.
As a user of open source software, when you try to use the software for something useful, and especially some kind of project or product lifecycle that stretches over several years, or even, for a very simple example, in a situation where you just plain want to keep your calendar or email data for a longer period of time, your data is quickly what becomes most important and valuable, and the software is the tool that should enable you to use and protect your data reliably.

Unfortunately it easily happens in software development that the data is treated as something secondary, expendable, as this makes the software development percievably ‘easier’. Such a development philosophy works contrary to the long time usability of the software. The mentality of “burning down the house and starting over from scratch” every time there is a new version of the software, is far too widespread when it comes to IT (information technology).

Now, to soothe any possible potentially hurt feelings of developers, KiCad is not among the worst in this respect.
But I do want to emphasize and remind that long time data safety, retention and smooth interoperability between versions is a point high on the priority list for someone who wants to use KiCad in a production environment, or even in smaller projects that see any real world application of the product.

2 Likes

Out of curiosity I just tested to edit the first row in the pcb and the sch files in a text editor:

PCB file:
“(kicad_pcb (version 20220131) (generator pcbnew)” (=a KiCad Nightly build version)
To: “(kicad_pcb (version 20211014) (generator pcbnew)” ()KiCad 6.04)

SCH file:
“(kicad_sch (version 20220126) (generator eeschema)” (=a KiCad Nightly build version)
To: “(kicad_pcb (version 20211014) (generator pcbnew)” (=KiCad 6.04)

This way the schematics can be opened in the current “stable” version of KiCad (6.04) but not the PCB file. Does this mean it’s a simple task for a a programmer/developer who want to fix this to do it?

Which is why V6 can open V5 and even V4 versions.
V6 adds new features, expanding capabilities. Old features are not discarded

That was a funny reply :slight_smile:

In general, there is backward compatibility for file formats and stable APIs (newer software can deal with older files), and forward compatibility with unstable APIs if the vendor cares (e.g. the latest release of the previous major version will provide a compatibility layer so that there is always a “stable” API between two major releases to allow customers and third parties to migrate at their own pace, and to less pollute the next API).

“In general, there is backward compatibility for file formats and stable APIs (newer software can deal with older files)”

Ah sorry, then this topic should be named “Project/Files forward compatibility”…

In short, what I mean here is it’s wanted to be able to open newer made projects/files in older versions of the software.

Officially, it has been mention a couple of times that “fordward” compatibility is not going to be supported, your best bet would be to support a user effort in this regard, e.g.

Another route if you absolutely need that kind of feature is to get in contact with KiPro

https://www.kipro-pcb.com/

However, any effort in this regard will be inherently lossy, as the new file format contains more information than the old file format.

People keep saying this without explaining why. Could you explain why?

The conversion does not need to be 1:1 most of the time. The converter has to generate a circuit that matches, other parts are not that important.

Works very well in Eagle so why not try it also here. This to be able to run a project also in a case of emergency, that might be the main point here…

There have been applications in the past that supported this (FrameMaker's MIF comes to mind). But it’s not compatible with a business approach like Microsoft’s (vendor and version lock-in, etc.)… So maybe you can achieve this by exporting and importing to different formats (and maybe even use that destination app to do this as well)…

Why not just include it in KiCad, make it simple? Like Apple would have made it. What’s the problem?

One example that comes to mind, which would be an issue when “back-porting” 6.0 to 5.1 is that 6.0 can have curved traces based on arcs, whereas this is not supported in 5.1, where curves are made/approximated with many short straight segments.
The conversion can of course be done, but is non-trivial.

Or was it 6.99 to 6.0? I am not sure at this late hour…

Ah you are talking about the layout. The layout accepts any shape since long time ago. Kicad 6 improved in a way that it is possible to draw these round tracks directly from PCBNew. But you can make round tracks on another software, let’s say inkscape and then import them back into the layout. Also, even if it is not possible to replicate arcs, the tool can generate multiple small segments mimicking this feature.

I have difficulty understanding this argument.

Why go to the trouble of installing a new version of a program, learn to use, and create something in that program, then revert to an old version to view the creation?

Why not just use the older version in the first place for the creation and just not bother with all the effort required to master new versions?

Arguments regarding X.99 programs just do not hold as there are warnings stating these are development programs ONLY and any serious work attempted is at the users risk.

This is what I mean with lossy, I do not mean mangled or broken, I implied that information present in the v6 files will be lost as it won’t be possible to expressed with the v5 file format. Other way to see it is, a project converte from V6 to V5 and again to V6 won’t be the same as the original file.

2 Likes

Because KiCad doesn’t have the resources (money and manpower) that apple does. That is a very unfair comparison.

1 Like

In Cadsoft/Autodesk Eagle, files made in version Autodesk Eagle 9.62 (2020) can be opened in Cadsoft Eagle 6.6 (2014), even if the traces are curved. Both the schematics and the layout are still automatically, correctly annotated – pure and simple Back To The Future, and the opposite…

Why would you bother trying to open something made in a current version from an six year old version of the same program?

Would probably not do it, that’s correct, what this topic is all about is compatibility/possible development. For example, again, to make it possible to try out s nightly build without total horror.