thanks for good news joseph and brian. do you continue supporting of xp? i became worried when i read the message for the first time. God bless you all! On 7/22/17, Brian's Mail list account via Groups.Io <bglists=blueyonder.co.uk@groups.io> wrote: Sounds sensible. At least this will preserve xp etc with the old Python for
as long as possible. One thing you do not say, which may be obvious to you,
but perhaps not to the average user is.. What are the reasons for change. is it that its going to be faster, 64 bit or has better ways of doing stuff
nvda needs to be able to do in the future? Obviously not in your remit is that at some point an agreed last working version of the old NVDA that can work on xp etc is going to have to be made
available and then when add ons are updated, those that will and won't run on the old version will need to be noted and if possible trapped by the old
version so it cannot be scrambled by an add on.
Brian
bglists@blueyonder.co.uk Sent via blueyonder. Please address personal email to:- briang1@blueyonder.co.uk, putting 'Brian Gaff' in the display name field. ----- Original Message ----- From: "Joseph Lee" <joseph.lee22590@gmail.com> To: <nvda@nvda.groups.io> Sent: Saturday, July 22, 2017 7:55 AM Subject: [nvda] Announcing Project Pylennium: porting NVDA code base, dependencies, and developer attitudes to Python 3.6.x
Ladies and gentlemen,
Some of you have been asking NV Access and the global NVDA community regarding porting NVDA source code and dependencies to Python 3. I and some contributors have been brainstorming best ways to accomplish this, and NV Access, contributors, some add-on writers, users, and NVDA observers agree that it is important that we look into eventually porting NVDA to Python 3.
Until recently, the possibility of moving NVDA to Python 3 seemed to be only a dream. However, a major hurdle was overcome earlier this year when wxPython 4 alpha was released, promising support for Python versions 2.7 and 3.x. Apart from a major problem regarding certain internal routines from wxPython 4 that may not be compatible with NVDA source code, the stage is almost set to begin our transition to Python 3, dubbed "Project Pylennium".
Project Pylennium is a new project I'm planning and working on that should make it easier for NV Access, code contributors, add-on writers, users and many others to experience smooth transition to Python 3. The overall goal
of this project is to prepare NVDA's source code so it can run on both Python
2 and 3 in most cases until developers are ready to move on. This project also seeks to uncover possible compatibility issues for NVDA community when the transition happens, and to document these findings so it can serve as guidelines to current and future developers.
The current iteration of Project Pylennium (based on NVDA GitHub issue 7105 as a roadmap) can be found on my copy of NVDA source code at:
https://github.com/josephsl/nvda
The branch to use is "py3000".
Project pylennium involves the following:
1. Gather dependencies required for Python 3 transition, such as newer versions of Python, ConfigObj and many others. A crucial dependency is the Six module, which adds compatibility layer functions for both Python 2 and 3. 2. Document porting notes, which will eventually be published on our NVDA Community wiki. 3. Create source-level compatibility layer in order to mitigate changes in module names, standard library folder structure, function and class names and so on. 4. Migrate most code to Python 3 syntax. 5. Frequent and regular testing to make sure regressions are not introduced.
Progress so far:
1. Imports: a compatibility layer is in place to import Python 2 or 3 version of winreg, pickle, io.StringIO and what not. 2. Compiles fine via SCons 2.x. 3. Possible to see the first initialization phase of NVDA launcher (nvda.pyw) via command line. The biggest showstopper at this time is the fact that logHandler.StreamHandler constructor uses file function when Python 3 says it isn't available, which suggests we need to modernize log handler module.
Benefits:
1. Allows NV Access to look at porting data and make informed decisions. 2. Allows contributors and Python experts to provide expertise and prepare the source code for Python 3 transition. 3. Allows add-on authors to look at changes and prepare their add-ons to run on Python 3. 4. Allows interested users to be involved in a major project and provide test data.
Disadvantages:
1. We need to part ways with Windows XP and Server 2003. 2. Stress throughout the project, as it is nothing like what we've seen recently. 3. Some add-ons will need community intervention to get them to run on Python 3, as some are abandonware (no longer maintained by authors or the add-ons community don't know who wrote some of them and lost contact with some authors). 4. Possible issues in code and other ones, especially when looking at code and attitude conflicts.
Next steps:
1. I'm looking for volunteers and subproject leads: if you are passionate about Python, NVDA, and want to help NVDA achieve the next milestone, please help and find folks who can assist in this project. In regards to subprojects, mostly have to do with dependency checks and tests, testing, documentation, talking to Python Software Foundation (PSF), recruiting Python experts and what not. 2. Cooperation: as Project Pylennium is a grand-scale project, we cannot move forward and make it a reality unless cooperation between developers, add-on authors, users, observers and many others is there. 3. Promote: one way to keep the momentum going is promoting this project far and wide. 4. Continued work: I'm looking into how to port urllib imports, as this module has seen huge folder restructuring in Python 3 and other work.
What you'll need for this project:
1. Python 3.6.0 32-bit or later (3.6.2 is recommended). 2. wxPython 4 alpha 3 or later with the wheel for Python 3.5 or 3.6. 3. Six module (from PYPI). 4. ConfigObj 5.0.6.
Guidelines:
1. When sending pull requests, please do NOT send them to NV Access yet, as folks over there are working on high priority work. Instead, send
a pull request against josephsl/nvda branch py3000. 2. Please provide a clear commit message when sending in pull requests so folks can track what has changed. 3. Before you commit, please make sure to test NVDA in order to catch regressions and write workarounds. 4. At least once a month, I will merge NV Access master branch to keep the code up to date and incorporate changes into this project, sometimes requiring transforming syntax to fit Python 3 requirements. 5. If you want to port add-ons, please do so at your earliest convenience or when you are ready. As part of this work, I myself will port my own add-ons to Python 3 (one of them is done; throughout this year, I'll port rest of my add-ons). Please do not port your add-ons to Python 3 completely - I recommend making it so it'll run happily on both Python versions.
Thank you.
Sincerely,
Joseph
-- we have not sent you but as a mercy to the creation. holy quran, chapter 21, verse 107. in the very authentic narration is: imam hosein is the beacon of light and the ark of salvation. best website for studying islamic book in different languages al-islam.org
|