Skip to content

Development - #10

Merged
cemililik merged 2 commits into
mainfrom
development
Apr 26, 2026
Merged

cemililik merged 2 commits into
mainfrom
development

Conversation

@cemililik

@cemililik cemililik commented Apr 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary by Sourcery

Update quickstart and GRPO documentation, template descriptions, and roadmap notes to reflect the merged v0.4.5 release and its behavior, including GRPO rewards and template-specific fallbacks.

Enhancements:

  • Clarify bundled quickstart template configurations, including primary/fallback model choices, example counts, and GRPO math gold-answer support in the changelog and release notes.
  • Document the default GRPO baseline reward behavior when no reward model is provided, and its integration with gold-answer datasets.
  • Refine the wizard BYOD flow description to emphasize dataset-path validation before proceeding.

CI:

  • Expand the documented nightly CI to include per-template quickstart smoke tests and a wheel-install smoke job that validates bundled package data from a clean environment.

Documentation:

  • Update English and Turkish roadmaps to indicate that v0.4.5 has been merged to main with tag and PyPI publish pending, referencing the landing PR.
  • Enhance the quickstart guide with a template-specific auto-downsizing table that lists primary and fallback models for each bundled template.

Summary by CodeRabbit

Documentation

  • Updated quickstart guidance with template-specific GPU fallback models for systems with <10GB VRAM
  • Expanded Quickstart CLI documentation detailing top-level flag propagation to training and chat subprocesses
  • Updated template configurations with new model choices and dataset seed size adjustments
  • Clarified GRPO reward behavior including default format/length rewards and math template enhancements
  • Updated release roadmap reflecting v0.4.5 merge status and pending release steps
  • Enhanced test and CI documentation covering expanded test coverage and wheel installation validation

PR #9 landed Phase 10.5 on main (merge commit 03999d0), but the v0.4.5
git tag and PyPI upload have not happened yet — `git tag -l v0.4.5`
returns empty. The roadmap docs claimed 'Tagged but not yet on PyPI'
which over-reported the release state.

- docs/roadmap.md: latest-release block + doc map line clarified.
- docs/roadmap-tr.md: parallel Turkish wording.
- docs/roadmap/phase-12-quickstart.md: DONE banner now says
  'merged to main as v0.4.5 via PR #9 (...); tag + PyPI publish are
  the remaining release-engineering steps' instead of 'shipped in
  v0.4.5'.

No content/code changes — wording-only, gets the docs back in sync
with what git actually contains.
…reward, CI)

CHANGELOG.md, docs/roadmap/releases.md, docs/guides/quickstart.md were
written before two later changes landed:

- code-assistant fallback model bumped to Qwen2.5-Coder-1.5B-Instruct
  (was generic SmolLM2-1.7B-Instruct).
- medical-qa-tr fallback model bumped to Qwen2.5-1.5B-Instruct (was
  English-only SmolLM2; new fallback is multilingual).
- bundled GRPO baseline reward (forgelm/grpo_rewards.py +
  _math_reward_fn) replaced the old 'no reward → ValueError' wiring.
- Test/CI surface grew with test_quickstart_hardening, test_grpo_math_
  reward, test_grpo_format_reward, test_wizard_byod, test_cli_quickstart_
  wiring, test_packaging, plus a wheel-install-smoke nightly job.

Also corrected example counts in the release notes and CHANGELOG to
match the actual JSONL line counts (58/59/49/40 — same numbers used in
LICENSES.md), and added a per-template fallback table to the quickstart
guide so the auto-downsize behavior is no longer described with a stale
single-example sentence.

releases.md status banner softened from 'Released' to 'Merged to main
via PR #9; tag + PyPI publish pending' so it matches roadmap.md and
phase-12-quickstart.md, since 'git tag -l v0.4.5' is empty.
@coderabbitai

coderabbitai Bot commented Apr 26, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e5fba3a6-246e-4174-ab3b-ab7e5ce2923d

📥 Commits

