Skip to content

Latest commit

 

History

History
414 lines (258 loc) · 12.8 KB

CHANGELOG.md

File metadata and controls

414 lines (258 loc) · 12.8 KB

Changelog

0.17.7 - 2025-01-05

Added

Added support for custom sparse registries (sparse+https://...). Thanks to jonhoo for your first contribution!

0.17.6 - 2024-12-22

Added

Added support for the upcoming Cargo resolver version 3. Resolver version 3 enables MSRV-aware version resolution in Cargo.

The portion of dependency resolution that hakari works with (package and feature resolution) happens after dependency versions have been resolved and Cargo.lock is refreshed. This means that from hakari's perspective, resolver version 3 is the same as version 2.

Changed

  • Builtin targets updated to Rust 1.83.
  • MSRV updated to Rust 1.78.

0.17.5 - 2024-10-06

Fixed

cargo hakari init now sets edition = "2021" in the created workspace-hack's Cargo.toml. This silences a Cargo warning about a missing edition.

0.17.4 - 2024-09-11

Changed

  • Builtin targets updated to Rust 1.81.

0.17.3 - 2024-07-29

Fixed

  • Fixed a crash in some workspaces (#292).

Changed

  • Updated MSRV to Rust 1.75.
  • Builtin targets updated to Rust 1.80.

0.17.2 - 2024-02-04

Added

  • The default hakari.toml template for new projects now suggests Apple Silicon (aarch64-apple-darwin) as well.

Fixed

  • Consider dev-dependencies of proc-macro crates -- previously, we weren't doing so.

This may change some checked-in workspace-hacks, but it is a bugfix and not a breaking change. Testing against several real-world workspace-hacks, only one of them changed.

0.17.1 - 2023-10-03

Fixed

Add WorkspaceHackLineStyle to list of public exports.

0.17.0 - 2023-10-03

Added

New config option workspace-hack-line-style, with three possible values:

  • "full": my-workspace-hack = { version = "0.1", path = ... }. This is the default and a good way to get started.

  • "version-only": my-workspace-hack = { version = "0.1" }. Specifying versions this way is useful if you've published a stub crate to crates.io (see the publishing section). You can use this in combination with a patch directive in the root Cargo.toml:

    [patch.crates-io.my-workspace-hack]
    path = "workspace-hack"
  • "workspace-dotted": my-workspace-hack.workspace = true. To use this, define a workspace dependency in the root Cargo.toml:

    [workspace.dependencies]
    my-workspace-hack = { version = "0.1", path = "workspace-hack" }
    
    # or, along with a patch directive:
    my-workspace-hack = { version = "0.1" }

Changed

  • MSRV updated to Rust 1.70.

0.16.0 - 2023-07-29

Changed

  • guppy updated to 0.17.1.

0.15.0 - 2023-06-25

Changed

  • guppy updated to 0.17.0.

0.14.0 - 2023-06-19

Changed

  • guppy updated to 0.16.0.

0.13.2 - 2023-04-15

Fixed

Canonicalize paths correctly on Windows (#70).

Changed

MSRV updated to Rust 1.66.

0.13.1 - 2023-01-14

Fixed

The default template for hakari.toml now specifies dep-format-version = "4".

0.13.0 - 2023-01-14

Added

Introduced a new dep-format-version, version 4, with a change to always sort outputs alphabetically. This matches the order produced by cargo-sort (#65).

0.12.0 - 2023-01-08

Added

Introduced a new dep-format-version, version 3, with these changes:

  • Always elide build metadata from version strings (e.g. with the semver string 5.4.0+g7f361a3, don't show the bit after the + sign). Thanks Nikhil Benesch for your first contribution!
  • Remove private features from the workspace-hack's Cargo.toml. This should simplify the output greatly.

Changed

  • MSRV updated to Rust 1.62.
  • target-spec updated to Rust 1.66.

0.11.1 - 2022-12-04

Fixed

  • Fixed a panic in rare circumstances (#38).

0.11.0 - 2022-11-07

Changed

  • Updated guppy to 0.15.0.

0.10.2 - 2022-09-30

Changed

  • Repository location update.
  • MSRV updated to Rust 1.58.

Thanks to Carol Nichols for her contributions to this release!

0.10.1 - 2022-05-29

Changed

  • Dependency updates: in particular, guppy updated to 0.14.2.

0.10.0 - 2022-03-14

Added

Support for weak dependencies and namespaced features.

Changed

  • Public dependency version bump: guppy updated to 0.14.0.
  • MSRV updated to Rust 1.56.

0.9.0 - 2022-02-06

Added

  • doc_cfg-based feature labels to rustdoc.

Changed

  • Public dependency bump: guppy updated to 0.13.0.

Fixed

  • A small fix to Cargo build simulations (#596). This is not a breaking change to the hakari output because it is a bugfix.

0.8.1 - 2021-12-08

  • Reverted the changes in version 0.7.3 because of #524.

0.8.0 - 2021-12-06

Added

  • Support for explaining why a crate is in the workspace-hack, used by cargo hakari explain.

Changed

  • VerifyErrors now prints out information in the same format as explain---as a result, some of its APIs have changed.

0.7.3 - 2021-11-28

0.7.2 - 2021-11-27

Internal updates for cargo-hakari 0.9.8.

0.7.1 - 2021-11-25

Added

  • Support for publishing a dummy workspace-hack. This is an alternate publishing method that integrates better with existing workflows.
  • New config option dep-format-version, to control workspace-hack = ... lines in other Cargo.tomls.
    • Newly initialized workspaces have dep-format-version = "2".
    • Version 2 is required for the alternate publishing method.

0.7.0 - 2021-11-23

Fixed

  • Updated example in README.md now that the cargo-guppy repository has a workspace-hack.

Changed

  • Updated to guppy 0.12.0.

0.6.2 - 2021-10-09

Fixed

  • Backed out the algorithmic improvement from earlier because it didn't handle some edge cases.
  • Also simulate builds with dev-dependencies disabled.
  • Remove empty sections from the output.

0.6.1 - 2021-10-06

Added

  • Support for alternate registries through the [registries] section in the config.

Fixed

Optimized

0.6.0 - 2021-10-03

Added

  • A new UnifyTargetHost::Auto strategy, which uses the ReplicateTargetOnHost strategy if there are internal build dependencies or proc macros in the workspace, or the UnifyIfBoth strategy if not.

Changed

  • For UnifyTargetHost:
    • Auto is the new default strategy.
    • ReplicateTargetAsHost has been renamed to ReplicateTargetOnHost.
    • UnifyOnBoth has been renamed to UnifyIfBoth.

Fixed

  • Fixed some formatting issues with WorkspaceOps.

0.5.0 - 2021-10-01

Added

  • hakari now outputs packages corresponding to the intersection of all platforms, then outputs any other platform-specific packages left. This simplifies the output greatly and is also more correct.
  • A new option final_excludes to remove packages from the result at the end of computation.
    • This is in constract to traversal_excludes (renamed from omitted_packages) which removes packages both during and after computation.
  • A new cli-support feature contains several new structs used by cargo-hakari.
  • In HakariBuilderSummary, version = "v2" etc has been renamed to resolver = "2" to align with cargo.
    • The old options will continue to work.
  • In HakariBuilderSummary, traversal-excludes and final-excludes are now easier to describe while deserializing: they now take a workspace-members list of names, and a third-party list of specifiers such as { name = "serde", version = "1" }.
    • The resolver will now also fail if any specifiers are unmatched.

Changed

  • omitted_packages renamed to traversal_excludes.
  • Because of the changes to how excludes are represented, old-style HakariBuilderSummary instances may no longer parse correctly.
  • Public dependency bump: guppy updated to 0.11.1.
  • MSRV updated to Rust 1.53.

0.4.1 - 2021-09-13

Changed

  • Public dependency version bump: guppy updated to 0.10.1.
  • MSRV updated to Rust 1.51.

0.4.0 - 2021-09-13

(This release was never published because it was based on guppy 0.10.0, which was yanked.)

0.3.0 - 2021-03-11

Changed

  • Public dependency version bump: guppy updated to 0.9.0.
  • HakariCargoToml now uses camino's UTF-8 paths.
    • HakariCargoToml::new now accepts impl Into<Utf8PathBuf> rather than impl Into<PathBuf>.
    • HakariCargoToml::toml_path returns &Utf8Path instead of &Path.

0.2.0 - 2021-02-23

Changed

  • hakari now uses camino Utf8Path and Utf8PathBuf wrappers. These wrappers provide type-level assertions that returned paths are valid UTF-8.
  • Public dependency version bumps:
    • proptest updated to version 1 and the corresponding feature renamed to proptest1.

0.1.1 - 2021-02-04

Added

  • Experimental Windows support. There may still be bugs around path normalization: please report them.

Fixed

  • Fixed Cargo.toml output for path dependencies.
  • Return an error for non-Unicode paths instead of silently producing incorrect paths.

0.1.0 - 2021-02-03

Initial release.