#cargo-command #command-line #cargo #patch #command #dependencies

app dependencies-patch

A simple tool to patch cargo dependencies with command line commands

5 releases (3 breaking)

0.4.1 Oct 17, 2024
0.4.0 Oct 17, 2024
0.3.0 Jun 3, 2024
0.2.0 May 19, 2024
0.1.0 May 19, 2024

#157 in Cargo plugins

MIT license

27KB
475 lines

dependencies-patch

A simple tool to patch cargo dependencies with command line commands.

Todo List

  • Support for packages from github
  • Support for packages from other URL
  • Support for packages from crates-io
  • Support for packages from other registries

Installation

$ cargo install dependencies-patch

Usage

The Cargo.toml for example_project looks like this:

[package]
edition = "2021"
name = "project1"
version = "0.1.0"

[workspace]

[dependencies]
log = "0.4"

Then run following commands to patch the log dependency to a git repository:

$ dependencies-patch --help
$ dependencies-patch -c /path/to/example_project -n log -t git --git-repo rust-lang/log

After running the command, the Cargo.toml will be updated to:

[package]
edition = "2021"
name = "project1"
version = "0.1.0"

[workspace]

[dependencies]
log = "0.4"

[patch.crates-io.log]
git = "https://github.com/rust-lang//log.git"

We can also patch the package to the local path by running the following commands:

$ dependencies-patch -c . -n log -t path --patch-path ../log

And the Cargo.toml will be updated to:

[package]
name = "helloworld"
version = "0.1.0"
edition = "2021"

[dependencies]
log = "0.4"

[patch.crates-io.log]
path = "../log"

More usages can be known by running dependencies --help command.

Notes

The tool can only add patches to the Cargo.toml file. It don't support removing patches.

Dependencies

~2.2–3MB
~59K SLoC