{"id":14667,"library":"licensecheck","title":"LicenseCheck","description":"LicenseCheck is a Python utility that audits the licenses of your project's dependencies and verifies their compatibility with your project's license. It provides a command-line interface to quickly scan and report on package licenses. The library is actively maintained with frequent releases, typically several times a year.","status":"active","version":"2025.1.0","language":"en","source_language":"en","source_url":"https://github.com/FHPythonUtils/LicenseCheck","tags":["license","compliance","dependencies","cli","audit","foss"],"install":[{"cmd":"pip install licensecheck","lang":"bash","label":"Install stable version"}],"dependencies":[{"reason":"Used for faster dependency parsing; deprecates the native resolver.","package":"uv","optional":true},{"reason":"Required for generating HTML output reports.","package":"markdown","optional":true}],"imports":[{"note":"The primary mode of interaction is through the command-line interface. While a Python API exists, its common import paths for direct library usage are not as widely documented as its CLI.","symbol":"licensecheck (CLI)","correct":"licensecheck"}],"quickstart":{"code":"pip install licensecheck\nlicensecheck","lang":"bash","description":"Install the library and run the command in your project directory to get a basic overview of your dependencies and their licenses. The output will show a table indicating compatibility and license types."},"warnings":[{"fix":"Review release notes for specific changes if using the library programmatically. For CLI users, behavior should be mostly consistent, but new features or altered outputs might occur.","message":"The codebase underwent significant refactoring in early 2025 (version 2025.x.x), which may lead to less stability or reliability compared to typical releases and could introduce API changes for direct library users.","severity":"breaking","affected_versions":">=2025.0.0"},{"fix":"Ensure 'uv' is installed and used (e.g., `uv run licensecheck`) if you relied on the native resolver for dependency resolution, especially in complex environments.","message":"The 'native resolver' for parsing dependencies was deprecated in version 2024.3, with a recommendation to use 'uv' for improved performance and reliability.","severity":"deprecated","affected_versions":">=2024.3.0"},{"fix":"Ensure you are running LicenseCheck with Python 3.10 or newer, or at least version 2024.1.5 or later, to avoid runtime errors related to package metadata access.","message":"Critical `TypeError` and issues with `importlib.metadata.PackageMetadata.json` not existing in Python < 3.10 were fixed in versions 2024.1.4 and 2024.1.5. This indicates potential instability or incorrect behavior when running on Python 3.9, despite `requires_python: >=3.9`.","severity":"gotcha","affected_versions":"<2024.1.5"},{"fix":"Consult the `licensecheck --help` output or official documentation after upgrading to understand any changes to CLI flags or expected inputs/outputs.","message":"The command-line interface (CLI) was updated in version 2025.0.1 to remove 'confusing functionality'. This implies that CLI arguments or behaviors might have changed or been streamlined, potentially affecting scripts or muscle memory built on older versions.","severity":"gotcha","affected_versions":">=2025.0.1"},{"fix":"Be mindful of the configuration file loading order. For predictable behavior, consolidate your configuration into a single file or explicitly define settings only where intended, leveraging the precedence rules carefully.","message":"Configuration files are parsed in a specific order: `pyproject.toml`, `setup.cfg`, `licensecheck.toml`, `licensecheck.json`, `licensecheck.ini`, followed by user-level config files. Configuration defined in earlier files takes precedence, which can lead to unexpected behavior if multiple config files exist with conflicting settings.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-04-15T00:00:00.000Z","next_check":"2026-07-14T00:00:00.000Z","problems":[],"ecosystem":"pypi"}