leanprover-community / leanprover-community/queueboard-core

Make dashboard generation project-agnostic

Open
#24 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement prio:low
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

  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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.