Canonical 宣布重做 Snapcraft 

规范发布 最近你的下一个计划 Snapcraft 工具包的重大修订, 它用于生成、分发和更新流行的 Snap 包格式。

需要注意的是,当前的 Snapcraft 代码库 已被声明为继承,将在需要时应用 使用旧技术。

他在广告中提到 的剧烈变化 计划执行的,其中一些 已经在进行中不会影响当前的使用模式, 因为 Ubuntu Core 18 和 20 相关项目将继续使用旧的单体 Snapcraft 模型。

除此之外,他们提到新的 Snapcraft 模块化模型计划从 Ubuntu Core 22 分支开始应用。

实际上,随着时间的推移,事情会变得更加复杂,并且往往会变得更加复杂。 在过去的六年里,Snapcraft 团队一直致力于使其核心产品模块化、高效且对 Snap 开发人员有用,随着时间的推移扩展其功能并引入新功能。 在某种程度上,它是一个完整的产品,很好地服务于它的目的。 但是有一些方法可以让事情变得更好。 本文着眼于 Snapcraft 的未来。

至于为什么打算替换旧的 Snapcraft,那是因为e 希望提供一种新的、更紧凑和模块化的选项 这将使开发人员更容易创建 Snap 包,此外,它还希望一劳永逸地消除创建适用于所有发行版的可移植包的麻烦。

新的 Snapcraft 的基础是 Craft Parts 机制,它提到除了允许组装包的能力之外,它还将能够接收来自不同来源的数据,以不同的方式处理它们并形成目录层次结构FS,适合部署包。

Craft Parts 涉及到项目中便携式组件的使用,可以独立下载、组装和安装。

基本概念围绕着将 Snapcraft 划分为更小、更模块化和可重复使用的组件,这些组件可用于一系列不同的产品。 正如我们已经在 Craft Parts 博客文章中讨论的那样,这项工作的共同点是一组工艺库。 该理论要求使用基于工艺和工艺零件供应商的通用零件生成器,并将 Snapcraft 的附加功能作为一个单独的层。 唯一的问题是,燕子的空速是多少? 设计和实现它有多难?

就在假期之前,Snapcraft 团队着手回答这个确切的问题,并检查他们方法中的模块化程度。

选择新的实现 或旧的 Snapcraft 将通过特殊的内置备份机制进行 在施工过程中。 因此,现有项目无需更改即可创建 Snap 包,并且仅在将包移植到新版本的 Ubuntu Core 系统库时才需要修改。

至于已经完成的工作,分享一个非常快速的总结:

  • Snapcraft 当前的代码库现在被认为是遗留的。
  • 此软件包的主要入口点在需要旧版 Snapcraft 备份时运行。
  • Legacy Snapcraft 以字典形式维护项目配置数据。
  • 这已更改为使用 pydantic 模型。 此外,JSON 模式应该分开。
  • 使用 core22 基础(开发映像)制作了一个简单的原型,生成了一个包含测试应用程序的可安装即时包。

最后 如果您有兴趣了解更多有关它的信息 关于注意事项,可以查阅原文公告中的 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。