Skip to content

opam: declare conflict-class in the in-tree coq-bbv.opam - #59

Open
JasonGross wants to merge 1 commit into
mit-plv:masterfrom
theorem-labs:claude/opam-conflict-class
Open

opam: declare conflict-class in the in-tree coq-bbv.opam#59
JasonGross wants to merge 1 commit into
mit-plv:masterfrom
theorem-labs:claude/opam-conflict-class

Conversation

@JasonGross

@JasonGross JasonGross commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Same one-line fix as mit-plv/coqutil: the coq-bbv package file in the
rocq-extra-dev opam repository declares

conflict-class: [ "coq-bbv" ]

but the in-tree coq-bbv.opam does not. When bbv is opam pinned to a git
URL, opam uses the in-tree file in place of the repository's one — wholesale,
not merged — so the declaration disappears and bbv can be co-installed with a
package that vendors it.

conflict-class is symmetric-by-membership, so a single side declaring it
protects nothing. The failure mode is a silent overwrite of shared
user-contrib/ paths, surfacing much later as
makes inconsistent assumptions over library ... in an unrelated dependent.

This is latent for bbv today rather than actively broken — it bites on the
first pin — but it is the same defect and the same one-field fix. opam lint
reports no new warnings (the pre-existing synopsis-capitalisation warning is
untouched).

Authorship note: this was researched and written by an AI coding agent
(Anthropic Claude), working on Jason Gross's behalf; Jason reviews what is
posted from this account.

The rocq-extra-dev package file declares conflict-class ["coq-bbv"], but
the in-tree opam file does not.  Pinning to a git URL makes opam use the
in-tree file in place of the repository's, wholesale, so the declaration is
silently dropped and the package can be co-installed with one that vendors
it.  conflict-class is symmetric-by-membership, so one-sided declarations
protect nothing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L9BGQT7XUuubV6C619DW4b
@JasonGross
JasonGross marked this pull request as draft July 28, 2026 05:43
@JasonGross
JasonGross marked this pull request as ready for review July 28, 2026 05:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant