1

我有一个我想开源的闭源项目(处理各种语言的文本),可能通过将其上传到 bitbucket 来实现。但我不确定如何/是否应该将其拆分为子项目。

目前整个项目在 svn 中作为一个大结构:

  • 主系统(java中的一组工具)
  • ant 插件(需要特定版本的系统;ant 是一个构建系统,我们使用它来加载语言资源、构建和测试它)
  • 文档(如何运行,开发资源,..)
  • 语言资源 1
  • 语言资源 n

语言资源可能具有不同的许可证,并且可能由第三方提供。

我想知道:我应该将这个项目放在一起(只删除具有更严格许可的语言资源)还是应该将它拆分为单独的项目。后者似乎更像是要做的事情,但我如何保持版本同步?只是手动,使用自述文件?

(更多细节基于下面的答案:)通常,用户会下载系统、蚂蚁插件和一种语言资源。它们需要相互兼容。但有时他会在没有脚本的情况下下载它(如果他不做任何实验而是将其集成到生产系统中)。另一方面,有时他们可能想用它下载多个甚至所有资源。

感谢您的任何建议

4

1 回答 1

3

将自己置于程序用户的位置:

  • 我是否需要下载项目的所有部分才能运行它?
  • 在更新的情况下,我应该更新所有部件以使其正常工作吗?
  • 单独使用项目的某个部分是不可能的吗?

如果上述任何问题的答案是“是”,则将所有部分保留在一个项目中。基本上,如果您需要所有部分一起工作,那么制作单独的项目是没有意义的,因为最终用户必须获取/更新所有项目。

如果对所有这些问题的回答都是“否”,那么项目的各个部分就具有一定的逻辑独立性,在这种情况下,只需获取和使用其中的一部分而不必打扰其余部分,这是有意义的。在这种情况下,让它们成为多个项目。同样,每个项目都将包含非常依赖的部分(要么全部得到,要么什么都没有)。

无论如何,务必将文档与源代码一起保存。你不希望版本不匹配。我不知道“ant”的东西是什么,但是如果它们也非常依赖于版本,请将它们与主系统放在同一个项目中。


根据您的更新,我建议将带有蚂蚁和文档的主系统放在一个项目中,并将脚本放在另一个项目中。由于您将“语言资源 X”称为脚本,因此我认为它们很小。这使得他们所有人都可以在一个项目中,即使用户只想要其中一个。

但是,如果“语言资源 X”本身就是一个大项目,那么将它们放在单独的项目中是有意义的。

于 2013-10-31T15:17:19.390 回答