Changes for version 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

Documentation

simple license checker for source files

Modules

functions for a simple license checker for source files