All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased - ReleaseDate
0.10.7 - 2024-11-15
- PR#72 update SPDX license list to 3.25.0.
0.10.6 - 2024-05-31
- PR#70 update SPDX license list to 3.24.0.
0.10.4 - 2024-02-26
- PR#65 update SPDX license list to 3.23.
0.10.3 - 2024-01-04
- PR#63 update SPDX license list to 3.22.
- PR#64 resolved #56 by adding
Expression::canonicalize
which fixes otherwise valid expressions into a form parsable withParseMode::STRICT
0.10.2 - 2023-07-14
- PR#61 updated the SPDX license list from
3.20
=>3.21
.
- PR#60 fixed a few typos.
0.10.1 - 2023-04-06
- PR#59 updated the SPDX license list from
3.19
=>3.20
.
0.10.0 - 2022-12-20
- PR#57 updated the SPDX license list from
3.18
=>3.19
.
0.9.0 - 2022-08-25
- PR#55 updated the SPDX license list from
3.14
=>3.18
.
0.8.1 - 2022-02-04
- PR#51 updates the crates.io metadata for the crate.
0.8.0 - 2021-12-21
- PR#50 changed
ParseMode
to be a struct with several fields to give finer grained control over which parts of expression parsing/evaluation can be relaxed. Thanks @Turbo87!
0.7.0 - 2021-11-23
- PR#48 resolved #45 by making the original error string owned in the case of a parse error, simplifying the handling of errors. Thanks @hoijui!
- PR#49 bumped the MSRV to 1.56.1, as well as moving to the 2021 edition and setting the
rust-version
there.
0.6.2 - 2021-10-21
- PR#44 fixed the
Display
for various GNU licenses, since they are "special" and diverge from the SPDX spec for reasons. Thanks @mmurto!
- PR#43 added the
text
feature flag, which includes the full license and exception texts. They can be retrieved viaLicenseId::text
andExceptionId::text
respectively. - PR#43 added the
Expression::minimized_requirements
method which allows a set of potential licensees be reduced down to the minimum possible requirements for an expression.
0.6.1 - 2021-10-04
0.6.0 - 2021-08-16
- PR#40 updated the SPDX license list from
3.11
=>3.14
.
- PR#40 resolved #39 by taking the
GFDL
exceptional differences from all other licenses (include the other GNU ones) into account.
0.5.0 - 2021-07-20
- PR#38 fixed various clippy lints which also bumps the MSRV to 1.53.0. Previously, PR#37 had bumped the MSRV to 1.52 so now this crate will check the MSRV so changes are intentional.
- PR#38 replaced the unmaintained
difference
crate withsimilar-asserts
.
0.4.1 - 2021-06-14
- PR#37 removed the dependencies on regex and lazy_static used for parsing some license expression parts, which gives a nice compile speed up with no behavior changes. Thanks @Swagadon!
0.4.0 - 2021-03-26
- Renamed
LicenseItem::SPDX
=>LicenseItem::Spdx
andToken::SPDX
=>Token::Spdx
.
0.3.6 - 2021-02-12
- Updated to version 3.11 of the SPDX license list
0.3.5 - 2021-02-12
- Update smallvec to fix an advisory
0.3.4 - 2020-03-04
- Added
Expression::iter()
which iterates over both the license requirements and the operators.
0.3.3 - 2020-02-29
- Updated to version 3.8 of the SPDX license list
0.3.2 - 2020-01-29
- PR#19 added the
#[non_exhaustive]
attribute to the newParseMode
enum, which bumped the minimum required Rust version to use this crate to 1.40. PR#21 removed this attribute as that enum is primarily an input for this crate, and had little benefit.
0.3.1 - 2020-01-28 (yanked)
- PR#19 Added
ParseMode
enum, which has aLax
variant that allows certain invalid license identifiers found in some crates on crates.io, as well as the invalid/
expression separator. Thanks @kornel!
0.3.0 - 2019-12-14
- Added
LicenseId::is_gnu
to indicate the GNU licenses (GPL, AGPL, LGPL, GFDL), which use a different suffix format than all other licenses std::error::Error
is now (properly) implemented forerror::ParseError
LicenseReq
not implementsFrom<LicenseId>
Lexer
andToken
can now be reached via thelexer
moduleparser
andexpression
are no longer part of the public APIIS_COPYLEFT
,IS_DEPRECATED
,IS_FSF_LIBRE
, andIS_OSI_APPROVED
are no longer part of the public API- The
GFDL*
licenses are now marked as copyleft
- When creating a
LicenseReq
from a GNU license, the license identifier is converted into its base form, eg.GPL-2.0-or-later
becomesGPL-2.0+
so that the GNU style license identifiers can be used just the same as all of the other ones. See this issue
0.2.4 - 2019-11-25
- Impl Display for Licensee
0.2.3 - 2019-11-07
- Updated the list of licenses to version 3.7 of the SPDX license list
0.2.2 - 2019-11-06
- Added
LicenseId::full_name
which is the full name for the license, eg "MIT License" for the "MIT" short identifier
0.2.1 - 2019-10-21
- #9 Added a flag for determining if a license is considered copyleft. Thanks @kain88-de!
0.2.0 - 2019-10-03
- Added a
Expression
which can parse and validate an SPDX license expression is both syntactically and semantically correct, as well as evaluate the expression via a user provided callback - Added an update exe for pulling new SPDX information, copied from https://github.com/rust-lang-nursery/license-exprs
- Added support for some of the metadata available from the SPDX format, namely "IsDeprecated", "IsFSFLibre", and "IsOSIApproved"
- Uhm...everything. I hope no one was using 0.1.0.
- Use a better lexer, mostly copied from ehuss/license-exprs#29
0.1.0 - 2019-09-02
- Initial add of spdx crate, based primarily on
license-exprs