Write down some design notes
This commit is contained in:
parent
8b0e6fe268
commit
12ec8ac217
2 changed files with 31 additions and 0 deletions
30
README.md
30
README.md
|
|
@ -1,3 +1,33 @@
|
||||||
# tablejohn
|
# tablejohn
|
||||||
|
|
||||||
A tool to run benchmarks for a git repo and display their results.
|
A tool to run benchmarks for a git repo and display their results.
|
||||||
|
|
||||||
|
## Design notes
|
||||||
|
|
||||||
|
- A tablejohn instance tracks exactly one git repository.
|
||||||
|
- A tablejohn instance has exactly one sqlite db.
|
||||||
|
- Tablejohn does not clone or update repos, only inspect them.
|
||||||
|
- Tablejohn can inspect bare and non-bare repos.
|
||||||
|
- Server settings should go in a config file.
|
||||||
|
- Repo settings should go in the db and be managed via the web UI.
|
||||||
|
- Locally, tablejohn should just work™ without custom config.
|
||||||
|
- Run via `tablejohn <db> [<repo>]`
|
||||||
|
|
||||||
|
- The db contains...
|
||||||
|
- Known commits
|
||||||
|
- Runs and their measurements
|
||||||
|
- Queue of tasks (not-yet-run runs)
|
||||||
|
- Tracked branches (new commits are added to the queue automatically)
|
||||||
|
- Github commands
|
||||||
|
|
||||||
|
- Runners...
|
||||||
|
- Ping tablejohn instance regularly with their info?
|
||||||
|
- WS connection complex, but quicker to update
|
||||||
|
- Reserve tasks (for a limited amount of time 10 min?)
|
||||||
|
- Steal tasks based on time already spent on task
|
||||||
|
- Update server on tasks
|
||||||
|
- Maybe this is the same as reserving a task?
|
||||||
|
- Include last few lines of output
|
||||||
|
- Turn tasks into runs
|
||||||
|
- Handle errors sensibly
|
||||||
|
- Include full output (stdout and stderr), especially if task fails
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ async fn run() -> anyhow::Result<()> {
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.fallback(get(r#static::static_handler));
|
.fallback(get(r#static::static_handler));
|
||||||
|
// TODO Add text body to body-less status codes
|
||||||
|
|
||||||
axum::Server::bind(&"0.0.0.0:8000".parse().unwrap())
|
axum::Server::bind(&"0.0.0.0:8000".parse().unwrap())
|
||||||
.serve(app.into_make_service())
|
.serve(app.into_make_service())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue