leanprover / leanprover/lean4

`lake graph`

Open
#2,760 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement Lake P-low
Dominant language
Lean
Stars
9.2k
Forks
990
Avg merge
1d 17h
Merged PRs (30d)
175

Description

As discussed previously in the Zulip it would be beneficial if Lake could output a graph representation of the dependencies it has discovered. In order to replace the Lake dependency in doc-gen4 it would need to contain:

  • The git hash of the Lean compiler used for this library which is IMO technically a dependency (doc-gen checks if this is equivalent to its own and outputs a warning if compiler versions don't match up since this could cause ABI issues etc.)
  • The git remote URLs of all dependencies
  • A map from dependency name to the modules they contain

Furthermore it also requires:

  • The contents of ws.root.srcDir and ws.leanSrcPath which I use to search the source files LeanInk should highlight.
  • A way to obtain Lake's search path

but afaik those are already covered by lake print-paths

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by examining the existing lake print-paths output and how lake graph is expected to expose dependency information for doc-gen4. Define what the graph must report: the Lean compiler git hash, dependency remotes, each dependency's modules, and the existing source and search paths; done means all listed data is obtainable through Lake.

Written by the indexing model from the issue text.

Assessment

Tech stack
git
Domain
cli, developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.