feat(automation): integrate .NET instrumentation watcher#421
feat(automation): integrate .NET instrumentation watcher#421Pittu-Sharma wants to merge 27 commits into
Conversation
✅ Deploy Preview for otel-ecosystem-explorer ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
a1ef98a to
450c83f
Compare
|
Hi, @jaydeluca , Please review the PR once. If any changes are required please let me know. |
- Replace GitHub Tree discovery with NuGet owner search - Fetch accurate package versions directly from NuGet - Filter out deprecated packages (e.g. Instana, Jaeger) - Use core OpenTelemetry package version for ecosystem registry snapshots - Remove unused GITHUB_TOKEN from nightly update workflow
884917d to
9daeef2
Compare
|
Hi @martincostello, I've just updated the PR with the following changes:
Thanks again for the guidance! |
|
Hi @martincostello — thank you for the detailed review! I've addressed all the points raised. Here's a summary of what i have changed.
|
- NuGet V3 Service Index (dynamic endpoint discovery) - Error on service index failure instead of fallback - Remove 1.0.0 version fallback; raise NuGetAPIError - Filter deprecated packages using NuGet metadata (covers .Contrib) - Correct version sorting by using top-level version field - Add prerelease package support in tests - Restore 'primary' variant to GlowBadge for UI compatibility
|
Hi @martincostello, thank you for the detailed review! I have addressed all the issues raised. Here is a summary of the changes:
I have also fixed a small regression in the frontend GlowBadge component to ensure all project tests are passing. Please let me know if there's anything else you'd like me to adjust! |
- Added semVerLevel=2.0.0 to NuGet API queries to include newer OTel versions - Updated logic to use top-level 'version' field from NuGet as source of truth - Implemented filtering based on NuGet 'deprecation' flag - Regenerated .NET instrumentation registry with correct versions
…com/Pittu-Sharma/opentelemetry-ecosystem-explorer into feat/dotnet-instrumentation-watcher
|
Hi @martincostello, thank you for the feedback. I have now addressed the issues with the incorrect data in the registry:
|
jaydeluca
left a comment
There was a problem hiding this comment.
Thank you @martincostello for helping with the review 🙏
the logic for the watcher looks good, and the resulting registry is a good start, but I think we'll need to wait until open-telemetry/opentelemetry-dotnet#7295 makes some progress before we move this ecosystem forward after this PR is merged. There just isn't enough useful information to do much with yet.
Can you just remove the docs/dotnet-integration-roadmap.md file and revert the changes to unrelated files? Also, I'm assuming the ecosystem-registry/dotnet/v1.0.0/instrumentation.yaml file should also be deleted?
…ing typescript errors
Description
This PR establishes the foundation for tracking
.NETinstrumentation metadata within the OpenTelemetry Ecosystem Explorer by implementing a dedicated.NETwatcher.Since the OpenTelemetry
.NETecosystem does not use a centralized catalog API like other ecosystems, this watcher dynamically traverses theopen-telemetry/opentelemetry-dotnet-contribrepository using the GitHub Git Tree API to discover.csprojfiles and classify them.Resolves #101.
Changes Made
.NETWatcher: Implementeddotnet_client.py,inventory_manager.py, andinstrumentation_sync.pyinsideecosystem-automation/dotnet-instrumentation-watcher.ecosystem-registry/dotnet/snapshot directory and enabled versioned schema generation (instrumentation.yaml)..github/workflows/nightly-registry-update.ymlto ensure metadata stays fresh automatically.test-ecosystem-automationrunner in.github/workflows/build-and-test.yml.__init__.pyfiles across all watcher test suites to resolve pytest discovery errors on Windows. Patchedinstrumentation_transformer.pyin the DB builder to prevent compilation crashes when metadata keys are missing.docs/dotnet-integration-roadmap.mdmapping out the database and frontend integration tasks.Testing and Compliance
uv run pytest).uv run ruff check .anduv run ruff format .).uv run python scripts/check_copyright.py).bun run lint:md).