Skip to content

Conversation

@shawn-hurley
Copy link
Contributor

@shawn-hurley shawn-hurley commented Dec 2, 2025

  • This is the updated tech preview c-sharp extension based from github.com/konveyor/c-sharp-analyzer-provider

Fixes #504

Summary by CodeRabbit

  • New Features

    • Added C# provider support and a C# language extension for analyzing C# applications.
    • C# provider image is now included in published bundles, operator related images, and installation defaults.
  • Chores

    • Updated packaging metadata for the bundle tooling.

✏️ Tip: You can customize this high-level summary in your review settings.

@shawn-hurley shawn-hurley requested review from dymurray and jortel and removed request for jortel December 2, 2025 19:28
@coderabbitai
Copy link

coderabbitai bot commented Dec 2, 2025

Walkthrough

Adds a Tech Preview C# provider across CI, bundle/release, Helm chart, CSV, install scripts, Ansible defaults, and extension templates by wiring a new provider image/value and adding a C# Extension resource; all changes are additive configuration and manifest updates.

Changes

Cohort / File(s) Summary
GitHub Actions & Release Workflow
​.github/actions/make-bundle/action.yml, ​.github/workflows/create-release.yml
Adds new provider_c_sharp action input and propagates it into bundle generation (--set images.provider_c_sharp=...); includes provider_c_sharp image in the create-release workflow step.
Bundle & OLM Manifests
bundle.Dockerfile, bundle/manifests/konveyor-operator.clusterserviceversion.yaml
Updates operator-sdk label (operator-sdk-v1.39.1), updates CSV timestamp, adds RELATED_IMAGE_PROVIDER_C_SHARP env var to operator deployment and adds provider-c-sharp to relatedImages.
Helm templates & values
helm/values.yaml, helm/templates/deployment.yaml
Adds images.provider_c_sharp to Helm values and exposes RELATED_IMAGE_PROVIDER_C_SHARP in the deployment container env.
Install script & Ansible defaults
hack/install-tackle.sh, roles/tackle/defaults/main.yml
Introduces C_SHARP_PROVIDER_IMAGE default and writes provider_c_sharp_image_fqin into emitted Tackle CR; adds provider_c_sharp default variables (names, resources, image FQIN, service name).
Extension template
roles/tackle/templates/customresource-extension.yml.j2
Appends a new C# Extension resource block (metadata, selector Language=C#, container spec, env/port, resources, and provider initConfig with ilspy_cmd and paket_cmd).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Multiple files follow a consistent additive pattern; moderate review to confirm naming and wiring.
  • Pay extra attention to:
    • roles/tackle/templates/customresource-extension.yml.j2 (new resource structure and provider initConfig).
    • Cross-check consistency of image variable names (C_SHARP_PROVIDER_IMAGE vs RELATED_IMAGE_PROVIDER_C_SHARP vs Helm images.provider_c_sharp).
    • .github/actions/make-bundle/action.yml — ensure the conditional OPTS append matches action input behavior and quoting.

Possibly related PRs

Suggested reviewers

  • djzager

Poem

🐰 I hopped through YAML, charts, and code,
Brought C# blooms along the road,
Images set and manifests neat,
A tiny rabbit's coding feat 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly indicates the main change: adding a C# provider extension for use in the hub, which aligns with the primary objective of the PR.
Linked Issues check ✅ Passed The PR successfully implements the objective from issue #504 by integrating the C# provider as an analysis extension across all necessary configuration files and manifests.
Out of Scope Changes check ✅ Passed All changes are directly related to adding C# provider support; the operator-sdk version bump in bundle.Dockerfile appears tangential but is likely a maintenance update.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f72ec5f and 9eba1f7.

