[workspace]
members = [
    "inflorescence",
    "inflorescence_iced_widget",
    "inflorescence_model",
    "inflorescence_view",
    "libflorescence",
    "iced_utils",
]
resolver = "2"

[workspace.package]
version = "0.1.0"
edition = "2024"
license = "BSD-3-Clause"
authors = ["Tomáš Zemanovič"]

[workspace.dependencies]
# Internal dependencies
inflorescence-iced-widget  = { path = "inflorescence_iced_widget" }
inflorescence-model = { path = "inflorescence_model" }
inflorescence-view = { path = "inflorescence_view" }
libflorescence = { path = "libflorescence" }
iced-utils = { path = "iced_utils" }

# External dependencies
[workspace.dependencies.assert_matches]
version = "1"
[workspace.dependencies.async-fd-lock]
version = "0.2"
[workspace.dependencies.async-stream]
version = "0.3"
[workspace.dependencies.anyhow]
version = "1"
[workspace.dependencies.canonical-path]
version = "2"
[workspace.dependencies.clap]
version = "4"
features = ["cargo"]
[workspace.dependencies.clru]
version = "0.6"
[workspace.dependencies.data-encoding]
version = "2"
default-features = false
[workspace.dependencies.derivative]
version = "2"
[workspace.dependencies.directories]
version = "6"
[workspace.dependencies.encoding_rs]
version = "0.8"
[workspace.dependencies.git2]
version = "0.20"
[workspace.dependencies.iced]
git = "https://github.com/iced-rs/iced"
# NOTE: When updating iced, check the diff of `iced/widget/src/scrollable.rs`
#       and apply relevant changes in `inflorescence_iced_widget/scrollable.rs` and `nav_scrollable.rs`
rev = "c2646f67a1e342c8367a85969c5ca917c14735c8"
# path = "../iced"
features = ["advanced", "highlighter", "image", "tokio"]
[workspace.dependencies.iced_core]
git = "https://github.com/iced-rs/iced"
rev = "c2646f67a1e342c8367a85969c5ca917c14735c8"
# path = "../iced/core"
[workspace.dependencies.iced_program]
git = "https://github.com/iced-rs/iced"
rev = "c2646f67a1e342c8367a85969c5ca917c14735c8"
# path = "../iced/program"
[workspace.dependencies.iced_runtime]
git = "https://github.com/iced-rs/iced"
rev = "c2646f67a1e342c8367a85969c5ca917c14735c8"
# path = "../iced/runtime"
[workspace.dependencies.iced_test]
git = "https://github.com/iced-rs/iced"
rev = "c2646f67a1e342c8367a85969c5ca917c14735c8"
# path = "../iced/test"
[workspace.dependencies.ignore]
version = "0.4"
[workspace.dependencies.image]
version = "0.25"
[workspace.dependencies.indexmap]
version = "2"
[workspace.dependencies.itertools]
version = "0.14"
[workspace.dependencies.jiff]
version = "0.2"
[workspace.dependencies.libpijul]
package = "inflorescence-libpijul"
version = "=1.0.0-beta.11"
features = [
    "tarball", # needed for pijul-remote
]
[workspace.dependencies.normpath]
version = "1"
[workspace.dependencies.notify-debouncer-full]
version = "0.5"
[workspace.dependencies.nucleo-matcher]
version = "0.3"
[workspace.dependencies.path-slash]
version = "0.2"
[workspace.dependencies.pijul-config]
package = "inflorescence-pijul-config"
version = "=1.0.0-beta.11"
[workspace.dependencies.pijul-identity]
package = "inflorescence-pijul-identity"
version = "=1.0.0-beta.11"
[workspace.dependencies.pijul-interaction]
package = "inflorescence-pijul-interaction"
version = "=1.0.0-beta.11"
[workspace.dependencies.pijul-remote]
package = "inflorescence-pijul-remote"
version = "=1.0.0-beta.11"
[workspace.dependencies.pijul-repository]
package = "inflorescence-pijul-repository"
version = "=1.0.0-beta.11"
[workspace.dependencies.rand]
version = "0.9" # has to match libpijul version
[workspace.dependencies.sanakirja]
version = "2.0.0-beta" # has to match libpijul version
default-features = false
features = ["crc32"]
[workspace.dependencies.serde]
version = "1"
[workspace.dependencies.serde_json]
version = "1"
[workspace.dependencies.smol_str]
version = "0.2" # has to match iced version
[workspace.dependencies.strum]
version = "0.27"
features = ["derive"]
[workspace.dependencies.tempfile]
version = "3"
[workspace.dependencies.termcolor]
version = "1"
[workspace.dependencies.terrors]
version = "0.3"
[workspace.dependencies.test-log]
version = "0.2"
default-features = false
features = ["trace"]
[workspace.dependencies.thiserror]
version = "2"
[workspace.dependencies.tokio]
version = "1"
features = ["fs", "sync"]
[workspace.dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
[workspace.dependencies.toml_edit]
version = "0.24"
features = ["serde"]
[workspace.dependencies.tracing]
version = "0.1"
[workspace.dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[workspace.dependencies.tree_magic_mini]
version = "3"
features = ["with-gpl-data"] # NOTE requires GPL license

[profile.dev]
opt-level = 1 # Async seems to have big performance hit without this
debug = "line-tables-only" # This makes builds faster
 
# [patch.crates-io]
# [patch.crates-io.inflorescence-libpijul]
# path = "../pijul/libpijul"
# [patch.crates-io.inflorescence-pijul-config]
# path = "../pijul/pijul-config"
# [patch.crates-io.inflorescence-pijul-identity]
# path = "../pijul/pijul-identity"
# [patch.crates-io.inflorescence-pijul-interaction]
# path = "../pijul/pijul-interaction"
# [patch.crates-io.inflorescence-pijul-remote]
# path = "../pijul/pijul-remote"
# [patch.crates-io.inflorescence-pijul-repository]
# path = "../pijul/pijul-repository"