|
1 | | -# 📋 Changelog |
| 1 | +# Changelog |
2 | 2 |
|
3 | | -All notable changes to this project will be documented in this file. |
| 3 | +All notable changes to this project are documented here. |
4 | 4 |
|
5 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). |
6 | 6 |
|
7 | | ---- |
| 7 | +## [Unreleased] |
8 | 8 |
|
9 | | -## [1.1.0] - 2026-05-07 |
| 9 | +### Added |
| 10 | + |
| 11 | +- Stable example identity metadata in prediction artifacts, including example IDs, pair IDs, snippet IDs, and snippet hashes. |
| 12 | +- Calibration and error-profile metrics: specificity, negative predictive value, false-positive/false-negative rates, Brier score, log loss, and expected calibration error. |
| 13 | +- Pair-ID alignment in `scripts/compare_predictions.py`, with baseline/candidate metric summaries in comparison reports. |
| 14 | +- Cross-split pair/snippet overlap diagnostics for dataset audits. |
| 15 | +- `scripts/inspect_dataset.py` for reviewer-facing dataset validation before training. |
| 16 | +- `scripts/download_datasets.py` for automatic retrieval of public CodeXGLUE BCB and POJ-104 sources into normalized local folders. |
| 17 | +- `run_everything.bat` for Windows end-to-end automation: dependency install, dataset download, diagnostics, benchmark runs, summaries, and comparisons. |
| 18 | +- `run_everything.sh` for Bash end-to-end automation with the same phases and environment-variable controls as the Windows batch script. |
| 19 | +- `scripts/normalize_local_datasets.py` for converting local GCJ and Karnalim files into the normalized `data.jsonl`/split-file contract. |
| 20 | + |
| 21 | +### Changed |
| 22 | + |
| 23 | +- Result aggregation now includes calibration and error-profile columns for reviewer-facing tables. |
| 24 | +- Problem-directory pair generation now defaults to problem-level splitting to reduce train/test source-code leakage. |
| 25 | +- The full benchmark runner now honors `PYTHON_BIN` and `STRICT_DATA=1`. |
| 26 | + |
| 27 | +## [1.1.0] - 2026-05-22 |
10 | 28 |
|
11 | 29 | ### Added |
12 | | -- `small_code_models/` shared Python library (data, metrics, trainer modules). |
13 | | -- `pyproject.toml` for proper Python packaging (`pip install -e .`). |
14 | | -- `notebooks/quick_start.ipynb` — Google Colab-ready interactive demo. |
15 | | -- `scripts/run_all_benchmarks.sh` — single-command full reproduction. |
16 | | -- `docs/RESULTS.md` — detailed results tables and analysis notes. |
17 | | -- CI workflow via GitHub Actions (`.github/workflows/ci.yml`). |
18 | | -- Unit tests in `tests/`. |
19 | | -- CLI arguments (`--data_dir`, `--output_dir`) to all evaluation scripts. |
| 30 | + |
| 31 | +- Auditable run artifacts: `metrics.json`, `predictions.jsonl`, and `run_manifest.json`. |
| 32 | +- Bootstrap confidence intervals for accuracy, balanced accuracy, precision, recall, F1, MCC, ROC-AUC, and PR-AUC. |
| 33 | +- Paired statistical helpers for candidate-minus-baseline bootstrap differences and McNemar tests. |
| 34 | +- Dataset diagnostics with split row counts, skipped-row reasons, label balance, deterministic sampling, and SHA-256 hashes. |
| 35 | +- Reproducibility metadata for Python, package versions, CUDA devices, Git branch/commit, and dirty worktree state. |
| 36 | +- `scripts/summarize_results.py` for aggregating completed run folders into CSV and Markdown. |
| 37 | +- `scripts/compare_predictions.py` for paired bootstrap and McNemar comparisons over saved predictions. |
| 38 | +- Model/benchmark registries covering CodeT5 Small, CodeT5+ 220M, CodeGPT, CodeBERTa, CoTexT, CodeNet, SemanticCloneBench, GPTCloneBench, and CLCDSA. |
| 39 | +- `scripts/run_clone_experiment.py` for running any registered model/benchmark pair. |
| 40 | +- `scripts/prepare_pair_dataset.py` and pair-building utilities for CodeNet/CLCDSA-style problem directories. |
| 41 | +- Benchmark controls for `--seed`, `--max_length`, `--strict_data`, `--no_artifacts`, and `--bootstrap_resamples`. |
20 | 42 |
|
21 | 43 | ### Changed |
22 | | -- All evaluation scripts refactored to import shared utilities from `small_code_models/`, removing ~100 lines of duplication per script. |
23 | | -- README.md significantly expanded with results tables, repository structure diagram, Quick Start, Related Work, and more badges. |
| 44 | + |
| 45 | +- Expanded `compute_metrics` beyond accuracy/F1/precision/recall to include confusion counts, support, balanced accuracy, MCC, ROC-AUC, and PR-AUC. |
| 46 | +- Updated the shared trainer to write research artifacts after test-set prediction. |
| 47 | +- Updated benchmark scripts and the full benchmark runner to pass reproducibility controls consistently. |
| 48 | +- Raised the package metadata to Python 3.10+, matching the syntax and CI baseline already used by the project. |
| 49 | +- Refreshed the README with an artifact contract and journal replication checklist. |
24 | 50 |
|
25 | 51 | ## [1.0.0] - 2025 |
26 | 52 |
|
27 | | -### 🎉 Initial Release |
| 53 | +### Added |
28 | 54 |
|
29 | | -- Unified evaluation framework for **6 small-scale code models** (<220M parameters): |
30 | | - - CodeBERT (125M, Encoder-only) |
31 | | - - GraphCodeBERT (125M, Encoder-only with Data Flow) |
32 | | - - PLBART (140M, Encoder-Decoder) |
33 | | - - PolyCoder (160M, Decoder-only) |
34 | | - - UniXCoder (~200M, Unified Enc-Dec) |
35 | | - - Salesforce T5 (220M, Encoder-Decoder) |
36 | | -- Benchmark scripts for **5 datasets**: |
| 55 | +- Unified evaluation framework for six small-scale code models under 220M parameters: |
| 56 | + - CodeBERT |
| 57 | + - GraphCodeBERT |
| 58 | + - PLBART |
| 59 | + - PolyCoder |
| 60 | + - UniXCoder |
| 61 | + - CodeT5 |
| 62 | +- Benchmark scripts for five datasets: |
37 | 63 | - BigCloneBench |
38 | 64 | - Google Code Jam (GCJ) |
39 | 65 | - Karnalim |
40 | 66 | - POJ104 |
41 | 67 | - PoolC |
42 | | -- Each script is self-contained: load dataset → fine-tune model → evaluate and report F1 / Precision / Recall. |
43 | | -- Companion paper published on arXiv: [arXiv:2506.10995](https://arxiv.org/abs/2506.10995). |
| 68 | +- Shared `small_code_models/` package with data, metrics, and trainer modules. |
| 69 | +- `pyproject.toml` for editable installs. |
| 70 | +- `notebooks/quick_start.ipynb` for an interactive demo. |
| 71 | +- `scripts/run_all_benchmarks.sh` for full reproduction. |
| 72 | +- `docs/RESULTS.md` with result tables and analysis notes. |
| 73 | +- GitHub Actions CI and unit tests. |
0 commit comments