📒 Files selected for processing (1)
  • roles/tackle/templates/customresource-extension.yml.j2 (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build-operator-bundle

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

* This is the updated tech preview c-sharp extension based from
  github.com/konveyor/c-sharp-analyzer-provider

Signed-off-by: Shawn Hurley <[email protected]>
@shawn-hurley shawn-hurley force-pushed the feature/adding-c-sharp-provider-extension branch from 3aa9132 to 1a841a8 Compare December 2, 2025 19:30
@shawn-hurley
Copy link
Contributor Author

We should hold until this is tested in konveyor/analyzer-lsp#965

@shawn-hurley shawn-hurley changed the title Adding the c-sharp provider extension to be used in the hub. ✨ Adding the c-sharp provider extension to be used in the hub. Dec 2, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 16dc436 and 1a841a8.

📒 Files selected for processing (9)
  • .github/actions/make-bundle/action.yml (2 hunks)
  • .github/workflows/create-release.yml (1 hunks)
  • bundle.Dockerfile (1 hunks)
  • bundle/manifests/konveyor-operator.clusterserviceversion.yaml (3 hunks)
  • hack/install-tackle.sh (2 hunks)
  • helm/templates/deployment.yaml (1 hunks)
  • helm/values.yaml (1 hunks)
  • roles/tackle/defaults/main.yml (1 hunks)
  • roles/tackle/templates/customresource-extension.yml.j2 (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: run-ci / e2e-api-integration-tests
🔇 Additional comments (11)
helm/values.yaml (1)

26-26: LGTM!

The new C# provider image entry follows the established pattern for other provider images.

helm/templates/deployment.yaml (1)

60-61: LGTM!

The environment variable follows the established pattern for related images and correctly references the Helm value.

bundle/manifests/konveyor-operator.clusterserviceversion.yaml (2)

356-357: LGTM!

The environment variable addition follows the established pattern for provider images.


559-560: LGTM!

The relatedImages entry correctly follows the naming convention used by other providers.

.github/actions/make-bundle/action.yml (2)

56-59: LGTM!

The new input definition follows the established pattern for provider image inputs.


101-101: LGTM!

The conditional OPTS handling is consistent with other provider inputs.

hack/install-tackle.sh (2)

28-28: LGTM!

The environment variable follows the established pattern for provider images.


131-131: LGTM!

The Tackle CR spec field is consistent with the existing Java provider configuration.

.github/workflows/create-release.yml (1)

224-224: Consider adding a wait step for the C# provider image.

Other provider images like java-analyzer-bundle have explicit wait steps to ensure the image is available before proceeding with the bundle build. Consider adding a similar wait step for the c-sharp-provider image to prevent build failures if the image isn't published yet during a release.

roles/tackle/templates/customresource-extension.yml.j2 (1)

186-189: Likely copy-paste error in paket_cmd path.

The paket_cmd value points to the same path as ilspy_cmd (/root/.dotnet/tools/ilspy_cmd). This appears incorrect — it should reference a distinct paket binary, likely /root/.dotnet/tools/paket or similar.

       - providerSpecificConfig:
           ilspy_cmd: "/root/.dotnet/tools/ilspy_cmd"
-          paket_cmd: "/root/.dotnet/tools/ilspy_cmd"
+          paket_cmd: "/root/.dotnet/tools/paket"

Verify the correct path for the paket command in the C# provider image.

roles/tackle/defaults/main.yml (1)

183-192: Verify environment variable propagation across deployment infrastructure.

The C# provider configuration correctly follows the established pattern used by Python, Node.js, and Java providers: consistent naming conventions, appropriate resource allocations (1 CPU, 1Gi memory), and proper environment variable lookup syntax.

However, verify that RELATED_IMAGE_PROVIDER_C_SHARP is properly defined and propagated through the deployment infrastructure (Helm templates, operator manifests, GitHub Actions, bundle configuration). Without confirmation that this environment variable is wired across all deployment paths, the configuration alone may be incomplete.

Copy link
Contributor

@dymurray dymurray left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This currently doesn't work because of the hub's selector regex failing to match but I want this in to help test and fix that bug

Copy link
Contributor

@dymurray dymurray left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nevermind this actually breaks all tech discovery

Copy link
Contributor

@mguetta1 mguetta1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add the Tech Preview C Sharp provider as an analysis extension

3 participants