Najważniejsze informacje dotyczące wydania Qodana 2025.3


Qodana 2025.3 oferuje ważne nowe funkcje, które pomagają zespołom ujednolicić praktyki programistyczne, poprawić zgodność, ułatwić audyty i uprościć analizę kodu na dużą skalę.

Od wprowadzenia globalnej konfiguracji projektu, która stanowi ważny krok w kierunku skalowalnego, scentralizowanego zarządzania polityką, po rozszerzenie audytu licencji dla .NET i ulepszenie obsługi monorepozytorium dla Java i Kotlin, Qodana 2025.3 ułatwia utrzymanie jakości i bezpieczeństwa kodu w różnych zespołach, językach i repozytoriach. Przyjrzyjmy się bliżej nowościom.

Globalna konfiguracja projektu

Wprowadziliśmy obsługę globalnej konfiguracji projektu, która umożliwia użytkownikom Qodana kontrolowanie wszystkich ustawień linterów w jednym miejscu dla całej organizacji lub zespołu. Można ją również wykorzystać do egzekwowania najlepszych praktyk w całej firmie bez naruszania potrzeb konkretnego projektu.

Wcześniej dostosowanie lub dodanie reguły (np. zezwolenie na nową licencję lub zapewnienie określonego wzorca dla haseł zakodowanych na stałe) wymagało ręcznej aktualizacji profili we wszystkich repozytoriach.

Teraz, dzięki globalnej konfiguracji projektu, wprowadziliśmy sposób jednoczesnego stosowania określonych konfiguracji do analiz wybranych projektów i sprawiliśmy, że stosowanie tych ustawień jest bardzo łatwe.

Jak to działa?

Globalna konfiguracja projektu wykorzystuje dedykowane repozytorium, w którym organizacja może przechowywać wszystkie konfiguracje potrzebne do analizy. Konfiguracje te można uporządkować logicznie i odwoływać się do nich w celu ponownego wykorzystania.

Na przykład w poniższym przykładzie organizacja zdefiniowała profil „Base”, który zawiera uniwersalne standardy kodowania organizacji. Następnie „Zespół A” postanowił egzekwować te standardy przy użyciu Lombok w swoim kodzie Java, podczas gdy inne zespoły pozostawiły to jako opcjonalne.

W związku z tym „Zespół A” stworzył własną konfigurację, dziedzicząc „Bazę” i przypisując ją do swoich projektów. Tymczasem „Zespół B” zdecydował, że problemy związane z ich starszym projektem nie będą rozwiązywane, więc dziedziczyli „Bazę” i wyłączyli wszystkie zasady z wyjątkiem bezpieczeństwa.

Po powiązaniu projektu z konfiguracją globalną Qodana automatycznie stosuje ją przy następnym uruchomieniu. Konfiguracje i projekty, do których są one stosowane, można łatwo przeglądać i zarządzać nimi za pomocą naszego interfejsu użytkownika.

Szczegółowe instrukcje dotyczące konfiguracji repozytorium, synchronizacji z Qodana Cloud i łączenia projektów można znaleźć w Qodana Cloud → Ustawienia → Konfiguracje globalne lub w naszej dokumentacji.

Audyt licencji dla .NET

W tej wersji ulepszono silnik wykrywania licencji dla pakietów NuGet, który obecnie obsługuje pakiety zgodne ze specyfikacją Semantic Versioning 2.0.0. Oznacza to, że Qodana będzie w stanie wykrywać licencje w szerszym zakresie zależności i zapewniać dokładniejszy audyt licencji dla projektów .NET.

Ulepszona obsługa monorepozytoriów dla projektów Java/Kotlin

Domyślnie Qodana działa z plikiem projektu zdefiniowanym na poziomie głównym repozytorium. Ulepszyliśmy to zachowanie, aby obsługiwać monorepozytoria składające się z luźno powiązanych projektów, które nie są agregowane w jednym pliku projektu.

Jeśli Qodana nie wykryje pliku projektu na poziomie głównym, będzie rekurencyjnie zbierać projekty z podkatalogów i importować je do analizy.

Możliwe jest zastąpienie automatycznego wykrywania w qodana.yaml za pomocą nowej właściwości rootJavaProjects, która pozwala określić, które projekty powinny zostać uwzględnione w analizie. Na przykład:

rootJavaProjects:
 - "./gradleProject"
 - "./mavenModule/pom.xml"