Page MenuHomePhabricator

Clarify csharp linter requirements
Closed, WontfixPublic

Description

The documentation is very sparse for the C# linter. In fact, the only place I've been able to find any information is this stack overflow question. This also does not cover what the discovery map is, why it's necessary, and how to build one. Please add details in the documentation as how to install this linter properly and create its .arclint entry.

Event Timeline

lavahot raised the priority of this task from to Needs Triage.
lavahot updated the task description. (Show Details)
lavahot added a subscriber: lavahot.

The discovery map is something that looks like this:

"unit.csharp.discovery": {
  "([^/]+)/(.*?)\\.cs": [
    [ "$1.Tests/$1.Tests.Linux.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ],
    [ "$1.Tests/$1.Tests.Windows.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ]
  ],
  "([^\\\\]+)\\\\(.*?)\\.cs": [
    [ "$1.Tests\\$1.Tests.Windows.csproj", "$1.Tests\\bin\\Debug\\$1.Tests.dll" ]
  ],
  "([^/]+)\\.Tests/(.*?)\\.cs": [
    [ "$1.Tests/$1.Tests.Linux.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ],
    [ "$1.Tests/$1.Tests.Windows.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ]
  ],
  "([^\\\\]+)\\.Tests\\\\(.*?)\\.cs": [
    [ "$1.Tests\\$1.Tests.Windows.csproj", "$1.Tests\\bin\\Debug\\$1.Tests.dll" ]
  ]
}

It is a mapping of changed C# files, to the projects to build and their output assemblies that should be tested.

hach-que claimed this task.

cslint is deprecated, see T8978.