Regarding the Addition of a File Version Downgrade Feature to KiCad

109 views
Skip to first unread message

熊义彬

unread,
May 29, 2026, 4:22:56 AM (8 days ago) May 29
to KiCad Developers
Regarding the KiCad file version downgrading feature,once this functionality is officially supported, more users will be willing to participate in testing new features within the development builds. This will facilitate the earlier detection and reporting of bugs, thereby enabling the expedited implementation of more stable features—with the ultimate goal of significantly reducing the number of bugs present in the final official release version.
I have developed a C++-based command-line interface (CLI) tool capable of downgrading KiCad files from versions such as 10.99, 10, 9, or 8 back to earlier versions like 10, 9, 8, or 7. The code repository for this project is located at: https://github.com/AskStr/kicad-backport-cplus
You are welcome to visit the repository to review the code.
Additionally, the repository contains a document—compiled and analyzed by me—that provides a detailed exposition on the "version differences within the KiCad file format."
Ideally, this functionality would be integrated directly into the KiCad project itself, allowing users to simply select the desired target version number via the "Save As" menu option to save their files in a specific legacy format.

Bob Kuczewski

unread,
Jun 3, 2026, 6:30:22 PM (2 days ago) Jun 3
to KiCad Developers, xyb...@gmail.com
Hello,

It's an amazing coincidence that the topic of downgrading was mentioned just a few days ago. I've been poking into this myself for the past few days without having seen this post. In pursuit of that goal, I just posted to the KiCad-Users group on Groups.io which led me to this devlist:


As mentioned in that post, there is a "downgrader" back to version 7 available here

But millions of Raspberry Pi's have been shipped with versions 5 or 6. Similarly, Debian (and many derivatives) have also shipped with earlier versions. Yes, people can upgrade, but it would be handy to be able to save simple designs in a format that can be read by nearly all versions of KiCad without requiring any upgrades. This would be a nearly universal format since all newer versions can naturally upgrade the project to their native format. While it would be great to have a "save as old version" option in KiCad itself (Libre Office can still save as Word97!!), it would be good enough to extend the HubertHQH code to convert to older versions. I'd like to work on that, and I'm looking for any help on understanding what was changed from 5 to 6 and from 6 to 7. Any help is welcomed. Thanks for your time.

Bob

Seth Hillbrand

unread,
Jun 3, 2026, 10:19:56 PM (2 days ago) Jun 3
to dev...@kicad.org
Hi folks.  This is in progress for v11.  Depending on the timeline, it may be able to be backported
    
Seth Hillbrand
Lead Developer
+1-530-302-5483
Long Beach, CA
www.kipro-pcb.com    in...@kipro-pcb.com


--
You received this message because you are subscribed to the Google Groups "KiCad Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to devlist+u...@kicad.org.
To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/0b60bf33-cc03-4bac-89f4-95f8aa19946bn%40kicad.org.

熊义彬(askstar)

unread,
Jun 4, 2026, 6:50:37 AM (yesterday) Jun 4
to KiCad Developers, se...@kipro-pcb.com
Hello.This is the latest analysis and compilation as of today, with added documentation on the differences in file formats between KICAD V4/V5 and the KICAD 11 development version: https://github.com/AskStr/kicad-backport-cplus/blob/main/docs/kicad-file-format-version-differences.md
Document on upgrade and downgrade strategies:
kicad-format-migration-implementation-strategy.md
Hope this can be helpful. I will also take some time these days to implement it.

Bob

unread,
Jun 4, 2026, 6:04:42 PM (yesterday) Jun 4
to KiCad Developers, xyb...@gmail.com, se...@kipro-pcb.com
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.md

Also, 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:

  1.   Export as KiCad version X
  2.   Export to a Common Denominator Format
  3.   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.

熊义彬(askstar)

unread,
Jun 4, 2026, 7:01:36 PM (yesterday) Jun 4
to KiCad Developers, Bob, 熊义彬, se...@kipro-pcb.com
Hello everyone. I have completed the downgrade support for the V6 version files. The repository has been updated.
The updates are as follows:
Add latest dev-format downgrade support and complete V6 compatibility work

Add downgrade handling for current development format changes 20260521 and 20260603
Bring KiCad V6 downgrade support to a mostly complete state, validated by manually opening converted files in the actual KiCad V6 application
Refine the code architecture to prepare for future V5 upgrade/downgrade support
Further expand and polish the KiCad file format version differences documentation

I also considered using third-party format conversion before, but relatively speaking, converting between minor versions would result in losing too many features.

If the KiCad team takes over maintaining them, I am very willing to hand over the KiCad downgrade project to the KiCad team for everyone to maintain together, and I will also do my best to follow up and improve it together. What do I need to do?
Reply all
Reply to author
Forward
0 new messages