Topics

請問如何維護附加元件的相容性 #技術開發

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

有沒有人跟我一樣使用 beta 版的 NVDA?
有沒有發現以前安裝的附加元件都變成不相容?甚至自己寫的幾個附加元件也乾脆消失無宗。
除了別人寫的附加元件必須被動等待更新之外,請問自己寫的要如何調整相容性?
感謝高手指教!

woody tseng
 

Hello,

請問使用的 beta 版本?
我測在 2019.2.beta3 還沒實施附加元件相容性檢查功能
我是在 alpha 才有不相容的提示
應該是要在 manifest.ini 的 lastTestedNVDAVersion 設定到相應的版本
像最新版的 alpha 就要設定為 2019.3

Woody

Larry Wang
 

现在Python3只在alpha版有吧
有些插件简单修改manifest可以用 但是大部分插件 特别是语音库应该是不行的
首先要了解Python2 和 3的区别 然后查看NVDA的更新日志里面Developers 部分 了解NVDA本身的更改(特别是语音合成器部分),按照更新内容修改代码。

还有一种办法 不看更新内容 直接修改mainifest 然后把报错部分全部修正 遇到一个学一个

On Sat, Aug 3, 2019 at 8:25 PM 高生旺 <coscell@...> wrote:
有沒有人跟我一樣使用 beta 版的 NVDA?
有沒有發現以前安裝的附加元件都變成不相容?甚至自己寫的幾個附加元件也乾脆消失無宗。
除了別人寫的附加元件必須被動等待更新之外,請問自己寫的要如何調整相容性?
感謝高手指教!



woody tseng
 

Hello,
现在Python3只在alpha版有吧
對的,而且相容性檢查也是
还有一种办法 不看更新内容 直接修改mainifest 然后把报错部分全部修正 遇到一个学一个
我比較喜歡這種遇一個解一個,比較有效率,而且像在打怪
當然要全面了解還是從看 NVDA 的開發文件日誌或原始碼是比較有系統的

最近也再處理相容性更新與重構些程式碼
現在要測好多版本真麻煩,目前主要有測 2017.3(最後一版支援 windows 7 SP1 以下)、2019.2.RC1(python2)、alpha(python3)
python3 的相容性我也是直接跑然後看哪裡有 error 再去修

Woody

Larry Wang
 

哪里错改哪里 有两个问题
语音合成部分这种系统性变化 没法这样做 必须先读文档
不系统了解具体的机制 容易出现奇怪的问题 没法解决 最后还是要补课

On Sat, Aug 3, 2019 at 9:27 PM woody tseng <tsengwoody.tw@...> wrote:
Hello,
现在Python3只在alpha版有吧
對的,而且相容性檢查也是
还有一种办法 不看更新内容 直接修改mainifest 然后把报错部分全部修正 遇到一个学一个
我比較喜歡這種遇一個解一個,比較有效率,而且像在打怪
當然要全面了解還是從看 NVDA 的開發文件日誌或原始碼是比較有系統的

最近也再處理相容性更新與重構些程式碼
現在要測好多版本真麻煩,目前主要有測 2017.3(最後一版支援 windows 7 SP1 以下)、2019.2.RC1(python2)、alpha(python3)
python3 的相容性我也是直接跑然後看哪裡有 error 再去修

Woody

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

呵呵,我連自計用什麼版本都沒搞清楚實在汗顏!檢查結果的確是 Alpha.
很大的問題是我寫的附加元件都從列表上消失。
之前我直接修改 manifest.ini 無效,現在我修改後重新打包安裝,出現發生錯誤無法安裝的訊息,可是也沒說錯誤原因。
接著我把 manifest.ini 中的中文全部改為英文,安裝回答「市」後就直接跳出來,實在沒轍。

On Sat, 3 Aug 2019, Larry Wang wrote:

Date: Sat, 3 Aug 2019 21:11:20 +0800
From: Larry Wang <larry.wang.801@...>
Reply-To: nvda-tw@groups.io
To: nvda-tw@groups.io
Subject: Re: [nvda-tw] 請問如何維護附加元件的相容性?????????
现在Python3只在alpha版有吧
有些插件简单修改manifest可以用 但是大部分插件 特别是语音库应该是不行的
首先要了解Python2 和 3的区别 然后查看NVDA的更新日志里面Developers 部分 了解NVDA本身的更改(特别是语音合成器部分),按照更新内容修改代码。
还有一种办法 不看更新内容 直接修改mainifest 然后把报错部分全部修正 遇到一个学一个
On Sat, Aug 3, 2019 at 8:25 PM 高生旺 <coscell@...> wrote:
有沒有人跟我一樣使用 beta 版的 NVDA?
有沒有發現以前安裝的附加元件都變成不相容?甚至自己寫的幾個附加元件也乾脆消失無宗。
除了別人寫的附加元件必須被動等待更新之外,請問自己寫的要如何調整相容性?
感謝高手指教!

Larry Wang
 

要马上能用肯定不行 大部分插件需要修改代码 不是测试插件的话 建议退回稳定版 

On Sat, Aug 3, 2019 at 10:24 PM 高生旺 <coscell@...> wrote:
呵呵,我連自計用什麼版本都沒搞清楚實在汗顏!檢查結果的確是 Alpha.
很大的問題是我寫的附加元件都從列表上消失。
之前我直接修改 manifest.ini 無效,現在我修改後重新打包安裝,出現發生錯誤無法安裝的訊息,可是也沒說錯誤原因。
接著我把 manifest.ini 中的中文全部改為英文,安裝回答「市」後就直接跳出來,實在沒轍。

