Dear NVDA Community:
Please circulate the following notice throughout the community (including to translators, other users, add-on authors and beyond), as it’ll affect EVERYONE:
I’m delighted to announce that, as of July 18, 2018, wxPython 4 officially comes to NVDA! This means, going forward, wxPython 4 code will be in use throughout NVDA (alpha, future betas, future stable releases and so on). Note that unless really serious regressions occur, wxPython 4 will be here to stay.
Relevant pull request can be found at:
Depending on who you are, please do one or more of the following:
For users and testers:
For add-on authors and reviewers:
For third-party Core developers (outside of NV Access):
P.S. Some might be wondering what “Project Heliopolis” is:
According to various legends, a phoenix is a mythical bird that can live for hundreds of years and can be reborn from ashes of its former body when it burns. Other legends state that the young phoenix would fly to Heliopolis (Greek for “sun city”) where it’ll bury the ashes of its former self encased in an egg. This became the inspiration for wxPython Phoenix (version 4), which, according to its developer, is an effort to rewrite this GUI toolkit to make it better.
The Heliopolis project makes a nod to wxPython Phoenix by porting NVDA’s GUI subsystem and others to wxPython 4. This began in 2015 when I first ported NVDA to wxPython Phoenix code base with some difficulties. In 2016, I resurrected this project but met various difficulties while doing more work in summer of 2016.
Then in April 2017, wxPython 4 alpha hit the air, which gave me and others a chance to experiment with more stable version of the Phoenix code base. For the most part, prior work in 2015 and 2016 paid off, as NVDA ran almost flawlessly under wxPython 4. The big major problem was wx.Yield function, which was solved by defining a non-reentrant timer in GUI module in 2018. In March 2018, wxPython 4 made its debut in the NVDA community in the form of a series of what is now former next branch snapshots, and this opened up bugs with add-ons that were addressed in most cases.
With wxPython 4 merged (finally) into master, I can declare that we have achieved two milestones: moving onto wxPython Phoenix (thus accomplishing the original goal of Heliopolis project), and moving closer to the “big switch”: Python 3. For many of you, what you saw with wxPython 4 switch is (and will be) just a taste of what’s to come once the NVDA screen reader finally transitions to Python 3 (preferably 3.7). Also, on a personal note, I can finally sleep in peace (a bit more peacefully) after seeing the fruition of a project I’ve been championing since 2015.
I’d like to take this time to thank everyone who was involved with wxPython 4 transition: NV Access, Robin Dunn (wxPython developer), Leonard (Babbage) and many others.
Enjoy wxPython 4.
P.S. By the way, we get the “six” module for free with this milestone.