Reviewing files that changed from the base of the PR and between 03999d0 and 5e53e2c.

📒 Files selected for processing (6)
  • CHANGELOG.md
  • docs/guides/quickstart.md
  • docs/roadmap-tr.md
  • docs/roadmap.md
  • docs/roadmap/phase-12-quickstart.md
  • docs/roadmap/releases.md

📝 Walkthrough

Walkthrough

Documentation updates reflecting v0.4.5 release status, template-specific GPU fallback guidance, expanded test coverage documentation, and GRPO trainer configuration defaults. Changes document merged code awaiting PyPI publication and clarify quickstart behavior across multiple templates.

Changes

Cohort / File(s) Summary
Release and Roadmap Status
docs/roadmap.md, docs/roadmap-tr.md, docs/roadmap/phase-12-quickstart.md, docs/roadmap/releases.md
Updated v0.4.5 release status from "tagged but not on PyPI" to "merged to main via PR #9, awaiting tag and PyPI publication." Expanded release notes documenting Quickstart CLI flag propagation, template-specific model choices, seed dataset adjustments, GRPO reward defaults, wizard BYOD validation, and new test coverage (quickstart regression, wheel-install smoke, reward function integration).
Changelog Documentation
CHANGELOG.md
Added v0.4.5 changelog entry covering updated template fallback models, reduced seed/example counts, grpo-math gold_answer field additions, and expanded test/CI description with dedicated unit/integration test modules and wheel-install smoke job.
User Guide
docs/guides/quickstart.md
Added per-template fallback model specification table describing GPU memory-based auto-downsizing behavior on small GPUs (below 10 GB VRAM), replacing generic single-override guidance.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰✨ The docs hop forward, roadmap aligned,
V0.4.5 merged—PyPI pending find!
Templates downsized, tests now multiply,
Release notes expanded, clarity's sky!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch development

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@sonarqubecloud

Copy link
Copy Markdown

@cemililik
cemililik merged commit 45713dc into main Apr 26, 2026
8 of 9 checks passed
@sourcery-ai

sourcery-ai Bot commented Apr 26, 2026 •

Copy link
Copy Markdown

Reviewer's Guide

Docs-only PR that updates changelog and roadmap/quickstart documentation to reflect finalized template configurations (models, example counts, GRPO reward behavior), adds detailed notes on new GRPO baseline reward + test/CI coverage, and clarifies release status and GPU fallback behavior across templates.

File-Level Changes

Change Details Files
Refresh bundled template descriptions to match current configs, including model primaries/fallbacks, example counts, and GRPO math seed details.
  • Update CHANGELOG template bullets to reflect accurate example counts for customer-support, code-assistant, and medical-qa-tr datasets.
  • Clarify that domain-expert now documents Qwen2.5-7B-Instruct primary with SmolLM2-1.7B-Instruct fallback while remaining BYOD.
  • Document that grpo-math prompts now include a gold_answer field used by the regex-based correctness reward.
CHANGELOG.md
docs/roadmap/releases.md
Document new GRPO baseline reward behavior and corresponding unit/integration test coverage.
  • Describe forgelm/grpo_rewards.py baseline format+length reward wiring when no grpo_reward_model is provided.
  • Explain how gold_answer-aware math rewards are combined with format teaching for GRPO.
  • List the new test modules exercising quickstart hardening, GRPO rewards, wizard BYOD paths, CLI wiring, packaging, and reward wiring in the changelog and release notes.
CHANGELOG.md
docs/roadmap/releases.md
Clarify quickstart CLI behavior, including propagation of global flags and BYOD validation in the wizard flow.
  • Note that top-level CLI flags (--output-format, --quiet, --log-level, --offline) propagate into train and chat subprocesses invoked by quickstart.
  • Explain that the wizard’s template path validates BYOD dataset paths before continuing.
  • Add mention of extended CLI tests for offline mode, chat inheritance, and exit-code handling.