On Sat, 3 Aug 2019, Larry Wang wrote:

> Date: Sat, 3 Aug 2019 21:11:20 +0800
> From: Larry Wang <larry.wang.801@...>
> Reply-To: nvda-tw@groups.io
> To: nvda-tw@groups.io
> Subject: Re: [nvda-tw] 請問如何維護附加元件的相容性?????????
>
> 现在Python3只在alpha版有吧
> 有些插件简单修改manifest可以用 但是大部分插件 特别是语音库应该是不行的
> 首先要了解Python2 和 3的区别 然后查看NVDA的更新日志里面Developers 部分 了解NVDA本身的更改(特别是语音合成器部分),按照更新内容修改代码。
>
> 还有一种办法 不看更新内容 直接修改mainifest 然后把报错部分全部修正 遇到一个学一个
>
> On Sat, Aug 3, 2019 at 8:25 PM 高生旺 <coscell@...> wrote:
>       有沒有人跟我一樣使用 beta 版的 NVDA?
>       有沒有發現以前安裝的附加元件都變成不相容?甚至自己寫的幾個附加元件也乾脆消失無宗。
>       除了別人寫的附加元件必須被動等待更新之外,請問自己寫的要如何調整相容性?
>       感謝高手指教!
>
>
>
>
>
>



Larry Wang
 

这就是“奇怪”的问题了
日志没有错误信息吗?
实在不行只能用 python3的插件模板 然后完整修改一遍了

On Sat, Aug 3, 2019 at 10:24 PM 高生旺 <coscell@...> wrote:
呵呵,我連自計用什麼版本都沒搞清楚實在汗顏!檢查結果的確是 Alpha.
很大的問題是我寫的附加元件都從列表上消失。
之前我直接修改 manifest.ini 無效,現在我修改後重新打包安裝,出現發生錯誤無法安裝的訊息,可是也沒說錯誤原因。
接著我把 manifest.ini 中的中文全部改為英文,安裝回答「市」後就直接跳出來,實在沒轍。

On Sat, 3 Aug 2019, Larry Wang wrote:

> Date: Sat, 3 Aug 2019 21:11:20 +0800
> From: Larry Wang <larry.wang.801@...>
> Reply-To: nvda-tw@groups.io
> To: nvda-tw@groups.io
> Subject: Re: [nvda-tw] 請問如何維護附加元件的相容性?????????
>
> 现在Python3只在alpha版有吧
> 有些插件简单修改manifest可以用 但是大部分插件 特别是语音库应该是不行的
> 首先要了解Python2 和 3的区别 然后查看NVDA的更新日志里面Developers 部分 了解NVDA本身的更改(特别是语音合成器部分),按照更新内容修改代码。
>
> 还有一种办法 不看更新内容 直接修改mainifest 然后把报错部分全部修正 遇到一个学一个
>
> On Sat, Aug 3, 2019 at 8:25 PM 高生旺 <coscell@...> wrote:
>       有沒有人跟我一樣使用 beta 版的 NVDA?
>       有沒有發現以前安裝的附加元件都變成不相容?甚至自己寫的幾個附加元件也乾脆消失無宗。
>       除了別人寫的附加元件必須被動等待更新之外,請問自己寫的要如何調整相容性?
>       感謝高手指教!
>
>
>
>
>
>



woody tseng
 

Hello,

我也是建議製作 addon 完成後要打包用社區提供的 template
https://github.com/nvdaaddons/addontemplate
用 scons 打包這樣通常不會有其怪的問題
manifest.ini 內的資訊要寫在 buildVars.py 內
這樣用 scons 打包時就自動會產出正確的 manifest.ini 了

Woody

woody tseng
 

Hello,
语音合成部分这种系统性变化 没法这样做 必须先读文档
這點我是很讚同的,哪錯改哪確實只適合微調時用
我也還沒仔細研究語音的重構就是
不知道新的語音重構 API 已經穩定了嗎?

Woody

Sponge Jhan
 

Hi 高老師:

> 很大的問題是我寫的附加元件都從列表上消失。
> 之前我直接修改 manifest.ini 無效,現在我修改後重新打包安裝,出現發生錯誤無法安裝的訊息,可是也沒說錯誤原因。
> 接著我把 manifest.ini 中的中文全部改為英文,安裝回答「市」後就直接跳出來,實在沒轍。
NVDA 直接死掉的話,以 Windows 10 為例,看看這個記錄:
C:\Users\帳號名稱\AppData\Local\Temp\nvda-old.log
也許會提供有用資訊,之前測試 IBMTTS-19.7.2.nvda-addon 也是直接死掉從這個記錄找問題

另外,請問你建置附加元件的方式為何?以前我不會用 scons 就拿別人包好的元件開 7Zip/WinRAR 來編輯抽換檔案
但是,由於那是 Python 2 包出來的,不知道讓 Python 3 解會不會出事?沒有實際測驗過

BrlIMEHelper 規模不大,所以昨晚已經完成 Python 3 相容性的處理,不過與其改 manifest.ini 我覺得整包複製到 scratchpad 目錄更直接,只是這樣就見不到介面翻譯效果

  sincerely yours
   Bo-cheng Jhan

=?ISO-2022-JP?Q?=1B$B9b=4082=22=1B=28J?=
 

總算搞定了!
問題出在 manifest.ini 的存檔編碼,它變成具有 BOM 的 utf8, 改為 utf8 就好了。
感謝三位高手的指導!
另外還有個麻煩的問題:
你們有沒有發生每次更新,存檔的自動啟動選項都會被取消?
每次更新後如果忘記重新設定存檔,開機後就只能乾等實在很討厭。