App-Licensecheck
================
Created: 2000-01-28
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.