content: [package]
  name = "weaver"
  version.workspace = true
  authors = ["OpenTelemetry"]
  edition = "2021"
  repository = "https://github.com/open-telemetry/weaver"
  description = "Manage semantic convention registry and telemetry schema workflows (OpenTelemetry Project)"
  keywords = ["opentelemetry", "semconv", "schema", "registry", "generator"]
  categories = ["command-line-utilities"]
  license = "Apache-2.0"
  readme = "README.md"
  publish = false
  resolver = "2"
  
  [package.metadata.dist]
  dist = true
  
  [package.metadata.wix]
  upgrade-guid = "C9F6BF20-4C32-4AF3-8550-79653C00886C"
  path-guid = "A83EC6F0-88E1-4676-BCE2-E4D84A032225"
  license = false
  eula = false
  
  # Workspace definition ========================================================
  [workspace]
  members = ["crates/*"]
  
  [workspace.package]
  version = "0.18.0"
  authors = ["OpenTelemetry"]
  edition = "2021"
  repository = "https://github.com/open-telemetry/weaver"
  license = "Apache-2.0"
  publish = false
  rust-version = "1.81.0"
  
  [workspace.dependencies]
  serde = { version = "1.0.228", features = ["derive", "rc"] }
  serde_yaml = "0.9.34"
  serde_json = { version = "1.0.145" }
  thiserror = "2.0.17"
  url = "2.5.4"
  ureq = "2.12.1"
  regex = "1.11.3"
  rayon = "1.11.0"
  ordered-float = { version = "5.1.0", features = ["serde", "schemars"] }
  walkdir = "2.5.0"
  anyhow = "1.0.100"
  itertools = "0.14.0"
  globset = { version = "0.4.16", features = ["serde1"] }
  miette = { version = "7.6.0", features = ["fancy", "serde"] }
  include_dir = "0.7.4"
  tempdir = "0.3.7"
  schemars = "0.8.22"
  dirs = "6.0.0"
  once_cell = "1.21.3"
  opentelemetry = { version = "0.31.0", features = ["trace", "metrics", "logs"] }
  rouille = "3.6.2"
  convert_case = "0.7.1"
  log = { version = "0.4.28", features = ["std"] }
  
  # Features definition =========================================================
  [features]
  experimental = []
  
  # Crate definitions ===========================================================
  [[bin]]
  bench = false
  path = "src/main.rs"
  name = "weaver"
  
  [dependencies]
  # local crates dependencies
  weaver_common = { path = "crates/weaver_common" }
  weaver_resolver = { path = "crates/weaver_resolver" }
  weaver_semconv = { path = "crates/weaver_semconv" }
  weaver_resolved_schema = { path = "crates/weaver_resolved_schema" }
  weaver_semconv_gen = { path = "crates/weaver_semconv_gen" }
  weaver_forge = { path = "crates/weaver_forge" }
  weaver_checker = { path = "crates/weaver_checker" }
  weaver_emit = { path = "crates/weaver_emit" }
  weaver_live_check = { path = "crates/weaver_live_check" }
  
  clap = { version = "4.5.41", features = ["derive"] }
  clap_complete = "4.5.55"
  rayon = "1.10.0"
  ratatui = { version = "0.29.0", features = ["serde"] }
  tui-textarea = "0.7.0"
  tokio = { version = "1.46.1", features = ["rt", "net", "signal"] }
  prost = "0.14.1"
  tonic = { version = "0.14.1", default-features = false, features = [
      "transport",
      "server",
      "codegen",
      "channel",
      "router",
  ] }
  tonic-prost = "0.14.1"
  env_logger = "0.11.8"
  chrono = "0.4.41"
  
  # workspace dependencies
  serde.workspace = true
  serde_yaml.workspace = true
  serde_json.workspace = true
  walkdir.workspace = true
  include_dir.workspace = true
  thiserror.workspace = true
  miette.workspace = true
  schemars.workspace = true
  itertools.workspace = true
  log.workspace = true
  
  [dev-dependencies]
  weaver_diff = { path = "crates/weaver_diff" }
  weaver_version = { path = "crates/weaver_version" }
  tempdir.workspace = true
  ureq.workspace = true
  assert_cmd = "2.0.17"
  portpicker = "0.1.1"
  tempfile = "3.20.0"
  
  [build-dependencies]
  tonic-prost-build = "0.14.1"
  
  [profile.release]
  lto = true
  strip = true
  panic = "abort"
  
  # The profile that 'cargo dist' will build with
  [profile.dist]
  inherits = "release"
  lto = "thin"
  
  [workspace.lints.rust]
  rust_2018_idioms = { level = "warn", priority = -1 }
  unused_lifetimes = "warn"
  # unreachable_pub = "warn"
  semicolon_in_expressions_from_macros = "warn"
  missing_docs = "deny"
  unstable_features = "deny"
  unused_import_braces = "deny"
  unused_qualifications = "deny"
  unused_results = "deny"
  unused_extern_crates = "deny"
  
  unsafe_op_in_unsafe_fn = "warn"
  unused_macro_rules = "warn"
  
  [lints]
  workspace = true
  
  [workspace.lints.clippy]
  all = { level = "deny", priority = -1 }
  cargo = { level = "deny", priority = -1 }
  unwrap_used = "deny"
  print_stdout = "deny"
  print_stderr = "deny"
  multiple_crate_versions = "allow"
  # this lint shows places where you could add the #must_use attribute.
  must-use-candidate = "warn"
  
  complexity = { level = "warn", priority = -1 }
  correctness = { level = "deny", priority = -1 }
  perf = { level = "deny", priority = -1 }
  restriction = { level = "allow", priority = -1 }
  style = { level = "warn", priority = -1 }
  suspicious = { level = "warn", priority = -1 }
  
  too_many_arguments = "allow"
  type_complexity = "allow"
  wrong_self_convention = "allow"
  rc_buffer = "warn"
  str_to_string = "warn"
  checked_conversions = "warn"
  create_dir = "warn"
  dbg_macro = "warn"
  debug_assert_with_mut_call = "warn"
  empty_enum = "warn"
  enum_glob_use = "warn"
  exit = "warn"
  expl_impl_clone_on_copy = "warn"
  explicit_deref_methods = "warn"
  explicit_into_iter_loop = "warn"
  fallible_impl_from = "warn"
  filter_map_next = "warn"
  flat_map_option = "warn"
  float_cmp_const = "warn"
  fn_params_excessive_bools = "warn"
  from_iter_instead_of_collect = "warn"
  imprecise_flops = "warn"
  inefficient_to_string = "warn"
  infinite_loop = "warn"
  invalid_upcast_comparisons = "warn"
  items_after_statements = "warn"
  large_digit_groups = "warn"
  large_stack_arrays = "warn"
  large_types_passed_by_value = "warn"
  linkedlist = "warn"
  lossy_float_literal = "warn"
  macro_use_imports = "warn"
  match_wildcard_for_single_variants = "warn"
  mem_forget = "warn"
  mutex_integer = "warn"
  needless_continue = "warn"
  needless_for_each = "warn"
  negative_feature_names = "warn"
  path_buf_push_overwrite = "warn"
  ptr_as_ptr = "warn"
  rc_mutex = "warn"
  redundant_feature_names = "warn"
  ref_option_ref = "warn"
  rest_pat_in_fully_bound_structs = "warn"
  same_functions_in_if_condition = "warn"
  # disabled due to false positives
  # self_named_module_files = "warn"
  semicolon_if_nothing_returned = "warn"
  single_match_else = "warn"
  string_add = "warn"
  string_add_assign = "warn"
  string_lit_as_bytes = "warn"
  trait_duplication_in_bounds = "warn"
  verbose_file_reads = "warn"
  wildcard_imports = "warn"
  zero_sized_map_values = "warn"
  string_to_string = "warn"
  
  
  #exhaustive_enums = "warn"
  #doc_markdown = "warn"
  #exhaustive_structs = "warn"
  #todo = "warn"
  #implicit_clone = "warn"
  #inconsistent_struct_constructor = "warn"
  