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博客,从哪里来本出版物。