CoolFace
Datasetpublic

marzoukbaig14/committed-train

Committed — Conventional Commits dataset Filtered (diff -> Conventional Commits message) pairs derived from CommitChronicle, for fine-tuning small models to write commit messages from a diff. Built by the Committed project. Schema Field Type Notes diff string The code diff for a single-file change. message string Normalized Conventional Commits subject line (the training target). reasoning_trace string | null Reserved for v2 (reasoning… See the full description on the dataset page: https://huggingface.co/datasets/marzoukbaig14/committed-train.

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
1likes125downloads
Dataset Card

Committed — Conventional Commits dataset

Filtered (diff -> Conventional Commits message) pairs derived from CommitChronicle, for fine-tuning small models to write commit messages from a diff. Built by the Committed project.

Schema

FieldTypeNotes
diffstringThe code diff for a single-file change.
messagestringNormalized Conventional Commits subject line (the training target).
reasoning_tracestring \nullReserved for v2 (reasoning distillation); always null here.
repostringSource repository (provenance).
licensestringSource repository's license (provenance).
languagestringProgramming language, identified by file extension.

Composition

SplitRows
train52,173
validation2,898
test2,898

Languages (identified by file extension):

LanguageRows%
TypeScript6,00010.4%
JavaScript6,00010.4%
Python6,00010.4%
Go6,00010.4%
Java6,00010.4%
Rust6,00010.4%
Shell4,2157.3%
C++3,7536.5%
PHP2,7084.7%
C2,4074.2%
C#2,1463.7%
Swift2,1293.7%
Kotlin1,8123.1%
Dart1,3702.4%
Ruby7501.3%
Elixir6791.2%

Commit types:

TypeRows%
fix28,36648.9%
feat7,70613.3%
chore5,95910.3%
test5,2149.0%
refactor5,0558.7%
docs2,4824.3%
ci1,3362.3%
style8681.5%
build5621.0%
perf4210.7%

How it was built

Starting from CommitChronicle, a commit is kept only if:

  • the subject line matches a relaxed Conventional Commits pattern (feat|fix|refactor|docs|test|chore|perf|style|build|ci, optional scope, optional breaking !), then normalized (lowercase type, doc -> docs, strip !, subject line only, trim, strip one trailing period);
  • the subject is 5-200 characters;
  • it touches exactly one file, and that file is a recognized code file by extension (the per-repo language attribute is ignored because it mislabels polyglot repos);
  • it is not a merge, revert, or bot commit (e.g. Dependabot, detected by message pattern);
  • the diff is at most 2048 tokens (Qwen3-1.7B tokenizer); over-cap diffs are dropped, not truncated.

The pool is then balanced (each language capped to 6,000 rows, languages with fewer than 500 rows dropped) and split 90/5/5 train/validation/test, stratified by commit type so each split preserves the type distribution.

Provenance & license

Each row keeps its source repo and license. CommitChronicle aggregates permissively-licensed repositories (MIT, Apache-2.0, BSD-3-Clause); this derivative is redistributed under those source terms. Please cite CommitChronicle and its paper:

Eliseeva et al., From Commit Message Generation to History-Aware Commit Message Generation, arXiv:2308.07655.

Known limitations

  • The source scan covered ~85-90% of CommitChronicle's train split, not a full pass, so the language mix is near-complete rather than exhaustive.
  • Commit types are imbalanced (fix is the plurality); a trivial always-predict-fix baseline scores around its share, so read prefix-accuracy against that floor.
  • Description casing is not normalized (acronyms are preserved) — an accepted v1 limitation.
  • No automated scrubbing of secrets/PII; the sensitive-data caveat from CommitChronicle is carried forward.