Skip to content

Flaky CI: hilite.markdown not found on ubuntu — replace git pin with a released hilite #3759

Description

@cuihtlauac

Symptom

Intermittent failures of the ubuntu Build project step with:

File "tool/data-packer/lib/dune", line 17, characters 2-17:
Error: Library "hilite.markdown" not found.
make: *** [Makefile:9: all] Error 1

macOS is unaffected. It clears on a plain re-run. Seen at least twice:

The identical tree passes on a PR check and then fails on the follow-up main push, which points to an environmental/cache flake rather than a code problem.

Root cause

ocamlorg.opam depends on hilite via an unreleased git pin:

"hilite" {>= "0.6.0"}
...
pin-depends: [
  [ "hilite.0.6.0" "git+https://github.com/patricoferris/hilite#f5368558f765ff6c884fda68acf4d4e9256970b4" ]
]

But there is no hilite 0.6.0. The latest release in ocaml/opam-repository is 0.5.0, and upstream has no 0.6.0/v0.6.0 tag. The pinned commit f5368558 is v0.5.0 + 17 commits and adds the MDX mode to hilite's markdown backend (src/markdown/*) — i.e. the hilite.markdown sublibrary that tool/data-packer/lib/dune consumes. The pin was introduced in #3593 ("Use Hilite's new ocaml-mdx support").

Building a git-pinned package in CI is cache-fragile: the git source is re-fetched/re-resolved rather than restored from an immutable, content-addressed tarball, so hilite.markdown occasionally isn't present at dune build time.

Proposed fix

  1. Cut a proper hilite 0.6.0 release to ocaml/opam-repository, containing the MDX markdown backend (v0.5.0..f5368558). This is an upstream action by the hilite maintainer (patricoferris).
  2. Once released, drop the git pin here: remove the pin-depends entry for hilite.0.6.0 and keep hilite {>= "0.6.0"} resolving from opam-repository.

That makes the build reproducible and removes the flake.

Workaround until then

Re-run the failed ubuntu job (gh run rerun <id> --failed).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    • Status
      📋 Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions