MoonBit public API compatibility and SemVer guard
///|
let report = @moonguard.diff_interfaces(
"pub fn render(String) -> String", "pub fn render(String, Options) -> String",
)pub struct ApiChange {
kind : ChangeKind
impact : Impact
item_kind : String
name : String
old_signature : String?
new_signature : String?
} derive(Eq, Debug)pub struct ApiPackageComparison {
old_snapshot : ApiSnapshot
new_snapshot : ApiSnapshot
report : ApiReport
diagnostics : Array[ApiDiagnostic]
summary : ApiSummary
diagnostic_summary : DiagnosticSummary
} derive(Eq, Debug)pub struct ApiPolicyEvaluation {
original_report : ApiReport
effective_report : ApiReport
accepted_changes : Array[AcceptedApiChange]
diagnostics : Array[ApiPolicyDiagnostic]
summary : PolicySummary
} derive(Eq, Debug)pub struct IgnoreParseResult {
rules : Array[ApiIgnoreRule]
errors : Array[String]
} derive(Eq, Debug)pub struct PolicyParseResult {
rules : Array[ApiPolicyRule]
errors : Array[String]
} derive(Eq, Debug)pub struct PolicyReleasePlan {
evaluation : ApiPolicyEvaluation
plan : ReleasePlan
} derive(Eq, Debug)pub struct ReleasePlan {
report : ApiReport
diagnostics : Array[ApiDiagnostic]
version_check : VersionCheck
summary : ApiSummary
diagnostic_summary : DiagnosticSummary
status : String
decision : String
next_action : String
} derive(Eq, Debug)fn check_interface_version_bump(old_text : String, new_text : String, current : String, next : String) -> VersionCheckfn compare_api_file_sets(old_files : Array[ApiFile], new_files : Array[ApiFile]) -> ApiPackageComparisonfn compare_api_snapshots(old_snapshot : ApiSnapshot, new_snapshot : ApiSnapshot) -> ApiPackageComparisonfn evaluate_policy(report : ApiReport, rules : Array[ApiPolicyRule], target_version : String) -> ApiPolicyEvaluationfn evaluate_policy_text(report : ApiReport, rules_text : String, target_version : String) -> ApiPolicyEvaluationfn make_policy_release_plan(evaluation : ApiPolicyEvaluation, diagnostics : Array[ApiDiagnostic], current : String, next : String) -> PolicyReleasePlanfn make_release_plan(report : ApiReport, diagnostics : Array[ApiDiagnostic], current : String, next : String) -> ReleasePlanfn merge_diagnostics(left : Array[ApiDiagnostic], right : Array[ApiDiagnostic]) -> Array[ApiDiagnostic]fn render_json_package_check_result(report : ApiReport, diagnostics : Array[ApiDiagnostic], check : VersionCheck) -> Stringfn render_markdown_package_check_result(report : ApiReport, diagnostics : Array[ApiDiagnostic], check : VersionCheck) -> Stringfn semver_recommendation(old_text : String, new_text : String) -> StringMoonBit public API compatibility and SemVer guard