gg-cli 0.41.0

GG - Gui for JJ
[package]
name = "gg-cli"
version = "0.41.0"
description = "GG - Gui for JJ"
authors = ["Thomas Castiglione"]
edition = "2024"
license = "Apache-2.0"
repository = "https://github.com/gulbanana/gg"
homepage = "https://github.com/gulbanana/gg"
keywords = ["jujutsu", "jj", "vcs", "scm", "gui"]
categories = ["development-tools"]
include = [
    "/dist/**/*",
    "/res/hallucination.png",
    "/res/icons/*",
    "/src/**/*",
    "/build.rs",
    "/Tauri.toml",
    "/index.html",
    "/LICENSE",
    "/README.md",
]

[package.metadata.release]
pre-release-hook = ["npm", "run", "build"]

[lib]
name = "gg_lib"
path = "src/lib.rs"

[[bin]]
name = "gg"
path = "src/main.rs"

# custom-protocol is magic - tauri build adds it, tauri dev removes. it's on by default so that cargo run works
[features]
default = ["custom-protocol"]
app = []
custom-protocol = ["tauri/custom-protocol"]
ts-rs = ["dep:ts-rs"]

[build-dependencies]
tauri-build = { version = "2.0.0", features = ["config-toml"] }

[dev-dependencies]
assert_matches = "1.5"
http-body-util = "0.1.3"
tempfile = "3.27"
tower = "0.5.2"
zip = "6.0"

[dependencies]
tauri = { version = "2.0.0", features = ["config-toml"] }
tauri-codegen = "2.0.0"
tauri-macros = "2.0.0"
tauri-plugin = "2.0.0"
tauri-runtime = "2.0.0"
tauri-runtime-wry = "2.0.0"
tauri-utils = "2.0.0"
tauri-plugin-dialog = "2.0.0"
tauri-plugin-http = "2.0.0"
tauri-plugin-shell = "2.0.0"
tauri-plugin-window-state = "2.0.0"
tauri-plugin-log = "2.0.0"

jj-lib = { version = "0.41.0", features = ["watchman"] }
jj-cli = "0.41.0"

# deps shared with JJ, which we try to keep on the same version
anyhow = "1.0.100"
clap = { version = "4.5.60", features = [
    "derive",
    "deprecated",
    "wrap_help",
    "string",
] }
config = { version = "0.13.4", default-features = false, features = ["toml"] }
etcetera = "0.11.0"
dunce = "1.0.5"
itertools = "0.14"
indexmap = "2.14"
gix = { version = "0.83.0", default-features = false, features = [
    "index",
    "max-performance-safe",
    "blob-diff",
] }
async-trait = "0.1.89"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.149"
tempfile = "3.27"
tokio = { version = "1.52.0", features = ["io-util"] }
toml_edit = { version = "0.25", features = ["serde"] }
thiserror = "2.0.18"

# deps used by JJ but with different features
chrono = { version = "0.4.44", features = ["serde"] }

# extra deps not used by JJ
log = "0.4"
futures-util = "0.3.31"
pollster = "0.4.0"
humantime = "2"
ts-rs = { version = "7.1.1", features = ["chrono-impl"], optional = true }
axum = "0.8.8"
webbrowser = { version = "1", features = ["hardened"] }
interprocess = "2"
uuid = { version = "1", features = ["v4"] }

# deps shared with tauri to work around wayland issues
[target."cfg(target_os = \"linux\")".dependencies]
gtk = "0.18"

[target."cfg(windows)".dependencies]
windows = { version = "0.61", features = [
    "Win32_Foundation",
    "Win32_System_Com",
    "Win32_System_Com_StructuredStorage",
    "Win32_System_Console",
    "Win32_System_Threading",
    "Win32_System_Variant",
    "Win32_UI_Shell",
    "Win32_UI_Shell_Common",
    "Win32_UI_Shell_PropertiesSystem",
] }

[target."cfg(target_os = \"macos\")".dependencies]
objc2 = "0.6"
objc2-foundation = { version = "0.3", default-features = false, features = [
    "NSData",
    "NSString",
    "NSURL",
] }
objc2-app-kit = { version = "0.3", default-features = false, features = [
    "NSApplication",
    "NSDocumentController",
    "NSImage",
] }

[profile.dev]
debug = 0