2010-06-14 58 views
1

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

我喜欢这样一个事实,即任何想要贡献的人都可以克隆存储库并开始处理他们想要的任何事情。但我认为这使得Evil People很容易创建恶意安装程序并将其释放。

它应该如何构造?你建议包括在存储库中,而不是只保留在构建服务器上?

+0

它是有风险的不开源太:邪恶的人可以使产品的“假”的安装和通常所说的“盗版”帮助散布邪恶。在用户和不受控制的分支所在的地方之间必须存在信任关系。此外,分支机构也必须能够访问源代码,并且可以检查“生成的安装程序”是否与代码相匹配(如果在源代码中,代码可以很容易地与“恶意可疑代码”相匹配);这样的威胁将会很短生活,分支将不再被信任,一切都很顺利。 – ShinTakezou 2010-06-14 10:26:16

回答

1

你似乎在寻找的是目录布局。您将您的问题标记为与语言无关,但它取决于您要使用的语言/框架/构建工具。为了给你一些例子

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

1

离开你的支持库和构建工具使它成为一个巨大的痛苦:

  • 人谁只是想尝试一下这个软件,或许对你没有提供安装程序的平台,或者从已发布的较新版本开始

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

这些都是你需要使出浑身解数来迎合该不会有一个营销部门的一个项目拉皮条出来,不会有专职有偿团队开发新的人功能和修复错误(又名,个人/开源/爱好项目)。

没有人会玩弄或破解你的项目,如果它的屁股一个巨大的痛苦,甚至得到它的建设,他们会继续前进到下一个事情。无论出于何种原因,有人对恶意软件欺骗你的软件感兴趣,已经将花费更多的精力去寻找其他一些软件包来安装安装程序,所以你要阻止错误的用户子集没有可观的收益。 (考虑它是一种形式security through obscurity。这从来没有工作。)

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

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