App-Licensecheck
================
Created: 2000-01-28
Home page: <https://metacpan.org/pod/App::Licensecheck>
Home page: <https://metacpan.org/release/App-Licensecheck>
Bug tracker: <https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=licensecheck>
Maintainer: Jonas Smedegaard (JONASS) <jonass@cpan.org>
v3.3.9 2023-07-04
[ Bug Fixes ]
- fix: properly catch second decoding error, to try raw as fallback of
both explicit and iso-8859-1 encoding (broken since v3.3.1)
[ Test Suite ]
- relax encoding tests to cover String::License v0.0.6
- relax stderr for a few encoding tests
- skip encoding tests on cygwin
[ Other ]
- log failure error before retry notice
- use Feature::Compat::Class after core features, to support newer perl;
thanks to Jitka Plesníková and Graham Knop (see RT#148507)
v3.3.8 2023-01-18
[ Test Suite ]
- skip test reading.t with too old String::Copyright
[ Packaging ]
- test-recommend String::Copyright 0.003009
v3.3.7 2023-01-17
[ Packaging ]
- test-require Test2::Tools::Command
v3.3.6 2023-01-16
[ Packaging ]
- really use String::License
v3.3.5 2023-01-15
- externalize license resolving: use String::License
- stop (directly) use re::engine::RE2 Array::IntSpan experimental
Regexp::Pattern Regexp::Pattern::License File::BaseDir File::Basename
Software::LicenseUtils YAML::XS Test::Without::Module
- use Test2::Tools::Command (not Test::Command::Simple)
v3.3.4 2023-01-14
[ Bug Fixes ]
- use warnings, no longer done in Feature::Compat::Class since v0.05
[ Test Suite ]
- fix plan count to work on older perls
v3.3.3 2023-01-09
[ Bug Fixes ]
- avoid silence warnings on older (but not too old) perls
v3.3.2 2023-01-07
[ Bug Fixes ]
- avoid silence warnings on older perls
[ Test Suite ]
- rewrite fedora tests
v3.3.1 2023-01-03
[ Bug Fixes ]
- resolve naming schemes when listing licenses
[ Documentation ]
- extend copyright to include present year
- improve synopsis
[ Test Suite ]
- add author tests to check SYNOPSIS
- simplify and generalize tests slightly
- tell Perl::Critic that Object::Pad implicitly enables strict and
warnings
[ Packaging ]
- tighten dependency on Pod::Usage to silence spurious 'used only once:
possible typo' warning notably with perls older than 5.18
- unset executable bit on module file in source
[ Other ]
- have module methods return lists, and print to STDOUT in main script
- modernize class instantiations to use field and :param and ADJUST (not
has and BUILD)
- parse shortname schemes in main script, slightly simplifying modules
- refactor to iterate files in main script
- rename parameter shortname_scheme -> schemes, and validate
- stop include path in log messages within method parse_license
- use Feature::Compat::Class (not Object::Pad)
- use Feature::Compat::Try (not Try::Tiny)
- use Object::Pad 0.74
v3.3.0 2022-01-08
[ Bug Fixes ]
- catch decoding errors and retry as iso-8859-1 encoding
- fix dumping of content tail
[ Documentation ]
- clarify option --tail
- update TODOs, and reformat as CommonMark
[ Test Suite ]
- add tests reading only header and tail
- check full contents of Software::License generated data
- enable debug output for encoding tests
- fix one devscripts TODO test
- parse perl-generated Software::License data as utf8
- refactor to directly use App::Licensecheck (i.e. drop local module
Test2::Licensecheck)
- rewrite Software::License tests to check against library
- rewrite devscripts tests to use library
- separate script report tests from devscripts.t
- use only SPDX shortnames (not also debian shortnames) for
Software::License and SPDX tests, and list only deviating entries
[ Other ]
- Added: add options --quiet --debug --trace (and deprecate now no-op
option --no-verbose)
- Run perltidier (not perltidy) with tidyall
- avoid given/when
- call log->trace() (not log->tracef()) for simple strings
- change option --skipped to use Log::Tiny (not core warn), and log as
debug when not set
- declare package version with package name, and move POD sections NAME
VERSION SYNOPSIS DESCRIPTION closer to top of files
- have $fh $license $copyrights as slots (not local variables)
- improve resolving offset
- logging: dump content as trace (not notice)
- logging: log fatal errors using Log::Tiny
- logging: log files processed as debug, with decoding details (not
tersely as trace)
- logging: warn about obsolete options using Log::Tiny (not using core
warn)
- logging: warn tersely on file decoding failure, and list error message
as debug (not all as notice)
- merge method parse_lines() into parse_file(), and use $encoding slot
(stop redefine as local variable)
- pass around File object (not path, content and (currently unused) offset
in content)
- refactor to have slot $path in main class (not class File)
- refactor to hold semi-cleaned content (not cleaned-for-license-parsing)
in slot $content
- refactor to merge local class File into main class
- refactor to read and decode files in method content()
- refactor to use Object::Pad (not Moo or MooX::Struct)
- use named arguments for struct objects
v3.2.14 2021-11-22
[ Bug Fixes ]
- fix tests to use executable set in environment variable LICENSECHECK
Paul Gevers++
v3.2.13 2021-10-11
[ Bug Fixes ]
- fix encoding tests flag as TODO tests using undecoded input:
String::Copyright documented to accept only strings
Adrian Bunk++
[ Test Suite ]
- tighten test to not fail with old String::Copyright
[ Other ]
- relax dependency on perl to v5.12, and explicitly 'use' it, to slightly
simplify boilerplate
- stop use version (unneeded with modern perl)
- tighten runtime-dependency on Encode, to avoid 'Use of uninitialized
value' on stderr
v3.2.12 2021-08-30
[ Bug Fixes ]
- use path-less shebang (not indirect env executable, and execute from
blib subdir when available
SCANTRELL++
Slaven Rezić++
v3.2.11 2021-08-18
[ Test Suite ]
- skip *-no-RE2 tests unless installed Regexp::Pattern::License is recent
enough to support it
v3.2.10 2021-08-18
[ Documentation ]
- improve POD markup of SYNOPSIS and a few code strings
[ Test Suite ]
- improve tests
- test-require Test::Without::Module
[ Packaging ]
- relax to recommend (not depend on) module re::engine::RE2
v3.2.9 2021-08-16
[ Packaging ]
- stop use Sort::Key::Multi
[ Other ]
- strip xml tag <ref ...>, and extend to strip html tags <p> <br> with
attributes (not only bare tags)
v3.2.8 2021-08-15
- fix tests and silence warnings with Regexp::Pattern::License less than
v3.8.1
v3.2.7 2021-08-14
[ Bug Fixes ]
- extend local lgpl dual-license pattern to not assume name patterns
include trait published_by, required since Regexp::Pattern::License
v3.9.0
- stop treat : or :// as cruft
- strip simple closing (not only opening) html tags as cruft
[ Test Suite ]
- add test for (not yet detected) BSD-3-clause~Refractions
- simplify tests
- stop skip author test apparently succeding nowadays
- test-recommend Regexp::Pattern::License 3.9.0
- update author tests to cover Regexp::Pattern::License v3.9.0
[ Other ]
- avoid hardcoding names of specific prefix traits
- detect python_2 and (additional, standalone) cnri_python in same file
- force atomic scan for mit_new, to avoid misdetecting ambiguous MIT X11
grant as only x11
- optimize: compile only patterns actually used
v3.2.6 2021-08-07
[ Documentation ]
- correct typo in SEE ALSO entry
- extend copyright to include present year
[ Test Suite ]
- update author tests to cover Regexp::Pattern::License v3.8.0
[ Packaging ]
- tighten test-recommendation on Regexp::Pattern::License
[ Other ]
- optimixe: compile some internal regexes only once
- postpone compiling regexes, to speedup response time for non-scanning
command-line options
v3.2.5 2021-07-22
[ Bug Fixes ]
- fix shebang to use /usr/bin/env (don't hardcode /usr/bin/perl)
- strip all trailing dash a.k.a. soft-wraps (not only first instance)
[ Packaging ]
- tighten test-recommendation on Regexp::Pattern::License
[ Other ]
- extend functions clean_cruft() clean_cruft_and_spaces() to strip html
tags
v3.2.4 2021-07-17
[ Test Suite ]
- update testsuite to cover Regexp::Pattern::License v3.7.0
[ Other ]
- extend function clean_cruft_and_spaces() to strip trailing dash,
assuming it is soft-wrap
- refine resolving of license names to cover more variants
v3.2.3 2021-07-07
[ Bug Fixes ]
- fix option --copyright-delimiter (deb-machine output broken since
v3.2.0)
[ Test Suite ]
- rewrite encoding tests
[ Other ]
- stop use strictures (not sure why, but CPANTESTERS choke on it)
v3.2.2 2021-07-04
[ Bug Fixes ]
- fix ignore atomic discoveries in areas already detected stepwise as a
license, grant, or exception
- fix include leading licensed_under when tracking detected positions
- fix resolve shortname not reusable in grant (e.g. SPDX using unversioned
SISSL for SISSL-1.1)
[ Documentation ]
- fix describe option --shortname-scheme (not bogus option
--shortname-schemes) in changelog entry for release v3.2
- fix trace output to include string for stepwise or_later grant trait
- mention in POD when each option was introduced
[ Test Suite ]
- add README to source, documenting origin of Fedora tests
- add test for not yet recognized PS-or-PDF-font exception
- tighten test requirement on Regexp::Pattern::License
- update tests to cover Regexp::Pattern::License v3.6.0
[ Packaging ]
- relax runtime requirement on Regexp::Pattern::License
- tighten .gitignore file
[ Other ]
- tighten internal trait objects to require file attribute
v3.2.1 2021-06-29
[ Bug Fixes ]
- fix option --deb-machine (broken since v3.2.0)
[ Test Suite ]
- fix include missing test files
- stop use strictures in tests (unneeded with Tests2::V0)
v3.2.0 2021-06-22
[ Bug Fixes ]
- stepwise: fix omit version for singleversion objects
Sandro Mani++
- tighten custom BSD detection to avoid SSLeay false positive
- use Getopt::Long and Pod::Usage (not Getopt::Long::Descriptive)
David Bremner++
[ Documentation ]
- add pod section ENVIRONMENT (replacing and expanding section DEBUGGING)
- colorize output of --help option, and auto-enable color more reliably
- document that options --check and --ignore apply only when multiple
PATHs are provided
- improve markup of pod section OPTIONS
- rephrase description for option --skipped
- restore POD section OPTIONS (gone since v3.0.2)
- split pod section OPTIONS into subsections
- stop bogusly annotate v3.1.0 bugfix as security-related
- update TODOs
[ Test Suite ]
- update author tests
- update detection of SISSL since Regexp::Pattern::License v3.5.0
- update to match capitalized name of Libtool exception, corrected since
Regexp::Pattern::License v3.5.0
[ Packaging ]
- tighten to require more recent Regexp::Pattern::License
[ Other ]
- Added: add option --list-licenses
- Added: add option --list-naming-schemes
- Added: add option --shortname-scheme, replacing option --deb-fmt (kept
for now, documented as deprecated)
- logging: fix resolve identifier in trace of exception and flaw detection
- resolve license patterns only when used, speeding up --help
- use IO::Interactive
v3.1.1 2020-05-21
[ Test Suite ]
- drop tricky and superfluous exception test
v3.1.0 2020-05-21
[ Bug Fixes ]
- avoid uninitialized value in local Apache-and-BSD pattern
Sandro Mani++
[ Test Suite ]
- check detection of generated file
- check detection of incorrect FSF postal address
- update author tests
- update to reflect changed markup of flaws
[ Packaging ]
- fix test-require (not only runtime-require) strictures
- tighten to require more recent Regexp::Pattern::License
[ Other ]
- Added: enclose flaws with square brackets (not parens, now used for
details of some flaws) in legacy output
- detect exceptions, tracked as objects
- streamline and improve detection of generated file
- streamline and improve detection of incorrect FSF postal address
- track detected flaws as objects
v3.0.47 2020-05-17
[ Bug Fixes ]
- fix resolve SPDX keyword for *_or_later (broken in commit 1bcccbdv3.0.40
released since v3.0.40)
- stepwise: fix detect leading version
[ Documentation ]
- add some TODOs
[ Test Suite ]
- adjust for normalized license names in legacy output
- update author tests
- update detection of EUPL since Regexp::Pattern::License v3.3.1
- update test related to lgpl_* patterns covered since
Regexp::Pattern::License v3.3.2
[ Packaging ]
- tighten to require more recent Regexp::Pattern::License
[ Other ]
- append extrainfo to final legacy license string (previously appended
each license but only for custom match)
- avoid misdetecting license caldera as license-group bsd
- avoid misdetecting license python_2 as cnri_python
- drop custom GPL fulltext resolving (unused since
Regexp::Pattern::License 3.3.1)
- drop obsolete custom patterns
- improve log messages
- optimize: include left-anchoring when pre-compile clean_comments regexes
- quirk: avoid-step-wise for cua_opl_1
- revert: avoid detecting grant for license group (broken)
- skip custom LGPL grant resolving when (not only GPL-2 but also) LGPL-2
or LGPL-2.1 fulltext detected (needed since Regexp::Pattern::License
3.3.1)
- stepwise: optimize: match name left-anchored
- use usage patterns (i.e. *_only *_or_later)
v3.0.46 2020-03-13
[ Bug Fixes ]
- atomic: tighten grant patterns to include licensed_under prefix
[ Documentation ]
- relicense project as AGPL-3-or-newer; add Purism SPC as copyright holder
- update git repository URL
[ Test Suite ]
- mark 3 flawed author tests as such
- mark 4 bogusly versioned tests as such
- update author test related to gpl_* patterns covered since
Regexp::Pattern::License v3.3.0
- update author test related to rare apache_2 pattern covered since
Regexp::Pattern::License v3.3.0
[ Packaging ]
- require Regexp::Pattern::License 3.3.0
[ Other ]
- add FIXME comments where (mostly custom) patterns lack test coverage
- atomic: consult coverage from stepwise scan to avoid duplicate match
- atomic: explicitly (regardless of list @L_tidy) skip cc-by when
cc_by_sa_3 is detected
- avoid finalize in custom scan for GPL fulltext
- avoid wildcard in local bsd pattern
- detect vague grant for license group
- extend clean_comments() to strip escaped newline
- improve detection of GNU 'or-newer' usage grant version
- improve logging and comments
- logging: avoid undefined version for custom agpl grant detection
- logging: generally resolve positions
- logging: stepwise: log whole version string (not only number)
- logging: stepwise: resolve positions
- optimize: atomic: skip a few scans if grant already detected
- optimize: track incomplete patterns (not subset of complete ones) -
speed boost of %25!
- optimize: use optimized regex with /g (apparently supported by
re::engine::RE2)
- pre-compile left-anchored trait pattern version
- scan for GNU 'or-newer' usage version before singleversion grant version
- sort or'ed parts of expressions
- stepwise: detect 'or-later' usage grant also as versioned grant
- stepwise: detect prepended version
- stepwise: explicitly (regardless of list @L_tidy) avoid gpl
- stepwise: relax to use wider window for license name
- stepwise: track start and end position, and a moving current position
(not additional static ones)
- stepwise: use named (not numbered) capture for version
- track examined files
- use both custom and atomic patterns (not only custom) for agpl fsful
fsfullr gpl lgpl
v3.0.45 2020-02-21
[ Bug Fixes ]
- fix: try fallback encoding per-file (restore explicit encoding for
subsequent file)
Dominique Dumont++
- sort positions numerically (not alphanumerically)
[ Documentation ]
- fix print encoding name (not Encode object ref) if encoding fails
- use canonical encoding name iso-8859-1 (not latin-1)
[ Test Suite ]
- change namespace of local libraries to Test2::Licensecheck
- support fixing or skipping with Test2::Licensecheck::ScanCode skipfiles
[ Other ]
- streamline detection of bsd licenses
- update (improved but still failing) misdetection of SSLeay since
Regexp::Pattern::License v3.2.0
v3.0.44 2020-02-10
[ Test Suite ]
- ensure local script is executable
v3.0.43 2020-02-10
[ REGRESSIONS ]
- now misses trove declarations for AGPL-3+
[ Bug Fixes ]
- adjust end position of located license name
- resolve license fulltext last, to leave room for shadowing with
-or-newer grant
- tests: declare "use utf8" and "use feature 'unicode_strings'" in
encode.t
[ Documentation ]
- update TODOs
[ Test Suite ]
- drop unused function is_licensed_like_scancode
- tighten encode.t (still fails with non-UTF-8 locales)
- update author tests related to ZPL since Regexp::Pattern::License
v3.1.102
- update tests
- use List::SomeUtils (not List::MoreUtils)
- use Test2::V0
[ Packaging ]
- relax to require strictures unversioned
- require Encode::Locale Encode
- require MooX::Struct
- require Regexp::Pattern 0.2.12 and Regexp::Pattern::License 3.1.102
- stop test-recommend List::MoreUtils
- stop test-require UNIVERSAL::require (unused since v3.0.2)
- test-require Test2::V0 (not Test::Builder::Module Test::Requires
Test::More)
[ Other ]
- avoid misdetecting CECILL-1.1 as GPL-1+ due to extending trait pattern
licensed_under since Regexp::Pattern::License v3.1.102
- consistently use strictures, unversioned
- consult coverage of well-formed scan to avoid duplicate matches
- improve detection of AGPL licenses
- optimize detection of ZPL licenses
- simplify avoiding license duplicates in expression by skipping grant of
same id as already found fulltext
- simplify flagging step-wise grants
- stop resolve regexes licensed_under version_later (unused since v3.0.42)
- tighten which regexes to generate
- track detected licensing as objects
- track step-wise traits as objects
- track traits as objects
v3.0.42 2020-02-01
[ REGRESSIONS ]
- now fails to detect dual-licensing of CC-BY-SA-3.0 or LGPL-2 (test case:
utilities.scad)
[ Bug Fixes ]
- gracefully skip to next file on failure decoding a file (broken since
v3.0.38)
Dominique Dumont++
[ Test Suite ]
- environment variable LICENSECHECK sets path to licensecheck (default:
bin/licensecheck)
Gregor Hermann++
- simplify tests Software-License.t devscripts.t encoding.t
[ Packaging ]
- test-require Test::Command::Simple (not Test::Script)
[ Other ]
- drop obsolete custom patterns
- optimization: drop custom CC patterns
- optimization: stop skip detection of GPL/LGPL fulltext
v3.0.41 2020-01-30
[ Documentation ]
- clarify comment about identifiers being DEP-5 or SPDX (not only SPDX)
[ Test Suite ]
- testsuite: update tests for Regexp::Pattern::License v3.1.101 (many
improvements, few "regressions" especially related to dual-licensing due
to previously accidentally matching by name only)
[ Other ]
- merge duplicate detections of same license
- optimization: avoid accidentally flagging all objects for rescanning
when checking if rescanning can be skipped :-/
v3.0.40 2020-01-28
[ Bug Fixes ]
- drop bogus small optimization.
- resolve SPDX keyword for AFPL.
- step-wise grant: capture non-versioned grant.
- step-wise grant: skip type:group license names.
- strip fortran comment also on otherwise empty line.
[ Test Suite ]
- update author tests for added Trove captions since
Regexp::Pattern::License v3.1.100.
- update author tests for improved trait licensed_under since
Regexp::Pattern::License v3.1.100.
[ Other ]
- fix: step-wise grant: capture traits before mangling version.
- improve custom-matching versioned apache grants.
- improve logging.
- optimization: step-wise grant: scan for name only directly after
licensed_under.
- step-wise grant: detect type:singleversion license names.
- step-wise grants: track trait license_label (in addition to
licensed_under).
- step-wise grants: track trait license_label_trove (in addition to
track_label licensed_under).
- streamline detection of well-formed licenses.
- tests: update author testsuite.
- track identified areas of strings and skip further parsing; require
Array::IntSpan.
- use nsort_by to sort matches; require List::SomeUtils (not List::Util).
v3.0.39 2020-01-04
- Improve detection of CC licenses.
- improve logging; stop require MooX::Role::Logger
- optimize bsd detection (apparently case-insensitive match in unneeded)
- use hash interface of Regexp::Pattern and RE2 regexes; require
re:engine::RE2, and more recent Regexp::Pattern and
Regexp::Pattern::License
v3.0.38 2020-01-03
[ REGRESSIONS ]
- misdetects some GNU fulltext licenses as also maybe LGPL
[ Bug Fixes ]
- Add missing newline when no arguments
- fix: detect creative commons dual-version-licensing (not misdetect as
same version twice)
- support non-utf8 locale
[ Test Suite ]
- Isolate and extend encoding tests.
- adapt author testsuite for improved detection (and few minor
regressions) since Regexp::Pattern::License v3.1.95
- silence warnings in handling utf8 content
[ Packaging ]
- use more recent Regexp::Pattern::License
[ Other ]
- Add missing newline when no arguments
- Improve detection of AFL licenses.
- Improve detection of Boost licenses.
- Improve detection of Cecill licenses.
- Improve detection of WTFPL and WTFNMFPL licenses.
- Move encoding loop from executable to library.
- Streamline detection of well-formed grants.
- Tighten and improve detection of Artistic licenses.
- define local regexes in sub licensepatterns (not sub parse_license)
- improve detection of apache licenses
- pass file and position to function parse_license
- support environment variable DEBUG; require modules Log::Any
Log::Any::Adapter::Screen MooX::Role::Logger
v3.0.37 2019-06-12
[ Documentation ]
- Update TODOs.
[ Test Suite ]
- Adapt author testsuite for improved detection (and few minor egressions)
since Regexp::Pattern::License v3.1.94.
- Adapt testsuite to use recent Software::LicenseUtils (not slightly older
Software::License).
- Fix handle missing ScanCode corpus..
- Load Test::Builder only once per module..
- Update testsuite: OSI license Artistic-1.0 really is Artistic-1.0-Perl.
[ Other ]
- Reuse previous name match.
- Simplify conditionals: Replace given-when-continue with if.
- Skip scan for CC grant unless name already detected.
- Use more recent Regexp::Pattern::License.
v3.0.36 2018-04-05
- Limit to compile only trait patterns actually used.
- Match name alone, before recompiled custom regexes.
- Simplify AGPL-related pattern slightly.
- Sort license keys once.
- Tighten apache pattern slightly.
- Tighten gpl pattern.
- Track matches in hash (not array).
- Use Regexp::Pattern::License trait patterns any_of licensed_under
or_at_option version version_numberstring.
v3.0.35 2018-03-30
[ Bug Fixes ]
- Fix tolerate alternative regexp compilers.
[ Test Suite ]
- Adapt testsuite for detecting uppercase GPL or LGPL post
Regexp::Pattern::License v3.1.0.
- Adapt testsuite for detection of FSFULLR post Regexp::Pattern::License
v3.1.0.
- Adapt testsuite for improved detection since Regexp::Pattern::License
v3.1.0.
- Adapt testsuite for renamed pattern kevlin-henney → Kevlin-Henney post
Regexp::Pattern::License v3.1.0.
- Adapt testsuite for renamed pattern khronos → Khronos post
Regexp::Pattern::License v3.1.0.
- Testsuite: Improve workarounds for license
zlib-acknowledgement/Nunit/NUnit.
- Testsuite: Tolerate Aladdin License mis-categorized as unversioned by
SPDX, as reflected post Regexp::Pattern::License v3.1.0.
[ Other ]
- Improve license patterns cecill_b cecill_c to detect more forms
(previously misdetected as cecill).
- Use Regexp::Pattern::License subject patterns.
v3.0.34 2018-03-29
[ Bug Fixes ]
- Fix support uncompiled patterns from Regexp::Pattern::License.
- Fix tighten license key loop (skip eventual DefHash attributes).
- Fix tighten version matching: Wrap in group when optional.
- Fix word-based comment removal.
[ Documentation ]
- Extend TODO with more ideas.
[ Test Suite ]
- Demote ScanCode tests to maintainer tests.
- Fix Software-License test to match license shortnames (not captions
which are not fixed).
- Relax devscripts test to match SPDX-style license captions as supported
post Regexp::Patterns::License v3.1.0.
- Testsuite speed boost: Parse skipfile once per set, not once per file in
each set.
- Testsuite: Add function license_like.
- Testsuite: handle alternative name of license bdwgc → MIT~Boehm post
Regexp::Pattern::License v3.1.0.
[ Other ]
- Generalize singleversion patterns.
- Resolve license patterns as Debian → SPDX → generic (not just Debian →
generic) to support less SPDX-centric names post
Regexp::Pattern::License v3.1.0.
- Simplify pattern tag resolving.
- Slight speed boost: Use eq (not regexp) for simple comparisons.
- Speed boost: Fix load regexp patterns once (not once or twice per file).
- Use regexp patterns as-is (avoid recompiling).
v3.0.33 2018-02-15
[ Test Suite ]
- Extend testsuite to 2410 succeeding tests and 5313 TODOs (from 227 and 7
TODOs), when ScanCode v2.1.1 test data is available below
$ENV{XDG_DATA_DIRS} + tests/ScanCode/
- Rewrite testsuite to use Test::Builder::Module (not Test::Roo).
v3.0.32 2018-02-09
[ REGRESSIONS ]
- Adapt testsuite to tolerate misdetecting MPL-1.0 as MPL: Regression
caused by more generalized matching.
[ Documentation ]
- Add TODO file, with a bunch of ideas.
- Improve POD: Add SEE ALSO section to commandline tool.
[ Other ]
- Adapt and extend testsuite to cover new license patterns supported by
Regex::Patterns::License 3.1.0: bdwgc bdwgc-matlab gfdl lgpl-bdwgc.
- Optimize slightly: Skip embedded or referenced licenses earlier.
- Tighten regexes: Generalize and improve matching.
- Use Regexp::Pattern.
- Use Regexp::Pattern::License 3.1.0 tags.
v3.0.31 2017-08-16
[ Documentation ]
- Fix bogusly labelled changelog entry part of release 2.0.30 (didn't fix
bare-named BSD licenses, but instead tightened a bunch of license
patterns).
[ Packaging ]
- Stop ship Regexp::Pattern::License, now an independent distribution.
v3.0.30 2017-07-05
[ Bug Fixes ]
- Fix license pattern ms_pl to detect MS Public License (not non-free MS
Permissive License).
- Tighten license patterns afl agpl cdl gfdl gfdl_nivgpl lgpl llgpl mpl
ms_pl ms_rl qpl sgi_b wtfpl mit to require descriptive prefix when only
an abbreviation.
Axel Beckert++
[ Test Suite ]
- Add OSI test (including only currently succeeding OSI licenses for now).
[ Other ]
- Added: Add license pattern artistic_2.
- Improve license pattern agpl to skip english (not only french)
cecill_2_1.
- Improve license pattern epl to detect some forms of "or newer".
- Improve license pattern epl.
- clean_comments(): Relax to match varying amount of horizontal whitespace
(not exactly one character) followed by any non-whitespace (not only a
word character).
- clean_comments(): Tighten to match and strip only horizontal whitespace
(not newlines).
v3.0.29 2017-01-24
[ REGRESSIONS ]
- Drop gpl+aladdin combo license: Too exotic.
[ Bug Fixes ]
- Fix detect BSD licenses as bare name.
Vasudev Kamath++
- Fix don't choke on unspecificed BSD license.
[ Documentation ]
- Document Regexp::Pattern::License as a private module.
[ Other ]
- Added: Add license patterns ofl aladdin rpsl mit_cmu mit_cmu_warranty.
- Improve license patterns ftl mit_feh mit_enna cube eurosym libpng zlib
zlib_acknowledgement.
- Sort before enumerating ambiguously related combo licenses.
- Streamline license parsing: Process loops of similar patterne.
v3.0.28 2016-11-25
[ Bug Fixes ]
- Fix detect dual licensing mit_new mit_old (and speed up partsing while
at it).
- Fix tighten detection of ISC license (was misdetecting curl).
- Fix tighten detection of mit_new license (was misdetecting other MIT
flavors).
- Fix tighten license pattern curl (was misdetecting other MIT variants).
[ Documentation ]
- Extend license pattern dsdp with alternate fedora name PetSC.
- Fix typo in changelog.
- Tidy changelog: Improve distinction between newly added and
added-to-patternlist entries.
[ Other ]
- Add license pattern ISC to Regexp::Pattern::License::Pattern.
- Added: Add new license pattern icu.
- Added: Add new license pattern mit_advertising.
- Added: Add new license patterns mit_enna mit_feh.
- Drop unused and too broad trait pattern disclaimer.
- List license mit_new alternate fedora name Modern Style with sublicense.
- Tidy Regexp::Pattern::License: Remove stray bogus regexp.
- Tidy Regexp::Pattern::License::Pattern: Fix sort pattern list.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern
provided_no_warranty → asis_expr_warranty.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern
repro_notice_cond_discl → note_repro_notice_cond_discl.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern
retain_notice_cond_discl → note_retain_notice_cond_discl.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern discl →
asis_sw_name.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern discl_disclaim →
discl_name_warranties.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern discl_provide →
asis_name_sw.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern name_no_ad →
nopromo_written_prior.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern promo_no_author →
nopromo_neither.
- Tidy Regexp::Pattern::License::Pattern: Rename pattern retain_notice →
note_invar.
- Tighten license pattern bsd-2-clause. Tidy
Regexp::Pattern::License::Pattern: Rename pattern asis_sw_name →
asis_sw_by_name.
v3.0.27 2016-11-23
[ REGRESSIONS ]
- Drop too exotic licensing phrase, and corresponding test case.
[ Bug Fixes ]
- Fix avoid detection of GPL/LGPL fulltext (rarely if ever used as grant).
- Fix detect license FSFULLR (was misdetected as bogus FSFULR).
- Fix detect license MPL-2.0 (was misdetected as MPL-2.0 or AGPL).
- Fix detect licenses mit_old mit_unspecified (was misdetected as
mit_new).
- Fix version identifier to use + only in machine-readable mode.
[ Other ]
- Add combo pattern perl to Regexp::Pattern::License.
- Add license pattern afl to Regexp::Pattern::License.
- Add license pattern agpl to Regexp::Pattern::License.
- Add license pattern apache to Regexp::Pattern::License.
- Add license pattern artistic to Regexp::Pattern::License.
- Add license pattern beerware to Regexp::Pattern::License.
- Add license pattern cc_by_sa to Regexp::Pattern::License.
- Add license pattern ftl to Regexp::Pattern::License.
- Add license pattern llgpl to Regexp::Pattern::License.
- Add license pattern mpl to Regexp::Pattern::License.
- Add license pattern ms_pl to Regexp::Pattern::License.
- Add license pattern openssl to Regexp::Pattern::License.
- Add license pattern public_domain to Regexp::Pattern::License.
- Add license pattern python to Regexp::Pattern::License.
- Add license pattern qpl to Regexp::Pattern::License.
- Add license pattern sgi_b to Regexp::Pattern::License.
- Add license pattern wtfpl to Regexp::Pattern::License.
- Add license patterns adobe_2006 adobe_glyph apafml to
Regexp::Pattern::License.
- Add license patterns bsd_2_clause bsd_3_clause bsd_4_clause to
Regexp::Pattern::License.
- Add license patterns cddl cecill cecill_1 cecill_1_1 cecill_2 cecill_2_1
cecill_b cecill_c epl to Regexp::Pattern::License.
- Add license patterns fsfap fsful fsfullr to Regexp::Pattern::License.
- Add license patterns gpl lgpl to Regexp::Pattern::License.
- Add license patterns libpng zlib zlib_acknowledgement to
Regexp::Pattern::License.
- Add license patterns mit_new mit_new_materials mit_old mit_unspecified
postgresql, and group pattern mit to Regexp::Pattern::License.
- Add license patterns unicode_strict unicode_tou to
Regexp::Pattern::License.
- Added: Add new group pattern bsd.
- Added: Add new group pattern gnu.
- Added: Add new license pattern ms_rl.
- Added: Add new license patterns cc_by cc_by_nc cc_by_nc_nd cc_by_nc_sa
cc_by_nd cc_cc0 cc_sp.
- Added: Add new license patterns cube eurosym.
- Added: Add new license patterns curl dsdp mit_oldstyle
mit_oldstyle_disclaimer mit_oldstyle_permission ntp ntp_disclaimer.
- Added: Add new license patterns gfdl gfdl_niv.
- Added: Add new trait pattern clause_advertising_always.
- Added: Add new trait pattern license_prefix.
- Added: Add new trait pattern license_version.
- Added: Add new trait patterns clause_retention clause_reproduction
clause_advertising clause_non_endorsement disclaimer.
- Added: Add new trait patterns fsf_unlimited fsf_unlimited_retention.
- Added: Add new trait patterns version_later version_later_paragraph
version_later_postfix.
- Added: Introduce new modules: Pattern::License Pattern::License::Parts.
- Clean m4 dnl comment marker.
- Drop no longer used internal license shortname list.
- Emulate Regexp::Common -keep syntax to capture version number.
- Improve detection of license GPL.
- Improve license detections artistic perl.
- Relax detection of license GPL.
- Relax license pattern cc_by_ca.
- Tidy code: Drop noop code.
- Tighten regexes: Generalize abbreviated AGPL/LGPL/GPL matching.
- Tighten regexes: Generalize and improve LGPL matching.
- Use Regexp::Pattern::License for shortname resolving (with internal list
as fallback until phased out).
v3.0.26 2016-09-22
[ Bug Fixes ]
- Fix exclude AGPL false positives.
[ Other ]
- Use generalized license string composition at more places.
v3.0.25 2016-09-21
[ Bug Fixes ]
- Fix avoid non-digit in version of license Artistic.
- Fix delimit multiple licenses with "and/or" (not "or") when ambiguous.
- Fix parse whole file for test info-at-eof.h (default length only
approximates lines and is too short since String::Copyright 0.003003).
[ Test Suite ]
- Fix tighten runtime-requirement on PAth__Tiny for visit().
Slaven Rezić++
- Update testsuite to reflect Perl license detection.
[ Other ]
- Apply fallback marker "UNKNOWN" after (not during) license detection.
- Detect license CC-BY-SA.
- Detect licenses APAFML Adobe-Glyph Adobe-2006 Aladdin SIL FSFAP FSFUL
FSFULLR JSON PostgreSQL Unicode-strict Unicode-TOU zlib-acknowledgement.
- Enhance detection of Perl license.
- Generalize license string composition.
- Improve detection of license AGPL.
- Improve detection of license Apache.
- Improve non-version descriptor matching.
- Improve version matching in license detections.
- Tighten regexes: Generalize and improve version matching.
- Tighten regexes: Simplify space matching (string already normalized).
- Tighten regexes: Treat affero as alternative (not prefix) to GPL
prefixes lesser and library.
v3.0.24 2016-09-03
[ Bug Fixes ]
- Fix apply options --check --ignore to full path (not basename).
v3.0.23 2016-09-01
[ Bug Fixes ]
- Fix skip parsing non-files (regression since v3.0.5).
- Fix stop ignore options --check --ignore (regression since v3.0.5).
[ Other ]
- Use Path::Iterator::Rule.
v3.0.22 2016-08-21
[ Bug Fixes ]
- Fix have option --deb-machine imply option --deb-fmt.
[ Other ]
- Adjust SPDX-like shortnames to match Debian format.
- Improve detection of GPL/LGPL/AGPL versions.
- Stop merge differently cased owners.
- Use List::Util and Sort::Key::Multi.
- Use https protocol in deb-machine header.
v3.0.21 2016-08-20
[ Bug Fixes ]
- Really fix strip copyright sign unconditionally.
v3.0.20 2016-08-20
[ Bug Fixes ]
- Fix strip copyright sign unconditionally.
- Fix strip trailing newline from copyrights.
v3.0.19 2016-08-19
[ Bug Fixes ]
- Fix strip copyright sign with option --deb-machine.
[ Documentation ]
- Mention in description of --deb-machine option that it implies
--copyright.
[ Other ]
- Add option --copyright-delimiter, including comma by default.
- Handle missing year or owner with option --deb-machine.
- Require well-formed years when splitting ownerlines with option
--deb-machine.
v3.0.18 2016-08-13
[ Bug Fixes ]
- Fix defaults for options --list-delimiter and --rfc822-delimiter (was
one space too many).
- Fix stop use obsolete undocumented String::Copyright blocks method.
- Fix use NONE for no authors with option --deb-machine.
[ Packaging ]
- Tighten dependency on String::Copyright.
v3.0.17 2016-08-12
- Fix avoid bogus "generated-file" as SPDX license.
- Have option --deb-machine imply option --deb-fmt.
v3.0.16 2016-08-11
- Add "Auto Generated" to the generated file detection.
Paul Wise++
v3.0.15 2016-08-11
[ Documentation ]
- Mention in description of --lines option that it does optimistic search.
[ Packaging ]
- Tighten dependency on String::Copyright to versions supporting
configurable threshold.
[ Other ]
- Do full search when parsing whole file.
v3.0.14 2016-08-01
[ Test Suite ]
- Flag test involving multi-line multi-statements as TODO (regression
since moving to String::Copyright).
v3.0.13 2016-07-25
[ Packaging ]
- Fix tighten runtime-requirement on PAth__Tiny for visit().
Stuart Prescott++
v3.0.12 2016-07-24
[ Test Suite ]
- Fix devscripts test to use curly quotes as metacharacters (not
Paranthesis also used within, triggering warnings on some versiones of
perl).
v3.0.11 2016-07-24
[ Packaging ]
- Fix declare runtime-requirement on String::Copyright.
v3.0.10 2016-07-24
[ REGRESSIONS ]
- No longer detect multi-line multi-statement copyright strings (not yet
suppported by String::Copyright).
- Now misdetects some chatter as copyright statements (not yet suppported
by String::Copyright).
[ Test Suite ]
- Relax devscripts test: Ignore trailing dot and "All rights reserved"
boilerplate.
[ Other ]
- Use String::Copyright.
v3.0.9 2016-07-24
[ Documentation ]
- Drop old licensing header from devscripts test: Fully rewritten by now.
- Fix decode "©" in --version option output (workaround for Pod::Constants
not supporting UTF-8).
- Fix some categorizations of old changelog entries.
[ Test Suite ]
- Rewrite devscripts test to match patterns (not exact strings), and
handle varying output on encoding failure.
[ Packaging ]
- Drop superfluous test-requirement on strictures: Already declared as
runtime-requirement.
- Fix declare test-recommendation on Software::License (not too vague
recommends).
[ Other ]
- Stop use Unicode features: We don't really do any complex Unicode, so
let's try target older perl.
- Update headers of module and tests: Strip hashbang; consistently use
strictures.
v3.0.8 2016-07-24
[ Bug Fixes ]
- Avoid superfluous regex modifier /l.
[ Packaging ]
- Fix tighten test requirement for Test::Script to versions checking for
stdout/stderr.
[ Other ]
- Add "Generated with" to the generated file detection.
Paul Wise++
- Pseudo-decode alternative representations for copyright sign and
hyphen-minus.
v3.0.7 2016-07-20
[ Test Suite ]
- Bail out gracefully if Software::License fails to create some licenses.
[ Packaging ]
- Make Software::License test optional.
v3.0.6 2016-07-20
[ Packaging ]
- Fix require experimental (for switch feature).
[ Other ]
- Improve separation of copyright parsing from comment stripping and
copyright serializing
v3.0.5 2016-07-19
[ SECURITY ]
- Fix: Stop dereference symbolic links: non-intuitive and potentially
dangerous (possibly introduced in error intended to enable recursion).
Sandro Mani++
[ Test Suite ]
- Fix tighten rest-requirement on Software::License to versions supporting
new_from_short_name().
[ Other ]
- Avoid type constraints and all but one coercion, for a 30% speedup in
script initialization.
- Move find routine to library.
- Stop call system command find in script (uses Path::Tiny::visit
instead).
- Tidy script to rename $file → $path and $files_count → $paths_count
where not yet resolved as file.
v3.0.4 2016-07-18
[ Test Suite ]
- Drop non-working option "--installed" from script tests (leftover from
Debian autopkgtest support).
- Stop use Path::Tiny in test where unneeded.
- Use Test::Script to ensure correct perl invokes script in tests.
Slaven Rezić++
v3.0.3 2016-07-18
[ Test Suite ]
- Use Test::Roo and library calls (not script) for devscripts corpus
license coverage tests.
[ Packaging ]
- Fix require strictures for tests.
v3.0.2 2016-07-16
[ Test Suite ]
- Add devscripts test tied to devscripts corpus, converted from earlier
shunit2 script.
- Rewrite Software-License test to stop rely on Debian fork of
Software::License (see bug#828218).
- Rewrite Software-License test to use Test::Command.
[ Packaging ]
- Run perlcritic with tidyall, and move tidyall test to xt dir.
[ Other ]
- Bump license to GPL-3+.
- Resolve only regexes actually used.
- Use Getopt::Long::Descriptive.
- Use experimental given/when switch.
v3.0.1 2016-06-29
[ Documentation ]
- Add CPAN Request Tracker as alternative bug-database.
- Add myself as current author, and claim copyright for recent changes.
- Add pre-CPAN changelog entries.
- Adjust copyright notice to mention initial committer (not later
maintainer).
- Link to script from POD DESCRIPTION of library.
[ Packaging ]
- Tighten tidyall config to avoid cruft in bin dir.
v3.0.0 2016-06-27
[ Bug Fixes ]
- Fix tighten to use Getopt::Long 2.24: Needed for :config option.
[ Documentation ]
- Rewrite documentation of options, and --help putput.
[ Packaging ]
- Initial CPAN release (after being in Debian since 2007, and before that
in KDE SDK since 2000).
[ Other ]
- Added: Add --deb-machine option for Debian "deb5" copyright file format.
- Refactor codebase, with up to 400% speedup and reusable parts in a Moo
library.
- Removed: Drop support for reading configuration from files: Limited use,
legacy filenames, and odd parsing by use of risky shell call.