This change log follows the Keep a Changelog spec. Every release contains the following sections:
Added
for new features.Changed
for changes in existing functionality.Deprecated
for soon-to-be removed features.Removed
for now removed features.Fixed
for any bug fixes.Security
in case of vulnerabilities.
The versions follow semantic versioning.
-
TeX and ML comment styles added.
-
Added
--year
and--exclude-year
toreuse addheader
. -
Added
--template
toreuse addheader
. -
Added
--explicit-license
toreuse addheader
. -
binaryornot
added as new dependency. -
Greatly improved the usage documentation.
-
reuse addheader
now automatically adds the current year to the copyright notice. -
reuse addheader
preserves the original header below the new header if it did not contain any SPDX information. -
reuse addheader
now correctly handles.license
files. -
Bad licenses are no longer resolved to LicenseRef-Unknown. They are instead resolved to the stem of the path. This reduces the magic in the code base.
-
.gitkeep
files are now ignored by the tool. -
Changed Lisp's comment character from ';;' to ';'.
--all
argument help toreuse download
, which downloads all detected missing licenses.
-
When using
reuse addheader
on a file that contains a shebang, the shebang is preserved. -
Copyright lines in
reuse spdx
are now sorted. -
Some publicly visible TODOs were patched away.
This release is a major overhaul and refactoring of the tool. Its primary focus is improved usability and speed, as well as adhering to version 3.0 of the REUSE Specification.
-
reuse addheader
has been added as a way to automatically add copyright statements and license identifiers to the headers of files. It is currently not complete. -
reuse init
has been added as a way to initialise a REUSE project. Its functionality is currently scarce, but should improve in the future.
-
reuse lint
now provides a helpful summary instead of merely spitting out non-compliant files. -
reuse compile
is nowreuse spdx
. -
In addition to
Copyright
and©
, copyright lines can be marked with the tagSPDX-FileCopyrightText:
. This is the new recommended default. -
Project no longer depends on pygit2.
-
The list of SPDX licenses has been updated.
-
Valid-License-Identifier
is no longer used, and licenses and exceptions can now only live inside of the LICENSES/ directory.
-
Removed
--ignore-debian
. -
Removed
--spdx-mandatory
,--copyright-mandatory
,--ignore-missing
arguments fromreuse lint
. -
Remove
reuse license
. -
GPL-3.0 and GPL-3.0+ (and all other similar GPL licenses) are no longer detected as SPDX identifiers. Use GPL-3.0-only and GPL-3.0-or-later instead.
-
Scanning a Git directory is a lot faster now.
-
Scanning binary files is a lot faster now.
This release should be a short-lived one. A new (slightly backwards-incompatible) version is in the works.
- Copyrights can now start with
©
in addition toCopyright
. The former is now recommended, but they are functionally similar.
- The source code of reuse is now formatted with black.
- The repository has been moved from https://git.fsfe.org/reuse/reuse to https://gitlab.com/reuse/reuse.
- Any files with the suffix
.spdx
are no longer considered licenses.
- The documentation now builds under Python 3.7.
- When using reuse from a child directory using pygit2, correctly find the root.
- The output of
reuse compile
is now deterministic. The files, copyright lines and SPDX expressions are sorted alphabetically.
- When a GPL license could not be found, the correct
-only
or-or-later
extension is now used in the warning message, rather than a bareGPL-3.0
. - If you have a license listed as
SPDX-Valid-License: GPL-3.0-or-later
, this now correctly matches corresponding SPDX identifiers. Still it is recommended to useSPDX-Valid-License: GPL-3.0
instead.
- Internationalisation support added. Initial support for:
- English.
- Dutch.
- Esperanto.
- Spanish.
- The license list of SPDX 3.0 has deprecated
GPL-3.0
andGPL-3.0+
et al in favour ofGPL-3.0-only
andGPL-3.0-or-later
. The program has been amended to accommodate sufficiently for those licenses.
Project.reuse_info_of
now extracts, combines and returns information both from the file itself and from debian/copyright.ReuseInfo
now holds sets instead of lists.- As a result of this,
ReuseInfo
will not hold duplicates of copyright lines or SPDX expressions.
- As a result of this,
- click removed as dependency. Good old argparse from the library is used instead.
- The
reuse --help
text has been tidied up a little bit.
- Release date in change log fixed.
- The PyPI homepage now gets reStructuredText instead of Markdown.
- Successfully parse old-style C and HTML comments now.
- Added
reuse compile
, which creates an SPDX bill of materials. - Added
--ignore-missing
toreuse lint
. - Allow to specify multiple paths to
reuse lint
. chardet
added as dependency.pygit2
added as soft dependency. reuse remains usable without it, but the performance withpygit2
is significantly better. Becausepygit2
has a non-Python dependency (libgit2
), it must be installed independently by the user. In the future, when reuse is packaged natively, this will not be an issue.
- Updated to version 2.0 of the REUSE recommendations. The
most important change is that
License-Filename
is no longer used. Instead, the filename is deducted fromSPDX-License-Identifier
. This change is NOT backwards compatible. - The conditions for linting have changed. A file is now non-compliant
when:
- The license associated with the file could not be found.
- There is no SPDX expression associated with the file.
- There is no copyright notice associated with the file.
- Only read the first 4 KiB (by default) from code files rather than the entire file when searching for SPDX tags. This speeds up the tool a bit.
Project.reuse_info_of
no longer raises an exception. Instead, it returns an emptyReuseInfo
object when no reuse information is found.- Logging is a lot prettier now. Only output entries from the
reuse
module.
reuse --ignore-debian compile
now works as expected.- The tool no longer breaks when reading a file that has a non-UTF-8
encoding. Instead,
chardet
is used to detect the encoding before reading the file. If a file still has errors during decoding, those errors are silently ignored and replaced.
- Removed dependency on
os.PathLike
so that Python 3.5 is actually supported
- Fixed the link to PyPI in the README.
This is a very early development release aimed at distributing the program as soon as possible. Because this is the first release, the changelog is a little empty beyond "created the program".
The program can do roughly the following:
- Detect the license of a given file through one of three methods (in
order of precedence):
- Information embedded in the .license file.
- Information embedded in its header.
- Information from the global debian/copyright file.
- Find and report all files in a project tree of which the license could not be found.
- Ignore files ignored by Git.
- Do some logging into STDERR.