Description
Update Qodana Linter for Ruby Support
Description:
Qodana has been integrated into the zitadel/client-ruby
project CI pipeline to perform static code analysis. The goal is to leverage Qodana for maintaining and improving code quality within the Ruby client library.
Problem:
Qodana does not yet have official, stable support for the Ruby language. This is tracked by JetBrains here: RUBY-29231. While there are signs of development (Ruby container definition), it's not ready for production use. To prevent the CI pipeline from failing, the current qodana.yaml
configuration uses a placeholder linter (jetbrains/qodana-php:2025.1
) as seen here: qodana.yaml#L12. This means the Qodana step completes, but no actual Ruby code inspection occurs.
Impact:
- The project is not benefiting from Qodana's static analysis capabilities for the Ruby codebase.
- Potential code quality issues, bugs, or style violations specific to Ruby may go undetected by the automated checks.
- The current configuration provides a false sense of security, as the Qodana step passes without performing meaningful analysis.
Tasks:
- Monitor the status of RUBY-29231 for the official release of Qodana for Ruby support.
- Once released, update the
linter
value inqodana.yaml
fromjetbrains/qodana-php:2025.1
to the official Ruby Qodana container image (e.g.,jetbrains/qodana-ruby:<version>
). - Run the CI pipeline and verify that the Qodana analysis executes correctly against the Ruby code.
- Review the reported inspections and ensure they are relevant and accurate.
- Adjust any necessary Qodana configuration settings in
qodana.yaml
or aqodana.yml
profile file if needed for optimal Ruby analysis.
Expected Outcomes:
- The CI pipeline includes a fully functional Qodana step that performs static analysis specifically for the Ruby codebase in
zitadel/client-ruby
. - Qodana effectively identifies potential issues, contributing to improved code quality and maintainability.
- The placeholder linter configuration is removed.
Additional Notes:
- This update is entirely dependent on JetBrains releasing official Qodana support for Ruby.
- Keep an eye on the Qodana documentation and release notes for announcements regarding Ruby support.