Skip to content

Sync Loom fine-tuning sessions SDK for 1.0.0b2 - #49783

Draft
Harshith Arun Kumar (harshith-arunkumar) wants to merge 2 commits into
mainfrom
haarunkumar/finetuningsessions-beta2-20261030
Draft

Harshith Arun Kumar (harshith-arunkumar) wants to merge 2 commits into
mainfrom
haarunkumar/finetuningsessions-beta2-20261030

Conversation

@harshith-arunkumar

@harshith-arunkumar Harshith Arun Kumar (harshith-arunkumar) commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Synchronize the maintained fine-tuning sessions SDK from Loom master 26869a447bd03527712ac1c390a96d13e8ad235d and prepare azure-ai-finetuningsessions 1.0.0b2.

Specification companion: Azure/azure-rest-api-specs#47795

Generation pins the full public spec commit 0a86307b307665b6a0b9b12ebc42248c2b262325.

  • Port text-only public messages/function calls, opaque-reference training, safe invalid-completion results, and scalar-only training results.
  • Port checkpoint destination validation, preparation polling, and manifest validation. These methods do not create local directories, transfer weights, or enable service access.
  • Port trainer interruption/CFT guidance, bounded sampling retries, polling and heartbeat fixes, and async session attachment.
  • Regenerate with the repository's shared Python emitter 0.63.10, Python generator 0.39.0, compiler 1.17.0, and exact shared lockfile.
  • Preserve token-native constructors and list-based stop criteria through Python TypeSpec projections. Maintained forward/sampling compatibility routes remain unchanged; generated native operations use canonical routes.
  • Scope direct context to known canonical native routes and existing supported calls, preserving origin/resource boundaries and excluding file locators, unknown routes, and lookalike prefixes.
  • Preserve Loom's scalar fast path through the supported models.patch_sdk hook rather than hand-editing generated model utilities. Remove this temporary optimization once the upstream shared generator passes the committed scalar/tensor probe tests.
  • Refresh the APIView snapshot, source/toolchain/runtime provenance, maintenance probes, README, and beta changelog. Keep the immutable earlier comparison baseline separate from the current sync reference.

Validation

  • Both TypeSpec entrypoints compile, including a strict warning-free Python projection and the complete Foundry REST service.
  • 21 generated entries and the complete 32-file runtime match two independent fresh emissions. Maintained modules are seeded before generation; no generated-source rewriting is used.
  • Python 3.10.21 / minimum Azure Core 1.37.0: 2,497 passed, 73 skipped.
  • Python 3.13.14: 2,498 passed, 72 skipped.
  • Installed beta wheel on minimum runtime/dependencies: 2,497 passed, 73 skipped, with import origin verified.
  • Every wheel runtime file matches source after CRLF normalization; CRC is valid and nested build/test/temporary artifacts are excluded.
  • Existing maintainer-tool regressions: 16 passed, including TypedDict requiredness, public aliases, and overload fallback.
  • Exact repository MyPy 1.19.1 and next-version MyPy 2.1: no issues in 33 source files.
  • Pyright: zero errors and warnings.
  • Repository-pinned pylint 4.0.4 / SDK guidelines checker 0.5.7: clean, 10.00/10.
  • Authentication-related changes and the canonical-context follow-up received security review: no vulnerabilities found.

Windows symlink cases are skipped where privileges are unavailable; sync-only/pipelined combinations are intentionally excluded, and eager-task coverage requires Python 3.12+.

Release boundaries

  • No package publication, live/GPU qualification, service deployment, authorization, model allowlist, or feature-enablement change is performed.
  • Remote CI/API approval is still required; local checks are not a claim that remote CI is green.
  • This PR includes the beta version update and overlaps the existing version-only bot PR Increment version for ai releases #49248. Coordinate that PR rather than applying a conflicting duplicate bump.

The standard MCP generation attempt encountered Windows temporary-environment cleanup failure; the existing strict generation verifier supplied the actual isolated emissions and equality proof. Public specification source remains authoritative.

Latest Loom beta refresh (2026-11-03)

Updated SDK head: ff091ce93265614988f23c7dcd164e5f28b91ab1. Generation pins public TypeSpec e4f4ef32fd1048584b106c0eeb07fd1e0a5286b5 from Azure/azure-rest-api-specs#47795.

Included optional text-only reasoning_effort from latest assessed Loom master d9f379e1b0f825dfa61a4da41998b03d2189ea8c, plus untagged non-sampling completion compatibility coverage. User explicitly selected preparation-only: the newer local checkpoint downloader is excluded, and preparation/authentication ASTs are unchanged. No feature gates, deployment, or package publication changed.

