QGIS 3.0-如何,何時何地; 這意味著
我們很多人都在問:
QGIS 3.0何時發布?
去年(2015),項目組開始調查QGIS 3.0何時何地被發布。 他們承諾,根據一個職位 梅艷芳射線激光器,他們將在發布QGIS 3.0之前向用戶和開發人員明確傳達其計劃。 他們最近試圖公開QGIS 3.0版本的一些注意事項,並且在發布結束時,我們有機會介紹我們的想法。
為什麼3.0?
通常,當對軟件的API進行較大更改時,將保留主版本。 對於我們的QGIS項目而言,這一突破並不是一個微不足道的決定,因為我們有成千上萬的用戶依靠QGIS進行自用和向第三方提供的服務。
偶爾打破需要的API,以適應與改進方法,新圖書館和更正過去作出的決定更新架構。
什麼是打破了API的後果是什麼?
QGIS 3.0中API破壞的一個原因是它會產生很大的影響,這可能會打破數百個不再與新API兼容的開發插件,而這些插件的作者將不得不做審查其發展情況,以確保與新API的兼容性。
的所需要的變化的程度在很大程度上取決於:
- 許多API的變化會影響目前的功能。
多少分插件作者使用,將改變部分API。 -
什麼是3.0的主要變化?
有跡象表明,正在尋找在3.0變化四個關鍵領域:
Qt4到QT5更新: 這是 QGIS 建立在頂層的基本庫集,我們說的是平台的核心功能級別。 QT 還提供庫來執行內存管理、連接操作和圖形管理。 Qt4(QGIS 當前基於)目前不是由 Qt 庫維護者開發的,並且可能在某些平台(例如 OS X)上存在功能問題,甚至可以更輕鬆地管理二進製版本(例如 Debian Testing 和下一個 Debian 版本) “拉緊”)。 將 QGIS 引入 QT5 的過程已經有了一個重要的進展(主要是 Matthias Kuhn 所做的),與 Marco Bernasocchi 一起在完全基於 QT5 的 Android“QField”上冒煙。 但是,由於新 QT5 對 QGIS 的影響,在啟動和運行新 QTXNUMX 方面存在一些限制——尤其是 Web 瀏覽器小部件(主要用於 Composer 以及 QGIS 中的其他一些地方)。
PyQt4到PyQt5更新: 這些是QGIS Python API所基於的Qt的Python語言的相對變化。 建議更改QT5 C ++庫,同時也希望將Python庫移動到PyQt5,以便利用Python中新的QT5 API的優點。
更新的Python Python的2.7 3到: 當前,所有內容都在Python 2.7上運行。 Python 3是python的最新版本,並被該項目的領導者推薦。 Python 2與Python 3略有不兼容(幾乎與QGIS 2和Qgis 3之間的不兼容成比例)。 許多開發人員已經使python Python 3在很大程度上與Python 2向後兼容,但是向後兼容性並不是那麼好。
提高QGIS自己的API: 維護版本之間的 API 兼容性的問題之一是您必須長期忍受您的設計選擇。 QGIS 盡一切努力在一系列次要版本中不破壞 API。 使用當前不支持的 API 發布 3.0 的 QGIS 版本將使我們有機會通過修復我們不符合的 API 中的內容來“清理房屋”。 你可以看到一個臨時列表 3.0建議修改API.
如何支持更改3.0 API
如前所述,版本3.0將隨QGIS版本2.x一起中斷,並且基於當前API的許多插件,現有應用程序和其他代碼可能會中斷。 那麼可以採取哪些措施來減輕變化呢? Matthias Kuhn,JürgenFischer,Nyall Dawson,Martin Dobias和其他頂級開發人員一直在尋找方法來減輕API中斷更改的次數,同時繼續基於下一代庫及其內部API改進QGIS代碼庫。 在我們QGIS項目指導委員會的上次會議期間,我們對各種可能性進行了地理熏蒸。 下表總結了Matthias Kuhn親切總結的內容,並且根據本文的內容,我們在本文中進行了部分音譯 他們發表在自己的博客:
QGIS 2.14 LTR |
QGIS 2.16 ??? | QGIS 3.0 | |
fecha的lanzamiento | 二月底 | 4 2.14個月 | ¿週期8個月? |
筆記 | 核心QGIS Python代碼的Python 3,來更新兼容,並支持PyQt5(關鍵功能如控制台部分實現,蟒蛇核心插件等) | ||
Qt4 | Si
不推薦使用Debian中伸展(由於在一年中) (-webkit移除) |
是 | 沒有 |
Qt5 | 沒有
小姐QWebView - 新的替換並非在所有平台上。 還差QPainter的引擎。 |
Si | Si |
PyQt4 | Si | Si | 沒有 |
PyQt5 | 沒有 | Si | Si |
Python的2 | Si | Si | 沒有 |
Python的3 | 沒有 | Si | Si |
清理API | 沒有 | 沒有 | Si |
包裝 PyQt5-> PyQt4 〜90%提供向後兼容性 |
沒有 | Si | Si |
主流二進制 | 基於Qt4 | 基於Qt4 | 基於Qt5 |
投資重點 | Python包裝 |
還有需要注意的建議馬蒂亞斯兩個重要的事情:
在第一階段這項工作是在系列來完成的2.x支持QT5,PyQt5使用Python 3.0,支持Qt4,PyQt4和Python 2.7。 這意味著,在第一階段的所有更改會與早期版本兼容2.x。 Python的功能將被納入將被引入,使舊的API PyQt4仍可特別是當對QT5,PyQt5,巨蟒3.0編譯使用。 通過使用針對Qt4,PyQt4和Python 2.7編譯QGIS不會破壞兼容性。
在第二階段它的工作產生QGIS 3.0,引入新的API,完全刪除了Python 2.7,包括Qt4和PyQt4支持。 在Python中的新功能進入第一階段將維持,考慮到所有的Python代碼和發展的QGIS的2.x版本繼續在QGIS的3.x版本。 這個階段也有望出台QGIS API,可能會影響一些插件的變化。 為了解決這個問題將提供指導AA遷移,試圖促進版本的2.x QGIS 3.x QGIS版本的遷移。
買者自負
有一些技巧,以被要求確保遷移到QGIS 3.0聽起來不那麼痛苦。
- 1. S應該注意的是,儘管上述方法試圖將插件中python腳本編寫的工作量減至最少,但這並不一定是100%。 在大多數情況下,必須對代碼進行調整,至少在所有情況下,都必須對其進行修改,以確保其繼續正常運行。
2.沒有正式建立的財政資源來支付自願為該遷移過程投入時間的開發人員。 因此,很難給出確切的時間範圍,說明該過程各部分將花費多長時間。 在計劃中必須考慮這種不確定性。 當然歡迎捐款幫助實現這一目標。
3.可能會有開發人員和機構為QGIS 2.x系列的新功能提供資金,這可能會影響您的工作。 有必要在這些項目的計劃和預算中包括一定的分配,以面對向QGIS 3.x平台的遷移。
4.如果QGIS團隊致力於“全面變革”,QGIS將在相對較短的時間內不穩定,並且由於QGIS 3.0的持續更新而不斷變化。
4. 如果您以“進化”的方式進行開發,您將面臨 3.0 開發可能需要更長時間的風險,除非您有一群忠誠的開發人員致力於開發並準備好移植。建議
在所有上述信息光,行動的兩個過程之一提出:
1建議:
發行臨時版本2.16,然後優先開發版本3.0,開發週期為8個月。 在2.16版中所做的更改將尋求與3.0版兼容(請參閱python3 / pytq5)。
2建議:
衝刺一次與QT3.0,Python的5和PyQt3.0更加延長持續時間窗口5並要求開發商做他們的工作3.0。 繼續2.x版本,以與通常的頻率,直到3.0已準備就緒。
替代方案
有其他建議嗎? QGIS有興趣了解可能的替代方法。 如果您要提交提案,請發送至 tim@qgis.org 主題為“QGIS 3.0 提案”。
應遵循 QGIS博客,從哪裡來本出版物。