GTK+ 团队在 Guadec 的 BoF 日期间进行了一整天的规划会议,我们坐满了整个房间,其中包括来自多个下游的代表,不仅仅是 GNOME。
我们也有一个相当紧凑的 议程。
GTK+ 3
我们首先回顾了我们 之前概述的 GTK+ 3 计划。
除了那里提到的内容之外,我们还计划向后移植新的事件控制器,以使移植到 GTK+ 4 更容易。我们还将添加 meson 构建支持以帮助进行 Windows 构建。
3.24 版本将有效地成为 3.22 分支的延续,并且作为发行版中的稳定更新发布应该是完全安全的。
我们计划在 GNOME 3.30 发布时发布 GTK+ 3.24.0。
GTK+ 4 遗留问题
当天的大部分时间都用于讨论 GTK+ 4。我们回顾了路线图上剩余的任务列表
- 完成 DND:GTK+ 级别的姿势,本地快捷键
- 引入 GtkToplevel 并干净地支持弹出窗口
- 添加变换
- 创建一个快捷键事件控制器来替换按键绑定
- 将 GtkTextView 移植到渲染节点
- 分析 cairo 后端,确保其性能与 GTK+ 3 相当
- 移植各种依赖库
- vte
- webkit
- libchamplain
- gtk-vnc
- gtk-spice
这些任务中的大多数都有相应的名称,但是如果您想帮助完成这些任务中的任何一项,请务必与我们联系!
值得注意的是,此列表中缺少一些之前在路线图上的内容
- 基于约束的布局 (emeus)
- 着色器编译器和应用程序提供的着色器
- 设计器支持
如果出现合并请求,所有这些仍然可以发生,但是我们认为我们不应该在此方面进行阻止。它们可以在 GTK+ 4 之外进行开发,并成为 GTK+ 5 的素材。
GTK+ 后端
我们花了一些时间评估 GTK+ 主分支中 GDK 后端的状态。
Windows 后端的状况良好。我们有几个人帮助维护和进行功能开发,meson 使其构建变得容易得多,并且我们为此提供了 ci。
Quartz 后端的状况要糟糕得多。它没有保持在可构建的状态,没有人为其提供修复或功能开发,而且我们没有 ci。我们提供了一个可用于 ci 的 macbook,并且建议我们可以将 travis ci 用于 OS X。
GTK+ 时间表
我们在这方面花费了很长时间,但并未达成 100% 的共识,但是如果我们继续在未完成的遗留问题上取得良好进展,那么在 2019 年春季发布 GTK+ 4 似乎是现实可行的。
当我们发布 GTK+ 3.96 时,我们还将宣布 GTK+ 4.0 的日期。我们希望能够在 GNOME 3.32 之前承诺发布,以便 GNOME 应用程序开发人员可以将他们的主分支切换到 GTK+ 4,而无需担心这是否会破坏 3.32 的其他开发。
应用程序移植
此时,我们非常希望从应用程序移植中获得反馈。但是我们处于一个有点困难的境地,因为在完成 GtkToplevel 和快捷键控制器的工作之前,我们无法合理地声称已完成主要的 API 工作。
此时我们给应用程序作者的建议是
- 如果您有点冒险精神,请在分支上移植到 3.94。在 GTK+ 4 开发的剩余时间内,应该可以保持其正常工作而无需花费太多精力。
- 如果您没有那么冒险精神,请等到 3.24 发布,使用它来准备您的移植,然后移植到 GTK+ 3.96。
- 无论哪种方式,请使您的移植版本可供用户进行测试,无论是作为常规版本还是作为带有捆绑 GTK+ 的 Flatpak。
GLib 分流
下午,我们花了一些时间讨论 GLib。我们浏览了一长串大大小小的项目。值得注意的亮点:GProperty 可能会在 2.60 中出现,并且我们可能很快就可以使用 g_autoptr。
其他想法
我们讨论了许多其他我们可以做和应该做的事情。
例如,有人建议(并普遍同意)我们应该将 gsk 合并到 gdk 中,因为它很小并且内部结构有些交织。还建议在 gtk/ 中创建子目录,例如用于 css 机制的子目录。