为单元测试选择软件许可证是否重要?

时间:2009-06-22 01:23:43

标签: unit-testing licensing

我已根据LGPL许可我的软件。我太懒了,不能在所有文件中包含许可标题,所以我跳过了单元测试文件。这是一个问题吗?

5 个答案:

答案 0 :(得分:2)

要直接回答这个问题(单位测试文件中的许可证标题是否因为懒惰而存在问题),我的直觉答案可能不是。开源纯粹主义者和法律专家可能会说你需要在每个源文件中包含许可证。我认为这是一种很好的做法,但未能做到这一点并不是世界末日,特别是如果您的代码附带LICENSE.txt文件。对于单元测试代码更是如此,这可能在项目的上下文之外根本不适用。

我显然不是律师,但如果有人以不利于您的许可的方式使用您的源代码(在这种情况下为LGPL),我很难想象认为许可证不包含在特定的源文件会占用太多水。我希望有人想要使用代码来预先知道许可证是什么,如果有人要窃取您的代码并将其称为自己的代码,那么仅仅因为文件中没有许可证标题就不行了。在我看来,盗窃是盗窃,无论是否有迹象表明“你不能偷走这个”。 :-)不幸的是,在我们生活的复杂世界里,这不太可能......(叹气)

也许最好的答案是“更安全而不是抱歉”,但请您的直觉和您信任的有经验的开发人员的指导。我猜这就是你问SO的原因。 ; - )

答案 1 :(得分:1)

如果有人“窃取”你的单元测试,你真的在​​乎吗?

我不是律师但是... AFAIK,没有法律要求将许可证包含在every source file中,只是人们喜欢遮盖他们的屁股。将您的许可证包含在明确的README.txt或LICENSE.txt中以及您发布源代码的地方应该足够了。如果这让你失眠,只需编写一个填充许可证注释的脚本。

根据评论进行更新:

如果你真的需要以一种明确的方式回答这个问题,我建议你联系software freedom .org

答案 2 :(得分:1)

您可以考虑为包含您的姓名和版权声明的项目使用通用的样板源文件。复制它而不是创建新文件。在签入源代码控制每个文件之前,请务必检查日期和信息。这是一个简单的步骤。

答案 3 :(得分:1)

为项目中的每个源文件添加版权标题对于知道脚本语言的人来说是一个非常简短的项目。如果您不了解像Perl,Python或Ruby这样的脚本语言,那么现在是开始学习它的好时机。

例如,这是一个Perl脚本,它为自己添加了一个版权标题:

#!/usr/bin/perl -w

use strict;

# Copyright Header Here

my $copyright_header = <<COPYRIGHT;
# MyProject v1.0
# Copyright Jader Dias, 2009
COPYRIGHT

open FILE, "<parse.pl" or die $!;
while ( my $line = <FILE> ) {
    if ( $line =~ /\#\s*Copyright Header Here/ ) {
        print $copyright_header;
    } else {
        print $line;
    }
}
close FILE or die $!;

根据程序的结构,您可以使用版权标题替换原始文件中的标记,也可以只将标题添加到文件的最顶部。

答案 4 :(得分:0)

懒惰和跳过步骤总是很糟糕。做正确的事。做得有效。永远这样做。故事结束。