[workspace] resolver = "2" # Listing only the "root" crates of each app/library. All path dependencies are included in the workspace automatically. # If you want to add sub crate (like `app/gui/config` or `lib/rust/ensogl/examples`), just add it as a path dependency # where plausible. # Any GUI functionality that is not used by the main entry point should be defined somewhere with `examples` in the # path, e.g. `lib/rust/ensogl/examples`, or `app/gui/view/examples`; this is used to optimize the application for # loading the IDE. members = [ "app/gui2/rust-ffi", "build/cli", "build/macros/proc-macro", "build/ci-gen", "build/cli", "lib/rust/*", "lib/rust/parser/doc-parser", "lib/rust/parser/src/syntax/tree/visitor", "lib/rust/parser/jni", "lib/rust/parser/generate-java", "lib/rust/parser/schema", "lib/rust/parser/debug", "tools/language-server/logstat", "tools/language-server/wstest", ] # We are using a version with extended functionality. The changes have been PR'd upstream: # https://github.com/rustwasm/console_error_panic_hook/pull/24 # Remove this patch when the issue is resolved. [patch.crates-io] console_error_panic_hook = { git = 'https://github.com/enso-org/console_error_panic_hook' } [profile.dev] opt-level = 0 lto = false debug = 0 debug-assertions = true [profile.release] opt-level = 3 lto = "thin" codegen-units = 16 incremental = true debug = false debug-assertions = false [profile.bench] opt-level = 3 lto = true debug = false debug-assertions = false [profile.test] opt-level = 0 lto = false debug = 2 debug-assertions = true [profile.integration-test] inherits = "test" opt-level = 2 [profile.buildscript] inherits = "dev" opt-level = 1 lto = false debug = "line-tables-only" debug-assertions = true [workspace.lints.rust] missing_copy_implementations = "warn" missing_debug_implementations = "warn" non_ascii_idents = "deny" unsafe_code = "warn" trivial_numeric_casts = "warn" unused_import_braces = "warn" unused_qualifications = "warn" # This is fine, since we plan to use our traits only in our own code and # potential ABI breaking changes are not a concern. async_fn_in_trait = "allow" [workspace.lints.clippy] bool_to_int_with_if = "allow" let_and_return = "allow" blocks_in_conditions = "allow" # Until the issue is fixed: https://github.com/rust-lang/rust-clippy/issues/12281 [workspace.dependencies] # !!!!!!!!!!!!!!!!!!!!!!!!!!!!! # !!!!!!!!!! WARNING !!!!!!!!!! # !!!!!!!!!!!!!!!!!!!!!!!!!!!!! # We are tryingto maintain minimum set of dependencies. Before adding a new dependency, consult it # with the core development team. Thank you! clap = { version = "4.5.4", features = ["derive", "env", "wrap_help", "string"] } derive-where = "1.2.7" dirs = { version = "5.0.1" } octocrab = { git = "https://github.com/enso-org/octocrab", default-features = false, features = [ "rustls", ] } platforms = { version = "3.2.0", features = ["serde"] } portpicker = { version = "0.1.1" } regex = { version = "1.6.0" } serde = { version = "1.0.130", features = ["derive", "rc"] } serde_yaml = { version = "0.9.16" } sysinfo = { version = "0.30.7" } tokio = { version = "1.23.0", features = ["full", "tracing"] } tokio-stream = { version = "0.1.12", features = ["fs"] } tokio-util = { version = "0.7.4", features = ["full"] } wasm-bindgen = { version = "0.2.92", features = [] } wasm-bindgen-test = { version = "0.3.34" } anyhow = { version = "1.0.66" } failure = { version = "0.1.8" } derive_more = { version = "0.99" } boolinator = { version = "2.4.0" } derivative = { version = "2.2" } futures = { version = "0.3" } itertools = { version = "0.12.1" } lazy_static = { version = "1.4" } serde_json = { version = "1.0", features = ["raw_value"] } owned_ttf_parser = { version = "0.15.1" } convert_case = { version = "0.6.0" } rustybuzz = { version = "0.5.1" } bincode = { version = "2.0.0-rc.1" } byte-unit = { version = "5.1.4", features = ["serde"] } bytes = { version = "1.1.0" } matches = { version = "0.1" } console_error_panic_hook = { version = "0.1.6" } reqwest = { version = "0.11.27", default-features = false, features = [ "rustls-tls", "stream", ] } proc-macro2 = { version = "1.0.79" } syn = { version = "2.0", features = [ "full", "extra-traits", "printing", "parsing", "visit", "visit-mut", ] } syn_1 = { package = "syn", version = "1.0", features = [ "full", "extra-traits", "printing", "parsing", "visit", "visit-mut", ] } quote = { version = "1.0.23" } semver = { version = "1.0.0", features = ["serde"] } strum = { version = "0.26.2", features = ["derive"] }