Rolling back module to prior Vassal version

I recently started updating a module that was working smoothly in 3.4.13. I accidentally saved it in 3.5.8 thinking my last stable build was 3.5.x, not 3.4.x. Long story short, the module is completely broken running 3.5.x but I don’t have the time/bandwidth right now to report all the bugs to developers and try to resolve. I’d rather just roll back to version 3.4.13 and deal with the 3.5.x issues at a later date. The edits I made did not take advantage of any new features but do reflect several hours of work that is difficult to retrace. My thought was to just change the version number on the 3.5.x buildfile and moduledata files then drop them into the old 3.4.13 module. Are there any other changes made when you save to a newer Vassal version? Assuming of course you don’t take advantage of any new features…

PS I’ve already discovered that the buildfile has a different file name and the headers in the XML are different. It’s definitely not a simple version rename and drag and drop…

When you do have the time, report any bugs you find against 3.6; 3.5 is no longer supported.

We don’t have a list of what would have changed specifically in the buildfile.xml between 3.4.13 and 3.5.8, as it was never envisioned that anyone would need to go back.

If you have no backup to revert to, I suggest trying to edit the buildfile. The first thing you’ll need to do is rename it from buildfile.xml to buildfile. After that, you’ll need to adjust the version number near the top. From there, if you try to load the module, 3.4.13 will give errors pointing to what you need to modify next.

I wouldn’t do it that way, though. My usual approach in these situations is to fix the problem going forward rather than backward, as it’s less work in total if you ever plan to go forward.

I definitely have backup files. The issue is that I made dozens of changes in the module editor not realizing I was committing changes to a version that wasn’t stable. I tried renaming the buildfile and version but it didn’t work - it reported not a Vassal module. I think my only course of action at this point is to compare the files side-by-side in a text editor and cut-and-paste. If that fails, I’ll bite the bullet and try to retrace all my edits. Live and learn…

If you want advice about what you’d need to change in the module going forward, we’d need some specifics about what’s not working.

1 Like

As well as the buildfile changes, you will need to edit the moduledata file and change the vassal version number back.

There were thousands of minor syntax and formatting changes between the two buildfiles - semicolons or piece sizes that were previously 0 that had been assigned a pixel size. It seemed to risky so I just decided to bite the bullet and manually redo all the edits. Comparing the two buildfiles in a text editor did make it a bit easier.

As for going forward, it sounds like I should jump right from 3.4.13 to 3.6.4, but shouldn’t I try to isolate which version of 3.5.x introduced the bugs? Is 3.4 - 3.5 - 3.6 a direct evolution or was there some deviation? I’ve been completely out of the Vassal development loop for over a year…

If you’ve found a bug introduced after 3.4.13 which still exists in 3.6.4, then the first thing we’ll ask for is the earliest version where you see the bug. However, there were numerous bug fixes after 3.4.13 as well, and without knowing what it is that you’re seeing, we can’t say whether the behavior change you’re seeing is the result of a new bug or the result of having fixed a bug.

We need specific details in order to offer further advice.

Sure I get that. The issue is my module has a 1400KB buildfile. I also didn’t heed the warnings and built a module with full rules enforcement and it has some very elaborate Java math class code. The rules enforcement is the real issue because some bugs are only reproducible several hours into a multi-player session. The first step is for me to verify which bugs are real and which are user-error (I’ve had a lot of false reports in the past). I know something is wrong though because my first foray in 3.5 had all sorts of issues so I decided to do a version freeze at 3.4.13 until I resolved all my module’s own internal bugs. It was just too long ago for me to recall the details - getting old I guess…