After the yanked 2.0.0 release, we're excited to announce our latest major version packed with new features and improvements! We've expanded our file type recognition, now including Fennel, CommonJS, Qt .pro, .pri, .qrc, .qss, .ui, Textile, Visual Studio Code workspace, Application Resource Bundle, Svelte components, AES encrypted files, Jakarta Server Page, Clang format, Browserslist config, Prettier config and ignored files, Flutter pubspec.lock, .metadata, Terraform and HCL, Typst and more.
We've also added the ability to detect SPDX snippet tags in files and introduced additional license metadata for the Python package. A new --json
flag has been added to the lint
command, marking the first step towards better integration of REUSE output with other tools.
On the changes front, we've bumped the SPDX license list to v3.21 and made significant updates to our Sphinx documentation. Please note that Python 3.6 and 3.7 support has been dropped in this release.
We've fixed several issues including automatic generation of Sphinx documentation via readthedocs.io and a compatibility issue where reuse could not be installed if gettext is not installed.
This update is all about making your experience better. Enjoy adding copyright and licensing information to your code!
Added
- Detect SPDX snippet tags in files. (#699)
- More file types are recognised:
- Fennel (
.fnl
) (#638) - CommonJS (
.cjs
) (#632) - Qt .pro (
.pro
) (#632) - Qt .pri (
.pri
) (#755) - Qt .qrc (
.qrc
) (#755) - Qt .qss(
.qss
) (#755) - Qt .ui (
.ui
) (#755) - Textile (
.textile
) (#712) - Visual Studio Code workspace (
.code-workspace
) (#747) - Application Resource Bundle (
.arb
) (#749) - Svelte components (
.svelte
) - AES encrypted files (
.aes
) (#758) - Jakarte Server Page (
.jsp
) (#757) - Clang format (
.clang-format
) (#632) - Browserslist config (
.browserslist
) - Prettier config (
.prettierrc
) and ignored files (.prettierignore
) - Flutter pubspec.lock (
pubspec.lock
) (#751) - Flutter .metadata (
.metadata
) (#751) - Terraform (
.tf
,tfvars
) and HCL (.hcl
). (#756) - Typst (
.typ
)
- Fennel (
- Added loglevel argument to pytest and skip one test if loglevel is too high (#645).
--add-license-concluded
,--creator-person
, and--creator-organization
added toreuse spdx
. (#623)- Additional license metadata for the Python package has been added. The actual SPDX license expression remains the same:
Apache-2.0 AND CC0-1.0 AND CC-BY-SA-4.0 AND GPL-3.0-or-later
. (#733) - Added
--contributor
option toannotate
. (#669) - Added
--json
flag tolint
command (#654). reuse.ReuseInfo
now hascopy
andunion
methods. (#759)reuse.ReuseInfo
now stores information about the source from which the information was gathered. (#654, #787)- Added Ukrainian and Czech translations (#767)
- Added
--suppress-deprecation
to hide (verbose) deprecation warnings. (#778)
Changed
- Bumped SPDX license list to v3.20. (#692)
reuse.SpdxInfo
was renamed toreuse.ReuseInfo
. It is now a (frozen) dataclass instead of a namedtuple. This is only relevant if you're using reuse as a library in Python. Other functions and methods were similarly renamed. (#669)- Sphinx documentation: Switched from RTD theme to Furo. (#673, #716)
- Removed dependency on setuptools'
pkg_resources
to determine the installed version of reuse. (#724) - Bumped SPDX license list to v3.21. (#763)
Project.reuse_info_of
now returns a list ofReuseInfo
objects instead of a single one. This is because the source information is now stored alongside the REUSE information. (#787)
Deprecated
- Pending deprecation of aggregation of file sources. Presently, when copyright and licensing information is defined both within e.g. the file itself and in the DEP5 file, then the information is merged or aggregated for the purposes of linting and BOM generation. In the future, this will no longer be the case unless explicitly defined. The exact mechanism for this is not yet concrete, but a
PendingDeprecationWarning
will be shown to the user to make them aware of this. (#778)
Removed
- Python 3.6 and 3.7 support has been dropped. (#673, #759)
- Removed runtime and build time dependency on
setuptools
. (#724)
Fixed
- Fixed automatic generation of Sphinx documentation via readthedocs.io by adding a
.readthedocs.yaml
configuration file (#648) - Fixed a compatibility issue where reuse could not be installed (built) if gettext is not installed. (#691)
- Translations are available in Docker images. (#701)
- Marked the
/data
directory in Docker containers as safe in Git, preventing errors related to linting Git repositories. (#720) - Repaired error when using Galician translations. (#719)