docs/roadmap/releases.md
Update documentation around CI and packaging to include wheel-install smoke testing and template smoke coverage details.
  • Describe nightly per-template quickstart smoke tests and clarify that domain-expert is exercised via pytest instead of the smoke job.
  • Document the new wheel-install-smoke CI job that builds the wheel, installs into an isolated venv, and reruns quickstart to catch package_data issues.
  • Reiterate that pyproject.toml bundles template YAML/JSONL/MD into the wheel for non-editable installs.
CHANGELOG.md
docs/roadmap/releases.md
Adjust quickstart user guide to show per-template primary/fallback models and auto-downsizing behavior.
  • Replace a generic downsizing note with a table listing each template’s primary and fallback models.
  • Clarify that users can still override model and dataset via CLI flags in the quickstart guide.
docs/guides/quickstart.md
Align roadmap docs (EN/TR) and phase-12 document with the actual v0.4.5 status and PR reference. docs/roadmap-tr.md
docs/roadmap.md
docs/roadmap/phase-12-quickstart.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the project's documentation and changelogs to reflect the merging of the Quickstart Layer (v0.4.5) into the main branch. Key updates include a detailed model fallback table for different VRAM capacities, information on GRPO baseline rewards, and descriptions of the expanded test suite and CI workflows. A review comment identified a discrepancy in the documentation regarding CLI flag propagation, specifically noting that the --output-format flag should only be documented as propagating to the training subprocess, not the chat subprocess, to align with the actual implementation.

Comment thread docs/roadmap/releases.md
### Features:
1. [x] **`forgelm/quickstart.py`** — Template registry (`@dataclass(frozen=True) Template`), `auto_select_model()` GPU-aware downsizing (≥10 GB VRAM → primary model; otherwise fallback ≤2B), `run_quickstart()` end-to-end orchestrator that copies the bundled seed dataset, substitutes `model.name_or_path` and `data.dataset_name_or_path`, and writes a `configs/<template>-YYYYMMDDHHMMSS.yaml` the existing trainer accepts unchanged.
2. [x] **`forgelm quickstart <template>` CLI subcommand** — `--list` (text + JSON via `--output-format json`), `--model` / `--dataset` overrides, `--dry-run` (generate config but skip training), `--no-chat` (skip post-training chat REPL), `--output` (custom YAML path). On a successful train, subprocess-invokes `forgelm chat <output_dir>` for an immediate sanity loop.
2. [x] **`forgelm quickstart <template>` CLI subcommand** — `--list` (text + JSON via `--output-format json`), `--model` / `--dataset` overrides, `--dry-run` (generate config but skip training), `--no-chat` (skip post-training chat REPL), `--output` (custom YAML path). On a successful train, subprocess-invokes `forgelm chat <output_dir>` for an immediate sanity loop. Top-level flags (`--output-format`, `--quiet`, `--log-level`, `--offline`) propagate to the train + chat subprocesses.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The documentation states that the --output-format flag propagates to both the train and chat subprocesses. However, according to the implementation in forgelm/cli.py (lines 802-808), this flag is explicitly excluded from the chat subprocess to avoid interfering with the interactive terminal output. Please update the documentation to reflect that --output-format only propagates to the training subprocess.

Suggested change
2. [x] **`forgelm quickstart <template>` CLI subcommand** — `--list` (text + JSON via `--output-format json`), `--model` / `--dataset` overrides, `--dry-run` (generate config but skip training), `--no-chat` (skip post-training chat REPL), `--output` (custom YAML path). On a successful train, subprocess-invokes `forgelm chat <output_dir>` for an immediate sanity loop. Top-level flags (`--output-format`, `--quiet`, `--log-level`, `--offline`) propagate to the train + chat subprocesses.
2. [x] **`forgelm quickstart <template>` CLI subcommand** — `--list` (text + JSON via `--output-format json`), `--model` / `--dataset` overrides, `--dry-run` (generate config but skip training), `--no-chat` (skip post-training chat REPL), `--output` (custom YAML path). On a successful train, subprocess-invokes `forgelm chat <output_dir>` for an immediate sanity loop. Top-level flags (`--quiet`, `--log-level`, `--offline`) propagate to the train + chat subprocesses; `--output-format` propagates to training only.

