leanprover-community / leanprover-community/queueboard-core
Make dashboard generation project-agnostic
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5
- Forks
- 9
- Avg merge
- 2h 58m
- Merged PRs (30d)
- 4
Description
@jcommelin raised the idea of making the dashboard generation to other projects, i.e. allowing other projects (on github, but perhaps also on other platforms) to re-use the same logic. In fact, the frontend of this project ("take a bunch of PR metadata and generate the dashboard webpage(s) from it") is pretty agnostic --- so this could be done!
The following is the current state of the various parts of the project front-end.
- util.py and ci_status.py are fully generic; nothing to do
- classify_pr_state.py contains the particular classification logic (which is somewhat mathlib-specific); perhaps this can be made configurable (see below)
- state_evolution.py has a mild mathlib dependency: it hard-codes the organisation name, and the "on_the_queue" methods assume there's a PRStatus variant
AwaitingReview - mathlib_dashboards.py is entirely mathlib-specific; could be replaced by a configuration file in the future
- compute_dashboard_prs.py: first half is mathlib-agnostic (100 lines); second half is mathlib-specific
- dashboard.py: first half is mathlib-agnostic (400 lines); webpage layout is project-specific for now
- generate_assignment_page.py is considered internal-only for now (but should not be hard to generalise if needed)
- send_zulip_dm.py: completely project-agnostic; currently unused, but could be used in
generate_assignment_page.py
(The files process.py and check-data-integrity.py are part of the backend, hence not relevant.)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review util.py, ci_status.py, classify_pr_state.py, state_evolution.py, mathlib_dashboards.py, compute_dashboard_prs.py, and dashboard.py to map the current generic and mathlib-specific boundaries. The issue does not define a specific implementation or acceptance test; completion would require an agreed configuration or architecture that lets other projects reuse dashboard generation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- frontend, web-dev
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100