Thanks. Both of these documents were highly informative:
https://github.com/AskStr/kicad-backport-cplus/blob/main/docs/kicad-file-format-version-differences.md https://github.com/AskStr/kicad-backport-cplus/blob/main/docs/kicad-format-migration-implementation-strategy.mdAlso, I'd like to offer a few more thoughts on the "downgrading" issue. The basic need is the ability to share projects with people who may be using different versions of KiCad. It's easy to share with some using a newer version because the upgrade is nicely automatic (thank you). But the downgrade process isn't currently supported so sharing becomes a one-way street.
There are a number of ways to provide the "downgrade" functionality:
- Export as KiCad version X
- Export to a Common Denominator Format
- External Conversion Programs
Any of these would satisfy the basic need to share projects. And they each have their advantages and disadvantages.
The first (Export as KiCad version X) is probably the most powerful and maybe even the "right" way to do it. But it may also be the most work and it does have the disadvantage that it needs to be done by the person with the higher version. That may not always be easy when a design, for example, has been posted to the web and the author isn't willing to downgrade to every version that someone might want.
The second (Export to a Common Denominator Format) could be less work and similarly effective. It could also have the benefit that the Common Denominator Format (CDF) might become a defacto standard so that people might post their current KiCad versioned file along with the CDF version. People writing third party software (such as hardware in the loop simulators) might simplify their jobs by only supporting that CDF format. I don't know if there is such a "Common Denominator" format, but I believe that KiCad has supported importing from Eagle CAD for a long long time. So that might be a good candidate "Common Denominator" format.
The third option (External Conversion Program) seems like it could produce the most immediately available solution. There are already at least two different convert programs that I've found:
And I found those without having done a thorough search. Since those converters both convert from version 7 onward, they would only need the modification to handle a few older formats to then be a complete solution. This seems like a fairly easy way to go.
Also, it's important to note that there are a number of consequences of these choices:
For example, both of "Export..." options assume that the person who produced the higher level project is willing (and able) to export a lower level version as well. They may not think to do that, and they may not be available after the fact to produce a downgraded or common version. So anyone finding such a project on the web might still be stuck without a method to downgrade unless they can find someone to help them. The vast majority of existing projects may fall into this category.
On the other hand, the conversion programs would allow anyone to convert any project (old or new) without any other assistance. But they are, by definition, external to KiCad, and would also need to be maintained. If the KiCad team were to maintain them, then that would solve that problem.
So those are just a few things to consider from a user's perspective. In either case, thanks very much for the thorough attention you've given to this feature request.