@coderabbitai coderabbitai Bot mentioned this pull request May 2, 2026
cemililik added a commit that referenced this pull request May 6, 2026
…gent review findings

- Wave 5 PR #34 round 3 absorption: full sweep of CodeRabbit's 6 OOD +
  20 Minor inline review comments PLUS 24 multi-agent review findings
  (code-correctness / privacy-security / standards / test-rigor docs
  under docs/analysis/code_reviews/wave5-*.md).

HIGH/Major absorptions:
- 4 broken `forgelm.cli.subcommands.*` symbol citations across
  purge/approvals reference docs (en+tr): _run_row_erasure →
  _run_purge_row_id, _handle_pending → _run_approvals_list_pending,
  _handle_show → _run_approvals_show (F-W5-PRIV-02).
- configuration.md (en+tr): drop `kserve | triton` ghost choices and
  the entire `## deployment:` ghost YAML block (no `DeploymentConfig`
  in ForgeConfig; extra="forbid" rejects it at load) — replace with a
  v0.6.0+ Phase 14 callout (F-W5-S1, F-W5-S2).
- ingestion.md (en+tr): drop conflicting "instructions format
  default" claim; document raw-chunk JSONL with summary-only
  --output-format {text,json} (CR-OOD ingestion).
- closure-plan PR #33 status: line 131 said "PR #33 pending" but
  line 119 said merged with `01e40ba` (CR-OOD closure-plan).
- leakage.md (en+tr): remove `audit.leakage_check.remove_cross_split_overlap`
  knob reference — knob doesn't exist in code; replace with the
  documented jq-based removal flow (CR-OOD leakage).
- TR + EN experiment-tracking: drop `$ ` prompt prefix in `text`-tagged
  preview blocks for `forgelm compare-runs` (CR-OOD experiment-tracking).
- roadmap mermaid (en+tr): add Phase 12.6 (Closure Cycle) → v0.5.5
  node + edge so visual flow matches table (CR-OOD roadmap).

Minor absorptions:
- phase-12-6-closure-cycle.md L123: stale "(currently 0.5.1rc1)"
  parenthetical → already-bumped during Wave 5 (F-W5-S4 / CR Minor).
