Skip to content

Latest commit

 

History

History
370 lines (228 loc) · 25.9 KB

CHANGELOG.md

File metadata and controls

370 lines (228 loc) · 25.9 KB

Changelog

4.0.1

  • Account for new rustup show active-toolchain format. Rustup 1.28 had two changes affecting Dylint. One was a change in rustup show active-toolchain's output format; the other was the fact that Rustup no longer automatically installs uninstalled toolchains. This release addresses the former, but not the latter, i.e., you may need to manually install toolchains until the next release. To manually install a toolchain, either cd to a directory containing a rust-toolchain file and type rustup toolchain install, or type rustup toolchain install TOOLCHAIN, where TOOLCHAIN is the toolchain you wish to install. (bda492f and 7e104fd)—thanks @ClSlaid for the fix

4.0.0

  • BREAKING CHANGE: Work with Cargo's new hashing algorithm, introduced with Rust 1.85.0. cargo-dylint 4 does not work with Cargo 1.84.x and earlier, and cargo-dylint 3.x does not work with Cargo 1.85.0. If you need to use Cargo 1.84.x or earlier, please continue to use cargo-dylint 3.x. If you have a long term need to use Cargo 1.84.x or earlier, please open an issue. (#1534)

3.5.1

  • Have cargo metadata and cargo fetch use the same cargo when building library packages. Using different cargos caused the two commands to refer to different subdirectories within the user's CARGO_HOME, leading to "Could not determine accessed subdirectory" errors. This bug primarily affected projects with rust-toolchain files. (#1519)

