All major and minor version changes will be documented in this file. Details of patch-level version changes can be found in commit messages.
- Updated internal machineary
- Separate
--extras
and--groups
- update the cli interface to remove some confusing functionality
- refactor the library / code qa improvements
- Allow for alias of classifier in setup.cfg, thanks https://github.com/ericwb: #106
- Add support for SPDX license expression metadata after PEP 639: #107
- Add use regex/glob pattern to ignore multiple packages, thanks https://github.com/JulianKimmig: #108
- Prioritise ['project'] table over ['tool.poetry'] in pyproject.toml: #104
- Add option to show only failing packages: #98
- Use uv to parse dependencies before falling back to the native resolver
- deprecate the native resolver as many 3rd party libs (uv/pip/poetry) have done better
- Add html output using
markdown
lib #77
- fix critical TypeError: can only join an iterable
-
fix critical #75 where importlib.metadata.PackageMetadata.json does not exist in Python < 3.10
py311: OK (7.55=setup[5.89]+cmd[1.66] seconds) py310: SKIP (0.02 seconds) py39: SKIP (0.02 seconds) py38: OK (6.23=setup[4.30]+cmd[1.94] seconds) congratulations :) (13.95 seconds)
- fix #74
- update tests (as env has changed, ideally we'd mock more than we do atm)
- linting fixes
- fix: use
appdirs
for storing the db forrequests_cache
- Update Matrix for AGPL_3_PLUS
- code improvements
- fix issue where onlyLicenses logic caused licensecompat to be
false
when unspecified from the command line - move
cli()
tocli.py
- add tests for the main entry point
- update deps
- code improvements
- users can now specify a license from the command line with
--license
#69
- update dependencies
- fix: crash when a namespace doesn't exist #65
- fix: add support for double quotes in extras #64, thanks https://github.com/arunkumarpandian
- Fix optional extras from dependencies being included by default. Thank you https://github.com/arunkumarpandian!
- Dynamically get version from package metadata. Thank you https://github.com/emesar
- Bump version of rich
- Add a new flag
--skip-dependencies
which will exclude from the processing a list of the current project dependencies. Suitable for private dependencies which are only available on a private registry and not on PyPi. Thank you https://github.com/Azraeht :)
- Fixed Bug: handle missing urls for a pypi package #57. Thank you https://github.com/Azraeht!
- Fixed Bug: #55
- Refactor and code enhancements
- Fixed Bug: fix behaviour of dependency discovery for 'extras', thank you https://github.com/TuriJ95!
- Fixed Bug: ignore-package not working, thank you https://github.com/mathiasbockwoldt !
- Fixed Bug: requirements:requirements.txt reading mode, thank you https://github.com/NicolaDonelli
- Fixed Bug: Permissive libraries are not compatible with closed licenses. Closes #49
- Fixed Bug: Unexpected warnings for ignored license. Closes #48
- New Feature: Support option ignore-licenses in pyproject.toml. Closes #46
- Performance enhancements
- Extended test suite
- New Feature: Improve error messages (#44)
- New Feature: Support Transitive Dependencies 1 layer deep (#42)
- Fixed Bug: Unexpected warnings for ignored license (#48)
- Fixed Bug: A compatible dual licensed library is shown as incompatible (#47)
- Fixed Bug: licensecheck gives IndexError: list index out of range (#41)
- Fixed Bug: Apache2 is shown as incompatible with LGPL3 (#40)
- Update format to output info and detected package license
- Bump dep versions
- Merge PR #39 (Fixes #38)
- Merge PR #33 (implements feature: Support for PEP631: Declaring dependencies in pyproject.toml enhancement)
- Fix crash if setup.cfg exists with no metadata section (#34)
- Fix: #26
- Fix python 3.8 compatibility, thanks https://github.com/NicolaDonelli !
- Fix: use constant
JOINS
(";; ") in place of hardcoded ", " string to avoid splitting single license with commas - Fix: Add
GPL_X
for GPL without a defined version - Minor refactoring eg renaming functions
- Make namever consistent
- Add regression tests
- Combined
PackageCompat
andPackageInfo
to a@dataclass
ofPackageInfo
get_deps.py
andpackageinfo.py
use sets in-place of lists. NOTE:list(depsWithLicenses)
is passed toformatter.py
(which expects lists ofPackageInfo
)
- Add support for
setup.cfg
#21 (thank you https://github.com/NicolaDonelli for the code :)) - Use rich for table rendering #20
- More detailed warnings per #19
- Add check using spdx identifiers
- Remove metprint
- Move docs
- Update precommit
- Fix crash when calculating module size
- Fix crash when module name was in different case to the requirement
- Hopefully fix #14 for real this time
- Update deps
- Remove
pip
- Replace
tomlkit
withtomli
- Fix #18
- Compatible with pip 21.3
- Code quality improvements
- Add
-u poetry:dev
to command-line to include dev packages (excluded by default) per #16 - Add support for proprietary license per #15
- Raise RuntimeError if missing license and classifier #14
- Quality improvements to license_matrix.py
- Add additional examples to readme
- Support pre-commit-hooks #8
- Command-line options take precedent over config options as expected
- Add config file functionality per #11
- Parsed in the following order:
pyproject.toml
,setup.cfg
,licensecheck.toml
,licensecheck.json
,licensecheck.ini
,~/licensecheck.toml
,~/licensecheck.json
,~/licensecheck.ini
- Note that the config takes precedent over command-line options
- Parsed in the following order:
- Add optional path to requirements.txt as outlined in #9 (comment)
- Eg.
licensecheck --using requirements:c:/path/to/reqs.txt;path/to/other/reqs.txt
- Eg.
- Add
--ignore-packages
,--fail-packages
,--ignore-licenses
,--fail-licenses
, per #7 - Fix spelling
- Added a couple examples to the readme
- Added pylintrc to pyproject.toml
- Added ability to use requirements.txt per #6
- Code clean-up + refactoring
- Fix spelling
- packagecompat.py → types.py as this module holds types + typing info
- reformat
- improve docstrings
- Add PSFL to matrix.
- Tidied up
- Added
--zero/-0
flag to return non-zero exit code when an incompatible license is found
- Updated requirements
- Fallback to requirements.txt when poetry throws an error and direct the user to troubleshoot
- Improved support for GPL fans out there by detecting variants in a more granular manner. Fewer false -ves for said GPL variants. E.g. a dependency with GPL2 only will be flagged for a project using GPL3
- set stdout to utf-8
- fancy tables in simple and ansi formats
- dependencies bugfix
- First release