Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to wxWidgets 3.2 #163

Merged
merged 3 commits into from
Mar 22, 2023
Merged

Conversation

dmalec
Copy link
Collaborator

@dmalec dmalec commented Mar 21, 2023

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:

  • Basic copy/pasting of text
  • Basic editing
  • Drawing with window resizing
  • Various print / print preview commands
  • Sending PAUSE and STOP commands via the UI to interrupt a running loop

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.

  • OSX Catalina (10.15.7) w/ wxWidgets 3.2.2.1 on Intel Core i7
  • OSX Ventura (13.2.1) w/ Rosetta w/ wxWidgets 3.2.2.1 on Apple M2
  • Ubuntu Kinetic (22.10) w/ wxWidgets 3.2.0 (default)
  • Ubuntu Jammy (22.04) w/ wxWidgets 3.2.2.1 (build from source)
  • Windows 10 Pro (19045.2364) w/ wxWidgets 3.2.2.1
  • Ubuntu Jammy (22.04) w/ wxWidgets 3.0.5 (default)
    • Text Preview errors out
    • Turtle Preview errors out
    • Editor Print - no text
    • Text Print - no text

dmalec added 3 commits March 11, 2023 17:55
* For calls to brush(), updated wx_<X> to wxBRUSHSTYLE_<X>
* For calls to pen(), updated wx_<X> to wxPENSTYLE_<X>
* CD uses the same wxWidgets for all three build platforms (currently 3.2.2.1)
* CD now handles multicore build for Windows wxWidgets
* CI verifies using both wxWidgets 3.0 and 3.2
@dmalec dmalec changed the title Migrate to wxWidgets 3 2 Migrate to wxWidgets 3.2 Mar 21, 2023
@dmalec
Copy link
Collaborator Author

dmalec commented Mar 21, 2023

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.

Copy link
Owner

@jrincayc jrincayc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes look good. (And it still builds with 3.0 as well)

@dmalec dmalec merged commit b55a983 into jrincayc:master Mar 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Numerous build warnings
2 participants