The GitHub Actions job "Build and push images" on texera.git/main has failed. Run started by GitHub user bobbai00 (triggered by bobbai00).
Head commit for run: 7fbf64e3da96a271245c3be47a2587d5513dee6f / Tanishq Gandhi <[email protected]> feat(file-service): add model file upload and version endpoints (#6872) ### What changes were proposed in this PR? Adds file upload and versioning to the model API, on top of the metadata/access layer. A model version is a folder of files: uploads are staged, then committed together as one immutable LakeFS version. **Endpoints** on `ModelResource`: | Method | Path | | | --- | --- | --- | | `POST` | `/{mid}/version/create` | commit staged files as a version | | `GET` | `/{mid}/version/list` | | | `GET` | `/{mid}/version/latest` | | | `GET` | `/{mid}/version/{mvid}/rootFileNodes` | the version's file tree | | `POST` | `/{mid}/upload` | one-shot upload | | `DELETE` | `/{mid}/file` | drop a staged file before commit | | `POST` | `/multipart-upload` | init / finish / abort | | `POST` | `/multipart-upload/part` | | **Schema:** `model_upload_session` and `model_upload_session_part`, in `texera_ddl.sql` and migration `sql/updates/41.sql` (changeSet 41). Re-running the migration is a no-op. **Upload engine:** the multipart flow reuses `ResourceUploadService` from #7764 rather than a second copy of the dataset engine, so what lands here is the model descriptor plus the endpoints above. **File types:** any file is accepted. A model bundles weights with `config.json`, tokenizer/vocab files and sharded checkpoints, so an extension allowlist would reject valid models. `framework` stays metadata. ### Any related issues, documentation, discussions? Part of #6498. Umbrella #6494. Design discussion #6616. The remaining #6498 work — the endpoints the model UI needs — follows in a separate PR. ### How was this PR tested? New `ModelUploadResourceSpec` (9 tests): one-shot upload committed into a version, `.pth` accepted, a version with no staged changes rejected, staged-file delete, companion files committed alongside weights, nested folder structure preserved in the committed tree, a later version carrying over untouched files and replacing only the re-uploaded one, and the multipart init → part → finish path plus abort. Full `FileService` suite passes: **332 tests, 14 suites, 0 failures**, including `DatasetResourceSpec` (152) unchanged — the shared engine is not regressed by the model descriptor. ``` sbt "FileService/test" ``` `scalafmtCheckAll` and `scalafixAll --check` clean. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 4.8) --------- Co-authored-by: ali <[email protected]> Co-authored-by: Claude Opus 4.8 <[email protected]> Report URL: https://github.com/apache/texera/actions/runs/32922891114 With regards, GitHub Actions via GitBox
