Same problem again, but one level higher, in a workspace:
error: failed to select a version for `termcolor`.
... required by package `simplelog v0.12.1`
... which satisfies dependency `simplelog = "^0.12"` of package `libclient v0.1.0 (/home/john/projects/sl/SL-test-viewer/libclient)`
... which satisfies path dependency `libclient` (locked to 0.1.0) of package `sharpview v0.5.1 (/home/john/projects/sl/SL-test-viewer/sharpview)`
versions that meet the requirements `1.1.*` are: 1.1.3, 1.1.2, 1.1.1, 1.1.0
all possible versions conflict with previously selected packages.
previously selected package `termcolor v1.4.1 (https://github.com/BurntSushi/termcolor.git#71f0921f)`
... which satisfies dependency `termcolor = "^1.4.1"` of package `naga v0.19.0`
... which satisfies dependency `naga = "^0.19.0"` of package `rend3-routine v0.3.0 (https://github.com/BVE-Reborn/rend3.git?rev=c7c2d85#c7c2d859)`
... which satisfies git dependency `rend3-routine` of package `sharpview v0.5.1 (/home/john/projects/sl/SL-test-viewer/sharpview)`
failed to select a version for `termcolor` which could resolve this conflict
The problem now is that "libclient", my own package and part of this workspace, needs to have the "termcolor" version overridden.
Currrently, my patches at the workspace-level Cargo.toml file are:
[patch.crates-io]
rend3 = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
rend3-egui = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
rend3-framework = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
rend3-routine = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
egui = {git = "https://github.com/emilk/egui.git", branch="master"}
egui_plot = {git = "https://github.com/emilk/egui.git", branch="master"}
# Winit integration with egui (turn off the clipboard feature)
egui-winit = { git = "https://github.com/emilk/egui.git", branch="master" }
egui-wgpu = { git = "https://github.com/emilk/egui.git", branch="master" }
libui = { version = "^0.9.2", git = "https://github.com/John-Nagle/ui-mock.git", branch = "arc" }
termcolor = { git = 'https://github.com/BurntSushi/termcolor.git' }
[patch."https://github.com/John-Nagle/ui-mock.git"]
rend3 = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
rend3-egui = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
rend3-framework = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
rend3-routine = { version = "^0.3.0", git = 'https://github.com/BVE-Reborn/rend3.git', rev = "c7c2d85" }
wgpu = "=0.19.0"
[patch.'https://github.com/BVE-Reborn/rend3.git']
termcolor = { git = 'https://github.com/BurntSushi/termcolor.git' }
So Cargo is complaining, reasonably enough, that I haven't patched "libclient", which is a member project of the workspace. But how do I do that? Is there Cargo.toml syntax for that?
I tried putting the termcolor patch line into [workspace.dependencies], but that did nothing.