Guadec GTK+ BoF 会议报告

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 机制的子目录。