- gdpr-erasure.md (en+tr): rename duplicate `### What gets recorded`
  / `### Neyi kaydeder` H3 to disambiguate Article 17 vs 15 sections
  (CR Minor #2 + #20).
- verify-gguf.md (en+tr) L147: revise misleading "still match SHA-256"
  hash explanation; clarify magic-header layer doesn't catch
  truncation independent of sidecar (CR Minor #3).
- verify_audit link mismatch in 4 reference docs (en+tr × verify_gguf
  + verify_annex_iv): label text now matches href (CR Minor #4 + #8).
- air_gap_deployment-tr.md L19: add `text` language tag to ASCII
  diagram fence (CR Minor #6).
- site/index.html L374: drop internal "Phase 19" milestone leak; tag
  reads `embed` (user-facing label) (CR Minor #7).
- air_gap_deployment.md L193: fix dangling sentence fragment in
  HF_TOKEN gated-models tip (CR Minor #9).
- performance.md (en+tr) L184: drop ghost `forgelm audit
  --output-format parquet`; replace with pandas/pyarrow conversion
  step (CR Minor #10).
- phase-11-5-backlog.md L10-12: link text → package paths matching
  href (forgelm/data_audit.py → forgelm/data_audit/, etc.) (CR Minor #11).
- testing.md L140: stale `23/23` → `39/39` bilingual parity count
  (CR Minor #12).
- testing.md L198: `python3` prefix consistency in checklist
  (CR Minor #13).
- supply-chain.md (en+tr): bandit cadence aligned to standards doc
  (Nightly 03:00 UTC + release tag, not "every PR + main push") (CR
  Minor #14 + #15).
- translations.js L1927: "Three values" → "Two values" (only
  forgelm-lang + forgelm-theme listed) (CR Minor #16).
- approvals_subcommand.md (en+tr) L26: staging path → match L84 JSON
  sample (`final_model.staging.<run_id>` canonical, run-id-less form
  honoured as fallback) (CR Minor #17 + #19).
- translations.js L1445/L1462/L1504/L1521 (en+tr): `<code>reject</code>`
  → `<code>forgelm reject</code>` for fully-qualified copy/paste
  parity (CR Minor #18).
- _meta.yaml header: add formal DE/FR/ES/ZH deferred-policy banner
  per closure-plan Task L (F-W5-S6).
- release.md L20 + L359: stale "0.3.1rc1 current" + "no
  __version__" claims; corrected to 0.5.5 + reflect that __version__
  + __api_version__ ARE exported per Library API standard (F-W5-S3).
- purge_subcommand.md (en+tr): add WARNING-on-fallback language for
  --output-dir asymmetry vs reverse-pii (F-W5-PRIV-05).
- verify-audit.md (en+tr): replace overstated "escrow" wording with
  KMS/HSM-based separation (F-W5-PRIV-06).

Tool tightening + new tests:
- check_cli_help_consistency.py: tighten _FORWARD_REF_MARKERS to
  whole-phrase forms (drop bare "planned"/"future"/"roadmap" which
  matched "planned attacks" / "future work" / "roadmap-driven" in
  unrelated prose); add Turkish equivalents for bilingual docs
  (F-W5-01).
- test_check_cli_help_consistency.py: 3 new regression tests:
  bare-substring negative (F-W5-01), >±3-line forward-ref window
  negative (F-W5-TR-01a), and Wrong:-block scope-to-one-block
  resumption (F-W5-TR-01b). Suite 17 → 20 tests, all green.

User-manual orphan fix:
- _meta.yaml: register `reference/json-output` page (existed in
  filesystem since Wave 2 but never declared in nav config — was
  invisible on the live site). Now declared = on-disk = 65 each.

Skipped (with reason):
- CR Minor #5 (library_api.md `forgelm.__version__` example):
  INVALID — verified `python3 -c "import forgelm; print(forgelm.__version__)"`
  prints 0.5.5 cleanly; both __version__ and __api_version__ ARE
  exported per Library API standard. CodeRabbit's web-search must
  have hit pre-Wave-5 PyPI. Doc is correct; code matches.
- F-W5-S5 (parity tool autodiscover usermanuals): registry shape
  refactor (~50 new pairs) is scope creep for round 3; defer to v0.6.
- F-W5-S8 (compliance_summary-tr.md): explicitly deferred to v0.6 by
  the finding itself.
- F-W5-S9, F-W5-TR-11/12 (NIT cite/style): non-load-bearing.
- F-W5-02/03/04 (cognitive complexity, unterminated fence,
  resume-after-Wrong unit test): refactor scope; covered by F-W5-TR-01
  block-scope tests for the resume case.
- F-W5-TR-02 (cleanup commit baseline regression test): the live CI
  --strict gate IS the guard; doubling up the integration-test
  layer is defensible but not blocking.
- F-W5-TR-03/05/06/07/08/09/10 (extras): non-blocking coverage gaps.

Self-review gauntlet (all green):
  ruff format/check ✅
  bilingual_parity --strict 39/39 ✅
  anchor_resolution --strict 264/264 ✅
  cli_help_consistency --strict 425/425 ✅ (reduced from 449 due to
    intentional invocation removals: ghost YAML block, parquet ghost,
    4 broken symbol-cite paths, etc.)
  site_claims --strict (artefacts/templates/GPU/version) ✅
  field_descriptions --strict ✅
  pytest 1433 passed / 14 skipped (+5 new tests vs round 2) ✅
  forgelm --config config_template.yaml --dry-run ✅
  build_usermanuals.py: en/tr 65/65 OK, JS bundles regenerate ✅

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant