【问题标题】:Structure of open source project's repository [closed]开源项目存储库的结构[关闭]
【发布时间】:2011-03-03 10:48:54
【问题描述】:

我正在开始一个小型开源项目。克隆主存储库时,可以获得一个完整的构建环境,其中包含制作正式安装程序文件所需的所有库和所有工具,并具有正确的版本号。

我喜欢这样一个事实,即任何想要贡献的人都可以克隆存储库并开始使用他们想要的任何东西。但我认为这使得 Evil People 可以轻松创建恶意安装程序并发布到野外。

应该如何构建?您建议将哪些内容包含在存储库中,而不是仅保留在构建服务器上?

【问题讨论】:

  • 不开源也是有风险的:邪恶的人可以制作“假”的产品安装程序,通常所说的“盗版”有助于传播邪恶。用户与发现您无法控制的分支的位置之间必须存在信任关系。此外,分支中的源也必须是可访问的,并且可以检查“生成的安装程序”是否与代码匹配(如果留在源中,可以很容易地“针对”恶意可疑代码进行检查);这样的威胁会很短生活,分支将不再被信任,一切都很好。

标签: language-agnostic project-management


【解决方案1】:

您似乎正在寻找的是目录布局。您将问题标记为与语言无关,但它确实取决于您要使用的语言/框架/构建工具。举几个例子

它不会阻止邪恶的人做坏事,但它会帮助你的潜在贡献者。

【讨论】:

    【解决方案2】:

    省略您的支持库和构建工具会给以下用户带来巨大的痛苦:

    • 任何只想试用该软件的人,可能是在您尚未提供安装程序的平台上,或者从您已经发布的较新版本中

    • 任何想要为您的项目做出贡献或破解的人。

    在一个没有营销部门拉皮条、没有全职付费团队开发新功能和修复错误的项目中,您需要竭尽全力迎合这些人(又名个人/开源/爱好项目)。

    没有人会玩弄你的项目或破解你的项目,如果它是一个巨大的痛苦,甚至构建它,他们只会继续下一个事情。出于某种原因,有兴趣以恶意意图欺骗您的软件的人已经付出了比寻找其他一些软件包来组装安装程序所需的更多努力,所以您正在阻止错误的用户子集没有明显的收益。 (将其视为security through obscurity 的一种形式。它永远不会起作用。)

    专注于让用户和其他开发人员可以访问您的存储库。

    顺便说一句,下载和构建软件的人应该养成检查代码的习惯,或者至少在本地安装和运行东西之前决定他们是否信任分发者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      相关资源
      最近更新 更多