fensu-cli 0.29.2__tar.gz → 0.30.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/Cargo.lock +5 -4
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/Cargo.toml +2 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/PKG-INFO +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/Cargo.toml +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/evaluation.rs +9 -15
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/execution.rs +2 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/project.rs +2 -2
- fensu_cli-0.30.0/crates/fensu-cli/src/check/main/render_check_results.rs +19 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/_helpers/check_partition/execution.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/parsing.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/main/report.rs +9 -2
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/models.rs +2 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/test_render.rs +1 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_mixed_targets.rs +55 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_types.rs +7 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/Cargo.toml +9 -2
- fensu_cli-0.30.0/crates/fensu-facts/README.md +11 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/models.rs +5 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/mod.rs +2 -0
- fensu_cli-0.30.0/crates/fensu-facts/src/lib.rs +22 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/breadth_first_from.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/breadth_first_nodes.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/breadth_first_with_parents.rs +3 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/children.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/kind_name.rs +1 -1
- fensu_cli-0.30.0/crates/fensu-facts/src/syntax/main/mod.rs +11 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/push_clause_orelse.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/span.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/start_of.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/strict_reference_parts.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/mod.rs +3 -3
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/types.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/Cargo.toml +11 -6
- fensu_cli-0.30.0/crates/fensu-native/README.md +26 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/main/mod.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/main/register_module.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/mod.rs +1 -1
- fensu_cli-0.30.0/crates/fensu-native/src/lib.rs +21 -0
- fensu_cli-0.30.0/crates/fensu-native/src/rules/main/mod.rs +8 -0
- fensu_cli-0.30.0/crates/fensu-native/src/rules/mod.rs +7 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules/helpers.rs +10 -12
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules/test_contracts.rs +3 -3
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules/test_types.rs +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/Cargo.toml +1 -1
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/pyproject.toml +1 -1
- fensu_cli-0.29.2/crates/fensu-cli/src/check/main/render_check_results.rs +0 -14
- fensu_cli-0.29.2/crates/fensu-facts/src/lib.rs +0 -12
- fensu_cli-0.29.2/crates/fensu-facts/src/syntax/main/mod.rs +0 -11
- fensu_cli-0.29.2/crates/fensu-native/src/lib.rs +0 -8
- fensu_cli-0.29.2/crates/fensu-native/src/rules/main/mod.rs +0 -8
- fensu_cli-0.29.2/crates/fensu-native/src/rules/mod.rs +0 -7
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/README.md +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/build.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/analyzer.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/_helpers/arguments.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/_helpers/loading.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/_helpers/options.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/_helpers/policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/_helpers/rendering.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/data/catalogue.json +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/main/resolve_native_options.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/main/rule_catalogue.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/main/rule_metadata.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/main/rule_output.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/main/validate_config_selectors.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/catalogue/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/cache.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/cleanup.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/exceptions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/options.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/preparation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/preparation_ownership.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/repository_custom_facts.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/rule_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/web.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/web_custom_facts.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/_helpers/web_policy.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/check_output_options.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/check_routing.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/clean_caches.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/discover_target_sources.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/execute_check.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/execute_structured_check.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/prepare_cleanup.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/python_version.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/repository_python_targets.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/main/required_thresholds.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/check/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/_helpers/check_partition/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/_helpers/map/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/_helpers/map/parsing.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_check.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_dupes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_help.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_init.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_map.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_rule.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_run_cli.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_skills.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/_target.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/execute_cli.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/command/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/discovery.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/exception_targets.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/exceptions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/loading.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/native_rules.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/roots.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/scopes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/selectors.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/validation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/configuration_directory.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/expand_path_pattern.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/is_rule_code.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/is_rule_selector.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/load_config_section.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/load_optional.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/load_repository_rule_config.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/load_repository_rule_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/load_target.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/load_targets.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/render_target_config.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/resolve_target_root.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/rust_exception_symbols.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/validate_document.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/main/validate_exception_targets.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/contracts/classes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/contracts/forced.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/contracts/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/inputs/arguments.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/inputs/changes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/inputs/config.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/inputs/globs.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/inputs/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/inputs/sources.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/matching/clustering.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/matching/fingerprints.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/matching/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/matching/pairs.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/matching/sequence.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/report/build.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/report/diff.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/report/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/report/rendering.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/units/collection.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/units/lines.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/units/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/units/python.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/units/rust.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/_helpers/units/web.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/main/run_dupes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/dupes/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/_helpers/authoring.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/_helpers/interpreter.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/_helpers/metadata_exchange.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/main/run_custom_check_host.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/main/run_repository_custom_rule_host.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/main/run_rust_custom_rule_host.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/main/run_skills_metadata_host.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/main/run_web_custom_rule_host.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/hosting/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/arguments.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/discovery.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/layout.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/packages.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/reporting.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/validation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/_helpers/writing.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/data/python.gitignore +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/main/run_init.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/init/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/lib.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/main.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/cache.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/decoding.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/execution.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/identity.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/index.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/project.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/render.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/tree.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/_helpers/tree_policy.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/main/map.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/mapping/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/_helpers/faults.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/_helpers/text.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/reporting/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/_helpers/files.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/main/acquire_operation_lock.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/main/open_repository.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/main/read_optional.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/main/relative_path.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/main/write_if_unchanged.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/repository_io/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/command/execution.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/command/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/content/discovery.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/content/fingerprint.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/content/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/content/option_rendering.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/content/rendering.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/content/rule_rendering.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/content/sections.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/context/build.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/context/exceptions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/context/identity.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/context/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/context/option_validation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/context/options.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/context/selection.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/installation/filesystem.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/installation/freshness.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/installation/install.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/installation/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/installation/plan.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/installation/publication.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/installation/transaction.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/data/skills_invariant.json +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/main/catalogue.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/main/core_freshness.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/main/execute.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/main/skills.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/skills/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/_helpers/addition.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/_helpers/arguments.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/_helpers/paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/main/run_target.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/target_command/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/test_analyzer.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/test_dupes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/test_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/test_rule_catalogue.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests/test_web_analysis.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/tests.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/check/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/check/test_dead_code.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/check/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/check.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_cleanup.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_exceptions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_repository_custom.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_rust.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_rust_exceptions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_validation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_web.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_web_boundaries.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_web_custom.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_web_layout.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_rule.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_rust_file_placement.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/web_policy_fixtures.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/dupes/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/dupes/test_config.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/dupes/test_contracts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/dupes/test_detection.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/dupes/test_reporting.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/dupes/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/dupes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/init/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/init/test_commands.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/init/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/init.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/mapping/commands.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/mapping/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/mapping/test_commands.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/mapping/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/mapping.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/skills/commands.inc +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/skills/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/skills/test_commands.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/skills/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/skills.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/_helpers/graph.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/main/analyze.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/main/evaluate_graph.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/main/extract.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/dead_code/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/annotations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/contracts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/declarations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/functions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/harness.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/hygiene.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/mapping.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/references.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/rule_authoring.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/conversion/state.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/facades/facades.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/gateway/bindings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/gateway/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/gateway/model_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/gateway/repository_bindings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/gateway/rule_authoring_bindings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/_helpers/queries/owner_symbols.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/main/register_module.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/extension/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/annotations/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/annotations/visitor.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/contracts/category.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/contracts/display.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/contracts/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/contracts/returns.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/contracts/rows.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/control/conditionals.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/control/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/declarations/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/declarations/rows.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/harness/calls.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/harness/dimensions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/harness/functions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/harness/imports.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/harness/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/hygiene/checks.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/hygiene/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/metrics/functions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/metrics/lookups.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/metrics/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/metrics/mutations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/naming/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/naming/names.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/project/calls.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/project/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/references/events.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/references/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/references/test_shape.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/rule_authoring/literals.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/rule_authoring/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/rule_authoring/mutations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/rule_authoring/ownership.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/rule_authoring/references.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/state/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/state/resolution.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/state/scopes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/wording/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/_helpers/wording/text.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/enumerate_nodes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_annotations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_class_declarations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_comments.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_control_flow.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_dataclasses.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_evaluate_rule_calls.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_function_contracts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_functions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_hygiene.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_module_declarations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_outer_state_mutations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_parameter_mutation_occurrences.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_parameter_mutations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_project_facts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_references.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_rule_calls.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_rule_references.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_test_functions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/extract_test_module.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/facts/types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/_helpers/classes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/_helpers/expressions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/_helpers/extraction.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/_helpers/functions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/_helpers/imports.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/main/extract_mapping_declarations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/main/extract_mapping_facts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/main/extract_runtime_imports.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/mapping/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/parsing/_helpers/failures.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/parsing/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/parsing/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/parsing/main/parse_expression_strict.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/parsing/main/parse_strict.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/parsing/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/parsing/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/positions/_helpers/line_index.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/positions/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/positions/main/index_lines.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/positions/main/locate_offset.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/positions/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/positions/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/positions/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/_helpers/matching.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/_helpers/observation_index.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/_helpers/repository_observation_index.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/_helpers/repository_paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/main/build_repository_observation_index.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/main/hash_files.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/main/walk_python_files.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/snapshot/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/breadth.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/children.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/expression_children.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/nodes.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/references.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/spans.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/_helpers/statement_children.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/dead_code/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/dead_code/test_reachability.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/dead_code/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/dead_code.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/facts/test_enumerate.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/facts/test_mapping.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/facts/test_rule_authoring.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/facts/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/facts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/parsing/test_strict.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/parsing/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/parsing.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/positions/test_locate.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/positions/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/positions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/snapshot/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/snapshot/test_hashing.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/snapshot/test_observations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/snapshot/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/snapshot/test_walk.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/tests/snapshot.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/bindings/bindings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/bindings/generation_bindings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/bindings/python_rows.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/generation/generation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/generation/replay.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/persistence/database.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/persistence/storage.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/publication/publication.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/publication/publication_merge.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/records/records.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/records/schema.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/_helpers/records/schema_values.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/main/_dependency_kinds.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/main/_replay_generation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/main/register_cache.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/tests/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/tests/test_records.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/tests/test_replay.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/tests/test_storage.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/tests/test_subject_schema.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/tests/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/tests.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/cache/types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/_helpers/evaluation/execution_planning.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/_helpers/evaluation/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/_helpers/evaluation/python_rows.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/_helpers/evaluation/reachability_bindings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/_helpers/evaluation/rule_bindings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/annotations/annotations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/dagster/assets.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/dagster/autoload.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/dagster/boundaries.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/dagster/dagster.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/dagster/definitions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/dagster/source.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/dead_code/dead_code.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/execution_planning/execution_planning.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/hygiene/hygiene.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/layers/layers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/layers/local.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/layers/project.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/naming/naming.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/naming_globs/naming_globs.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/policy/generated_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/project_queries/project_queries.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/roles/declarations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/roles/paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/roles/project_layout.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/roles/project_layout_paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/roles/project_layout_queries.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/roles/roles.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/roles/surfaces.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/shape/shape.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/tests/function_conventions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/tests/layout.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/tests/names.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/_helpers/tests/tests.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/main/evaluate_core_rules.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/main/evaluate_dead_code.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/main/generated_policy_owners.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/main/parse_dead_code.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/main/plan_core_rule_queries.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/main/plan_execution_owners.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/rules/types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules/fixtures/README.md +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules/fixtures/core_rules.jsonl +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules/fixtures/generated_rules.jsonl +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules/fixtures/project_rules.jsonl +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/tests/rules.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/README.md +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lib.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/_helpers/cache.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/_helpers/canonical.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/_helpers/hosting.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/_helpers/paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/_helpers/skills.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/_helpers/suppressions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/errors.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/apply_suppressions.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/evaluate_batch.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/invalidate_cache.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/read_cache.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/render_owned_skill.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/report_summary.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/run_custom_host.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/serialize_findings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/skill_freshness.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/sorted_findings.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/main/write_cache.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/lifecycle/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/_helpers/grammar.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/_helpers/resolution.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/errors.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/_code_matches_selector.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/resolve_catalogue_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/resolve_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/rule_code_is_exact.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/rule_selector_is_valid.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/validate_selector_group.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/main/validate_unique_implementations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/src/policy/types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/lifecycle/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/lifecycle/test_consumer_fixture.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/lifecycle/test_lifecycle_contracts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/lifecycle/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/lifecycle.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/policy/test_implementation_identity.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/policy/test_policy_resolution.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/policy/test_selector_grammar.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/policy/test_selector_validation.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/policy/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-policy/tests/policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/Cargo.toml +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/configuration/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/configuration/_helpers/option_values.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/configuration/_helpers/repository_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/configuration/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/configuration/main/rule_options.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/configuration/main/validate_repository_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/configuration/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/engine/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/engine/_helpers/repository_analysis.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/engine/main/analyze_repository.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/engine/main/analyze_repository_with_ownership_roots.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/engine/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/engine/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/facts/_helpers/collection.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/facts/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/facts/main/collect_workspace_facts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/facts/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/facts/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/facts/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/lib.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/binding_clarity.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/comments.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/discarded_errors.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/hygiene.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/naming.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/shape.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/shape_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/functions/shape_project.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/imports/embedded_files.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/imports/layers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/imports/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/imports/reference_paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/imports/visibility.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/repository/configured_paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/repository/crate_contents.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/repository/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/repository/package_entries.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/repository/placement_observations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/repository/project_checks.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/containers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/domains.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/ownership.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/placement.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/proc_macro_entries.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/role_files.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/surfaces.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/roles/tooling.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/sources/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/sources/scanning.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/test_conventions/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/test_conventions/test_case_arrays.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/test_conventions/test_mirroring.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/test_conventions/tests_layout.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/_helpers/test_conventions/tests_shape.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/main/check_repository_with_config.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/main/check_scanned_workspace.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/main/file_placement_observations.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/main/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/main/relative_display.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/main/scan_workspace.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/main/use_paths.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/rules/mod.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/src/types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/engine/test_engine.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/engine/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/engine.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/helpers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_comments.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_configuration.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_containers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_domains.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_file_placement.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_hygiene.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_layers.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_naming.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_ownership.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_proc_macro_roots.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_role_files.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_roles.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_shape.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_shape_policy.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_tests_layout.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_tests_shape.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_tooling_roles.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_tuple_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules/test_visibility.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-rust/tests/rules.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/Cargo.toml +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/src/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/src/lib.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/src/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/src/parser.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/tests/parser/test_contracts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/tests/parser/test_diagnostics.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/tests/parser/test_semantics.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/tests/parser/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-svelte/tests/parser.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/Cargo.toml +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/src/constants.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/src/lib.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/src/models.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/src/parser.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/tests/parser/test_contracts.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/tests/parser/test_diagnostics.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/tests/parser/test_semantics.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/tests/parser/test_types.rs +0 -0
- {fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-typescript/tests/parser.rs +0 -0
|
@@ -388,7 +388,7 @@ checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
|
|
|
388
388
|
|
|
389
389
|
[[package]]
|
|
390
390
|
name = "fensu-cli"
|
|
391
|
-
version = "0.
|
|
391
|
+
version = "0.30.0"
|
|
392
392
|
dependencies = [
|
|
393
393
|
"cap-fs-ext",
|
|
394
394
|
"cap-std",
|
|
@@ -424,9 +424,10 @@ dependencies = [
|
|
|
424
424
|
|
|
425
425
|
[[package]]
|
|
426
426
|
name = "fensu-facts"
|
|
427
|
-
version = "0.
|
|
427
|
+
version = "0.30.0"
|
|
428
428
|
dependencies = [
|
|
429
429
|
"dunce",
|
|
430
|
+
"get-size2",
|
|
430
431
|
"globset",
|
|
431
432
|
"hex",
|
|
432
433
|
"pyo3",
|
|
@@ -440,7 +441,7 @@ dependencies = [
|
|
|
440
441
|
|
|
441
442
|
[[package]]
|
|
442
443
|
name = "fensu-native"
|
|
443
|
-
version = "0.
|
|
444
|
+
version = "0.30.0"
|
|
444
445
|
dependencies = [
|
|
445
446
|
"fensu-facts",
|
|
446
447
|
"flate2",
|
|
@@ -458,7 +459,7 @@ dependencies = [
|
|
|
458
459
|
|
|
459
460
|
[[package]]
|
|
460
461
|
name = "fensu-policy"
|
|
461
|
-
version = "0.
|
|
462
|
+
version = "0.30.0"
|
|
462
463
|
dependencies = [
|
|
463
464
|
"command-group",
|
|
464
465
|
"globset",
|
|
@@ -16,6 +16,7 @@ command-group = "=5.0.1"
|
|
|
16
16
|
dunce = "1.0"
|
|
17
17
|
encoding_rs = "0.8"
|
|
18
18
|
flate2 = { version = "1", default-features = false, features = ["zlib"] }
|
|
19
|
+
get-size2 = { version = "=0.10.1", default-features = false }
|
|
19
20
|
globset = "=0.4.19"
|
|
20
21
|
hex = "0.4"
|
|
21
22
|
ignore = "0.4"
|
|
@@ -35,7 +36,7 @@ rusqlite = { version = "0.38", features = ["bundled"] }
|
|
|
35
36
|
serde_json = { version = "1", features = ["preserve_order"] }
|
|
36
37
|
serde = { version = "1", features = ["derive"] }
|
|
37
38
|
sha2 = "0.10"
|
|
38
|
-
fensu-facts = { path = "crates/fensu-facts", default-features = false }
|
|
39
|
+
fensu-facts = { path = "crates/fensu-facts", version = "0.30.0", default-features = false } # x-release-please-version
|
|
39
40
|
fensu-native = { path = "crates/fensu-native", default-features = false }
|
|
40
41
|
fensu-policy = { path = "crates/fensu-policy" }
|
|
41
42
|
fensu-rust = { path = "crates/fensu-rust" }
|
|
@@ -2,10 +2,10 @@ use std::collections::{HashMap, HashSet};
|
|
|
2
2
|
use std::path::Path;
|
|
3
3
|
|
|
4
4
|
use fensu_facts::extension::models::ProgramHandle;
|
|
5
|
-
use fensu_native::
|
|
6
|
-
use fensu_native::
|
|
7
|
-
use fensu_native::
|
|
8
|
-
use fensu_native::
|
|
5
|
+
use fensu_native::evaluate_core_rules;
|
|
6
|
+
use fensu_native::plan_core_rule_queries;
|
|
7
|
+
use fensu_native::plan_execution_owners;
|
|
8
|
+
use fensu_native::{NativeExecutionRule, NativeExecutionTarget, NativeRuleContext};
|
|
9
9
|
use fensu_policy::lifecycle::models::FindingSeverity;
|
|
10
10
|
use rayon::iter::{IndexedParallelIterator, IntoParallelRefIterator, ParallelIterator};
|
|
11
11
|
|
|
@@ -169,11 +169,7 @@ pub(crate) fn evaluate(request: EvaluationRequest<'_>) -> Result<TargetEvaluatio
|
|
|
169
169
|
.iter()
|
|
170
170
|
.map(|code| (*code).to_owned())
|
|
171
171
|
.collect::<Vec<_>>();
|
|
172
|
-
for row in fensu_native::
|
|
173
|
-
&codes,
|
|
174
|
-
&dead_code_context,
|
|
175
|
-
&project,
|
|
176
|
-
) {
|
|
172
|
+
for row in fensu_native::evaluate_dead_code(&codes, &dead_code_context, &project) {
|
|
177
173
|
let metadata = rule_metadata(&row.code)?
|
|
178
174
|
.ok_or_else(|| format!("Unknown native rule code: {}", row.code))?;
|
|
179
175
|
faults.push(Fault {
|
|
@@ -239,10 +235,7 @@ pub(crate) fn evaluate(request: EvaluationRequest<'_>) -> Result<TargetEvaluatio
|
|
|
239
235
|
})
|
|
240
236
|
}
|
|
241
237
|
|
|
242
|
-
fn dead_code_context(
|
|
243
|
-
config: &Config,
|
|
244
|
-
project_root: &Path,
|
|
245
|
-
) -> fensu_native::rules::models::NativeDeadCodeContext {
|
|
238
|
+
fn dead_code_context(config: &Config, project_root: &Path) -> fensu_native::NativeDeadCodeContext {
|
|
246
239
|
const PYPROJECT_SOURCE: &str = "pyproject";
|
|
247
240
|
if !config.dead_code.enabled {
|
|
248
241
|
return Default::default();
|
|
@@ -256,7 +249,7 @@ fn dead_code_context(
|
|
|
256
249
|
} else {
|
|
257
250
|
"fensu.toml"
|
|
258
251
|
};
|
|
259
|
-
fensu_native::
|
|
252
|
+
fensu_native::NativeDeadCodeContext {
|
|
260
253
|
enabled: config.dead_code.enabled,
|
|
261
254
|
roots: config
|
|
262
255
|
.dead_code
|
|
@@ -946,7 +939,7 @@ pub(crate) fn render_results(
|
|
|
946
939
|
mut results: Vec<CheckResult>,
|
|
947
940
|
root: &Path,
|
|
948
941
|
color: bool,
|
|
949
|
-
show_warnings: bool,
|
|
942
|
+
(show_warnings, incomplete): (bool, bool),
|
|
950
943
|
) -> (String, i32) {
|
|
951
944
|
let selected = results.iter().map(|result| result.selected).sum::<usize>();
|
|
952
945
|
let excluded = results.iter().map(|result| result.excluded).sum::<usize>();
|
|
@@ -1009,6 +1002,7 @@ pub(crate) fn render_results(
|
|
|
1009
1002
|
evaluation_summary: summary.as_deref(),
|
|
1010
1003
|
applied_exceptions,
|
|
1011
1004
|
threshold_uses: &threshold_uses,
|
|
1005
|
+
incomplete,
|
|
1012
1006
|
});
|
|
1013
1007
|
(output, i32::from(!faults.is_empty()))
|
|
1014
1008
|
}
|
|
@@ -44,7 +44,8 @@ pub(crate) fn render_check(
|
|
|
44
44
|
let cacheable = results
|
|
45
45
|
.iter()
|
|
46
46
|
.all(|result| result.cacheable.unwrap_or(true));
|
|
47
|
-
let (output, exit_code) =
|
|
47
|
+
let (output, exit_code) =
|
|
48
|
+
render_results(results, &plan.root, plan.color, (options.warn, false));
|
|
48
49
|
let mut stderr = String::new();
|
|
49
50
|
stderr.push_str(&freshness(&plan));
|
|
50
51
|
if options.cache_stats {
|
|
@@ -5,7 +5,7 @@ use std::fs;
|
|
|
5
5
|
use std::path::{Component, Path, PathBuf};
|
|
6
6
|
|
|
7
7
|
use fensu_facts::extension::models::ProgramHandle;
|
|
8
|
-
use fensu_native::
|
|
8
|
+
use fensu_native::{NativeProjectModule, NativeProjectPlane};
|
|
9
9
|
use globset::GlobBuilder;
|
|
10
10
|
use serde_json::Value;
|
|
11
11
|
use walkdir::DirEntry;
|
|
@@ -215,7 +215,7 @@ fn collect_entrypoint_values<'a>(value: &'a toml::Value, mut values: Vec<&'a str
|
|
|
215
215
|
|
|
216
216
|
pub(crate) fn observe(
|
|
217
217
|
root: &Path,
|
|
218
|
-
plans: &[fensu_native::
|
|
218
|
+
plans: &[fensu_native::NativeProjectQuery],
|
|
219
219
|
programs: &HashMap<&str, &ProgramHandle>,
|
|
220
220
|
modules: &HashMap<String, &ProgramHandle>,
|
|
221
221
|
) -> Result<HashMap<String, Vec<String>>, String> {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//! Render one aggregate set of analyzer check results, marked incomplete when a target could not run.
|
|
2
|
+
|
|
3
|
+
use std::path::Path;
|
|
4
|
+
|
|
5
|
+
use crate::check::models::CheckResult;
|
|
6
|
+
|
|
7
|
+
pub(crate) fn render_check_results(
|
|
8
|
+
results: Vec<CheckResult>,
|
|
9
|
+
root: &Path,
|
|
10
|
+
color: bool,
|
|
11
|
+
(show_warnings, incomplete): (bool, bool),
|
|
12
|
+
) -> (String, i32) {
|
|
13
|
+
crate::check::_helpers::evaluation::render_results(
|
|
14
|
+
results,
|
|
15
|
+
root,
|
|
16
|
+
color,
|
|
17
|
+
(show_warnings, incomplete),
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -218,7 +218,7 @@ fn structured_check(request: StructuredCheckRequest<'_>) -> CliOutput {
|
|
|
218
218
|
let (stdout, report_exit_code) = if command_error && results.is_empty() {
|
|
219
219
|
(String::new(), 0)
|
|
220
220
|
} else {
|
|
221
|
-
render_check_results(results, &root, color, show_warnings)
|
|
221
|
+
render_check_results(results, &root, color, (show_warnings, command_error))
|
|
222
222
|
};
|
|
223
223
|
let mut stderr = String::new();
|
|
224
224
|
if show_cache_stats {
|
{fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/src/configuration/_helpers/parsing.rs
RENAMED
|
@@ -148,7 +148,7 @@ pub(crate) fn parse_dead_code(
|
|
|
148
148
|
value: Option<&toml::Value>,
|
|
149
149
|
) -> Result<crate::models::DeadCodeConfig, String> {
|
|
150
150
|
let value = serde_json::to_value(value).map_err(|error| error.to_string())?;
|
|
151
|
-
let (enabled, roots) = fensu_native::
|
|
151
|
+
let (enabled, roots) = fensu_native::parse_dead_code(&value)?;
|
|
152
152
|
Ok(crate::models::DeadCodeConfig {
|
|
153
153
|
enabled,
|
|
154
154
|
roots: roots
|
|
@@ -14,7 +14,14 @@ pub(crate) fn report(request: ReportRequest<'_>) -> String {
|
|
|
14
14
|
} else {
|
|
15
15
|
"faults"
|
|
16
16
|
};
|
|
17
|
-
let mut summary =
|
|
17
|
+
let mut summary = if request.incomplete {
|
|
18
|
+
format!(
|
|
19
|
+
"Check incomplete: found {} {noun} in the targets that ran",
|
|
20
|
+
request.faults.len()
|
|
21
|
+
)
|
|
22
|
+
} else {
|
|
23
|
+
format!("Found {} {noun}", request.faults.len())
|
|
24
|
+
};
|
|
18
25
|
if request.show_warnings {
|
|
19
26
|
let noun = if request.warnings.len() == 1 {
|
|
20
27
|
"warning"
|
|
@@ -24,7 +31,7 @@ pub(crate) fn report(request: ReportRequest<'_>) -> String {
|
|
|
24
31
|
summary.push_str(&format!(" and {} {noun}", request.warnings.len()));
|
|
25
32
|
}
|
|
26
33
|
if request.color {
|
|
27
|
-
let style = if request.faults.is_empty() {
|
|
34
|
+
let style = if request.faults.is_empty() && !request.incomplete {
|
|
28
35
|
GREEN
|
|
29
36
|
} else {
|
|
30
37
|
ORANGE
|
|
@@ -14,4 +14,6 @@ pub(crate) struct ReportRequest<'a> {
|
|
|
14
14
|
pub(crate) evaluation_summary: Option<&'a str>,
|
|
15
15
|
pub(crate) applied_exceptions: usize,
|
|
16
16
|
pub(crate) threshold_uses: &'a [ThresholdUse],
|
|
17
|
+
/// Whether a target could not run, so the faults cover only the targets that did.
|
|
18
|
+
pub(crate) incomplete: bool,
|
|
17
19
|
}
|
{fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-cli/tests/command/test_check_mixed_targets.rs
RENAMED
|
@@ -46,3 +46,58 @@ fn given_custom_python_rust_and_web_rules_when_checking_then_native_and_hosted_t
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
|
|
50
|
+
#[test]
|
|
51
|
+
fn given_custom_python_and_rust_targets_without_cargo_when_checking_then_the_summary_says_incomplete(
|
|
52
|
+
) {
|
|
53
|
+
let test_cases = [crate::test_types::RustMixedTargetUnavailableTestCase {
|
|
54
|
+
description: "a Rust target that cannot run fails the check, and the summary of the \
|
|
55
|
+
Python findings says the check is incomplete",
|
|
56
|
+
expected_exit_code: 2,
|
|
57
|
+
expected_error: "FPRSL902 Rust analysis cannot run: cargo not found",
|
|
58
|
+
expected_summary: "Check incomplete: found 1 fault in the targets that ran",
|
|
59
|
+
}];
|
|
60
|
+
for test_case in test_cases {
|
|
61
|
+
let repository = tempfile::tempdir().expect("temporary repository");
|
|
62
|
+
write(
|
|
63
|
+
repository.path().join("Cargo.toml"),
|
|
64
|
+
"[package]\nname = \"example\"\nversion = \"0.1.0\"\nedition = \"2021\"\n",
|
|
65
|
+
);
|
|
66
|
+
write(
|
|
67
|
+
repository.path().join("src/lib.rs"),
|
|
68
|
+
"pub fn sum(left: usize, right: usize) -> usize { left + right }\n",
|
|
69
|
+
);
|
|
70
|
+
write(
|
|
71
|
+
repository.path().join("python/value.py"),
|
|
72
|
+
"def value(item):\n return item\n",
|
|
73
|
+
);
|
|
74
|
+
write(repository.path().join("rules/custom.py"), "import ast\nfrom fensu import Family, Fault, RuleContext, rule\n@rule(code='XMIX001', family=Family.CUSTOM, slug='mixed-python', message='mixed Python')\ndef mixed_python(module: ast.Module, ctx: RuleContext) -> list[Fault]:\n return []\n");
|
|
75
|
+
write(repository.path().join("fensu.toml"), "[targets.python]\nanalyzer = \"python\"\nroots = [\"python\"]\ntests = []\ntooling = []\nselect = [\"FFA001\", \"XMIX001\"]\nrule_paths = [\"rules/custom.py\"]\n[targets.rust]\nanalyzer = \"rust\"\nroots = [\"src\"]\ntests = []\ntooling = []\nrule_packs = [\"rust\"]\nselect = [\"FPRSS010\"]\n");
|
|
76
|
+
let output = std::process::Command::new(env!("CARGO_BIN_EXE_fensu"))
|
|
77
|
+
.args(["check", "--no-color", "--no-cache"])
|
|
78
|
+
.current_dir(repository.path())
|
|
79
|
+
.env("FENSU_PYTHON", crate::helpers::workspace_python())
|
|
80
|
+
.env("CARGO", "/cargo-does-not-exist/cargo")
|
|
81
|
+
.env("PATH", "/cargo-does-not-exist")
|
|
82
|
+
.output()
|
|
83
|
+
.expect("mixed check runs");
|
|
84
|
+
let stdout = String::from_utf8_lossy(&output.stdout);
|
|
85
|
+
let stderr = String::from_utf8_lossy(&output.stderr);
|
|
86
|
+
assert_eq!(
|
|
87
|
+
output.status.code(),
|
|
88
|
+
Some(test_case.expected_exit_code),
|
|
89
|
+
"{}: {stdout} {stderr}",
|
|
90
|
+
test_case.description
|
|
91
|
+
);
|
|
92
|
+
assert!(
|
|
93
|
+
stderr.contains(test_case.expected_error),
|
|
94
|
+
"{}: {stderr}",
|
|
95
|
+
test_case.description
|
|
96
|
+
);
|
|
97
|
+
assert!(
|
|
98
|
+
stdout.contains(test_case.expected_summary) && !stdout.contains("Found "),
|
|
99
|
+
"{}: {stdout}",
|
|
100
|
+
test_case.description
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -80,6 +80,13 @@ pub(crate) struct RustMixedTargetTestCase {
|
|
|
80
80
|
pub(crate) expected_codes: &'static [&'static str],
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
pub(crate) struct RustMixedTargetUnavailableTestCase {
|
|
84
|
+
pub(crate) description: &'static str,
|
|
85
|
+
pub(crate) expected_exit_code: i32,
|
|
86
|
+
pub(crate) expected_error: &'static str,
|
|
87
|
+
pub(crate) expected_summary: &'static str,
|
|
88
|
+
}
|
|
89
|
+
|
|
83
90
|
pub(crate) struct RepositoryRuleTestCase {
|
|
84
91
|
pub(crate) description: &'static str,
|
|
85
92
|
pub(crate) expected_exit_code: i32,
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "fensu-facts"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.30.0" # x-release-please-version
|
|
4
4
|
edition.workspace = true
|
|
5
5
|
license.workspace = true
|
|
6
|
-
publish =
|
|
6
|
+
publish = true
|
|
7
|
+
description = "Python source facts for Fensu: parsed modules, imports, symbols and file inventory"
|
|
8
|
+
repository = "https://github.com/sqlstack-io/fensu"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
keywords = ["lint", "architecture", "python", "static-analysis"]
|
|
11
|
+
categories = ["development-tools"]
|
|
7
12
|
rust-version.workspace = true
|
|
8
13
|
|
|
9
14
|
[lints]
|
|
@@ -16,6 +21,8 @@ crate-type = ["rlib"]
|
|
|
16
21
|
|
|
17
22
|
[dependencies]
|
|
18
23
|
dunce.workspace = true
|
|
24
|
+
# Not used directly: ruff_python_ast 0.0.4 needs a get-size2 built on compact_str 0.9, and 0.10.2 moved to 0.10.
|
|
25
|
+
get-size2.workspace = true
|
|
19
26
|
globset.workspace = true
|
|
20
27
|
hex.workspace = true
|
|
21
28
|
pyo3 = { workspace = true, optional = true }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# fensu-facts
|
|
2
|
+
|
|
3
|
+
Python source facts for [Fensu](https://github.com/sqlstack-io/fensu): parse a module once into a `ProgramHandle`, then read its fact rows.
|
|
4
|
+
|
|
5
|
+
```toml
|
|
6
|
+
fensu-facts = { version = "0.30", default-features = false }
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
`default-features = false` leaves out the Python bindings.
|
|
10
|
+
|
|
11
|
+
The public API is `ProgramHandle` (built with `ProgramHandle::parse_source(source, major, minor)`), `ParseFailure`, and the row types in `facts`. Modules hidden from the documentation are shared with the rest of Fensu's workspace and may change in any release.
|
|
@@ -83,6 +83,11 @@ pub struct ProgramHandle {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
impl ProgramHandle {
|
|
86
|
+
/// Parse `source` as a Python `major.minor` module.
|
|
87
|
+
pub fn parse_source(source: &str, major: u8, minor: u8) -> Result<Self, ParseFailure> {
|
|
88
|
+
Self::parse(source, PythonVersion { major, minor })
|
|
89
|
+
}
|
|
90
|
+
|
|
86
91
|
pub(crate) fn parse(source: &str, version: PythonVersion) -> Result<Self, ParseFailure> {
|
|
87
92
|
let parsed = parse_strict(source, version)?;
|
|
88
93
|
Ok(Self {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//! Python source facts for Fensu: [`ProgramHandle`] parses a module once and serves its fact rows.
|
|
2
|
+
#![forbid(unsafe_code)]
|
|
3
|
+
|
|
4
|
+
#[doc(hidden)]
|
|
5
|
+
pub mod constants;
|
|
6
|
+
#[doc(hidden)]
|
|
7
|
+
pub mod dead_code;
|
|
8
|
+
#[doc(hidden)]
|
|
9
|
+
pub mod extension;
|
|
10
|
+
pub mod facts;
|
|
11
|
+
#[doc(hidden)]
|
|
12
|
+
pub mod mapping;
|
|
13
|
+
#[doc(hidden)]
|
|
14
|
+
pub mod parsing;
|
|
15
|
+
#[doc(hidden)]
|
|
16
|
+
pub mod positions;
|
|
17
|
+
#[doc(hidden)]
|
|
18
|
+
pub mod snapshot;
|
|
19
|
+
pub(crate) mod syntax;
|
|
20
|
+
|
|
21
|
+
pub use extension::models::ProgramHandle;
|
|
22
|
+
pub use parsing::models::ParseFailure;
|
{fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/breadth_first_from.rs
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//! Walk breadth first from one node.
|
|
2
2
|
|
|
3
3
|
use crate::syntax::types::ShapeNode;
|
|
4
|
-
pub fn breadth_first_from(root: ShapeNode<'_>) -> Vec<ShapeNode<'_>> {
|
|
4
|
+
pub(crate) fn breadth_first_from(root: ShapeNode<'_>) -> Vec<ShapeNode<'_>> {
|
|
5
5
|
crate::syntax::_helpers::breadth::breadth_first_from(root)
|
|
6
6
|
}
|
{fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/breadth_first_nodes.rs
RENAMED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
use ruff_python_ast::ModModule;
|
|
4
4
|
|
|
5
5
|
use crate::syntax::types::ShapeNode;
|
|
6
|
-
pub fn breadth_first_nodes(module: &ModModule) -> Vec<ShapeNode<'_>> {
|
|
6
|
+
pub(crate) fn breadth_first_nodes(module: &ModModule) -> Vec<ShapeNode<'_>> {
|
|
7
7
|
crate::syntax::_helpers::breadth::breadth_first_nodes(module)
|
|
8
8
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
use ruff_python_ast::ModModule;
|
|
4
4
|
|
|
5
5
|
use crate::syntax::types::ShapeNode;
|
|
6
|
-
pub fn breadth_first_with_parents(
|
|
6
|
+
pub(crate) fn breadth_first_with_parents(
|
|
7
|
+
module: &ModModule,
|
|
8
|
+
) -> (Vec<ShapeNode<'_>>, Vec<Option<usize>>) {
|
|
7
9
|
crate::syntax::_helpers::breadth::breadth_first_with_parents(module)
|
|
8
10
|
}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
use crate::syntax::_helpers::children::ChildOutput;
|
|
4
4
|
use crate::syntax::types::ShapeNode;
|
|
5
5
|
|
|
6
|
-
pub fn children<'a>(node: &ShapeNode<'a>, out: &mut Vec<ShapeNode<'a>>) {
|
|
6
|
+
pub(crate) fn children<'a>(node: &ShapeNode<'a>, out: &mut Vec<ShapeNode<'a>>) {
|
|
7
7
|
ChildOutput { out }.collect(node);
|
|
8
8
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//! Syntax entries.
|
|
2
|
+
|
|
3
|
+
pub(crate) mod breadth_first_from;
|
|
4
|
+
pub(crate) mod breadth_first_nodes;
|
|
5
|
+
pub(crate) mod breadth_first_with_parents;
|
|
6
|
+
pub(crate) mod children;
|
|
7
|
+
pub(crate) mod kind_name;
|
|
8
|
+
pub(crate) mod push_clause_orelse;
|
|
9
|
+
pub(crate) mod span;
|
|
10
|
+
pub(crate) mod start_of;
|
|
11
|
+
pub(crate) mod strict_reference_parts;
|
{fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-facts/src/syntax/main/push_clause_orelse.rs
RENAMED
|
@@ -5,6 +5,6 @@ use ruff_python_ast::ElifElseClause;
|
|
|
5
5
|
use crate::syntax::_helpers::statement_children::ClauseOutput;
|
|
6
6
|
use crate::syntax::types::ShapeNode;
|
|
7
7
|
|
|
8
|
-
pub fn push_clause_orelse<'a>(clauses: &'a [ElifElseClause], out: &mut Vec<ShapeNode<'a>>) {
|
|
8
|
+
pub(crate) fn push_clause_orelse<'a>(clauses: &'a [ElifElseClause], out: &mut Vec<ShapeNode<'a>>) {
|
|
9
9
|
ClauseOutput { out }.collect(clauses);
|
|
10
10
|
}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
use crate::positions::models::{LineIndex, SourceSpan};
|
|
4
4
|
|
|
5
5
|
use crate::syntax::types::ShapeNode;
|
|
6
|
-
pub fn span(node: &ShapeNode<'_>, index: &LineIndex, source: &str) -> Option<SourceSpan> {
|
|
6
|
+
pub(crate) fn span(node: &ShapeNode<'_>, index: &LineIndex, source: &str) -> Option<SourceSpan> {
|
|
7
7
|
crate::syntax::_helpers::spans::span(node, index, source)
|
|
8
8
|
}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
use crate::positions::models::LineIndex;
|
|
4
4
|
|
|
5
5
|
use crate::syntax::types::ShapeNode;
|
|
6
|
-
pub fn start_of(node: &ShapeNode<'_>, index: &LineIndex, source: &str) -> (u32, u32) {
|
|
6
|
+
pub(crate) fn start_of(node: &ShapeNode<'_>, index: &LineIndex, source: &str) -> (u32, u32) {
|
|
7
7
|
crate::syntax::_helpers::spans::start_of(node, index, source)
|
|
8
8
|
}
|
|
@@ -9,7 +9,7 @@ use ruff_text_size::TextRange;
|
|
|
9
9
|
|
|
10
10
|
/// One node of the CPython-equivalent syntax tree projected from ruff nodes.
|
|
11
11
|
#[derive(Clone, Copy)]
|
|
12
|
-
pub enum ShapeNode<'a> {
|
|
12
|
+
pub(crate) enum ShapeNode<'a> {
|
|
13
13
|
Module(&'a ModModule),
|
|
14
14
|
Stmt(&'a Stmt),
|
|
15
15
|
IfTail(&'a [ElifElseClause]),
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "fensu-native"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.30.0" # x-release-please-version
|
|
4
4
|
edition.workspace = true
|
|
5
5
|
license.workspace = true
|
|
6
|
-
publish =
|
|
6
|
+
publish = true
|
|
7
|
+
description = "Fensu's core rule engine and Python rules, usable from Rust without the Python bindings"
|
|
8
|
+
repository = "https://github.com/sqlstack-io/fensu"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
keywords = ["lint", "architecture", "python", "static-analysis"]
|
|
11
|
+
categories = ["development-tools"]
|
|
7
12
|
rust-version.workspace = true
|
|
8
13
|
|
|
9
14
|
[lints]
|
|
@@ -15,13 +20,13 @@ path = "src/lib.rs"
|
|
|
15
20
|
crate-type = ["cdylib", "rlib"]
|
|
16
21
|
|
|
17
22
|
[dependencies]
|
|
18
|
-
flate2
|
|
23
|
+
flate2 = { workspace = true, optional = true }
|
|
19
24
|
globset.workspace = true
|
|
20
25
|
pyo3 = { workspace = true, optional = true }
|
|
21
26
|
rayon.workspace = true
|
|
22
27
|
ruff_python_ast.workspace = true
|
|
23
|
-
rusqlite
|
|
24
|
-
sha2
|
|
28
|
+
rusqlite = { workspace = true, optional = true }
|
|
29
|
+
sha2 = { workspace = true, optional = true }
|
|
25
30
|
serde_json.workspace = true
|
|
26
31
|
fensu-facts = { workspace = true, default-features = false }
|
|
27
32
|
unicode-ident.workspace = true
|
|
@@ -29,7 +34,7 @@ unicode-ident.workspace = true
|
|
|
29
34
|
[features]
|
|
30
35
|
default = ["python"]
|
|
31
36
|
extension-module = ["python", "pyo3/extension-module"]
|
|
32
|
-
python = ["dep:pyo3", "fensu-facts/python"]
|
|
37
|
+
python = ["dep:pyo3", "dep:rusqlite", "dep:flate2", "dep:sha2", "fensu-facts/python"]
|
|
33
38
|
|
|
34
39
|
[dev-dependencies]
|
|
35
40
|
serde.workspace = true
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# fensu-native
|
|
2
|
+
|
|
3
|
+
[Fensu](https://github.com/sqlstack-io/fensu)'s Python rule engine: core rules and dead-code analysis over programs parsed by `fensu-facts`.
|
|
4
|
+
|
|
5
|
+
```toml
|
|
6
|
+
fensu-facts = { version = "0.30", default-features = false }
|
|
7
|
+
fensu-native = { version = "0.30", default-features = false }
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`default-features = false` leaves out the Python bindings and the cache, and their SQLite and compression dependencies.
|
|
11
|
+
|
|
12
|
+
The public API is at the crate root: `evaluate_core_rules`, `evaluate_dead_code`, `parse_dead_code`, `plan_core_rule_queries`, `plan_execution_owners`, `generated_policy_owners`, and their models such as `NativeRuleContext`, `NativeProjectPlane` and `NativeFaultRow`. Rule codes are in `rules::constants`.
|
|
13
|
+
|
|
14
|
+
```rust
|
|
15
|
+
use fensu_facts::ProgramHandle;
|
|
16
|
+
use fensu_native::{evaluate_core_rules, NativeProjectPlane, NativeRuleContext};
|
|
17
|
+
use fensu_native::rules::constants::PARAMETER_ANNOTATION_CODE;
|
|
18
|
+
|
|
19
|
+
let program = ProgramHandle::parse_source("def total(items):\n return items\n", 3, 12)?;
|
|
20
|
+
let faults = evaluate_core_rules(
|
|
21
|
+
&program,
|
|
22
|
+
&[PARAMETER_ANNOTATION_CODE.to_owned()],
|
|
23
|
+
&NativeRuleContext::default(),
|
|
24
|
+
&NativeProjectPlane::new(Vec::new(), Vec::new()),
|
|
25
|
+
)?;
|
|
26
|
+
```
|
{fensu_cli-0.29.2 → fensu_cli-0.30.0}/crates/fensu-native/src/extension/main/register_module.rs
RENAMED
|
@@ -9,7 +9,7 @@ use pyo3::wrap_pyfunction;
|
|
|
9
9
|
|
|
10
10
|
/// Register Fensu's private native Python module.
|
|
11
11
|
#[pymodule]
|
|
12
|
-
pub fn _native(module: &Bound<'_, PyModule>) -> PyResult<()> {
|
|
12
|
+
pub(crate) fn _native(module: &Bound<'_, PyModule>) -> PyResult<()> {
|
|
13
13
|
fensu_facts::extension::main::register_module::register_fact_functions(module)?;
|
|
14
14
|
module.add_class::<rule_bindings::NativeExecutionBatch>()?;
|
|
15
15
|
module.add_function(wrap_pyfunction!(
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//! Fensu's Python rule engine over `fensu-facts` programs; use it with `default-features = false`.
|
|
2
|
+
#![forbid(unsafe_code)]
|
|
3
|
+
|
|
4
|
+
#[cfg(feature = "python")]
|
|
5
|
+
pub(crate) mod cache;
|
|
6
|
+
#[cfg(feature = "python")]
|
|
7
|
+
pub(crate) mod extension;
|
|
8
|
+
pub mod rules;
|
|
9
|
+
|
|
10
|
+
pub use crate::rules::main::evaluate_core_rules::evaluate_core_rules;
|
|
11
|
+
pub use crate::rules::main::evaluate_dead_code::evaluate_dead_code;
|
|
12
|
+
pub use crate::rules::main::generated_policy_owners::generated_policy_owners;
|
|
13
|
+
pub use crate::rules::main::parse_dead_code::parse_dead_code;
|
|
14
|
+
pub use crate::rules::main::plan_core_rule_queries::plan_core_rule_queries;
|
|
15
|
+
pub use crate::rules::main::plan_execution_owners::plan_execution_owners;
|
|
16
|
+
pub use crate::rules::models::{
|
|
17
|
+
CustomRegistration, NativeDeadCodeContext, NativeExecutionPlan, NativeExecutionRule,
|
|
18
|
+
NativeExecutionTarget, NativeFaultRow, NativeProjectModule, NativeProjectPlane,
|
|
19
|
+
NativeProjectQuery, NativeRuleContext,
|
|
20
|
+
};
|
|
21
|
+
pub use crate::rules::types::NativeDeadCodeSettings;
|