首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Homebrew 作者发布的去中心化激励开源社区-Tea.xyz

是统一包装的基础设施。来自 的创建者, 是一个独立的、适用于所有平台的二进制文件,使整个开源生态系统触手可及。打破编程社区之间的孤岛,把使用完全不同的工具和语言的脚本放在一期,通过简单的一行代码与世界分享。

不过需要注意的是现在 还没到 v1 版本,所以可能在日常使用中仍有一些小问题,当然这也意味着你更应该参与进来,这是关键和黄金时期,参与其中既容易又非常有趣。

tea/cli 0.13.8

开源是一个宝库 - 但这些宝箱都用粗糙的锁锁住了。 就是关键:

不安装软件包,至少不是传统意义上的,我们将它们存放在 中,你的系统保持原始状态,并与 的操作隔离开来,但当你需要使用的时候,一切都准备好了。

后面是一个包管理器,其中所有的软件包都是可重定位的。

的 语法让整个开源生态系统触手可及,如果你在 处,则会发生上述情况,我们在环境中打开一个包含这些包的新 ,但如果你继续输入,你就可以构建直接使用。

组合一切,结合一切——就像 UNIX 哲学一样,这样就可以把我们带入 的管道 pipelines 中:

上面的示例命令会下载 的白皮书文件,并使用 charm 非常优秀的 终端 markdown 渲染器进行渲染。这是一个基本的示例,但 UNIX 受包管理器的限制实在太久了,这也是 旨在克服的一个基本限制。

另外值得注意的是,使用 语法可以更简洁地表达:

如果你想试用最新版本的 node,但不确定它是否适用于你的项目? 也可以非常容器实现。

同样可以使用一行命令来创建一个 react 应用:

tea:通用解释器

在这个基本的例子中,我们知道要根据文件扩展名先安装 ,很明显,对吧?

读取 YAML 文件的前端信息,允许你在整个开源生态系统中为脚本、gists 和一行程序进行操作。在运行时,脚本在其环境中具有这些依赖项,但系统的其余部分永远不会知道它们。

我们还知道更多的魔法:

通常 使用包的完全限定名称,但我们知道它们提供什么工具,所以只要你知道正在查找的是什么工具,我们就可以弄清楚其余的相关依赖。将来版本中会提供如下的方式来支持依赖声明:

tea:通用虚拟环境管理器

同样比如需要 34 个依赖项来编译我们的白皮书,但有了 就非常简单的了:

我们的白皮书依赖项在我们的 README 中以简单的 markdown 格式编写。 只需进入目录即可为他们设置一个虚拟环境。

在 macOS 上,你可能需要先执行 ,因为我们重新使用系统 (我们尝试检测系统安装的 deps),因此我们无法拦截调用。

基本原理

tea 使用 shell hook 将你项目所需的工具插入到 shell 环境中。开发现在在包管理器级别进行了容器化,你不再需要担心你的团队使用不同版本的基础工具,也不必担心系统级更新会破坏你正在处理的不同项目。

有数以千计的版本管理器来支持成千上万的工具,也许现在是时候停止这种重复工作的时候了。项目可以准确地指定他们需要什么,你可以在今天、明天或十年后准确地满足这些需求。

在上面的示例中,如果 尚未安装,我们将插入一个 hook,以便尝试执行它时将首先安装它。

停止使用 Docker

Docker 非常适合部署和交叉编译,但是......让我们面对现实吧:它对开发人员来说很糟糕。

Docker 扼杀了 builders,它限制了你;技术不断进步,但你的 Docker 容器仍然不能动,没有人知道如何使用 docker,一旦配置了 ,就没有人敢碰它了。

让我们面对现实吧,让你的个人开发和调试工具在这个镜像中工作是非常令人沮丧的,为什么要限制你的潜力呢?

继续使用用 Docker 部署,但是用 来开发

然后当你部署时,你也可以用 来安装这些依赖组件

与系统打包程序不同,它有适当的版本控制,所以使用 ,你的部署实际上会更稳定。

可执行的 Markdown

Markdown 已经成为了开发的标准文档格式,与其编写带有注释的脚本,不如编写可以运行的文档。

在 CI 中使用这些脚本很简单:

可以查看 teaxyz/setup 了解们的 GitHub Action 执行的所有操作。

安装使用

是一个独立的二进制文件,因此,如果你愿意,可以自己下载安装,我们推荐使用我们的安装程序:

如果你想要 的虚拟环境管理器功能,上面的安装方式是最简单的。

协议

是以去中心化协议的模式激励开源社区。通过 协议,开源软件包维护者,可以把自己负责的版本发布到由区块链驱动的去中心化注册仓库,从而消除单一故障源,发布无法篡改的版本,允许社区管理整个开源生态系统区域,避免外部影响。

可以激励开源生态系统,主要方式是是通过让参与 协议的开发者,将能够获取的价值与所依赖并希望保护的软件包进行质押。 协议的图表可以提供不可篡改的的软件包注册、对于依赖性要求、验证软件包的真实性,以及通过预言机告知 报酬激励算法。系统性的通货膨胀,基于算法会被分摊到所有软件包上,如果发现安全或开发问题,开发者可以通过上传证据,可以针对软件包的索赔,系统会对有错误和安全上传方进行索赔。开源社区的成员可以审查软件包的质量问题,而 协议可以通过制定比例的削奖励减,来应对这些审查。

Git 仓库:https://github.com/teaxyz/cli

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221201A00UXM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券