3.5.0

  • FEATURE: The PATH argument in cargo dylint upgrade PATH is now optional. When omitted, PATH defaults to the current directory. (#1508)—thanks @YanVictorSN

3.4.1

3.4.0

  • Add link to EuroRust 2024 video (#1447)
  • FEATURE: Add experimental --auto-correct option. Upgrading a lint's Rust toolchain often causes the lint to break because of changes to Rust APIs. When --auto-correct is enabled, cargo-dylint tries to infer lint fixes from Clippy's commit history. (949cf8f, 625d3d3, c1edcfb, 2753a88, and c515601)

3.3.0

  • Add EuroRust 2024 slides to README.md (#1370)
  • Upgrade cargo-util-schemas to version 0.7 (#1394 and #1429)
  • Upgrade cargo_metadata to version 0.19 (8a7bc95)
  • Bump dylint's MSRV to 1.78 (c4c27d1)
  • Upgrade thiserror to version 2 (7398557)
  • Remove mention of rustc_attr from Dylint library template, as the crate was recently renamed (#1446)

3.2.1

  • Enable drivers to be installed concurrently. Previously, an attempt to install a driver would fail if the existing driver was running. (4438f40 and 231974a)
  • Fix capitalization in help messages (5a44c22)

3.2.0

  • Upgrade compiletest_rs to version 0.11 in dylint_testing (145623a)
  • Add documentation on the example libraries' use of dylint_linting's constituent feature (9625952)
  • Add documentation on suppressing rustc's unexpected_cfg lint warnings (#1243 and #1252)
  • FEATURE: Allow patterns to be arrays when specifying workspace metadata entries (#1273)
  • Upgrade cargo to version 0.81 (#1280)
  • Add #![feature(rustc_private)] to dylint_driver's main.rs. This fixes a bug caused by rust-lang/rust#122362. (b691069)
  • Enable Dylint to use Cargo's checkouts directories concurrently. Previously, such concurrent use could cause Dylint to produce errors. (cb6299a)
  • FEATURE: In dylint_testing, ui_test and Test::src_base now accept an impl AsRef<Path> as opposed to a &Path (be85b10)

3.1.2

  • Extend rather than overwrite RUSTFLAGS when building drivers (7662d4c)

3.1.1

  • Update env_logger to version 0.11 in dylint_driver and dylint_testing (#1200)
  • Prepend the toolchain bin directory to PATH on Windows (i.e., account for rust-lang/rustup#3703) (c222181)

3.1.0

  • FEATURE: Allow library packages to be specified in a dylint.toml file instead of a Cargo.toml file. The syntax is exactly the same. Thus, users wishing to switch can simply cut-and-paste the [workspace.metadata.dylint.libraries] declaration from their Cargo.toml file into a dylint.toml file. (#1143 and #1151)

3.0.1

3.0.0

  • Rename option --path to --lib-path. For the time being, --path will continue to work as before when used to refer to a file as opposed to a directory. (e52da02)
  • FEATURE: Add options --git and --path to allow naming library packages on the command line (883e521)
  • BREAKING CHANGE: Make metadata no longer a default dylint package feature (#1052) (see also renaming of metadata below)
  • BREAKING CHANGE: No longer pass -D warnings to rustc by default in dylint_testing. To retain the previous behavior, enable the deny_warnings feature. (#1053)
  • BREAKING CHANGE: Rename the following package features (42cb7a2):
    • cargo-dylint package: metadata-cargo -> cargo-lib (download library packages using cargo as a library)
    • cargo-dylint package: metadata-cli -> cargo-cli (download library packages using the cargo executable)
    • dylint package: metadata -> library_packages (enable library-package-related functionality, e.g., building them)
  • BREAKING CHANGE: Remove the following deprecated options and their associated Dylint struct fields (7fd2c4d):
    • --allow-downgrade (now part of the upgrade subcommand)
    • --bisect (experimental and no longer deemed necessary)
    • --force (renamed to --allow-downgrade)
    • --isolate (now part of the new subcommand)
    • --list (replaced with the list subcommand)
    • --new (replaced with the new subcommand)
    • --rust-version (now part of the upgrade subcommand)
    • --upgrade (replaced with the upgrade subcommand)
  • Update cargo-dylint MSRV to 1.74 (965ebf5)
  • Eliminate reliance on sedregex (#1079)
  • Make cargo-cli the default method for building library packages (01aa9ba)

2.6.1

  • Fix two bugs (#1014 and #1021) related to how warnings are displayed (#1025)

2.6.0

2.5.0

  • Allow the list subcommand to accept --manifest-path options (#951)

2.4.4

2.4.3

  • #858 made curl-sys a non-optional dependency of the dylint package. This had unintended side effects, e.g., causing all of the example lints to transitively depend on curl-sys. #867 corrects the situation. (#867)
  • Ensure that consecutive uses of --lib produce the correct output, i.e., are not improperly cached (#866)—thanks @EFanZh for the bug report

2.4.2

2.4.1

  • Update dependencies, including cargo to version 0.73.1 (#847)

2.4.0

  • Update cargo-dylint and dylint MSRVs (d42a7a0)
  • Specify MSRV policy (#835)
  • Make cargo dylint update work when clippy_utils is a workspace dependency, as opposed to just when it is a package dependency (bugfix) (36d94ed)
  • Don't canonicalize paths passed to Cargo in dylint_linting (bugfix) (d6b0356)

2.3.0

2.2.0

  • Add constituent feature to facilitate building a lint by itself, or as part of a larger library (#790 and #812)
  • When building metadata entries, ignore subdirectories that do not contain packages rather than generate errors (#809)
  • Add --no-deps option (#808)—thanks @EFanZh for the suggestion
  • Rerun lints when workspace metadata changes (#813)—thanks @maxammann for the bug report

2.1.12

  • Update cargo to version 0.72.1 (#786)

2.1.11

2.1.10

2.1.9

2.1.8

  • Allow libraries to use thread local storage (3db9dda)
  • Treat unknown workspace metadata keys as errors (95b4bbc)
  • Fix a bug causing false "invalid pattern" errors on Windows (49e0353)
  • Don't treat unbuilt libraries as errors when listing libraries (75190fb)

2.1.7

  • Update dependencies, including openssl to version 0.10.48 (#652)

2.1.6

  • Enable backtraces for stable builds (#630)
  • Dylint now builds libraries only when they are needed to run. For example, cargo dylint --lib foo builds just library foo, whereas it used to build all available libraries. (#633)

2.1.5

  • Use home crate to determine CARGO_HOME (#604)
  • When dylint.toml cannot be parsed, show reason why (d6f9d5f)
  • Update tempfile to version 3.4.0 (#624)

2.1.4

2.1.3

  • Set rust-analyzer's rustc_private=true in dylint_linting package metadata (#543)

2.1.2

2.1.1

  • Fix a bug that would cause dylint_linting::init_config to fail when run on a build.rs file in the workspace root (#503)

2.1.0

  • Allow libraries to be configured via a dylint.toml file in a workspace's root directory (#484 and #496)—thanks @shepmaster for the suggestion

2.0.14

2.0.13

2.0.12

  • Strip current directory when listing libraries (7268b0a)
  • Switch to subcommands (4b240bc)
  • Clone with CLI by default (#434)
  • Upgrade library packages using toml_edit (#436)
  • Ensure dylint_driver_manifest_dir.rs is truncated in dylint/build.rs (524850b)

2.0.11

  • Fix bug related to package cache locking (#421)

2.0.10

  • Allow installation with --debug (6b6e34e)
  • Fix missing RUSTUP_TOOLCHAIN environment variable bug affecting Windows (f5cb5b7)
  • Update library package template (e59ac2f)
  • Sort not found libraries (79a7171)
  • Retry failing git clones (#395)
  • Update template (#396)

2.0.9

  • Make driver work with latest nightly (#381)
  • Fix bug in how driver ordered arguments passed to rustc (#385)

2.0.8

  • Clear RUSTC environment variable when building metadata entries and when running cargo check/fix (#379)

2.0.7

  • Report all not found libraries, not just the first one (#350)
  • No longer use dylint-template to create new libraries (#355)

2.0.6

  • If target triple cannot be determined from toolchain, default to host triple (ff4a069)
  • Relax restriction that library be in its own workspace (167ce9e)
  • Ensure library filename uses snake case (54f3fb6)

2.0.5

  • Fix a bug that was causing rustfix to not work with example tests (#341)

2.0.4

  • Respect linker setting in $CARGO_HOME/config.toml (#339)

2.0.3

2.0.2

  • Make --new work with new macros (#298)

2.0.1

  • Add macros declare_late_lint!, etc. to dylint_linting. The new macros make it easier to write libraries containing just one lint (the current common case). (#284)
  • Don't iterate over name_toolchain_map to list lints (1ad7da7)

2.0.0

  • Use correct crate names (b728be3)
  • Adjust message displayed when examples are rebuilt (e7ae412)
  • BREAKING CHANGE: Build name_toolchain_map on first use. For example, if all libraries are specified with --path, then there is no need to build the target's metadata entries. The name_toolchain_map is technically part of Dylint's public API. Hence, this is a breaking change. (#250)

1.0.14

  • Add test "builder" to dylint_testing (#222 and #237)
  • Determine clippy_utils versions using commit history rather than git tags (#236)
  • Ensure package cache is locked (#247)
  • Verify build succeeded before considering bisect successful (#246)
  • Eliminate redundant builds when using dylint_testing (#216)

1.0.13

  • Hide cargo-bisect-rustc's progress bars when --quiet is passed or when not on a tty (#214)

1.0.12

  • If an --upgrade would result in a downgrade, and --bisect is passed, the downgrade is skipped and the bisect proceeds instead of producing an error. (#183)
  • Be more explicit about what cargo is doing (#185)

1.0.11

  • Add experimental --bisect option (#170)

1.0.10

  • Add --fix option (#153)
  • Prevent --upgrade from downgrading toolchain (#164)
  • Expand circumstances under which drivers are rebuilt (#165)

1.0.9

  • Update clap dependency (#152)

1.0.8

  • Separate compilation artifacts by toolchain (28f3691)
  • Add --keep-going option (bbf0a3c)

1.0.7

  • Update clap dependency (#104)

1.0.6

  • Add --new and --upgrade options (#92)
  • Improve error messages (#103)

1.0.5

  • Improve build times when testing libraries (e5ce5b9) and when linting using workspace metadata (7204bce)

1.0.4

  • Better handling of target directories (#77)
  • Hide dylint_version() in docs (#78)—thanks @MinerSebas

1.0.3

  • Update clap dependency (#65)

1.0.2

  • Link Dylint drivers using absolute paths (fixes #54)
  • Windows support (thanks to @MinerSebas)

1.0.1

1.0.0

  • Add support for workspace metadata
  • BREAKING CHANGE: No longer search target/debug and target/release for libraries

0.1.3

  • Add ui_test_example and ui_test_examples (#20)

0.1.2

  • Use rust-toolchain to build drivers (c28639ee)

0.1.1

  • Fetch remote dylint_driver in dylint_testing by default (#15)

0.1.0

  • Initial release