这对任何一个想支持多发行版的同时支持 treeland_personalization_wallpaper_context_v1协议的三方合成器都是灾难性的,后果就是OPCode MISMATCH,导致所有DTK5/6程序不启动,报无法连接到wayland
强烈支持!这玩意给我session炸飞了
强烈支持!这玩意给我session炸飞了
我自己的GXWM会话也炸飞了,要不是夏天的时候我们写了一段兜底代码我们到现在都进不去Wayland会话
你好,我是 8576b9c 的作者。
首先,对于提交 8576b9c 给您这边带来的影响和额外适配工作,我深表歉意,也感谢您对 Treeland 协议设计提出的建议。
此次调整主要是因为原有的 treeland_personalization_wallpaper_context_v1 协议在设计上存在 安全隐患,同时在功能扩展和职责划分方面也存在一定局限性。出于安全性、可维护性以及长期演进的考虑,我们对壁纸相关协议进行了重新设计。
新的壁纸协议主要包含以下两个部分:
- 壁纸监听与 Shell 协议:treeland-wallpaper-shell-unstable-v1.xml
- 壁纸设置与管理协议:treeland-wallpaper-manager-unstable-v1.xml
相比原有设计,新协议主要在以下方面进行了改进:
- 更完善的壁纸功能支持:同时支持静态壁纸和动态壁纸,为后续功能扩展提供更灵活的基础。
- 更清晰的协议职责划分:将壁纸设置、状态监听以及 Shell 相关能力进行合理拆分,避免将多个职责独立的 Interface 集中定义在同一个 XML 文件中。
- 更好的可扩展性与可维护性:通过相对独立的协议设计,降低功能间的耦合程度,便于后续维护和迭代。
不过,此次设计调整不可避免地导致原有的 treeland_personalization_wallpaper_context_v1 协议被废弃,并产生了不兼容变更。
因此,我们在 PR #72 中明确将此次修改标记为 Breaking Change,希望依赖该协议的客户端能够在重新编译时及时发现不兼容问题,并根据新的协议设计完成适配。
另外,为了尽可能避免类似的兼容性问题,建议后续使用 treeland-protocols 时优先依赖上游维护的协议定义,而不是自行 Fork 或维护独立的 XML 副本,以便及时感知协议的更新与变化。
关于您提出的 Deprecated(弃用标记) 建议,我们已经在最新的设计中予以采纳。后续 Treeland 的协议开发也会更加重视接口职责的独立性、规范化管理,以及协议演进过程中的兼容性保障。
treeland-protocols 项目目前还处于alpha状态,我们在完善过程中可能会有持续的改动,都是在让它变的更好。
你好,我是 8576b9c 的作者。
首先,对于提交 8576b9c 给您这边带来的影响和额外适配工作,我深表歉意,也感谢您对 Treeland 协议设计提出的建议。
此次调整主要是因为原有的 treeland_personalization_wallpaper_context_v1 协议在设计上存在 安全隐患,同时在功能扩展和职责划分方面也存在一定局限性。出于安全性、可维护性以及长期演进的考虑,我们对壁纸相关协议进行了重新设计。
新的壁纸协议主要包含以下两个部分:
- 壁纸监听与 Shell 协议:treeland-wallpaper-shell-unstable-v1.xml
- 壁纸设置与管理协议:treeland-wallpaper-manager-unstable-v1.xml
相比原有设计,新协议主要在以下方面进行了改进:
- 更完善的壁纸功能支持:同时支持静态壁纸和动态壁纸,为后续功能扩展提供更灵活的基础。
- 更清晰的协议职责划分:将壁纸设置、状态监听以及 Shell 相关能力进行合理拆分,避免将多个职责独立的 Interface 集中定义在同一个 XML 文件中。
- 更好的可扩展性与可维护性:通过相对独立的协议设计,降低功能间的耦合程度,便于后续维护和迭代。
不过,此次设计调整不可避免地导致原有的 treeland_personalization_wallpaper_context_v1 协议被废弃,并产生了不兼容变更。
因此,我们在 PR #72 中明确将此次修改标记为 Breaking Change,希望依赖该协议的客户端能够在重新编译时及时发现不兼容问题,并根据新的协议设计完成适配。
另外,为了尽可能避免类似的兼容性问题,建议后续使用 treeland-protocols 时优先依赖上游维护的协议定义,而不是自行 Fork 或维护独立的 XML 副本,以便及时感知协议的更新与变化。
关于您提出的 Deprecated(弃用标记) 建议,我们已经在最新的设计中予以采纳。后续 Treeland 的协议开发也会更加重视接口职责的独立性、规范化管理,以及协议演进过程中的兼容性保障。
treeland-protocols 项目目前还处于alpha状态,我们在完善过程中可能会有持续的改动,都是在让它变的更好。
这个回复也太官方了。
@CharOfString @神末shenmo 抱歉啊,Treeland 这些协议设计时比较仓促,当时就想过肯定会重构,所以专门在协议里加了个警告,就怕被人用到了,没想到还是影响到了。几个月前修改过一次(当时没注意到外面可能有人在依赖这个协议,加上之前就没打算对这个版本保持兼容,所以直接就改了,没有改协议名,也没有考虑兼容性问题)。为了减少发生破坏性变化的次数,所以9 月份和 10 月在做全量的协议梳理,不少协议都做了修改,不过这次修改暂时保留了旧协议文件,以改名或加新协议的方式做的重新设计。但旧协议过俩月也会删掉,不过这次是一个集中性的修改,做完后后续的改动会跟上游的协议一样,会按惯例维护它们,不会再轻易改动。
这个回复也太官方了。
@CharOfString @神末shenmo 抱歉啊,Treeland 这些协议设计时比较仓促,当时就想过肯定会重构,所以专门在协议里加了个警告,就怕被人用到了,没想到还是影响到了。几个月前修改过一次(当时没注意到外面可能有人在依赖这个协议,加上之前就没打算对这个版本保持兼容,所以直接就改了,没有改协议名,也没有考虑兼容性问题)。为了减少发生破坏性变化的次数,所以9 月份和 10 月在做全量的协议梳理,不少协议都做了修改,不过这次修改暂时保留了旧协议文件,以改名或加新协议的方式做的重新设计。但旧协议过俩月也会删掉,不过这次是一个集中性的修改,做完后后续的改动会跟上游的协议一样,会按惯例维护它们,不会再轻易改动。
非常感谢回复,作为 deepin 的下游项目,也衷心希望 deepin 越来越好
cc @CharOfString
目前内测炸 wl session 的问题大概需要做什么操作来解决?我发一下
Popular Ranking
ChangePopular Events
More

中文 


目前,treeland-protocols协议包内部分协议存在协议XML修改(导致协议签名变更)但没有bump协议版本的问题。
对于Wayland而言,协议的
version是client与WM协商可用功能的唯一凭证,应用破坏性变更但不bump版本给正在适配改协议的第三方合成器(以及其跨发行版支持)带来了严重兼容性灾难。例如:
如果合成器广播
treeland_personalization_wallpaper_context_v1,则所有DTK5/6程序都会尝试走这个协议,以下两种情况会导致协议/实现签名/opcode mismatch导致所有DTK5/6程序拒绝启动:0.5.8包,广播了来自0.5.8的协议,但实际编译/runtime的环境是0.5.90.5.9包,广播了来自0.5.9的协议,但实际编译/runtime的环境是0.5.8如果WM还要适配多发行版,各发行版仓库中的
treeland-protocols版本不同(无法通过简单地vendor最新版本的XML与实现解决 必须为每个版本单独实现),这会导致兼容性灾难...建议