Skip to content

Commit c99145a

Browse files
committed
release(v0.9.8): version-bump + release-notes finalisiert
Versionen 0.9.7 -> 0.9.8 in Code-Konstanten (SCA_VERSION), IDE-Plugin (PLUGIN_VERSION) und VerInfo-Keys aller dproj-Files. docs/releases/v0.9.8.{md,_de.md} mit neuer Top-Sektion 'Phase 1-4 + Hardening v3/v4 + FP-Reduction Sprint' aktualisiert - deckt die Lieferungen ueber den Phase-1-Plan hinaus ab: * DFM Resource-Wrapper-Format * AST Destroy Reentrancy-Fix * uFixHint Memoize-Cache * scan.log Phase-Tracking + Skip-Log * SCA017/SCA070/SCA019/SCA005 FP-Reduktion * FreeAndNil(Self.Field) Fix * MaxLineLength + MaxCaseBranches Konfig * Anfaenger-Build-Guide
1 parent c8547b3 commit c99145a

7 files changed

Lines changed: 128 additions & 76 deletions

File tree

SCA.Engine/sources/Common/uSCAConsts.pas

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,8 +621,8 @@ TConsts = record
621621
// (--version), im About-Dialog und in der Form-Caption verwendet.
622622
// VerInfo-Keys in den .dproj-Dateien muessen dazu passen
623623
// (FileVersion / ProductVersion = SCA_VERSION_FULL).
624-
SCA_VERSION = '0.9.7';
625-
SCA_VERSION_FULL = '0.9.7.0';
624+
SCA_VERSION = '0.9.8';
625+
SCA_VERSION_FULL = '0.9.8.0';
626626
SCA_RELEASE_DATE = '2026-05-27';
627627

628628
// Reihenfolge MUSS exakt mit TFindingKind uebereinstimmen.

StaticCodeAnalyserForm/StaticCodeAnalyser.d12.dproj

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,9 @@
7777
<VerInfo_Locale>1031</VerInfo_Locale>
7878
<VerInfo_MajorVer>0</VerInfo_MajorVer>
7979
<VerInfo_MinorVer>9</VerInfo_MinorVer>
80-
<VerInfo_Release>3</VerInfo_Release>
80+
<VerInfo_Release>4</VerInfo_Release>
8181
<VerInfo_Build>0</VerInfo_Build>
82-
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (Standalone);FileVersion=0.9.7.0;InternalName=StaticCodeAnalyser;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.exe;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.7.0;Comments=Release 0.9.7 (2026-06-01)</VerInfo_Keys>
83-
<DCC_MaxStackSize>33554432</DCC_MaxStackSize>
84-
<DCC_MinStackSize>4194304</DCC_MinStackSize>
82+
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (Standalone);FileVersion=0.9.8.0;InternalName=StaticCodeAnalyser;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.exe;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.8.0;Comments=Release 0.9.8 (2026-06-10)</VerInfo_Keys>
8583
</PropertyGroup>
8684
<PropertyGroup Condition="'$(Base_Win32)'!=''">
8785
<DCC_UsePackage>vclwinx;fmx;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;FireDACCommonODBC;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;bindcompfmx;inetdb;FireDACSqliteDriver;DbxClientDriver;soapmidas;vclactnband;fmxFireDAC;dbexpress;DBXMySQLDriver;VclSmp;inet;vcltouch;fmxase;dbrtl;Skia.Package.FMX;fmxdae;FireDACMSAccDriver;CustomIPTransport;vcldsnap;DBXInterBaseDriver;IndySystem;Skia.Package.VCL;vcldb;vclFireDAC;bindcomp;FireDACCommon;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;adortl;vclimg;FireDACPgDriver;FireDAC;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;fmxobj;bindcompvclsmp;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)</DCC_UsePackage>
@@ -90,9 +88,9 @@
9088
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
9189
<VerInfo_MajorVer>0</VerInfo_MajorVer>
9290
<VerInfo_MinorVer>9</VerInfo_MinorVer>
93-
<VerInfo_Release>3</VerInfo_Release>
91+
<VerInfo_Release>4</VerInfo_Release>
9492
<VerInfo_Build>0</VerInfo_Build>
95-
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (Standalone);FileVersion=0.9.7.0;InternalName=StaticCodeAnalyser;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.exe;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.7.0;Comments=Release 0.9.7 (2026-06-01)</VerInfo_Keys>
93+
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (Standalone);FileVersion=0.9.8.0;InternalName=StaticCodeAnalyser;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.exe;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.8.0;Comments=Release 0.9.8 (2026-06-10)</VerInfo_Keys>
9694
<VerInfo_Locale>1033</VerInfo_Locale>
9795
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
9896
</PropertyGroup>
@@ -103,9 +101,9 @@
103101
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
104102
<VerInfo_MajorVer>0</VerInfo_MajorVer>
105103
<VerInfo_MinorVer>9</VerInfo_MinorVer>
106-
<VerInfo_Release>3</VerInfo_Release>
104+
<VerInfo_Release>4</VerInfo_Release>
107105
<VerInfo_Build>0</VerInfo_Build>
108-
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (Standalone);FileVersion=0.9.7.0;InternalName=StaticCodeAnalyser;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.exe;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.7.0;Comments=Release 0.9.7 (2026-06-01)</VerInfo_Keys>
106+
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (Standalone);FileVersion=0.9.8.0;InternalName=StaticCodeAnalyser;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.exe;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.8.0;Comments=Release 0.9.8 (2026-06-10)</VerInfo_Keys>
109107
<VerInfo_Locale>1033</VerInfo_Locale>
110108
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
111109
</PropertyGroup>

StaticCodeAnalyserForm/sources/Console/uConsoleRunner.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ implementation
133133
function ApplyFailOnPolicy(Raw: Integer; const FailOn: string): Integer; forward;
134134

135135
const
136-
SCA_VERSION = '0.9.7';
136+
SCA_VERSION = '0.9.8';
137137
SCA_TOOLNAME = 'StaticCodeAnalyser';
138138

139139
{ ---- Args-Parser ---- }

StaticCodeAnalyserIDE/StaticCodeAnalyser.IDE.d12.dproj

Lines changed: 2 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -15,36 +15,6 @@
1515
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
1616
<Base>true</Base>
1717
</PropertyGroup>
18-
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
19-
<Base_Android>true</Base_Android>
20-
<CfgParent>Base</CfgParent>
21-
<Base>true</Base>
22-
</PropertyGroup>
23-
<PropertyGroup Condition="('$(Platform)'=='Android64' and '$(Base)'=='true') or '$(Base_Android64)'!=''">
24-
<Base_Android64>true</Base_Android64>
25-
<CfgParent>Base</CfgParent>
26-
<Base>true</Base>
27-
</PropertyGroup>
28-
<PropertyGroup Condition="('$(Platform)'=='iOSDevice64' and '$(Base)'=='true') or '$(Base_iOSDevice64)'!=''">
29-
<Base_iOSDevice64>true</Base_iOSDevice64>
30-
<CfgParent>Base</CfgParent>
31-
<Base>true</Base>
32-
</PropertyGroup>
33-
<PropertyGroup Condition="('$(Platform)'=='iOSSimARM64' and '$(Base)'=='true') or '$(Base_iOSSimARM64)'!=''">
34-
<Base_iOSSimARM64>true</Base_iOSSimARM64>
35-
<CfgParent>Base</CfgParent>
36-
<Base>true</Base>
37-
</PropertyGroup>
38-
<PropertyGroup Condition="('$(Platform)'=='OSX64' and '$(Base)'=='true') or '$(Base_OSX64)'!=''">
39-
<Base_OSX64>true</Base_OSX64>
40-
<CfgParent>Base</CfgParent>
41-
<Base>true</Base>
42-
</PropertyGroup>
43-
<PropertyGroup Condition="('$(Platform)'=='OSXARM64' and '$(Base)'=='true') or '$(Base_OSXARM64)'!=''">
44-
<Base_OSXARM64>true</Base_OSXARM64>
45-
<CfgParent>Base</CfgParent>
46-
<Base>true</Base>
47-
</PropertyGroup>
4818
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
4919
<Base_Win32>true</Base_Win32>
5020
<CfgParent>Base</CfgParent>
@@ -91,39 +61,15 @@
9161
<DCC_CBuilderOutput>All</DCC_CBuilderOutput>
9262
<SanitizedProjectName>StaticCodeAnalyser_IDE_d12</SanitizedProjectName>
9363
</PropertyGroup>
94-
<PropertyGroup Condition="'$(Base_Android)'!=''">
95-
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
96-
<EnabledSysJars>activity-1.7.2.dex.jar;annotation-experimental-1.3.0.dex.jar;annotation-jvm-1.6.0.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-6.0.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.10.1.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.10.1.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.1.dex.jar;lifecycle-livedata-2.6.1.dex.jar;lifecycle-livedata-core-2.6.1.dex.jar;lifecycle-runtime-2.6.1.dex.jar;lifecycle-service-2.6.1.dex.jar;lifecycle-viewmodel-2.6.1.dex.jar;lifecycle-viewmodel-savedstate-2.6.1.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.1.0.dex.jar;play-services-basement-18.1.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.0.2.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar</EnabledSysJars>
97-
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage>
98-
</PropertyGroup>
99-
<PropertyGroup Condition="'$(Base_Android64)'!=''">
100-
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
101-
<EnabledSysJars>activity-1.7.2.dex.jar;annotation-experimental-1.3.0.dex.jar;annotation-jvm-1.6.0.dex.jar;annotations-13.0.dex.jar;appcompat-1.2.0.dex.jar;appcompat-resources-1.2.0.dex.jar;billing-6.0.1.dex.jar;biometric-1.1.0.dex.jar;browser-1.4.0.dex.jar;cloud-messaging.dex.jar;collection-1.1.0.dex.jar;concurrent-futures-1.1.0.dex.jar;core-1.10.1.dex.jar;core-common-2.2.0.dex.jar;core-ktx-1.10.1.dex.jar;core-runtime-2.2.0.dex.jar;cursoradapter-1.0.0.dex.jar;customview-1.0.0.dex.jar;documentfile-1.0.0.dex.jar;drawerlayout-1.0.0.dex.jar;error_prone_annotations-2.9.0.dex.jar;exifinterface-1.3.6.dex.jar;firebase-annotations-16.2.0.dex.jar;firebase-common-20.3.1.dex.jar;firebase-components-17.1.0.dex.jar;firebase-datatransport-18.1.7.dex.jar;firebase-encoders-17.0.0.dex.jar;firebase-encoders-json-18.0.0.dex.jar;firebase-encoders-proto-16.0.0.dex.jar;firebase-iid-interop-17.1.0.dex.jar;firebase-installations-17.1.3.dex.jar;firebase-installations-interop-17.1.0.dex.jar;firebase-measurement-connector-19.0.0.dex.jar;firebase-messaging-23.1.2.dex.jar;fmx.dex.jar;fragment-1.2.5.dex.jar;google-play-licensing.dex.jar;interpolator-1.0.0.dex.jar;javax.inject-1.dex.jar;kotlin-stdlib-1.8.22.dex.jar;kotlin-stdlib-common-1.8.22.dex.jar;kotlin-stdlib-jdk7-1.8.22.dex.jar;kotlin-stdlib-jdk8-1.8.22.dex.jar;kotlinx-coroutines-android-1.6.4.dex.jar;kotlinx-coroutines-core-jvm-1.6.4.dex.jar;legacy-support-core-utils-1.0.0.dex.jar;lifecycle-common-2.6.1.dex.jar;lifecycle-livedata-2.6.1.dex.jar;lifecycle-livedata-core-2.6.1.dex.jar;lifecycle-runtime-2.6.1.dex.jar;lifecycle-service-2.6.1.dex.jar;lifecycle-viewmodel-2.6.1.dex.jar;lifecycle-viewmodel-savedstate-2.6.1.dex.jar;listenablefuture-1.0.dex.jar;loader-1.0.0.dex.jar;localbroadcastmanager-1.0.0.dex.jar;okio-jvm-3.4.0.dex.jar;play-services-ads-22.2.0.dex.jar;play-services-ads-base-22.2.0.dex.jar;play-services-ads-identifier-18.0.0.dex.jar;play-services-ads-lite-22.2.0.dex.jar;play-services-appset-16.0.1.dex.jar;play-services-base-18.1.0.dex.jar;play-services-basement-18.1.0.dex.jar;play-services-cloud-messaging-17.0.1.dex.jar;play-services-location-21.0.1.dex.jar;play-services-maps-18.1.0.dex.jar;play-services-measurement-base-20.1.2.dex.jar;play-services-measurement-sdk-api-20.1.2.dex.jar;play-services-stats-17.0.2.dex.jar;play-services-tasks-18.0.2.dex.jar;print-1.0.0.dex.jar;profileinstaller-1.3.0.dex.jar;room-common-2.2.5.dex.jar;room-runtime-2.2.5.dex.jar;savedstate-1.2.1.dex.jar;sqlite-2.1.0.dex.jar;sqlite-framework-2.1.0.dex.jar;startup-runtime-1.1.1.dex.jar;tracing-1.0.0.dex.jar;transport-api-3.0.0.dex.jar;transport-backend-cct-3.1.8.dex.jar;transport-runtime-3.1.8.dex.jar;user-messaging-platform-2.0.0.dex.jar;vectordrawable-1.1.0.dex.jar;vectordrawable-animated-1.1.0.dex.jar;versionedparcelable-1.1.1.dex.jar;viewpager-1.0.0.dex.jar;work-runtime-2.7.0.dex.jar</EnabledSysJars>
102-
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage>
103-
</PropertyGroup>
104-
<PropertyGroup Condition="'$(Base_iOSDevice64)'!=''">
105-
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
106-
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage>
107-
</PropertyGroup>
108-
<PropertyGroup Condition="'$(Base_iOSSimARM64)'!=''">
109-
<DCC_CBuilderOutput>None</DCC_CBuilderOutput>
110-
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage>
111-
</PropertyGroup>
112-
<PropertyGroup Condition="'$(Base_OSX64)'!=''">
113-
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage>
114-
</PropertyGroup>
115-
<PropertyGroup Condition="'$(Base_OSXARM64)'!=''">
116-
<DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage>
117-
</PropertyGroup>
11864
<PropertyGroup Condition="'$(Base_Win32)'!=''">
11965
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
12066
<BT_BuildType>Debug</BT_BuildType>
12167
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
12268
<VerInfo_MajorVer>0</VerInfo_MajorVer>
12369
<VerInfo_MinorVer>9</VerInfo_MinorVer>
124-
<VerInfo_Release>3</VerInfo_Release>
70+
<VerInfo_Release>4</VerInfo_Release>
12571
<VerInfo_Build>0</VerInfo_Build>
126-
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (IDE Plugin);FileVersion=0.9.7.0;InternalName=StaticCodeAnalyser.IDE;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.IDE.d12.bpl;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.7.0;Comments=Release 0.9.7 (2026-06-01)</VerInfo_Keys>
72+
<VerInfo_Keys>CompanyName=;FileDescription=Static Code Analysis Tool for Delphi (IDE Plugin);FileVersion=0.9.8.0;InternalName=StaticCodeAnalyser.IDE;LegalCopyright=;LegalTrademarks=;OriginalFilename=StaticCodeAnalyser.IDE.d12.bpl;ProductName=Static Code Analysis Tool for Delphi;ProductVersion=0.9.8.0;Comments=Release 0.9.8 (2026-06-10)</VerInfo_Keys>
12773
<VerInfo_Locale>1033</VerInfo_Locale>
12874
<DCC_UsePackage>SCA.SharedUI;SCA.Engine;vcl;rtl;vclwinx;$(DCC_UsePackage)</DCC_UsePackage>
12975
</PropertyGroup>
@@ -1092,12 +1038,6 @@
10921038
<ProjectRoot Platform="Win64x" Name="$(PROJECTNAME)"/>
10931039
</Deployment>
10941040
<Platforms>
1095-
<Platform value="Android">False</Platform>
1096-
<Platform value="Android64">False</Platform>
1097-
<Platform value="iOSDevice64">False</Platform>
1098-
<Platform value="iOSSimARM64">False</Platform>
1099-
<Platform value="OSX64">False</Platform>
1100-
<Platform value="OSXARM64">False</Platform>
11011041
<Platform value="Win32">True</Platform>
11021042
<Platform value="Win64">False</Platform>
11031043
<Platform value="Win64x">False</Platform>

