将“contrib”目录添加到项目中

2020-06-07 02:35:03

在自由和开放源码软件项目中有一个共同的模式,即在其源代码树的顶部包含一个“contrib”目录。多年来,我在许多项目中都看到了这一点,但我很少看到有人讨论它-所以我们就在这里!

contrib目录被用作由社区围绕软件贡献的各种有用内容的无组织(或者,充其量是简单组织的)垃圾箱,但它不一定是软件的适当部分。contrib中的内容不应该连接到构建系统中,不应该是自动化测试的一部分,不应该包含在文档中,也不应该与包一起安装。维护人员不支持人工条目,最多只对代码进行简单的审查。不能保证在Contrrib中发现的任何东西都能正常工作或进行维护。

然而,有这样一个地方放置各种小脚本、配置文件等通常是有用的,它们为用户购物提供了一个有用的辅助工具,可以将软件与某些第三方产品集成,将其配置为很好地适应不寻常的环境,诱使它进入一些不寻常的行为,或者其他任何情况。这个想法是为了提供一个地方来放置几个文件,这可能会使将来面临类似问题的人不必自己做所有的工作。这样的人可以贡献一些小的修复或改进,而这些贡献的维护负担完全由用户承担。

如果贡献者想要承担更大的维护负担,这种东西更适合独立的项目,有自己的问题跟踪、发布等等。如果你只是写了一个小脚本,想把它放到某个地方,这样别人可能会发现它很有用,那么contrib就是适合你的地方。

_incr_version脚本是我自己用来帮助准备新版本的东西。它是一个仅对维护人员有用的工具,因此不随项目一起分发。

接下来看autoname-workspace es.py,从中我们可以看到contrib成员的质量标准降低了--Sway的上游代码都不是用Python编写的,而且引入这样的依赖关系将是一种非常规的。此脚本根据您在其中运行的应用程序自动更改您的工作区名称-这是一个有趣的工作流,但与OOTB体验有很大的不同。

Grimshot是一个shell脚本,它将许多第三方程序(grim、slurp、wl-copy、jq和tify-send)捆绑在一起,以方便地拍摄屏幕截图。为了方便起见,添加此上游会引入大量的第三方依赖项。这个工具投入了更多的精力:请注意,还提供了一个手册页。因为contridirectory不参与上游构建系统,所以贡献者还添加了一个预编译的手册页,以便您在系统上安装它时可以跳过这一步。

最后,我们有inactive-windows-transparency.py,这是一个脚本,用于使除焦点窗口之外的所有窗口都是半透明的。有些人可能想要这样,但再说一遍,这并不是我们认为真正适合OOTB体验的东西。再合适不过了!

对我的一篇帖子有什么评论吗?通过发送电子邮件至~sircmpwn/[email protected],在我的公共收件箱中开始讨论。

您是一名自由软件维护员吗?在您的工作过程中,您是否正在与压力、苛刻的用户、超负荷工作或任何其他社会问题作斗争?请给我发电子邮件-我知道你的感受,我可以倾听你的同情心,分享一些经验丰富的建议。