As far as the legality goes, I'm not a lawyer and you should talk to one about it.
Include your unit tests in your open source project. You do not have to redistribute the [n/j]Unit runtime libraries when you publish.
Let me rephrase that. DO NOT redistribute the j/nUnit run times with your project. You can keep the unit tests in your project. The only time you would want to redistribute the unit frameworks is if the version was disappearing and you couldn't use a newer version.
A lot of projects do this with external libraries so anyone who checks it out immediately has all the binaries in case they need additional libraries. I have seen some projects that include a full binary copy of the tools they require, so you have the exact version the app needs, plus another folder that just has the exact dlls or whatever the project needs.
First of all it's important to separate our open-source product's binary distribution (aimed at users) from its source-code repository (which is for developers/contributors). The question really concerns the latter. I've looked at two open-source products as examples.
NUnit
binary: has a dependency on fit (included with license)
source: has dependencies on NAnt (download it yourself) and log4net (included without a license)
Moq
binary: no dependencies
source includes the following external dependencies:
Silverlight testing tools - included without a licence
Microsoft .NET framework reference assemblies - no license
Castle - license included (Castle project uses the Apache license, and based on my reading of it, that's a requirement)
So, inclusion of third-party development/build/testing tools with the source code (not with production binaries) seems to be a common practice, and the tools can be included with or without a license notice depending on the type of license and its requirements. You can include the license just in case.
发布评论
评论(3)
就合法性而言,我不是律师,你应该和律师谈谈。
将您的单元测试包含在您的开源项目中。发布时,您不必重新分发 [n/j]Unit 运行时库。
让我重新表述一下。不要在您的项目中重新分发 j/nUnit 运行时间。您可以将单元测试保留在项目中。您想要重新分发单元框架的唯一时间是版本消失并且您无法使用较新的版本。
As far as the legality goes, I'm not a lawyer and you should talk to one about it.
Include your unit tests in your open source project. You do not have to redistribute the [n/j]Unit runtime libraries when you publish.
Let me rephrase that. DO NOT redistribute the j/nUnit run times with your project. You can keep the unit tests in your project. The only time you would want to redistribute the unit frameworks is if the version was disappearing and you couldn't use a newer version.
许多项目都使用外部库来执行此操作,因此任何检查它的人都会立即拥有所有二进制文件,以防他们需要其他库。我见过一些项目包含所需工具的完整二进制副本,因此您拥有应用程序所需的确切版本,以及另一个仅包含确切的 dll 或项目所需的任何内容的文件夹。
A lot of projects do this with external libraries so anyone who checks it out immediately has all the binaries in case they need additional libraries. I have seen some projects that include a full binary copy of the tools they require, so you have the exact version the app needs, plus another folder that just has the exact dlls or whatever the project needs.
我会尝试自己回答这个问题。
首先,将开源产品的二进制发行版(针对用户)与其源代码存储库(针对开发人员/贡献者)分开非常重要。这个问题确实涉及后者。我以两个开源产品为例。
NUnit
Moq
因此,包含第三方开发/使用源代码(而不是生产二进制文件)构建/测试工具似乎是一种常见的做法,并且根据许可证的类型及其要求,可以在有或没有许可证通知的情况下包含这些工具。您可以包含许可证以防万一。
I'll try to answer the question myself.
First of all it's important to separate our open-source product's binary distribution (aimed at users) from its source-code repository (which is for developers/contributors). The question really concerns the latter. I've looked at two open-source products as examples.
NUnit
Moq
So, inclusion of third-party development/build/testing tools with the source code (not with production binaries) seems to be a common practice, and the tools can be included with or without a license notice depending on the type of license and its requirements. You can include the license just in case.