NAME
Test::Copyright - Verify the consistency of license and copyright information
VERSION
This document describes Test::Copyright version 0.0_1
SYNOPSIS
use Test::More tests => 10;
use Test::Copyright;
copyright_ok()
DESCRIPTION
Many CPAN authors are enthusiastic in their wish to contribute to the open source movement, but relatively unaware of the need for clear and consistent licensing and copyright information. This module attempts to check the quality of a module from the copyright and license perspectives. The following tests are applied:
- That a CPAN::Meta object can be read from the source.
- That the said CPAN::Meta object contains at least one license.
- That the said CPAN::Meta object contains at least one license recognised by Software::License.
- That we can read at least one of LICENSE, COPYING or README.
- That the said LICENSE/COPYING/README file contains either the notice or the full text (as generated by Software::License) for every license listed by the CPAN::Meta object. The matching process is forgiving over space and for certain licenses alternative texts may be tried.
- That the said LICENSE/COPYRIGHT/README file (after excluding the license texts) contains at least one copyright statement that can be inferred to be the default copyright statement for the whole package.
- That the said default copyright statement has at least one final year that matches the current year.
- That every perl file has at least one copyright statement.
- That every copyright statement in every perl file is consistent with the centralised copyright information.
INTERFACE
copyright_ok
This function does all the tests described above.
DIAGNOSTICS
Cannot find dummy copyright: %s
-
Because Software::License places the copyright statement in its output, we need to extract it for our purposes. This error is raised if we fail to do so.
CONFIGURATION AND ENVIRONMENT
Test::Copyright requires no configuration files or environment variables and in fact at present is stubbornly resistant to any sort of configuration.
INCOMPATIBILITIES
None reported.
BUGS AND LIMITATIONS
This is not beta software. It is proof of concept software. It is being released at the earliest possible moment, because widespread adoption and feedback from the open source perl community is essential to its success.
The code does not yet allow for files with different copyright holders although that is planned for.
Other things that might reasonably be implemented have not been done.
Some code was used because it could be easily and quickly copied from other modules rather than because it is most appropriate.
There has been no test coverage analysis.
Some module quality test modules know how many tests they will actually run. This does not and you have to put that in yourself or take alternative steps.
A project such as this is inherently fragile, needing as it does to parse texts written for lawyers rather than well-intentioned computers. It would be a lot easier if all the perl software tools generated copyright and license texts intended for both categories of reader - and perhaps even humans as well.
Perhaps the copyright extraction part of the code could be more usefully in a separate module.
Please report any bugs or feature requests to bug-test-copyright@rt.cpan.org
, or through the web interface at http://rt.cpan.org.
ACKNOWLEDGEMENTS
I have to express my gratitude to (or possibly annoyance with) ingydotnet for provoking me into writing this module.
AUTHOR
Nicholas Bamber <nicholas@periapt.co.uk>
LICENCE AND COPYRIGHT
Copyright (c) 2011, Nicholas Bamber <nicholas@periapt.co.uk>
. All rights reserved.
Copyright (c) 2007-2008, Adam D. Barratt [one regular expression copied from licensecheck
]
Copyright (c) 2006-2010, Andy Lester [a number of functions copied from Test::Pod]
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
DISCLAIMER OF WARRANTY
BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.