[5.99] Has PCB file format changed in the last week?

I opened an existing PCB that had been created with different nightly’s over the past month or so.
Yesterday I installed the below version. My previous nightly was maybe a week old.

On opening with this new nightly a info warning popped up.

Curious is the file format still changing? Not an issue, just curious.
Thanks

Application: KiCad PCB Editor (64-bit)

Version: (5.99.0-11043-g1a35d8ba5d), release build

Libraries:
wxWidgets 3.1.5
libcurl/7.74.0-DEV Schannel zlib/1.2.11

Platform: Windows 10 (build 19041), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
Date: Jun 15 2021 21:01:02
wxWidgets: 3.1.5 (wchar_t,STL containers)
Boost: 1.75.0
OCC: 7.5.0
Curl: 7.74.0-DEV
ngspice: 34
Compiler: Visual C++ 1928 without C++ ABI

Build settings:
KICAD_USE_OCC=ON
KICAD_SPICE=ON

It happens quite frequently to me on the nightlies. No issues so far.
Using the nightlies for good few months now.

Thanks,

I’ve been using the nightly’s pretty much since they were available. Early on there were a few glitches but for what I do I’ve had no issues. Was really just curious as I though I read the file format had been frozen.

BTW I think Kicad is awesome. I’m jealous of engineers today having such a tool. For our production boards we might have still gone to a service but for prototypes and tweaking layouts for EMC this would have been faster and with a better result.

There have been a few bug fixes that required bumping the file format version even though we passed the “freeze” point – the freeze mostly means that no new features will come in to the file formats.

3 Likes

These are the changes from this year:

//#define SEXPR_BOARD_FILE_VERSION    20210108  // Pad locking moved from footprint to pads
//#define SEXPR_BOARD_FILE_VERSION    20210126  // Store pintype alongside pinfunction (in pads).
//#define SEXPR_BOARD_FILE_VERSION    20210228  // Move global margins back to board file
//#define SEXPR_BOARD_FILE_VERSION    20210424  // Correct locked flag syntax (remove parens).
#define SEXPR_BOARD_FILE_VERSION      20210606  // Change overbar syntax from `~...~` to `~{...}`.
3 Likes

For anyone looking into this, the schematics file version changes are “documented” in dedicated source file as well as PCB file format changes

3 Likes

Are the actual file formats documented somewhere?

https://dev-docs.kicad.org/en/file-formats/sexpr-pcb/

This fix is causing an issue when people are sharing files across different platforms.
A windows user can install this fix and then no one working on linux can read files created by that user.
The linux user will receive an error when opening the .pro file.

Which fix are you referring to? Can you explain a bit more about the error?

If anyone is dealing with a .pro file, it means at least one party is using the stable release, version 5.1.

This thread is about the development version, 5.99, which uses a different project file format (.kicad_pro), as well as different pcb and schematic file formats. Files saved in 5.99 cannot be opened in 5.1. Is it possible that some of your users are using 5.1 and some are using 5.99?

I’d assume that “.pro” was just a typo (V5.1.x is unlikely to change) and you meant “.kicad-pro” from KiCad-nightly V5.99.
If you follow the link MitjaN posted above then you’ll see that the changes made this year (out of a list of approx. 60 total) are:

...
//#define SEXPR_BOARD_FILE_VERSION    20210108  // Pad locking moved from footprint to pads
//#define SEXPR_BOARD_FILE_VERSION    20210126  // Store pintype alongside pinfunction (in pads).
//#define SEXPR_BOARD_FILE_VERSION    20210228  // Move global margins back to board file
//#define SEXPR_BOARD_FILE_VERSION    20210424  // Correct locked flag syntax (remove parens).
//#define SEXPR_BOARD_FILE_VERSION    20210606  // Change overbar syntax from `~...~` to `~{...}`.
//#define SEXPR_BOARD_FILE_VERSION    20210623  // Add support for reading/writing arcs in polygons
//#define SEXPR_BOARD_FILE_VERSION    20210722  // Reading/writing group locked flags
//#define SEXPR_BOARD_FILE_VERSION    20210824  // Opacity in 3D colors
#define SEXPR_BOARD_FILE_VERSION      20210925  // Locked flag for fp_text

So there was indeed a bump in the file format, and with an average of about once a month for this year. Do remember these are nightly versions especially for reasons like this. You also get lifelong free updates together with your first purchase of KiCad. If you like the pace in which KiCad is being improved you’re free to make a donation.

On my Linux box I think there are somewhere between 5 and 7 updates of KiCad-nightly available per week, but I usually do not bother to update more then once or sometimes twice a week. I assume it’s the same for windows. For mac it’s a bit more complicated. Apparently there are several different issues with packaging (some over zealous “safety” thing that hides directories, paths to libraries, and maybe more) for the fruit OS and sometimes it’s lagging a few days (or maybe weeks?) behind, but I don’t keep an eye on the details.

So if you’re collaborating on some project, the most obvious choice is to have a look at file version bumps, and coordinate updates when there is such a bump.

If you can’t update for some reason and you found a project that you can’t view because of this, then a quick fix may be to make a copy of that project, reset the file version line (It’s on the top of the file) and try to load it. Changes are very likely very small between those bumps and maybe you have to delete a few of the S-expressions.

This is why Nightlies have a “Here be Dragons” warning and we haven’t got to a 6.0 release candidate yet