StaticCodeAnalyserIDE/uIDEExpert.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ implementation
4141
PLUGIN_TITLE = 'Static Code Analysis';
4242
PLUGIN_DESC = 'Static Code Analysis Tool for Delphi - findings, ' +
4343
'metrics, leak detection, Sonar export.';
44-
PLUGIN_VERSION = 'v0.9.7';
44+
PLUGIN_VERSION = 'v0.9.8';
4545
PLUGIN_LICENSE = 'Freeware / Open Source';
4646

4747
// Resource-Namen aus branding\sca_branding.rc (BITMAP-Type).

docs/releases/v0.9.8.md

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,63 @@
1-
# Release 0.9.8 — Phase 1 Quick-Wins + Phase 4 begun
1+
# Release 0.9.8 — Phase 1-4 + Hardening v3/v4 + FP-Reduction Sprint
22

3+
**Released:** 2026-06-10
34
🇩🇪 [Deutsche Version](v0.9.8_de.md)
45

6+
This release closes the 0.9.8 development cycle that began on
7+
2026-06-02. Three layers of work landed on top of v0.9.7:
8+
9+
1. **Scanner-Qualität Phases 1-4** (since v0.9.7) — 13 quick-wins,
10+
confidence audit, A.5 `{$IFDEF}`-Awareness, SCA165 UnusedSuppression,
11+
Golden-Corpus regression suite, SARIF `partialFingerprints` for
12+
baseline diffs.
13+
2. **Hardening v3 + v4** (2026-06-07/08) — stack-overflow protection
14+
for deep ASTs (8 iterative-DFS detector refactors + 32 MB stack
15+
PE-patch), AST-Destroy reentrancy double-free fix, DFM
16+
resource-wrapper (`$FF $0A $00`) support, IDE-plugin Win32-OOM fix
17+
via FixHint memoize-cache, scan.log phase-tracking + skip-log.
18+
3. **FP-Reduction Sprint** (2026-06-09) — self-scan FPs in four style
19+
detectors reduced by 78% (67 → 15). Side-fix: `FreeAndNil(Self.Field)`
20+
with `Self.`-qualifier is now recognised as freeing.
21+
22+
Full real-world verification: 24 repos in
23+
`D:\git-sca-realworld\` scan in 411 s with **0 crashes** and produce
24+
1.055.283 findings at profile `strict`.
25+
26+
---
27+
28+
## TL;DR Highlights (delta over the original Phase 1-only plan)
29+
30+
- **DFM Resource-Wrapper-Format `$FF $0A $00`** now parses correctly —
31+
GExperts jumps from 0 to 1.084 DFM-findings, JVCL DFM-coverage roughly
32+
doubles. The previous code mis-classified these as text and silently
33+
emitted nothing.
34+
- **No more `EInvalidPointer`/SCA006 mid-scan crash** on second file
35+
via the AST-Destroy reentrancy bug fix (`5ecd498`).
36+
- **No more Win32 `EOutOfMemory`** in the IDE plugin's
37+
`HighlightAllFindingsInFile` at ≥100k findings — `TFixHintResolver`
38+
now caches by `(Kind, Severity)`.
39+
- **scan.log Phase-Tracking** — every `Analyseabbruch:` finding now
40+
reveals the last successful phase + current file in the log,
41+
replacing the old black box.
42+
- **scan.log skip-log** — ignored / excluded files appear with a reason
43+
instead of disappearing silently.
44+
- **4 style-detector FP-classes** killed without weakening real-bug
45+
detection: `SCA017 DebugOutput` (string-literal contents), `SCA070
46+
CommentedOutCode` (inline-doc + doc-block start), `SCA019 TodoComment`
47+
(detector-source mentions), `SCA005 FormatMismatch` (empty const
48+
resolve).
49+
- **FieldLeak-Detector**`FreeAndNil(Self.Field)` with `Self.`-
50+
qualifier is now recognised (USepa.pas repro).
51+
- **Two new configuration knobs**
52+
`[Detectors] MaxLineLength=N` (default 120) and
53+
`[Detectors] MaxCaseBranches=N` (default 10).
54+
- **Anfänger-Build-Guide**`HowTo_Build{,_de}.md` walks Delphi
55+
newcomers from IDE installation to first IDE-plugin scan.
56+
57+
---
58+
59+
## Earlier in the 0.9.8 cycle (the Phase 1 deliverables — still in this release)
60+
561
13 commits since v0.9.7. Phase 1 of
662
[Konzept_ScannerQualitaet.md](../../Konzept_ScannerQualitaet.md) is
763
complete (6/6 quick-wins); Phase 4 has begun with the A.3-Minimal

0 commit comments

Comments
 (0)