App-Licensecheck
view release on metacpan or search on metacpan
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 ]
[ 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 ]
( run in 2.156 seconds using v1.01-cache-2.11-cpan-ceb78f64989 )