kernelci / kernelci/dashboard

[#2079] Add commits and commit_parents tables

Open
#2,089 3 comments 0 reactions 1 assignee View on GitHub

@alanpeixinho is already working on this.

Since Sep 10, 2026.

Backend Data Quality Database enhancement
Dominant language
Python
Stars
9
Forks
31
Avg merge
3d 19h
Merged PRs (30d)
16

Description

Parent

https://github.com/kernelci/dashboard/issues/2079

checkouts is a CI submission, not a git object. Author, committer, subject, and parents belong on a commit row keyed by hash. Same hash can appear on many checkouts.

This issue is schema only (Django models + migration). No git fetch and no job to fill the tables.

commits

Column Notes
id Big serial, PK (cheap FKs later)
git_commit_hash text, unique, not null
author_name, author_email, author_date nullable (timestamptz for date)
committer_name, committer_email, committer_date nullable
subject first line of the message, nullable
message full message, nullable

No fetched_from_url: the repo we read from is a property of the fetch, not of the commit (#2079 discussion).

Do not add these columns onto checkouts.

Ingest (#2109) writes in topological order, so parent rows exist before edges. No stub rows (hash-only parent inserted just to satisfy the FK).

Parents: commit_parents

Locked. Do not add a parent_hashes array on commits.

Column Notes
commit_id FK → commits.id (child)
parent_id FK → commits.id (parent)
ord smallint; 0 = first parent

Unique (commit_id, ord).

  • First-parent walk and merge check (ord > 0 / count > 1) are normal joins
  • Integrity: parent row must exist (guaranteed by topo ingest, not by stubs)

Same DB as Checkouts. Follow existing db_table / index naming.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.