Hi all!,
I have released version 3.0.0 of the reuse tool today. It's not a massively interesting release---just a heap of bug fixes and tiny features. The biggest user-facing change is that the tool will propose recommendations in `reuse lint` if you get something wrong.
The API will soon be updated as well, but I ran into a small sysadmin issue that is preventing a swift update.
The change log is copied below for your reading convenience.
Yours with kindness, Carmen
## 3.0.0 - 2024-01-17
This release contains a lot of small improvements and changes without anything big per se. Rather, it is made in advance of a release which will contain a single feature: [REUSE.toml](https://github.com/fsfe/reuse-tool/issues/779), a replacement for `.reuse/dep5`. `.reuse/dep5` will still be supported as a deprecated feature for some time.
That future 3.1 release will have some alpha testing in advance.
### Added
- Implement handling LicenseRef in `download` and `init`. (#697) - Declared support for Python 3.12. (#846) - More file types are recognised: - TCL (`.tcl`) (#871) - Julia (`.jl`) (#815) - Modern Fortran (`.f90`) (#836) - Bazel (`.bzl`) (#870) - GNU Linker script (`.ld`) (#862) - Assembly code (`.s`) (#862) - Empty placeholders (`.empty`) (#862) - ShellCheck configuration (`.shellcheckrc`) (#862) - Pylint in-project configuration (`pylintrc`) (#862) - Lisp schemes (`.sld`, `.sls`, `.sps`) (#875) - Added comment styles: - `csingle` for Zig (`.zig`) and Hare (`.ha`) (#889) - Display recommendations for steps to fix found issues during a lint. (#698) - Add support for Pijul VCS. Pijul support is not added to the Docker image. (#858) - When running `annotate` on a file with an unrecognised file path, the tool currently exits early. To automatically create a .license file for unrecognised files, `--fallback-dot-license` has been added. (#823, #851, #853, #859; this took a while to get right.) - Ignore `.sl` directory as used by [Sapling SCM](https://sapling-scm.com/). (#867)
### Changed
- Alpine Docker image now uses 3.18 as base. (#846) - The Git submodule detection was made less naïve. Where previously it detected a directory with a `.git` file as a submodule, it now uses the git command to detect submodules. This helps detect (quoted from Git man page) "[repositories] that were cloned independently and later added as a submodule or old setups", which "have the submodule's git directory inside the submodule instead of embedded into the superproject's git directory". (#687) - No longer scan binary or uncommentable files for their contents in search of REUSE information. (#825) - `--force-dot-license` and `--skip-unrecognised` are now mutually exclusive on `annotate`. (#852) - No longer create and publish `-extra` Docker images. The `openssh-client` package is now in the main image. (#849) - No longer create and publish `dev` Docker images. (#849) - The `-debian` Docker image is now based off debian:12-slim. It used to be based on the python:slim image, which used debian:slim under the hood. (#849)
### Removed
- Removed deprecated `--explicit-license`. (#851) - Removed deprecated `addheader`. (#851) - No longer depend on `sphinx-autodoc-typehints` for documentation. (#772)
### Fixed
- Syntax errors in .reuse/dep5 now have better error handling. (#841) - Reduced python-debian minimum version to 0.1.34. (#808) - Fix issue in `annotate` where `--single-line` and `--multi-line` would not correctly raise an error with an incompatible comment style. (#853) - Fix parsing existing copyright lines when they do not have a year (#861) - Better handling of Lisp comment styles. Now, any number of ";" characters is recognised as the prefix to a Lisp comment, and ";;;" is used when inserting comment headers, as per https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html. (#874)