[package]
edition = "2024"
rust-version = "1.96"
name = "codelore-lib"
version = "0.27.3"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CodeLore — Behavioral Code Analyzer library"
readme = "README.md"
keywords = [
"behavioral-analysis",
"code-analysis",
"repository-mining",
"technical-debt",
"code-maat",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "GPL-3.0-only"
repository = "https://github.com/emrecdr/codelore"
resolver = "2"
[features]
browser-tests = [
"spa",
"dep:headless_chrome",
]
default = []
spa = []
test-support = ["dep:tempfile"]
[lib]
name = "codelore_lib"
path = "src/lib.rs"
[[test]]
name = "arch_fusion_test"
path = "tests/arch_fusion_test.rs"
[[test]]
name = "arch_violations_test"
path = "tests/arch_violations_test.rs"
required-features = ["test-support"]
[[test]]
name = "architecture_gate_test"
path = "tests/architecture_gate_test.rs"
[[test]]
name = "architecture_roles_test"
path = "tests/architecture_roles_test.rs"
[[test]]
name = "architecture_trend_test"
path = "tests/architecture_trend_test.rs"
[[test]]
name = "authors_test"
path = "tests/authors_test.rs"
required-features = ["test-support"]
[[test]]
name = "bot_filter_hygiene_test"
path = "tests/bot_filter_hygiene_test.rs"
[[test]]
name = "bot_filter_pair_granularity_test"
path = "tests/bot_filter_pair_granularity_test.rs"
[[test]]
name = "bus_factor_test"
path = "tests/bus_factor_test.rs"
required-features = ["test-support"]
[[test]]
name = "cache_test"
path = "tests/cache_test.rs"
required-features = ["test-support"]
[[test]]
name = "calibration_test"
path = "tests/calibration_test.rs"
required-features = ["test-support"]
[[test]]
name = "canonical_lineage_test"
path = "tests/canonical_lineage_test.rs"
[[test]]
name = "centrality_test"
path = "tests/centrality_test.rs"
required-features = ["test-support"]
[[test]]
name = "change_context_test"
path = "tests/change_context_test.rs"
[[test]]
name = "change_set_test"
path = "tests/change_set_test.rs"
required-features = ["test-support"]
[[test]]
name = "changelog_release_section_test"
path = "tests/changelog_release_section_test.rs"
[[test]]
name = "churn_test"
path = "tests/churn_test.rs"
required-features = ["test-support"]
[[test]]
name = "clone_coupling_test"
path = "tests/clone_coupling_test.rs"
required-features = ["test-support"]
[[test]]
name = "clones_exclude_test"
path = "tests/clones_exclude_test.rs"
required-features = ["test-support"]
[[test]]
name = "clones_factsdb_test"
path = "tests/clones_factsdb_test.rs"
required-features = ["test-support"]
[[test]]
name = "code_age_test"
path = "tests/code_age_test.rs"
required-features = ["test-support"]
[[test]]
name = "code_familiarity_test"
path = "tests/code_familiarity_test.rs"
required-features = ["test-support"]
[[test]]
name = "code_health_test"
path = "tests/code_health_test.rs"
required-features = ["test-support"]
[[test]]
name = "code_maat_compat_test"
path = "tests/code_maat_compat_test.rs"
[[test]]
name = "code_maat_csv_compat_test"
path = "tests/code_maat_csv_compat_test.rs"
required-features = ["test-support"]
[[test]]
name = "code_maat_parity_test"
path = "tests/code_maat_parity_test.rs"
required-features = ["test-support"]
[[test]]
name = "comment_hygiene_test"
path = "tests/comment_hygiene_test.rs"
[[test]]
name = "commit_parents_test"
path = "tests/commit_parents_test.rs"
required-features = ["test-support"]
[[test]]
name = "communication_test"
path = "tests/communication_test.rs"
required-features = ["test-support"]
[[test]]
name = "communities_test"
path = "tests/communities_test.rs"
required-features = ["test-support"]
[[test]]
name = "complexity_test"
path = "tests/complexity_test.rs"
[[test]]
name = "coordination_needs_test"
path = "tests/coordination_needs_test.rs"
[[test]]
name = "coupling_test"
path = "tests/coupling_test.rs"
required-features = ["test-support"]
[[test]]
name = "crossing_test"
path = "tests/crossing_test.rs"
[[test]]
name = "cycle_health_test"
path = "tests/cycle_health_test.rs"
[[test]]
name = "cycle_origins_test"
path = "tests/cycle_origins_test.rs"
[[test]]
name = "dashboard_test"
path = "tests/dashboard_test.rs"
[[test]]
name = "defect_calibration_test"
path = "tests/defect_calibration_test.rs"
required-features = ["test-support"]
[[test]]
name = "delivery_friction_test"
path = "tests/delivery_friction_test.rs"
[[test]]
name = "delivery_metrics_test"
path = "tests/delivery_metrics_test.rs"
[[test]]
name = "delta_health_test"
path = "tests/delta_health_test.rs"
[[test]]
name = "dep_versions_drift_test"
path = "tests/dep_versions_drift_test.rs"
[[test]]
name = "dependency_cycles_test"
path = "tests/dependency_cycles_test.rs"
[[test]]
name = "differential_repo_test"
path = "tests/differential_repo_test.rs"
required-features = ["test-support"]
[[test]]
name = "doc_analysis_count_test"
path = "tests/doc_analysis_count_test.rs"
[[test]]
name = "documented_action_ref_test"
path = "tests/documented_action_ref_test.rs"
[[test]]
name = "effort_exposure_test"
path = "tests/effort_exposure_test.rs"
required-features = ["test-support"]
[[test]]
name = "enrichment_client_test"
path = "tests/enrichment_client_test.rs"
[[test]]
name = "enrichment_fact_sheet_test"
path = "tests/enrichment_fact_sheet_test.rs"
required-features = ["test-support"]
[[test]]
name = "enrichment_isolation_test"
path = "tests/enrichment_isolation_test.rs"
[[test]]
name = "entity_effort_test"
path = "tests/entity_effort_test.rs"
required-features = ["test-support"]
[[test]]
name = "entity_ownership_test"
path = "tests/entity_ownership_test.rs"
required-features = ["test-support"]
[[test]]
name = "external_store_test"
path = "tests/external_store_test.rs"
required-features = ["test-support"]
[[test]]
name = "facts_test"
path = "tests/facts_test.rs"
required-features = ["test-support"]
[[test]]
name = "finding_hotspot_overlap_test"
path = "tests/finding_hotspot_overlap_test.rs"
required-features = ["test-support"]
[[test]]
name = "function_coupling_test"
path = "tests/function_coupling_test.rs"
required-features = ["test-support"]
[[test]]
name = "function_hotspots_test"
path = "tests/function_hotspots_test.rs"
[[test]]
name = "function_xray_test"
path = "tests/function_xray_test.rs"
required-features = ["test-support"]
[[test]]
name = "git_cli_repo_test"
path = "tests/git_cli_repo_test.rs"
required-features = ["test-support"]
[[test]]
name = "gix_repo_test"
path = "tests/gix_repo_test.rs"
required-features = ["test-support"]
[[test]]
name = "god_classes_test"
path = "tests/god_classes_test.rs"
required-features = ["test-support"]
[[test]]
name = "groups_test"
path = "tests/groups_test.rs"
[[test]]
name = "health_scan_at_rev_test"
path = "tests/health_scan_at_rev_test.rs"
[[test]]
name = "health_trend_test"
path = "tests/health_trend_test.rs"
[[test]]
name = "hotspot_velocity_test"
path = "tests/hotspot_velocity_test.rs"
[[test]]
name = "hotspots_test"
path = "tests/hotspots_test.rs"
required-features = ["test-support"]
[[test]]
name = "imports_factsdb_test"
path = "tests/imports_factsdb_test.rs"
required-features = ["test-support"]
[[test]]
name = "ingest_test"
path = "tests/ingest_test.rs"
required-features = ["test-support"]
[[test]]
name = "kamei_test"
path = "tests/kamei_test.rs"
required-features = ["test-support"]
[[test]]
name = "knowledge_islands_test"
path = "tests/knowledge_islands_test.rs"
[[test]]
name = "knowledge_shares_test"
path = "tests/knowledge_shares_test.rs"
required-features = ["test-support"]
[[test]]
name = "lead_time_test"
path = "tests/lead_time_test.rs"
required-features = ["test-support"]
[[test]]
name = "ledger_stamp_test"
path = "tests/ledger_stamp_test.rs"
[[test]]
name = "mailmap_test"
path = "tests/mailmap_test.rs"
required-features = ["test-support"]
[[test]]
name = "main_dev_test"
path = "tests/main_dev_test.rs"
[[test]]
name = "marginal_owner_risk_test"
path = "tests/marginal_owner_risk_test.rs"
[[test]]
name = "messages_test"
path = "tests/messages_test.rs"
[[test]]
name = "mi_test"
path = "tests/mi_test.rs"
required-features = ["test-support"]
[[test]]
name = "new_code_test"
path = "tests/new_code_test.rs"
required-features = ["test-support"]
[[test]]
name = "output_csv_test"
path = "tests/output_csv_test.rs"
[[test]]
name = "output_json_test"
path = "tests/output_json_test.rs"
[[test]]
name = "output_markdown_test"
path = "tests/output_markdown_test.rs"
[[test]]
name = "output_parquet_test"
path = "tests/output_parquet_test.rs"
required-features = ["test-support"]
[[test]]
name = "output_sarif_test"
path = "tests/output_sarif_test.rs"
[[test]]
name = "output_sqlite_test"
path = "tests/output_sqlite_test.rs"
required-features = ["test-support"]
[[test]]
name = "ownership_hhi_window_spike_test"
path = "tests/ownership_hhi_window_spike_test.rs"
required-features = ["test-support"]
[[test]]
name = "ownership_test"
path = "tests/ownership_test.rs"
required-features = ["test-support"]
[[test]]
name = "pair_programming_test"
path = "tests/pair_programming_test.rs"
required-features = ["test-support"]
[[test]]
name = "provenance_test"
path = "tests/provenance_test.rs"
required-features = ["test-support"]
[[test]]
name = "refactoring_targets_test"
path = "tests/refactoring_targets_test.rs"
[[test]]
name = "release_cadence_test"
path = "tests/release_cadence_test.rs"
[[test]]
name = "release_publish_gate_test"
path = "tests/release_publish_gate_test.rs"
[[test]]
name = "repo_trait_test"
path = "tests/repo_trait_test.rs"
[[test]]
name = "revisions_test"
path = "tests/revisions_test.rs"
required-features = ["test-support"]
[[test]]
name = "rust_version_pins_test"
path = "tests/rust_version_pins_test.rs"
[[test]]
name = "same_second_rename_test"
path = "tests/same_second_rename_test.rs"
[[test]]
name = "sarif_parse_test"
path = "tests/sarif_parse_test.rs"
[[test]]
name = "soc_test"
path = "tests/soc_test.rs"
[[test]]
name = "spa_browser_test"
path = "tests/spa_browser_test.rs"
required-features = [
"browser-tests",
"test-support",
]
[[test]]
name = "spa_integration_test"
path = "tests/spa_integration_test.rs"
[[test]]
name = "stale_code_test"
path = "tests/stale_code_test.rs"
required-features = ["test-support"]
[[test]]
name = "structural_metrics_test"
path = "tests/structural_metrics_test.rs"
[[test]]
name = "summary_test"
path = "tests/summary_test.rs"
required-features = ["test-support"]
[[test]]
name = "tag_trigger_pattern_test"
path = "tests/tag_trigger_pattern_test.rs"
[[test]]
name = "team_composition_test"
path = "tests/team_composition_test.rs"
[[test]]
name = "team_map_test"
path = "tests/team_map_test.rs"
[[test]]
name = "test_support_fixture_test"
path = "tests/test_support_fixture_test.rs"
required-features = ["test-support"]
[[test]]
name = "time_bucket_test"
path = "tests/time_bucket_test.rs"
[[test]]
name = "top_committers_test"
path = "tests/top_committers_test.rs"
[[test]]
name = "types_test"
path = "tests/types_test.rs"
[[test]]
name = "window_anchor_clamp_test"
path = "tests/window_anchor_clamp_test.rs"
[[test]]
name = "workflow_action_pin_test"
path = "tests/workflow_action_pin_test.rs"
[[test]]
name = "workflow_expression_test"
path = "tests/workflow_expression_test.rs"
[[test]]
name = "workflow_signing_isolation_test"
path = "tests/workflow_signing_isolation_test.rs"
[[bench]]
name = "end_to_end"
path = "benches/end_to_end.rs"
harness = false
required-features = ["test-support"]
[dependencies.anstyle]
version = "1"
[dependencies.arrow]
version = "59.1"
[dependencies.codelore-rca]
version = "0.27.3"
[dependencies.crossbeam-channel]
version = "0.5"
[dependencies.dirs]
version = "6"
[dependencies.duckdb]
version = "=1.10505.0"
features = [
"bundled",
"appender-arrow",
]
[dependencies.fancy-regex]
version = "0.19"
[dependencies.gix]
version = "0.86"
features = [
"max-performance",
"blob-diff",
]
[dependencies.globset]
version = "0.4"
[dependencies.headless_chrome]
version = "1"
optional = true
[dependencies.hex]
version = "0.4"
[dependencies.ignore]
version = "0.4"
[dependencies.leiden-rs]
version = "0.8"
features = ["rayon"]
default-features = false
[dependencies.percent-encoding]
version = "2"
[dependencies.rayon]
version = "1"
[dependencies.regex]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
features = ["float_roundtrip"]
[dependencies.sha2]
version = "0.11"
[dependencies.tempfile]
version = "3"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.time]
version = "0.3"
features = [
"serde",
"macros",
]
[dependencies.toml]
version = "1"
features = [
"parse",
"serde",
"display",
"preserve_order",
]
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.tree-sitter]
version = "=0.25.3"
[dependencies.tree-sitter-java]
version = "=0.23.5"
[dependencies.tree-sitter-javascript]
version = "=0.23.1"
[dependencies.tree-sitter-python]
version = "=0.23.6"
[dependencies.tree-sitter-rust]
version = "=0.23.2"
[dependencies.tree-sitter-typescript]
version = "=0.23.1"
[dependencies.ureq]
version = "3"
features = ["json"]
[dependencies.walkdir]
version = "2"
[dev-dependencies.criterion]
version = "0.8"
[build-dependencies.hex]
version = "0.4"
[build-dependencies.sha2]
version = "0.11"
[build-dependencies.ureq]
version = "3"
[lints.clippy]
missing_errors_doc = "allow"
module_name_repetitions = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
unsafe_code = "forbid"