jrincayc / ucblogo-code

Berkeley Logo interpreter
https://people.eecs.berkeley.edu/~bh/logo.html
GNU General Public License v3.0
190 stars 34 forks source link

Migrate to wxWidgets 3.2 #163

Closed dmalec closed 1 year ago

dmalec commented 1 year ago

Resolves #132

Summary

wxWidgets released 3.2.0 as stable on July 07, 2022. While the 3.0.x line is still being distributed and is also considered stable, this may be a good time to migrate to 3.2.x. As an added plus, the migration for UCBLogo looks like it is relatively straightforward mechanically speaking.

Testing

Tried various functions of the GUI and the interaction with the core Logo interpreter including:

Notes

The CI/CD strategy is a bit complicated by where things are today (March 20, 2023):

  1. GitHub's latest Linux runner is Ubuntu 22.04 (Jammy Jellyfish) https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
  2. Ubuntu 22.04 (Jammy Jellyfish) is still officially on 3.0.5 https://packages.ubuntu.com/search?suite=all&section=all&arch=any&keywords=libwxgtk3&searchon=all
  3. Ubuntu 22.10 (Kinetic Kudu) is currently on 3.2.0
  4. The unofficial builds of wxWidgets for Ubuntu go to 3.2.1 https://docs.codelite.org/wxWidgets/repo320/#ubuntu-and-debian
  5. The current stable version of wxWidgets is 3.2.2.1

My proposal on this:

  1. Officially move to wxWidgets 3.2.2.1
    1. Continue to build OSX and Windows static libraries from source and move to the new version.
    2. In the CD pipeline, add a stage to build a Linux wxWidgets 3.2.2.1 from source and build against that.
  2. Validate against the Ubuntu official versions as closely as possible
    1. Update the CI pipeline to run a matrix build with two environments - Ubuntu Jammy w/ wxWidgets 3.0.x (official) and Ubuntu Jammy w/ wxWidgets 3.2.x (unofficial)
    2. When GitHub provides Kinetic as an option, switch the matric to Kinetic with the default wxWidgets 3.2 package

I know this isn't a perfect solution and I am game to rework this for another approach if folks have different ideas on this front.

Test Environments

NOTE: Ubuntu Jammy (22.04) w/ wxWidgets 3.0.5 is an interesting case as I'm seeing some odd behavior when looking at printing / print preview. This appears to be unrelated to the changes in constants as I can get the same behavior with the current master branch code. I'm thinking this might be worth a look independently from the wxWidgets upgrade; but, can also look into it as part of this if that makes more sense.

dmalec commented 1 year ago

I am getting similar results on Ubuntu Jammy w/ wxWidgets 3.0.5 when running the wxWidgets printing sample code. I'm guessing there's something in my set up that's causing grief for some amount of printing / print preview in that configuration.