Skip to content

Releases: fsfe/reuse-tool

v4.0.3

08 Jul 12:01
v4.0.3
9760714
Compare
Choose a tag to compare

Fixed

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

v4.0.2

03 Jul 16:56
v4.0.2
3e35284
Compare
Choose a tag to compare

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

03 Jul 14:31
v4.0.1
5df2bed
Compare
Choose a tag to compare

Fixed

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

v4.0.0

03 Jul 13:09
v4.0.0
aa2a05b
Compare
Choose a tag to compare

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:
    • Assembler (.asm) (#928)
    • GraphQL (.graphqls, .gqls) (#930)
    • CUDA-C++ (.cu, .cuh) (#938)
    • Various .NET files (.csproj, .fsproj, .fsx, .props, .sln,
      .vbproj) (#940)
    • Cargo (Cargo.lock) (#937)
    • Clang-Tidy (.clang-tidy) (#961)
    • Java .properties files (#968)
    • Apache HTTP server config .htaccess files (#985)
    • npm .npmrc files (#985)
    • LaTeX class files (.cls) (#971)
    • CSON (.cson) (#1002)
    • Hjson (.hjson) (#1002)
    • JSON5 (.json5) (#1002)
    • JSON with Comments (.jsonc) (#1002)
    • Tap (.taprc) (#997)
    • Zsh (.zshrc) (#997)
    • Perl test (.t) (#997)
    • BATS test (.bats) (#997)
    • Octave/Matlab (.m) (#604)
    • VHDL(.vhdl) (#564)
    • Earthly files (Earthfile and .earthlyignore) (#1024)
  • 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:
    • attrs>=21.1 (#863)
    • tomlkit>=0.8 (#863)
  • 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.1.0a1

28 May 13:56
v3.1.0a1
6afda74
Compare
Choose a tag to compare
v3.1.0a1 Pre-release
Pre-release

Added

  • Added support for REUSE.toml. (#863)
  • Manpages added for all reuse commands. Distribution maintainers might wish
    to distribute the (Sphinx-built) manpages. (#975)
  • More file types are recognised:
    • Assembler (.asm) (#928)
    • GraphQL (.graphqls, .gqls) (#930)
    • CUDA-C++ (.cu, .cuh) (#938)
    • Various .NET files (.csproj, .fsproj, .fsx, .props, .sln,
      .vbproj) (#940)
    • Cargo (Cargo.lock) (#937)
    • Clang-Tidy (.clang-tidy) (#961)
    • Java .properties files (#968)
    • Apache HTTP server config .htaccess files (#985)
    • npm .npmrc files (#985)
    • LaTeX class files (.cls) (#971)
  • 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)

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:
    • attrs>=21.1 (#863)
    • tomlkit>=0.8 (#863)

Deprecated

  • .reuse/dep5 is marked deprecated. reuse convert-dep5 will help you switch
    to REUSE.toml. (#863)

Fixed

  • Clearer instructions for --suppress-deprecation in deprecation warning.
    (#949)
  • 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)

v3.0.2

08 Apr 08:11
v3.0.2
bafd6d7
Compare
Choose a tag to compare

Fixed

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

v3.0.1

19 Jan 12:38
v3.0.1
b450f17
Compare
Choose a tag to compare

Fixed

  • .qrc and .ui now have the HTML comment style instead of being marked
    uncommentable. (#896)
  • This reverts behaviour introduced in v3.0.0: the contents of uncommentable
    files are scanned for REUSE information again. The contents of binary files
    are not. (#896)

v3.0.0

17 Jan 18:42
v3.0.0
52de342
Compare
Choose a tag to compare

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, 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.
    (#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)

v2.1.0

18 Jul 08:57
Compare
Choose a tag to compare

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)
  • Added loglevel argument to pytest and skip one test if loglevel is too high (#645).
  • --add-license-concluded, --creator-person, and --creator-organization added to reuse 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 to annotate. (#669)
  • Added --json flag to lint command (#654).
  • reuse.ReuseInfo now has copy and union 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 to reuse.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 of ReuseInfo 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)

v2.0.0

21 Jun 11:23
Compare
Choose a tag to compare

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)
  • More files are recognised:
    • 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)
  • Added loglevel argument to pytest and skip one test if loglevel is too high
    (#645).
  • --add-license-concluded, --creator-person, and --creator-organization
    added to reuse 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 to annotate. (#669)
  • Added --json flag to lint command (#654).
  • reuse.ReuseInfo now has copy and union methods. (#759)
  • Added Ukrainian and Czech translations (#767)

Changed

  • Bumped SPDX license list to v3.20. (#692)
  • reuse.SpdxInfo was renamed to reuse.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. (#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)
  • Bumped REUSE Spec version to 3.1. (#768)
  • Introduce an order of precedence. The copyright and licensing information from
    different sources (e.g. .license or .reuse/dep5 file) is no longer merged.
    (#654)

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)