Hi everyone,
For those keeping an eye on wxPython development may have noticed that people are talking about a project called Phoenix. The Phoenix project is designed to modernize wxPython code, support Python 3 and include other improvements.
As a user of wxPython, I believe one way we can help Robin is to allow projects using wxPython to experiment with Phoenix and report real world data to him. To kick this off, I’ve launched Project Heliopolis (Greek for “sun city”), a community-led initiative to port NonVisual Desktop Access screen reader source code to Phoenix code base. If successful, the new code base could be used as a stepping stone for NV Access, the organization behind NVDA, to port their source code to Python 3, as Phoenix supports Python 2.7 through 3.5.
The goals of this project are as follows:
-
Provide a platform for people to experiment with wxPython Phoenix.
-
Collect helpful documentation so NV Access and other contributors (including add-on authors) and other project maintainers could have pain-free experience with moving to Phoenix.
-
To serve as a stepping stone for migrating to Python 3 (Python 3.3 at a minimum), as Phoenix supports Python 2.7 through 3.5.
-
To serve as a model project to showcase community initiative and for NVDA community (developers, users, testers and interested supporters) to take on some burden of NVDA development through research, design, development, support and integration testing for specific features.
Proposed project timeline:
· July 2015: initial research began (via a personal repo/branch).
· May 2016: Project announced.
· Summer 2016 (winter for some): research, design and porting.
· Fall 2016 (spring for some): Initial test snapshots and documentation handed over to NV Access and other project maintainers.
· Future: Integrate into NVDA in 2017 or when Phoenix is released, whichever happens later.
Repo for Project Heliopolis:
http://github.com/josephsl/nvda-heliopolis
Important notes (mostly for resident NVDA contributors or interested developers):
-
Checkout NVDA source code (at least the Heliopolis source code will do, or if you’d like clone github.com/nvaccess/nvda).
-
You’ll need to use latest Phoenix snapshot for Python 2.7 Win32 version.
-
Before building your code, copy Phoenix source code to misc-deps/python/wx directory.
-
NVDA GUI isn’t working – at least commands that does not require the GUI are working. Consequently, welcome dialog will not be shown.
-
You’ll notice verbose logging due to log level being set to debug by default. This was done so developers can catch GUI freezes and take action once the bug source is found.
-
GUI commands will cause NVDA to freeze. You should work on this project while no programs are open, as you’ll need to log out and sign in.
-
As you read the source code, you’ll see comments prefixed by “Heliopolis”. These are used to record changes between wxPython Classic and Phoenix and to serve as a reference for NV Access and other projects when they decide to port NVDA and other projects to Phoenix later.
-
Changes from NV Access’ master branch will be merged into Heliopolis when GUI changes are committed so those porting the source code can perform integration testing.
-
NVDA test Snapshots will not be ready until GUI is working satisfactorily.
-
Pull requests, promotion, contribution, collaboration and other forms of assistance are welcome. In particular, contributions from those outside the NVDA community who are using Phoenix (especially sighted developers) are highly appreciated.
-
This project is a community-led initiative.
-
Most importantly, have fun.
For more info on NVDA, visit www.nvaccess.org. Visit github.com/nvaccess/nvda for more info on source code. Thank you.
Cheers,
Joseph