Validation: 2,528 source tests pass on Python 3.13; 2,527 source and installed-wheel tests pass on Python 3.10/minimum Azure Core. Expected skips are 72/73. Two fresh emissions match all 21 generated entries and the complete 32-file runtime. Pylint, MyPy, Pyright, all 74 spelling-checked files, 16 maintainer tests, strict TypeSpec compile, and 39 mirror workflow tests pass. Corrected the three existing spelling false positives without changing malicious-path fixtures.

The failed MCP run overwrote packaging settings and hit Windows cleanup errors; original pyproject/MANIFEST were restored exactly. Clean wheel/sdist contents and generation inputs were verified; generator/build dependencies are not packaged. The refreshed API snapshot and current inclusion/exclusion provenance are checked in. Live gateway/RP/APIM qualification and human release approval are still required.

Pin the public TypeSpec refresh and regenerate with shared tooling while preserving supported maintained hooks. Port text-only/reference training, preparation-only checkpoint support, recovery/polling/heartbeat fixes, and bounded canonical context. Validate source and installed wheel on supported runtimes, exact generation, API surface, lint, type checks, and authentication changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added the AI label Oct 30, 2026
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).
9 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor
[Pilot] PR Pipeline Failure Analysis

What failed

Two independent checks failed on this PR:

  1. CSpell unknown words — Azure Pipelines python - pullrequest, build 7022747:

    • sdk/ai/azure-ai-finetuningsessions/azure/ai/finetuningsessions/_checkpoint_download.py:30:49 — Unknown word (CONIN)
    • sdk/ai/azure-ai-finetuningsessions/tests/test_checkpoint_download.py:150:10 — Unknown word (CONIN)
    • sdk/ai/azure-ai-finetuningsessions/tests/test_checkpoint_download.py:351:16 — Unknown word (ffiles)
  2. Verify Links — GitHub Actions run: sdk/ai/azure-ai-finetuningsessions/GENERATION.md has 4 broken relative links: tsp-location.yaml, eng/generation/provenance.json, tests/test_model_primitive_serialization.py, scripts/verify_generation.py.

Relevant pipeline output
2026-10-30T22:41:39.0147458Z ##[error]sdk/ai/azure-ai-finetuningsessions/azure/ai/finetuningsessions/_checkpoint_download.py:30:49 - Unknown word (CONIN)
2026-10-30T22:41:39.0153119Z ##[error]sdk/ai/azure-ai-finetuningsessions/tests/test_checkpoint_download.py:150:10 - Unknown word (CONIN)
2026-10-30T22:41:39.0158549Z ##[error]sdk/ai/azure-ai-finetuningsessions/tests/test_checkpoint_download.py:351:16 - Unknown word (ffiles)
2026-10-30T22:41:39.0163922Z ##[error]Spelling errors detected.
2026-10-30T22:41:39.0801101Z ##[error]PowerShell exited with code '1'.

Summary of broken links (GENERATION.md): 4 broken link(s):
  tsp-location.yaml
  eng/generation/provenance.json
  tests/test_model_primitive_serialization.py
  scripts/verify_generation.py
Checked 43 links with 1 broken link(s) found.

Root cause

  • CONIN and ffiles are legitimate intentional tokens (a Windows reserved device name CONIN$, and a URL-encoded test fixture %2ffiles), not misspellings — they're simply missing from the cspell allowlist.
  • The 4 broken GENERATION.md links use bare relative paths instead of the {public} placeholder prefix used by other links in the same file (e.g. [tsp-location.yaml]({public}tsp-location.yaml)), so the link checker can't resolve them.

Recommended next steps

  • Add CONIN and ffiles to .vscode/cspell.json's word list.
  • Update the 4 new links in GENERATION.md to use the {public} placeholder prefix, matching the existing link style in that file.
  • See https://aka.ms/ci-fix

Automated fix: Fix found, view and apply fix

Generated by Pipeline Analysis Next Steps · copilot · sonnet50 · 94.6 AIC · ⌖ 0.568 AIC · ⊞ 8.9K · ◷

Merge current SDK main and port optional text-only reasoning_effort from Loom d9f379e1b0f825dfa61a4da41998b03d2189ea8c. Pin public TypeSpec e4f4ef32fd1048584b106c0eeb07fd1e0a5286b5, preserve untagged completion behavior and all auth/preparation ASTs, refresh API/provenance and correct scoped spelling fixtures. User selected preparation-only, so local checkpoint file delivery remains excluded. Source, installed-wheel, generation, lint/type/spelling and mirror parity checks pass. Unrelated whitespace inherited from main is left unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant