configuration/quality/data/surface.data.json
configuration/quality/data/surface.data.json is a file in GovLab Quality. 156 lines of code and 0 definitions.
{
"surfaces": [
{
"id": "layout",
"ownerByLanguage": {
"typescript": "prettier",
"python": "ruff-format",
"rust": "rustfmt",
"go": "gofmt",
"cpp": "clang-format"
},
"fixedOwners": ["go"],
"alternatives": {"typescript": ["biome"],
"python": ["black"]}
},
{
"id": "import-order",
"ownerByLanguage": {"typescript": "eslint",
"python": "ruff",
"rust": "rustfmt",
"go": "gofmt"},
"fixedOwners": [],
"alternatives": {"typescript": ["prettier"],
"go": ["goimports"]}
},
{
"id": "unused-symbols",
"ownerByLanguage": {
"typescript": "tsc",
"python": "ruff",
"rust": "rustc",
"go": "compiler",
"cpp": "clang-tidy"
},
"fixedOwners": ["go"],
"alternatives": {"typescript": ["eslint"]}
},
{
"id": "complexity",
"ownerByLanguage": {
"typescript": "eslint",
"python": "ruff",
"rust": "clippy",
"go": "golangci-lint",
"cpp": "clang-tidy"
},
"fixedOwners": [],
"advisoryOwners": ["rust"],
"alternatives": {}
}
],
"conflicts": [
{
"kind": "ownership-overlap",
"surface": "layout",
"tools": [
"prettier",
"eslint"
],
"lang": "typescript",
"resolution": "prettier owns layout; disable the eslint stylistic rules (eslint-config-prettier)"
},
{
"kind": "ownership-overlap",
"surface": "layout",
"tools": [
"prettier",
"biome"
],
"lang": "typescript",
"resolution": "both are formatters; pick one owner"
},
{
"kind": "ownership-overlap",
"surface": "layout",
"tools": [
"black",
"ruff-format"
],
"lang": "python",
"resolution": "both format; pick one owner (ruff is a black drop-in)"
},
{
"kind": "ownership-overlap",
"surface": "import-order",
"tools": [
"isort",
"ruff"
],
"lang": "python",
"resolution": "both sort imports; pick one owner"
},
{
"kind": "ownership-overlap",
"surface": "unused-symbols",
"tools": [
"tsc",
"eslint"
],
"lang": "typescript",
"resolution": "both report unused; pick one owner"
},
{
"kind": "unsatisfiable-on-fixed",
"canonicalId": "indent-style",
"value": "space",
"tool": "gofmt",
"lang": "go",
"resolution": "gofmt mandates tabs; canonical space is unsatisfiable"
},
{
"kind": "unsatisfiable-on-fixed",
"canonicalId": "indent-size",
"value": 2,
"tool": "black",
"lang": "python",
"resolution": "black fixes indent at 4 spaces"
},
{
"kind": "unsatisfiable-on-fixed",
"canonicalId": "quote-style",
"value": "single",
"tool": "black",
"lang": "python",
"resolution": "black forces double; skip-string-normalization only preserves existing"
},
{
"kind": "unsatisfiable-on-fixed",
"canonicalId": "line-length",
"value": "any",
"tool": "gofmt",
"lang": "go",
"resolution": "gofmt has no width knob"
},
{
"kind": "known-bad-pair",
"tools": [
"prettier",
"eslint"
],
"surface": "layout",
"lang": "typescript",
"resolution": "prettier printWidth (soft) at the same number as a hard max-len linter: set the linter above the soft target or disable it (ownership)"
},
{
"kind": "known-bad-pair",
"tools": [
"isort",
"black"
],
"surface": "import-order",
"lang": "python",
"resolution": "isort profile = black reconciles import wrapping"
}
]
}