Monorepo management for opam overlays
0
fork

Configure Feed

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

monopam/lint: stop hiding sibling missing deps; declare them

Treating sibling packages in the same subtree as automatically present
masked real opam-side gaps: \`dune build -p X\` only sees X's depends,
so a sibling used as a library must still be declared. With the filter
removed, lint surfaces three real cases:

- ocaml-did: did.resolve uses did-web/did-plc but did.opam didn't say so
- ocaml-atp: tangled/bsky/standard-site libs use xrpc-auth and tangled
also uses atp-lexicon-atproto, none declared
- ocaml-requests: ocurl exec uses nox-tty/vlog (only surfaced now that
the previous commit attributes (executables ...) deps to a package)

Each of those depends gets the missing entry.

+7 -5
+7 -5
lib/lint.ml
··· 592 592 if is_builtin lib then acc 593 593 else 594 594 let pkg = lib_to_package index lib in 595 - if String_set.mem pkg own_set then acc 596 - else String_set.add pkg acc) 595 + if pkg = pkg_name then acc else String_set.add pkg acc) 597 596 String_set.empty required_libs 598 597 in 599 598 (pkgs, true) 600 599 in 601 600 (* Fallback source when META is absent (build failed for this -p build): 602 601 libraries referenced from this opam's own (library)/(executable) stanzas, 603 - minus sibling packages. Private stanzas (tests, anonymous libs) carry no 604 - package ownership and are excluded. *) 605 - let dune_self = String_set.diff (dune_owner_pkgs pkg_name) own_set in 602 + minus the package itself. Sibling packages in the same subtree are NOT 603 + filtered out — `dune build -p X` only sees X's opam depends, so a sibling 604 + used as a library must still be declared. Private stanzas (tests, 605 + anonymous libs) carry no package ownership and are excluded by the 606 + dune_packages_by_owner pre-filter. *) 607 + let dune_self = String_set.remove pkg_name (dune_owner_pkgs pkg_name) in 606 608 let required_pkgs = String_set.union meta_pkgs dune_self in 607 609 let missing = 608 610 String_set.fold