Opinionated OCaml linter with Merlin integration for code quality, naming conventions, and style checks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

merlint: add cram test for E526 (implicit_transitive_deps not disabled)

+59
+1
test/cram/e526.t/bad/dune-project
··· 1 + (lang dune 3.21)
+1
test/cram/e526.t/bad/foo/dune-project
··· 1 + (lang dune 3.21)
+1
test/cram/e526.t/bad/foo/foo.opam
··· 1 + opam-version: "2.0"
+1
test/cram/e526.t/good/dune-project
··· 1 + (lang dune 3.21)
+2
test/cram/e526.t/good/foo/dune-project
··· 1 + (lang dune 3.21) 2 + (implicit_transitive_deps false)
+1
test/cram/e526.t/good/foo/foo.opam
··· 1 + opam-version: "2.0"
+52
test/cram/e526.t/run.t
··· 1 + Test bad example - foo/dune-project lacks (implicit_transitive_deps false): 2 + $ merlint -B -r E526 bad/ 3 + Running merlint analysis... 4 + 5 + Analyzing 0 files 6 + 7 + ✓ Code Quality (0 total issues) 8 + ✓ Code Style (0 total issues) 9 + ✓ Naming Conventions (0 total issues) 10 + ✓ Documentation (0 total issues) 11 + ✗ Project Structure (1 total issues) 12 + [E526] Package dune-project must disable implicit transitive deps (1 issue) 13 + Add (implicit_transitive_deps false) to <package>/dune-project (or 14 + (implicit_transitive_deps false-if-hidden-includes-supported) if you need to 15 + keep compatibility with OCaml < 5.2). Then audit each (libraries ...) clause 16 + to list any transitive deps the package actually uses directly. This makes 17 + (re_export ...) meaningful again and prevents deps from leaking into 18 + downstream opam depends via META requires. 19 + - (global) foo/dune-project is missing (implicit_transitive_deps false); transitive deps leak into downstream META requires and pollute consumers' opam depends 20 + ✓ Test Quality (0 total issues) 21 + ✓ Interop Testing (0 total issues) 22 + ✓ Code Generation (0 total issues) 23 + 24 + ╭───────────────────┬────────────────────────────────────────────────────────╮ 25 + │ Category │ Issues │ 26 + ├───────────────────┼────────────────────────────────────────────────────────┤ 27 + │ Project Structure │ 1 (1 package dune-project must disable implicit │ 28 + │ │ transitive deps) │ 29 + ╰───────────────────┴────────────────────────────────────────────────────────╯ 30 + 31 + 32 + Summary: ✗ 1 total issue (applied 1 rule) 33 + ✗ Some checks failed. See details above. 34 + [1] 35 + 36 + Test good example - foo/dune-project sets (implicit_transitive_deps false): 37 + $ merlint -B -r E526 good/ 38 + Running merlint analysis... 39 + 40 + Analyzing 0 files 41 + 42 + ✓ Code Quality (0 total issues) 43 + ✓ Code Style (0 total issues) 44 + ✓ Naming Conventions (0 total issues) 45 + ✓ Documentation (0 total issues) 46 + ✓ Project Structure (0 total issues) 47 + ✓ Test Quality (0 total issues) 48 + ✓ Interop Testing (0 total issues) 49 + ✓ Code Generation (0 total issues) 50 + 51 + Summary: ✓ 0 total issues (applied 1 rule) 52 + ✓ All checks passed!