Skip to content

Releases: SonarSource/sonar-dotnet

9.32

14 Aug 09:00
cc0ba76
Compare
Choose a tag to compare

This rule includes the promotion of 4 rules to Sonar-way, the deprecation of 1 rule and 2 FP fixes.

Rule Promotions and Deprecations

False Positive

  • 9590 - [C#] Fix S6966 FP: EntityFrameworks IDbContextFactory CreateDbContext method is preferred over its Async counterpart
  • 8300 - [C#] Fix S3431 FP: Don't raise if assertions are done in catch or finally

9.31

06 Aug 13:39
b0e8a3f
Compare
Choose a tag to compare

This release focuses on improving the SonarQube plugin for the .NET analyzers.

Improvements

  • 9558 - SQ Plugin: Load STIG standard after ACOMMONS-11 is done
  • 8503 - SQ Plugin: Align logging for not indexed files
  • 7798 - SQ Plugin: Remove the sonar runtime checks for versions prior 9.9
  • 7115 - SQ Plugin: Replace org.sonar.api.utils.log.Logger
  • 4687 - SQ Plugin: Add xunit report paths in products UI
  • 4685 - SQ Plugin: Remove deprecated import of integration test coverage from plugins
  • 3102 - SQ Plugin: Replace usages of deprecated Build.setProfile in the integration tests
  • 8032 - SQ Plugin: Update the plugin to store the hash for the .cshtml files to enable incremental PR analysis

9.30

23 Jul 08:20
78d3ae4
Compare
Choose a tag to compare

Hello, everyone. In this release, we worked on hardening our live variable analysis, which improved the analyzer's accuracy.

False Positives

  • 9473 - Fix S1854 FP: Raises when a variable is reassigned in a using body after it has been already assigned in using statement
  • 9472 - Fix S1854 FP: Raises when a variable is assigned in the switch statement and not used in the first case
  • 9471 - Fix S1854 FP: Raises when a variable is assigned in expression that is part of the ternary condition
  • 9468 - Fix S1854 FP: Throw should connect to outer catch
  • 9466 - Fix S1854 FP: Throw should visit finally

9.29

12 Jul 09:41
8841016
Compare
Choose a tag to compare

This release includes a lot of false positive and false negative fixes.

Improvements

  • 2120 - [C#] Improve S3247: Rule should recommend pattern matching for new C# instead of as
  • 9465 - Update RSPEC before 9.29 release

False Positive

  • 7522 - [C#] Fix S1104 FP: Do not report in Unity3D serializable classes
  • 6990 - [C#] Fix S1144 FP: Event with a concrete sender
  • 3842 - [C#] Fix S1144 FP: Ignore unused Deconstruct methods
  • 8239 - [C#] Fix S1450 FP: When field is assigned value in event handler
  • 9494 - [C#] Fix S1694 FP: Abstract class with field or constructor
  • 9421 - [C#] Fix S1694 FP: Protected abstract methods
  • 3605 - [C#] Fix S2219 FP: Is operator used for pattern matching
  • 8266 - [C#] Fix S2259 FP: SE engine doesn't take into account element existence collection methods
  • 9485 - [C#] Fix S3247 FP: Should not report on member access objects
  • 6343 - [C#] Fix S3963 FP: Static constructor with conditional and no static field initialization
  • 7961 - [C#, VB.NET] Fix S2699 FP: Support Moq

False Negative

  • 9491 - [C#] Fix S3247 FN: When cast expression contains parentheses
  •   223 - [C#] Fix S3247 FN: Rule should catch more duplicated cast

9.28

26 Jun 15:32
242b97c
Compare
Choose a tag to compare

False Positive

  • 9432 - [C#] Fix S1144 FP: Unused fields in class with StructLayout when struct is in deep hierarchy class
  • 9379 - [C#] Fix S1144 FP: Diagnostic doesn't respect reflection with DynamicallyAccessedMembers attribute
  • 8342 - [C#] Fix S1144 FP: Private Attributes
  • 7068 - [C#] Fix S4144 FP: when type constraints are used
  • 3050 - [C#] Fix S1479 FP: Single line case clause should be ignored
  • 9447 - [C#] Fix S1854 FP: Value used in catch or when should LiveIn for all try blocks
  • 9440 - [C#] Fix S1854 FP: Value used in finally should LiveIn for all try blocks
  • 4948 - [C#] Fix S1854 FP: Value used in finally should LiveIn after throw
  • 6894 - [C#, VB.NET] Fix S3878 FP: When non-object array is passed to object[] params as first argument
  • 6893 - [C#, VB.NET] Fix S3878 FP: when a params argument is named

False Negative

  • 8719 - [C#, VB.NET] Fix S2583/S2589 FN: try-catch in loop, LVA purges symbol prematurely
  • 4940 - [C#] Fix S1854 FN: Proper support of try/catch statements
  • 1255 - [C#] Fix S1871 FN: Support single line conditional block

9.27

11 Jun 10:00
f6dd2dc
Compare
Choose a tag to compare

This release includes a ton of false positive and false negative fixes. We would also like to thank @sagi1623 for his contribution in #8464, which fixed three issues 🚀.

Improvements

  • RSPEC change - Rule S1694: Promoted to SonarWay
  • 9390 - Rule S6608: Benchmark is benchmarking the wrong things
  • 8795 - [C#] Improve S1694: Remove part about protected constructor
  • 5417 - Enable multiple project level issues
  • 9372 - Update RSPEC before 9.27 release

False Positive

  • 9247 - [C#] Fix S2629 FP: Constant fields in interpolated string
  • 9241 - [C#, VB.NET] Fix S2094 FP: Allow empty queries
  • 9106 - [C#] Fix S3459 FP: Backing field with ref property
  • 8522 - [C#, VB.NET] Fix S3220 FP: Rule does not take into account generics
  • 8436 - [C#] Fix S3253 FP: Don't raise for primary constructor in type declarations without parameters when they inherit from types with parameters
  • 8199 - [C#, VB.NET] Fix S2737 FP: Raised when exception filter is used
  • 8025 - [C#] Fix S2325 FP: Partial method implementations
  • 7521 - [C#] Fix S2743 FP: Should not raise when base type is generic
  • 7137 - [VB.NET] Fix S1654 FP: Do not report on event handlers, interfaces and overrides

False Negative

  • 9002 - [C#, VB.NET] Fix S6931 FN: Route templates starting with ~/
  • 6644 - [C#] Fix S2190 FN: No issues raised if recursion is inside an EventDeclaration by @sagi1623
  • 6643 - [C#] Fix S2190 FN: No issues raised if recursion is inside a ConversionOperatorDeclaration by @sagi1623
  • 6642 - [C#] Fix S2190 FN: No issues raised if recursion is inside an indexer by @sagi1623
  • 4081 - [C#] Fix S2743 FN: Static fields of nested class inside generic class

9.26

31 May 11:42
e26370e
Compare
Choose a tag to compare

New Rules

  • 8871 - [C#] New rule S6932: Use model binding instead of reading raw request data
  • 8992 - [C#] New rule S4347: Secure random number generators must not output predictable values
  • 8996 - [C#] New rule S6781: JWT secret keys should not be disclosed
  • 8982 - [C#] New rule S6377: XML signatures should be verified securely
  • 8998 - [C#] New rule S5344: Passwords should not be stored in plain-text or with a fast hashing algorithm

Bug Fixes

  • 8577 - Fix S2234 Bug: AD0001 is thrown due to referencing a location outside of the current compilation

Improvements

  • 9282 - [C#] S6964: Issue is reported on the attribute instead of the property

False Positive

  • 9360 - [C#] Fix S6964 FP: Properties decorated with the [BindNever] attribute
  • 9337 - [C#] Fix S6964 FP: Add more attributes to the exclusions
  • 9336 - [C#] Fix S6966 FP: Don't raise on XmlReader and XmlWriter methods
  • 9331 - [C#] Fix S6964 FP: Property with a default value
  • 9285 - [C#] Fix S6964 FP: Do not raise in properties with required modifier
  • 9284 - [C#] Fix S6964 FP: Should not raise for reference properties in nullable context
  • 9275 - [C#] Fix S6964 FP: Don't raise on properties annotated with the JsonRequiredAttribute
  • 9269 - [C#] Fix S6966 FP: EntityFrameworks DbContext/DBSet Add/AddRange methods are preferred over their Async counterpart
  • 9265 - [C#] Fix S6966 FP: MongoDB Find can not be replaced by FindAsync
  • 9252 - [C#] Fix S6934 FP: Abstract Controller base class
  • 8985 - [C#] Fix S6934 FP: Attributes implementing IRouteTemplateProvider or inheriting from RouteAttribute

False Negative

  • 9263 - [C#] Fix S6964 FN: Rule should raise in case of value type property annotated with RequiredAttribute

9.25.1

23 May 10:12
bb8738a
Compare
Choose a tag to compare

The latest Roslyn compiler version changes the way Razor files are compiled, and this hotfix release takes care of these changes. For more information check this issue.

Bug Fixes

  • 9288 - [C#] Metrics analyzer for Razor: Lines of code are outside the range of the file

9.25

06 May 13:58
75e3904
Compare
Choose a tag to compare

Hello everyone,

This release comes with seven new rules for ASP.NET core alongside some improvements.
Enjoy!

New Rules

  • 9096 - [C#] New Rule S6966: Awaitable method should be used
  • 9095 - [C#] New Rule S6967: ModelState.IsValid should be called in controller actions
  • 9094 - [C#] New Rule S6964: The value type properties of a model class should be nullable or marked as "Required" to avoid under-posting.
  • 9093 - [C#] New rule S6968: Actions that return a value should be annotated with ProducesResponseTypeAttribute containing the return type
  • 9092 - [C#] New rule S6965: You should use HttpAttribute in API controller actions
  • 9091 - [C#] New rule S6962: You should pool HTTP connections with HttpClientFactory
  • 9089 - [C#] New rule S6960: Controllers should not have too many responsibilities

Bug Fixes

  • 9193 - Fix AD0001: Named Attribute Arguments in S6930

False Positive

  • 9219 - [C#] Fix S1144 FP: Getters/Setters of property with attribute are being flagged

Improvements

  • 9187 - Update RSPEC before 9.25 release
  • 9186 - [C#] Rule S6961: Implement CodeFix

Rule deprecations and deletions

9.24

24 Apr 08:40
eaaf96a
Compare
Choose a tag to compare

Hey everyone,
This release contains one new ASP.NET Rule (S6961) and several general improvements and fixes. Enjoy!

Improvements

  • 9090 - [C#] New rule S6961 for C#: API Controllers should derive from ControllerBase instead of Controller
  • 8696 - Fix coverage aggregation from multiple reports
  • 9048 - Create SonarAnalyzer.CSharp.Styling project
  • 7774 - [C#, VB.NET] Fix S1144: Nested type constructor accessibility is wrong in the rule message
  • 8980 - Update RSPEC before 9.24 release

Bug Fixes

  • 9113 - [C#, VB.NET] AD0001: ArgumentNullException in SymbolicExecutionRunner
  • 8977 - [C#] CfgAllPathValidator AreAllSuccessorsValid Stack Overflow on Windows and error MSB6006 in Linux Codespaces

False Positive

  • 9063 - [C#, VB.NET] Fix S2094 FP: Should not raise for messages
  • 9062 - [C#, VB.NET] Fix S2094 FP: Documentation using the DefaultDocumentation package
  • 7591 - [C#, VB.NET] Fix S2094 FP: Implicit parameterless constructor widens the scope of the base class constructor
  • 8163 - [C#, VB.NET] Fix S3878 FP: Jagged arrays

False Negative

  • 6724 - [C#, VB.NET] Fix S1144 FN: Unused private getters and private setters
  • 6699 - [C#] Fix S1144 FN: Unused local functions