MCPcopy Create free account
hub / github.com/apache/solr / cmd_forward_port

Function cmd_forward_port

dev-tools/scripts/logchange.py:301–476  ·  view source on GitHub ↗
(args, git_root)

Source from the content-addressed store, hash-verified

299# ---------------------------------------------------------------------------
300
301def cmd_forward_port(args, git_root):
302 dry_run = args.dry_run
303 do_push = args.push
304 version = args.version
305 release_branch = args.release_branch
306 stable_branch = args.stable_branch
307 latest_lts_stable_branch = args.latest_lts_stable_branch
308 release_date_str = args.release_date or date.today().isoformat()
309
310 version_dir = git_root / "changelog" / f"v{version}"
311
312 print(f"\n=== Changelog forward-port for v{version} ===")
313 print(f" Release date : {release_date_str}")
314 print(f" release_branch : {release_branch}")
315 print(f" stable_branch : {stable_branch}")
316 print(f" also targets : main")
317 if latest_lts_stable_branch:
318 print(f" lts also targets: {latest_lts_stable_branch}")
319 if dry_run:
320 print(" (dry-run — no changes will be made)")
321 elif not do_push:
322 print(" (push disabled — run with --push when ready)")
323 print()
324
325 # Step 1: checkout release branch and write release-date.txt
326 print(f"[1] Checking out {release_branch} and writing release-date.txt")
327 git(["checkout", release_branch], cwd=git_root, dry_run=dry_run)
328
329 if not dry_run and not version_dir.exists():
330 print(f"Error: version folder {version_dir} does not exist. "
331 f"Run 'prepare' first.", file=sys.stderr)
332 sys.exit(1)
333
334 date_file = version_dir / "release-date.txt"
335 print(f" Writing {date_file.relative_to(git_root)}: {release_date_str}")
336 if not dry_run:
337 date_file.write_text(release_date_str + "\n", encoding="utf-8")
338
339 version_summary = f"changelog/v{version}/version-summary.md"
340
341 # Step 2: commit A — release-date.txt only (before generate)
342 print(f"\n[2] Committing release-date.txt to {release_branch} (commit A)")
343 git(["add", f"changelog/v{version}/release-date.txt"], cwd=git_root, dry_run=dry_run)
344
345 if not dry_run and not has_staged_changes(git_root, [f"changelog/v{version}/release-date.txt"]):
346 print(" Nothing staged — release-date.txt was already up to date.")
347 else:
348 msg_a = f"Set release date {release_date_str} for v{version}"
349 print(f" Committing: {msg_a!r}")
350 git(["commit", "-m", msg_a], cwd=git_root, dry_run=dry_run)
351
352 # Step 3: commit B — regenerate, then stage CHANGELOG.md + version-summary.md
353 print(f"\n[3] Running logchangeGenerate (with release date {release_date_str})")
354 run_logchange_generate(args.gradle_cmd, git_root, dry_run=dry_run)
355
356 print(f"\n[3b] Staging CHANGELOG.md and version-summary.md to {release_branch} (commit B)")
357 git(["add", "CHANGELOG.md", version_summary], cwd=git_root, dry_run=dry_run)
358

Callers

nothing calls this directly

Calls 13

gitFunction · 0.85
has_staged_changesFunction · 0.85
run_logchange_generateFunction · 0.85
git_pushFunction · 0.85
stripMethod · 0.80
existsMethod · 0.65
appendMethod · 0.65
runMethod · 0.65
exitMethod · 0.45
splitMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…