我有一个闭源项目(处理各种语言的文本)我想开源,可能是将它上传到bitbucket。但我不确定如何将其拆分为子项目。
目前整个项目在svn中是一个大结构:
语言资源可能具有不同的许可证,可能由第三方提供。
我想知道:我应该将这个项目放在一起(只删除具有更严格许可的语言资源),还是应该将其拆分为单个项目。后者似乎更像是要做的事情,但我如何保持版本同步?只需手动,使用自述文件?
(更多细节基于以下答案:) 通常,用户会下载系统,ant插件和一种语言资源。他们需要相互兼容。但有时他会在没有脚本的情况下下载它(如果他没有做任何实验但是将它集成到生产系统中)。有时,另一方面,他们可能希望用它下载多个甚至所有资源。
感谢您的任何建议
答案 0 :(得分:3)
让自己取代程序用户:
如果上述任何问题的答案为“是”,则将所有部分保留在一个项目中。基本上,如果你需要所有部件一起工作,那么制作单独的项目是没有意义的,因为最终用户必须得到/更新所有部分。
如果他们所有人的答案都是“不”,那么项目的各个部分就具有一定的逻辑独立性,只需获取和使用部分内容就行了,而不必费心去完成剩下的工作。在这种情况下,让他们多个项目。同样,每个项目都将包含非常依赖的部分(要么全部都应该得到或者什么都没有)。
无论如何,执行将文档保留在源代码中。您不希望版本与此版本不匹配。我不知道“蚂蚁”的内容是什么,但如果它们也非常依赖于版本,请将它们保存在与主系统相同的项目中。
根据您的更新,我建议将主系统与蚂蚁和文档放在一个项目中,并将脚本放在另一个项目中。由于您将“语言资源X”称为脚本,我认为它们非常小。即使用户只想要其中一个项目,也可以让所有人都在一个项目中。
但是,如果“语言资源X”本身就是一个大项目,那么将它们保存在不同的项目中是有意义的。