Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[DO NOT MERGE] [IMPROVEMENTS] [EXPERIMENTAL] Weekly Stable Updates 20250502#1135

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Draft
moljac wants to merge2 commits intomain
base:main
Choose a base branch
Loading
fromdev/moljac/wsu-20250502

Conversation

@moljac
Copy link
Contributor

@moljacmoljac commentedMay 5, 2025
edited
Loading

Updates

... and improvements (experimental) for bindings improvements

As a result of investigation about bindings improvements this is a proposal for a method of obtaining structured data from build logs so solutions/fixes/workarounds for issues (errors, warnings) can be made either (in the order of priority)

  1. deterministically or
  2. non-deterministically with help of AI

Motivation:

  • software must be deterministic => bindings must be deterministic

    • non-determinism

      • valid case for AI/ML

      • caused by

        • tooling bugs (class-parse orgenerator)

          managedReturn vsreturn

          managedType vstype

        • changes in ecosystem (Google's type moving)

          challenge because of - cutoff dates for LMs (language models)

Plan:

  1. deserialize SARIF format

  2. extend SARIF object model with data for:

    • XPath

    • managed (MCW) metadata

    • native Maven artifact data

  3. build logic to fix errors and warnings

    • easier to tackle

      • CS0738

        "'T1' does not implement interface member 'I.M()'. 'T1.M()' cannot implement 'I.M()' because it does not have the matching return type of 'T2'."

  4. loop through the SARIF data and fix isues by generatingMetadata.*.g.xml fixes

Further reading:

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings#errorlog

https://www.meziantou.net/how-to-output-a-sarif-file-from-a-dotnet-project.htm

@moljacmoljac marked this pull request as draftMay 5, 2025 11:20
@moljac
Copy link
ContributorAuthor

Generated SARIF formated data:

{"$schema":"http://json.schemastore.org/sarif-1.0.0","version":"1.0.0","runs": [    {"tool": {"name":"Microsoft (R) Visual C# Compiler","version":"4.11.0.0","fileVersion":"4.11.0-3.24554.2 (bc1c3011)","semanticVersion":"4.11.0","language":"en-HR"      },"results": [        {"ruleId":"CS0738","level":"error","message":"'FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory' does not implement interface member 'IProvider.Get()'. 'FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.Get()' cannot implement 'IProvider.Get()' because it does not have the matching return type of 'Object'.","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_SessionConfigsDataStoreFactory.cs","region": {"startLine":20,"startColumn":136,"endLine":20,"endColumn":193                }              }            }          ]        },        {"ruleId":"CS0738","level":"error","message":"'FirebaseSessionsComponent_MainModule_Companion_SessionDetailsDataStoreFactory' does not implement interface member 'IProvider.Get()'. 'FirebaseSessionsComponent_MainModule_Companion_SessionDetailsDataStoreFactory.Get()' cannot implement 'IProvider.Get()' because it does not have the matching return type of 'Object'.","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_SessionDetailsDataStoreFactory.cs","region": {"startLine":20,"startColumn":136,"endLine":20,"endColumn":193                }              }            }          ]        },        {"ruleId":"CS0234","level":"error","message":"The type or namespace name 'ITimeProvider' does not exist in the namespace 'Firebase.Sessions' (are you missing an assembly reference?)","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_TimeProviderFactory.cs","region": {"startLine":80,"startColumn":43,"endLine":80,"endColumn":56                }              }            }          ]        },        {"ruleId":"CS0234","level":"error","message":"The type or namespace name 'ITimeProvider' does not exist in the namespace 'Firebase.Sessions' (are you missing an assembly reference?)","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_TimeProviderFactory.cs","region": {"startLine":92,"startColumn":50,"endLine":92,"endColumn":63                }              }            }          ]        },        {"ruleId":"CS0738","level":"error","message":"'FirebaseSessionsComponent_MainModule_Companion_TimeProviderFactory' does not implement interface member 'IProvider.Get()'. 'FirebaseSessionsComponent_MainModule_Companion_TimeProviderFactory.Get()' cannot implement 'IProvider.Get()' because it does not have the matching return type of 'Object'.","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_TimeProviderFactory.cs","region": {"startLine":20,"startColumn":125,"endLine":20,"endColumn":182                }              }            }          ]        },        {"ruleId":"CS0234","level":"error","message":"The type or namespace name 'IUuidGenerator' does not exist in the namespace 'Firebase.Sessions' (are you missing an assembly reference?)","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_UuidGeneratorFactory.cs","region": {"startLine":80,"startColumn":43,"endLine":80,"endColumn":57                }              }            }          ]        },        {"ruleId":"CS0234","level":"error","message":"The type or namespace name 'IUuidGenerator' does not exist in the namespace 'Firebase.Sessions' (are you missing an assembly reference?)","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_UuidGeneratorFactory.cs","region": {"startLine":92,"startColumn":50,"endLine":92,"endColumn":64                }              }            }          ]        },        {"ruleId":"CS0738","level":"error","message":"'FirebaseSessionsComponent_MainModule_Companion_UuidGeneratorFactory' does not implement interface member 'IProvider.Get()'. 'FirebaseSessionsComponent_MainModule_Companion_UuidGeneratorFactory.Get()' cannot implement 'IProvider.Get()' because it does not have the matching return type of 'Object'.","locations": [            {"resultFile": {"uri":"file:///Users/Shared/Projects/d/dotnet/android-libraries/dev--moljac--wsu-20250502/generated/com.google.firebase.firebase-sessions/obj/Release/net8.0-android/generated/src/Firebase.Sessions.FirebaseSessionsComponent_MainModule_Companion_UuidGeneratorFactory.cs","region": {"startLine":20,"startColumn":126,"endLine":20,"endColumn":183                }              }            }          ]        }      ],"rules": {"CS0234": {"id":"CS0234","defaultLevel":"error","helpUri":"https://msdn.microsoft.com/query/roslyn.query?appId=roslyn&k=k(CS0234)","properties": {"category":"Compiler","isEnabledByDefault":true,"tags": ["Compiler","Telemetry","NotConfigurable"            ]          }        },"CS0738": {"id":"CS0738","defaultLevel":"error","helpUri":"https://msdn.microsoft.com/query/roslyn.query?appId=roslyn&k=k(CS0738)","properties": {"category":"Compiler","isEnabledByDefault":true,"tags": ["Compiler","Telemetry","NotConfigurable"            ]          }        }      }    }  ]}

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants

@moljac

[8]ページ先頭

©2009-2025 Movatter.jp