Skip to content

Update dependency reuse to v6#209

Open
renovate[bot] wants to merge 1 commit into
devfrom
renovate/reuse-6.x
Open

Update dependency reuse to v6#209
renovate[bot] wants to merge 1 commit into
devfrom
renovate/reuse-6.x

Conversation

@renovate

@renovate renovate Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
reuse (source) ==3.0.1==6.2.0 age confidence

Release Notes

fsfe/reuse-tool (reuse)

v6.2.0

Compare Source

Added
  • Added new file extensions and files:
  • file-magic is now supported as an additional module for detecting the
    encoding of files. (#​1264)
  • Support deprecated licences for reuse download. (#​606)
  • Markdown files which have frontmatter (i.e. yaml or toml between a --- block
    at the start of the file) now get Python-like comments inside of the
    frontmatter when annotating. (#​1170)
Fixed
  • When file-magic is installed simultaneously with python-magic, the tool
    used to misbehave (read: crash), because either one of them could be imported
    on import magic. This misbehaviour no longer happens. (#​1264)
  • Invalid SPDX license expressions are no longer recognized as used or missing
    licenses. (#​1254)
  • click translations are now correctly loaded. (#​1267)

v6.1.2

Compare Source

Fixed
  • Fixed a bug where a newline would sometimes be missing from
    reuse lint --lines. (#​1251)
  • The output of reuse lint --lines is now sorted by path name. (#​1251)
  • Fixed a performance regression introduced in v6.1.1 that would cause some
    copyright notices to take incredibly long to parse. (#​1252)

v6.1.1

Compare Source

Changed
  • In the Docker images, Alpine is bumped to alpine:3.22 and Debian to
    debian:13-slim. (#​1247)
Fixed
  • ASCII frames around comments were broken in v6.0.0. They now work again. The
    sole condition is that the 'suffix' of a comment is identical to its 'prefix'.
    For example:

    /*******************************************\
    |*  SPDX-License-Identifier: CC-BY-SA-4.0  *|
    \*******************************************/
    

    (#​1249)

v6.1.0

Compare Source

This release adds a simple feature as a workaround for a bug that will be
resolved in a later version. The bug is described in
https://codeberg.org/fsfe/reuse-tool/issues/1244, and can be summarised as:
When charset-normalizer is used to detect the encoding of a file, it will
erroneously detect a UTF-8 file as having no encoding (i.e. a binary file) when
the 2048th byte is a non-final byte of a multi-byte glyph.

You can run reuse as REUSE_ENCODING_MODULE=chardet reuse to circumvent this
bug. If you use pre-commit, you can use this snippet:

repos:
  - repo: https://codeberg.org/fsfe/reuse-tool
    rev: v6.1.0
    hooks:
      - id: reuse
        entry: env REUSE_ENCODING_MODULE=chardet reuse

You will not encounter this bug if your environment has libmagic available.

Added
  • You can now specify the module that will be used for detecting the encoding of
    files with the REUSE_ENCODING_MODULE environment variable. (#​1245)
  • The Docker images and the pre-commit hooks now come bundled with all encoding
    modules. (#​1245)
  • The --debug flag now tells you the detected encoding and detected newlines
    of each file, as well as which encoding module is used. (#​1246)

v6.0.0

Compare Source

This release contains a lot of refactoring regarding the parsing of files. The
most impactful details are that reuse lint now searches every file in its
entirety for REUSE information, tries to detect each file's encoding, and no
longer breaks when invalid SPDX License Expressions are detected.

Because files are now read in their entireties instead of just the first 4 KiB,
you may need to add REUSE-IgnoreStart and REUSE-IgnoreEnd tags to get rid of
false positives that were previously too deep into files for reuse to detect.

For package maintainers: This release removes, adds, and changes
dependencies. It merits running git diff v5.1.1..v6.0.0 pyproject.toml and
reading the 'Changed' section of this change log to see what changed.

Added
  • Added new file extensions:
  • A new criterion 'Invalid SPDX License Expressions' has been added to
    reuse lint. Invalid expressions are SPDX License Expressions which are not
    valid according to the grammar of the SPDX specification. (#​1240)
Changed
  • Python 3.9 support dropped. (#​1219)
  • The Python requirement for reuse now no longer requires a lower major
    version than 4. The requirement is now >=3.10 instead of >=3.10,<4.
    (#​1219)
  • Dependency changes:
    • Removed explicit dependency boolean.boolean. It is now an implicit
      dependency via license-expression. (#​1240)
    • The dependency python-magic has been added, alongside the optional
      dependencies charset-normalizer and chardet. So long as at least one of
      these is installed, the program will work. (#​1235)
    • The dependency binaryornot has been removed. (#​1235)
    • The minimum requirements of several dependencies have been updated. (#​1235,
      #​1241)
  • reuse lint now always searches the entire file for REUSE information.
    Previously, it only searched the first 4 KiB under most circumstances. (#​1229)
  • The encodings of files are now detected before they are read or altered.
    (#​1235, #​1218)
  • The 'Bad licenses' criterion in reuse lint previously searched for bad
    licenses in every single file. Now, only bad licenses in LICENSES/ are
    detected, which is more in line with the documentation. (#​1240)
  • The behaviour of the --year option to reuse annotateis now different.
    Previously, you could define --year <year> multiple times. Now you can only
    do so once, but the value may be a string containing multiple years or a range
    of years. (#​1145)
  • reuse annotate --merge-copyrights works more efficiently now, capable of
    better heuristics to detect years and year ranges. (#​1145)
  • reuse annotate --merge-copyrights no longer adds spacing around the merged
    year ranges. i.e. 2017-2025, not 2017 - 2025. (#​1145)
Fixed
  • Unparseable SPDX expressions in a file now no longer cause the collection of
    REUSE information from that file to entirely fail. (#​1240)
  • Files with carriage return (\r) line endings are now correctly linted.
    (#​1235, #​1226)
  • There used to be a specific scenario where reuse lint would read the
    contents of an entire file into memory. This no longer happens.
    reuse annotate will still read the entire file into memory. (#​1229)
  • Fixed formatting in lint subcommand help message. (#​1212, #​1236)
  • Fixed a case where, if a recognised file extension (such as .blade.php) has
    two or more components, it would not be correctly recognised. (#​573)
  • Fixed a bug where, if REUSE-IgnoreStart is the very first thing that appears
    in a file, the subsequent text is not actually ignored. (#​1229)
  • If using reuse annotate to write to a file, the BOM is preserved if the
    encoding is UTF-8, UTF-16, or UTF-32. (#​1235, #​384)
  • The summaries of reuse lint are now sorted better. (#​1241)
  • Several performance improvements. Local testing on a 12-core laptop suggests
    speedup of up to 50%, but it may depend on your repository. (#​1222, #​1223,
    #​1230, #​1241)

v5.1.1

Compare Source

Fixed
  • Fixed repository file detection using jujutsu versions 0.19.0 or later.
    (#​1191)
  • Fixed a bug that caused not all strings to be marked translatable. This bug
    was introduced in v5.0.0. Strings that were already translated before the
    release of v5.0.0 are now translated again. (#​1216)

v5.1.0

Compare Source

Added
  • Added new file extensions:
  • Added --json flag to the supported-licenses subcommand. (#​1187)
Changed
  • Revert Cargo.lock to uncommentable. (#​1169)
  • reuse annotate previously would insert a newline after a header, which is
    not always a desirable behavior. Instead of inserting a newline,
    reuse annotate will now respect the existing whitespace of the file where
    the header is being placed. When the license header is being added to a file
    for the first time, a space will be added after the license, but subsequent
    updates to the header will leave the whitespace alone. (#​1136)
  • Updated spdx-license-list-data to v3.27.0.

v5.0.2

Compare Source

Fixed
  • The release date for the v5.0.0 entry in the change log was wrong.

v5.0.1

Compare Source

Fixed
  • Fix readthedocs build.

v5.0.0

Compare Source

This is a big release for a small change set. With this release, the tool
becomes compatible with
REUSE Specification 3.3, which is a very
subtly improved release of the much bigger version 3.2.

Added
  • More file types are recognised:
  • Added lint-file subcommand to enable running lint on specific files. (#​1055)
  • Added shell completion via click. (#​1084)
  • Added Jujutsu VCS support. (#​1051)
  • Added new copyright prefixes spdx-string, spdx-string-c, and
    spdx-string-symbol. (#​979)
  • Support for Python 3.13. (#​1092)
Changed
  • Bumped REUSE Specification version to
    version 3.3. (#​1069)

  • Switched from argparse to click for handling the CLI. The CLI should still
    handle the same, with identical options and arguments, but some stuff changed
    under the hood. (#​1084)

    Find here a small list of differences:

    • -h is no longer shorthand for --help.
    • --version now outputs "reuse, version X.Y.Z", followed by a licensing
      blurb on different paragraphs.
    • Some options are made explicitly mutually exclusive, such as annotate's
      --skip-unrecognised and --style, and download's --output and
      --all.
    • Subcommands which take a list of things (files, license) as arguments, such
      as annotate, lint-file, or download, now also allow zero arguments.
      This will do nothing, but can be useful in scripting.
    • annotate and lint-file now also take directories as arguments. This will
      do nothing, but can be useful in scripting.
  • Changes to comment styles:

    • Allow Python-style comments in Cargo.lock files. (#​1060)
    • .s files (GNU as) now use the C comment style. (#​1034)
    • .ld files (GNU ld) now use the C comment style. (#​1034)
  • REUSE.toml no longer needs a licensing header. (#​1042)

  • .gitkeep is no longer ignored, because this is not defined in the
    specification. However, if .gitkeep is a 0-size file, it will remain ignored
    (because 0-size files are ignored). (#​1043)

  • If REUSE.toml is ignored by VCS, the linter no longer parses this file.
    (#​1047)

  • SPDX license and exception list updated to v3.25.0.

  • More LICENSE and COPYING-like files are ignored. Now, such files suffixed
    by -anything are also ignored, typically something like LICENSE-MIT. Files
    with the UK spelling LICENCE are also ignored. (#​1041)

Removed
  • Python 3.8 support removed. (#​1080)
Fixed
  • In REUSE.toml, fixed the globbing of a single asterisk succeeded by a slash
    (e.g. directory-*/foo.py). The glob previously did nothing. (#​1078)
  • Increased the minimum requirement of attrs to >=21.3. Older versions do
    not import correctly. (#​1044)
  • Performance greatly improved for projects with large directories ignored by
    VCS. (#​1047)
  • Performance slightly improved for large projects. (#​1047)
  • The plain output of lint has been slightly improved, getting rid of an
    errant newline. (#​1091)
  • reuse annotate --merge-copyrights now works more reliably with copyright
    prefixes. This still needs some work, though. (#​979)
  • In some scenarios, where a user has multiple REUSE.toml files and one of
    those files could not be parsed, the wrong REUSE.toml was signalled as being
    unparseable. This is now fixed. (#​1047)
  • Fixed a bug where REUSE.toml did not correctly apply its annotations to
    files which have an accompanying .license file. (#​1058)
  • When running reuse download SPDX-IDENTIFIER+, download SPDX-IDENTIFIER
    instead. This also works for reuse download --all. (#​1098)

v4.0.3

Compare Source

Fixed
  • Increased the minimum requirement of attrs to >=21.3. Older versions do
    not import correctly. (#​1044)

v4.0.2

Compare Source

Fixed
  • Repaired a bug that would cause a crash when running
    annotate --merge-copyrights on a file that does not yet have a year in the
    copyright statement. This bug was introduced in v4.0.1. (#​1030)

v4.0.1

Compare Source

Fixed
  • Make sure that Read the Docs can compile the documentation. This necesitated
    updating poetry.lock. (#​1028)

v4.0.0

Compare Source

This release of REUSE implements the new
REUSE Specification v3.2. It adds the
REUSE.toml file format as a replacement for .reuse/dep5. The new format is
easier to write and parse, is better at disambiguating certain corner cases, and
is more flexible for customisation and future additions.

To convert your existing .reuse/dep5 to REUSE.toml, you can simply use the
reuse convert-dep5 command.

Alongside the REUSE.toml feature is a wealth of other improvements.
reuse lint --lines may be especially interesting for CI workflows, as well as
the fact that the amount of PendingDeprecationWarnings has been drastically
reduced now that the information aggregation behaviour of .reuse/dep5 is
explicitly defined in the specification.

The tool has also been made easier to use with the addition of man pages. The
man pages can be found online at https://reuse.readthedocs.io/en/stable/man/.
Your distribution's packager will need to make them accessible via
man reuse(1). Unfortunately, man pages cannot be made accessible via Python's
packaging, although the full documentation (including man pages) is included in
the sdist.

This changeset also contains the changes of v3.1.0a1.

Added
  • Added support for REUSE.toml. (#​863)
  • Added reuse convert-dep5 to convert .reuse/dep5 to REUSE.toml. (#​863)
  • Man pages added for all reuse commands. Distribution maintainers might wish
    to distribute the (Sphinx-built) man pages. (#​975)
  • More file types are recognised:
  • Added comment styles:
    • man for UNIX Man pages (.man) (#​954)
  • Added --lines output option for lint. (#​956)
  • Treat % !TEX and % !BIB as shebangs in TeX and BibTeX files, respectively
    (#​971)
  • Support alternate spelling --skip-unrecognized. (#​974)
  • In annotate, rename --copyright-style to --copyright-prefix. The former
    parameter is still supported. (#​973)
  • Support alternate spelling --skip-unrecognized (#​974)
  • cpp and cppsingle style shorthands (see changes). (#​941)
Changed
  • Updated SPDX resources to 3.24.0. (#​994)
  • Updated REUSE specification version to 3.2. (#​994)
  • .s files now use the Python comment style as per GNU Assembler (gas). (#​928)
  • Previously, any file that begins with COPYING or LICENSE was ignored. This
    has been changed. Now, files like COPYING_README are no longer ignored, but
    COPYING and COPYING.txt are still ignored (in other words: exact matches,
    or COPYING + a file extension). Idem ditto for LICENSE. (#​886)
  • Dependencies added:
  • Reorganised the way that c, css, and csingle styles work. (#​941)
    • c used to support multi-line comments; it now only supports multi-line
      /* */ comments. This is identical to the old css style.
    • cpp has been added, which supports multi-line /* */ comments and
      single-line // comments. This is identical to the old c style.
    • csingle has been renamed to cppsingle, and it supports only single-line
      // comments.
Deprecated
  • .reuse/dep5 is marked deprecated. reuse convert-dep5 will help you switch
    to REUSE.toml. (#​863)
Removed
  • The PendingDeprecationWarning for the aggregation of information between DEP5
    and the contents of a file has been removed. This behaviour is now explicitly
    specified in REUSE Specification v3.2. (#​1017, related to #​779)
  • reuse init removed. (#​863)
  • csingle and css style shorthands (see changes). (#​941)
Fixed
  • The datetime value for Created: was wrongly formatted since 3.0.0. It now
    returns a correctly formatted ISO 8601 date again. (#​952)
  • Repaired the behaviour of reuse download where being inside of a LICENSES/
    directory should not create a deeper LICENSES/LICENSES/ directory. (#​975)
  • Support annotating a file that contains only a shebang. (#​965)
  • Add CONTRIBUTING.md to the sdist. (#​987)
  • In reuse spdx, fixed the output to be more compliant by capitalising
    SPDXRef-Document DESCRIBES appropriately. (#​1013)

v3.0.2

Compare Source

Fixed
  • annotate's '--style now works again when used for a file with an
    unrecognised extension. (#​909)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from pylapp as a code owner July 14, 2026 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants