Qodana 2024.1 Help

Frequently Asked Questions

Here is a collection of answers to questions that will help you better understand basic Qodana concepts.

General questions

How can I run Qodana?

Depending on your needs, you can run Qodana using:

How can I build Qodana into <CI/CD name> pipelines?

Any Qodana linter is a Linux Docker image, so any CI/CD platform that supports Docker should be able to run it. We’re working on extending our documentation to provide the best examples of how to integrate Qodana with different CI/CD platforms. If you are experiencing any difficulties, please contact our support at qodana-support@jetbrains.com.

Is there an option for a self-hosted or on-premises version of Qodana?

The on-premises version of Qodana is currently under development, and we plan to release it in 2024. To register your interest in this solution, you can contact the Qodana team.

You can also run Qodana under the Community license, which doesn’t require you to create a Qodana Cloud account. However, this option provides limited functionalities.

Are there any plans to support other technologies?

The list of technologies already supported by Qodana is available on the Linters page.

Qodana will eventually cover all technologies supported by JetBrains IDEs. You can create an issue on our tracker or vote for an existing one to let us know what technology we should focus on, for example:

What is the relation between JetBrains Account and Qodana entities?

In a JetBrains Account (JBA), you can create several Companies.

Each created JBA Company can possess several Qodana licenses.

In Qodana Cloud, you need to create at least one organization that will correspond to a specific license within a specific JBA Company.

In Qodana Cloud, you can also create a JBA Company during the onboarding stage. In this case, the JBA Company and the Qodana Cloud organization will share the same name.

Qodana does not use JetBrains Account teams.

Deployment and configuration

Can I run Qodana right away? How hard is it to configure Qodana?

Qodana can be run in various ways, as described on the Quick start page. We’ve tried to make it as easy as possible to configure Qodana, so all of these methods require the minimum number of preparation steps.

What does each Qodana linter represent?

A linter is a Qodana component representing a specific technology. For example, the Qodana for JVM linter lets you analyze the codebase containing the Java, Kotlin, and Groovy code, while the Qodana for JS linter lets you check on the JavaScript and TypeScript code. On the Linters page, you can find the list of all available linters and the links to the detailed description of each one.

Can I use multiple linters in one project?

Yes, you can use multiple linters in a single project, as described in the Inspect a monorepo project section.

How can I customize the checks performed by Qodana?

You can configure your inspection profile as described on the Custom YAML profiles page.

If the existing inspections do not fit your needs, you can develop your own structural search inspections and add them to the inspection profile or use plugins that will extend the inspection capabilities of Qodana. Alternatively, you can develop your own plugin and use its inspections with Qodana.

Why is there a need to set up an SSH key in my repository?

The SSH key lets Qodana connect to the repository of the analyzed project and calculate the number of contributors, which is a requirement for all types of licenses.

Inspecting code

What is a profile?

A Qodana inspection profile is a set of pre-configured inspections, including their state, configuration options, and the path to which they are applied. Qodana inspection profiles are the same as IntelliJ IDEA inspection profiles and can be reused.

What inspection profiles does Qodana offer?

You can find the list of the default Qodana inspection profiles on the Default profiles page, where you can also find out how to set up the default profiles.

How can I choose the best profile for my project?

We recommend using the qodana.recommended profile because it already provides the most usable inspections invoked by the default JetBrains IDEs profiles, so no additional configuration is required.

Alternatively, you can create your own profile to best suit your needs.

Can I import SARIF of another analysis tool to Qodana?

Currently, it is not possible to display the results of external analysis tools in Qodana UI, though we are working on it.

Can I get more information about Qodana report severities?

This table shows the relation between the JetBrains IDE, SARIF, and Qodana severities.

IDE severity

SARIF severity

Qodana report severity

ERROR

ERROR

Critical

WARNING

WARNING

High

WEAK WARNING

NOTE

Moderate

TYPO

NOTE

Low

INFORMATION

NOTE

Info

OTHER

NOTE

Info

Where can I learn more about Qodana inspections?

You can visit the Inspectopedia website and read about inspections and their availability in Qodana.

Licensing

I work solo on my project, can I still use Qodana?

Yes, but the minimum billing option is for 3 (three) contributors.

How does Qodana count contributors?

The contributor counting mechanism is described in the Contributor counting section of this documentation.

Is there a way to determine the number of contributors in my repositories prior to initiating Qodana?

Yes, you can use this command to check the number of contributors:

git log --format='%aN' | sort -u | wc -l

In the Qodana CLI application, you can use the contributors command for counting active contributors, for example:

qodana contributors -d 90

What do I need to start using Qodana?

  • You can navigate to the Subscription Options and Pricing page on the JetBrains website and select the subscription option you would like to use.

    If you choose the Community license or the trial version of the Ultimate or Ultimate Plus licenses, you’ll be redirected to the Qodana Cloud onboarding page.

    If you would like to purchase either the Ultimate or Ultimate Plus license, you’ll be redirected to the JetBrains account page to provide payment details. After payment is made, you’ll be redirected to the Qodana Cloud onboarding page.

  • During the onboarding stage on the Qodana Cloud website, we’ll generate a public key for you to add to your repository so that Qodana can connect to it, as well as a project token for uploading Qodana reports to your first project.

Can I try Qodana before buying a license?

Yes, you can choose either the Ultimate or Ultimate Plus trial license and start using Qodana for free with a 60-day trial period. During this period, you can switch between these licenses one time. After 60 days, you’ll need to buy either the Ultimate or Ultimate Plus license to continue using Qodana in your projects.

You can also choose the Community license, but keep in mind that it provides restricted functionalities compared to the Ultimate and Ultimate Plus licenses. Switching to the Community license from the Ultimate or Ultimate Plus licenses will mean that your trial license is irreversibly terminated.

What are Qodana linters and Qodana Cloud designed for?

Both Qodana linters and Qodana Cloud are essential parts of the product named Qodana. You can inspect your codebase using Qodana linters, and you can use Qodana Cloud for managing your projects and licenses, as well as collecting Qodana reports in a single place. For more details, see the Qodana Cloud use-cases page of the Qodana Cloud documentation.

Can I use Qodana linters without creating a Qodana Cloud account?

All licenses require that you create an account at Qodana Cloud and complete the onboarding stage (see this question for further details). Besides that, Qodana Cloud lets you view Qodana reports in a single place and provides access to all of the features offered by Qodana linters. Finally, for the purposes of opening Qodana reports from within your IDE, you need a Qodana Cloud account.

To exclude Qodana Cloud, you can download and run the Community linters of Qodana, like Qodana Community for JVM, Qodana Community for Android, and Qodana Community for Python, locally without a license.

What are the minimum steps I need to perform to get started with Qodana Cloud?

All of the required steps are described in the Quick start section of the Qodana Cloud documentation.

What is a trial license?

A trial license is a time-limited version of either the Ultimate or the Ultimate Plus license. Each trial license duration is limited to 60 days, and you can change it from Ultimate to Ultimate Plus and vice versa just once. After the trial period ends, this type of license is no longer valid and can no longer be used. To continue using Qodana, you’ll have to purchase a full version of your license.

Will I be notified when my trial license period is coming to an end?

Yes, you’ll be notified when your trial period expires.

After its expiry, you’ll need to buy either the Ultimate or Ultimate Plus license. Expired trial licenses cannot be extended.

Do I need to provide payment details for a trial license?

No, you don’t have to provide any payment details until you decide to buy a license for either the Ultimate or Ultimate Plus version of Qodana, which you can do after the trial period ends.

Can I switch between licenses?

Yes, you can switch between trial versions of the Ultimate and Ultimate Plus licenses using your JetBrains Account, but remember that this can only be done once.

You can also switch one time from the trial version of the Ultimate and Ultimate Plus licenses to the Community license. Once you’ve converted your trial license to the Community license, the process is irreversible. Ensure you are making an informed decision. Remember that the Community license does not support all the features available in the Ultimate or Ultimate Plus subscriptions. If you wish to revert to the Ultimate or Ultimate Plus subscription after conversion, you’ll need to move to a paid subscription.

After the trial period has ended, this one-time limitation is removed, and you can switch between subscription plans an unlimited number of times. In this case, however, all purchased subscriptions are not refunded.

How is the cost of a license calculated?

The total license cost is based on the number of active contributors. An active contributor is a person/bot who has committed to any number of Qodana Cloud projects at any point in the last 90 days, within the same organization, and under a single license. During the onboarding stage and while creating a new project, Qodana Cloud requests your repository URL to calculate contributors. The minimal number of contributors used for licensing is 3 (three).

The number of actual contributors is calculated based on the subscription plan. For example, using the monthly subscription, on the first day of the month, you purchased a license for 10 (ten) contributors. Within that same month, Qodana found that your project had 20 (twenty) active contributors. In this case, for the upcoming month, the license costs would be recalculated for 20 (twenty) contributors. At the end of the second month, the license costs would be recalculated again based on the actual number of active contributors.

For more details, see the Fees and Payments section of the Qodana Terms of Service.

What do I need to know about subscription billing?

Here is the billing description taken from the Qodana Terms of Service:

Monthly Subscriptions – At the beginning of each Subscription Period, You will specify the expected number of Active Contributors (three or more). At the end of the Subscription Period, You will be charged Subscription fees according to Your Subscription Plan based on the number of Active Contributors that You determined. Qodana checks the actual number of Active Contributors at the end of every Subscription Period. If that number is higher than the number of Active Contributors that You specified for that Subscription Period, You will not be charged for overuse. However, the number of Active Contributors You specify for the next Subscription Period cannot be lower than the actual number from the preceding Subscription Period.

Annual Subscriptions fees include upfront payment for a set number of active contributors chosen by the customer, plus extra charges for additional active contributors beyond that limit during the subscription period (excess usage).

  • Upfront payment – Customer pays upfront for the annual subscription based on the expected monthly number of active contributors (3 or more) at the monthly fee per active contributor for each month of their subscription.

  • Overuse/excess usage – Qodana monitors the number of active contributors each month. If the number of active contributors exceeds the customer's monthly limit, a subscription fee will be applied for each additional active contributor in the next months. Users will not be charged automatically; instead, they can purchase additional licenses either through the provided email link or within their JetBrains Account.

    If the user doesn’t pay for the extension of the subscription, we may suspend Qodana service for three months until the customer pays for the additional contributors. The subscription will be automatically reactivated three months after its suspension for the number of active contributors for which the customer paid (or when the customer extends their subscription), unless we exercise our right to terminate the Terms.

No refunds or credits will be issued if the number of active contributors during a month is lower than the prepaid limit.

Where does Qodana store license information?

Qodana Cloud stores all information about your licenses. This explains why you must create a Qodana Cloud account before running Qodana. Aside from this functionality, Qodana Cloud provides other features.

How does the license affect the linter functionality?

We recommend running Qodana linters under appropriate licenses, based on your tasks.

You can only run paid linters like Qodana for JVM, Qodana for JS, or Qodana for PHP using the Ultimate and Ultimate Plus licenses – it is impossible to run them if you’re using the Community license.

The Community linters like Qodana Community for JVM, Qodana Community for Android, and Qodana Community for Python can be used either with the Community license, or without a license at all.

There is no need to run a linter like Qodana Community for JVM under the Ultimate or Ultimate Plus licenses, since it will not extend the existing functionality.

How many Community licenses can I have under a single JetBrains account?

You can have up to 5 (five) Community licenses under your JetBrains account.

What is the difference between the Ultimate and Ultimate Plus licenses?

Compared to the Ultimate license, the Ultimate Plus license provides the following additional features:

Are there any restrictions on using the Community license?

No, you can use a Qodana Community license in your work on any open-source or proprietary projects.

What licenses are integrated into CI/CD pipelines?

All Qodana subscriptions support integration with the CI/CD solutions described in the Integration with CI systems section.

Can I use Qodana for free in my open-source project?

Yes, you can run the Community Qodana linters under the Community license. See the Linters available for each license page for more details.

What data does Qodana forward to the Qodana Cloud?

First and foremost, Qodana Cloud collects information about active contributors of your repository, as well as the project token. This information is then used for calculating license costs and enabling paid features.

Besides that, Qodana forwards SARIF-formatted inspection reports to Qodana Cloud, which lets you view inspection results using the Qodana Cloud UI.

Troubleshooting

Qodana reports zero errors, but this doesn’t seem correct.

Use the qodana.recommended inspection profile.

If the qodana.recommended profile does not help, try to run another linter.

If the problem persists, please create an issue in our tracker or contact us at qodana-support@jetbrains.com and attach logs from the /data/results directory that you can get access to by mounting your directory to the path.

Is there a way to reduce analysis time?

Yes, you can use caching, and this is available by default in the Qodana Scan GitHub action. If this does not help, create an issue in our tracker or contact us at qodana-support@jetbrains.com and attach logs from the /data/results directory. To access logs, mount your directory. If you are using GitHub actions, they are uploaded to the workflow artifacts.

Qodana fails with the Out of Memory error.

Try to set more memory in Docker Desktop preferences, as some projects and build tools inside them, like Gradle, could require more memory than the default 2 GB.

Qodana can't download Gradle because I use proxy.

Before starting Qodana, please run the ./gradlew command in the root folder. This will let Qodana use this downloaded version of Gradle.

If your project was created on Windows, make sure to run git update-index --chmod=+x gradlew to make the file executable in your CI.

Last modified: 03 May 2024