GNOME 45将打破扩展向后兼容性

2023年 9月 6日 56.4k 0

GNOME 45版本将影响您最喜欢的扩展,扩展开发者需要移植他们的扩展才能使其工作。

到现在为止,你一定听说过这件事。一个重要的转变是,随着GNOME 45版本的发布(即将发布),GNOME Shell正在从其定制的导入系统过渡到标准的JavaScript模块(ESM)。

这一举措承诺改善代码组织和与现代JavaScript实践的兼容性,但它也会带来一些后果,可能会影响您的GNOME体验。

最初设计的目的是增加网页的互动性,但最初并没有配置为处理分散在多个文件中的大型应用程序。这一限制导致了在各种JavaScript环境中开发自定义导入系统,包括GNOME的GJS。因此,开发人员和工具在不同的JavaScript生态系统之间转换时面临挑战。

然而,随着ECMAScript 6(ES6)模块标准化,决定性的时刻在2015年到来。这些模块提供了一种定义良好、得到广泛支持的语法,所有主要的JavaScript引擎都采用这种语法。尽管GJS在2021年开始支持ES模块,但将整个GNOME Shell移植到这个新系统上是一项艰巨的任务。

模块与传统导入

现在,事情变得有点棘手了。在实践中,模块和遗留导入从根本上是不兼容的。模块的加载方式与脚本不同;一些关键语句,如‘IMPORT’和‘EXPORT’,仅在模块内有效。这意味着,如果模块使用这些语句,则尝试使用传统系统导入模块将导致语法错误。

那么,这对您这个GNOME用户意味着什么呢?

从GNOME 45开始,为旧版GNOME开发的扩展将不起作用。相反,经过精心调整以在GNOME 45上运行的扩展在较早的GNOME版本中将不起作用。

然而,并不是一切都失去了!如果您是一名开发人员,并且希望继续支持较旧和较新的GNOME版本,则需要将不同版本的扩展上传到extsions.gnome.org以获得45岁之前和45岁后的支持。

对于开发人员来说,这可能是大量的工作。

GNOME社区在此帮助开发人员完成这一过渡。有一个全面的移植指南,其中有详细的信息来帮助开发人员更新他们的GNOME 45扩展。此外,一个活跃的扩展社区已经准备好在Matrix和Discount等平台上伸出援手,使移植到新的导入系统的过程更容易访问和更顺畅。

对于用户来说,您需要等待,直到那些针对45之前版本的特定扩展在他们的代码中完成移植。因此,当GNOME 45发布时(通过Fedora 39,Ubuntu 23.10),在升级之前禁用扩展。

通过博客帖子,其FOSS新闻

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论