Skip to content

Qualify WSL and ARM64 release wheels - #92

Merged
danielmawhirter merged 17 commits into
dm-platform-wheelsfrom
dm-platform-smoke
Nov 3, 2026
Merged

danielmawhirter merged 17 commits into
dm-platform-wheelsfrom
dm-platform-smoke

Conversation

@danielmawhirter

@danielmawhirter danielmawhirter commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Qualify same-run installed wheels on WSL2 and Linux ARM64 across Python 3.11–3.14, retaining experimental native Windows CPU checks. Extend the same single-fit smoke with CPU bundle reload and prediction parity on the identical population/snapshot; entity IDs, counts and values must match (atol=1e-4), with no additional optimizer steps. Enable Linux ARM64 release attachment and publication only behind installed-wheel qualification. The three release artifacts are Linux x86-64 (also used by WSL2), Linux ARM64 and macOS ARM64. Native Windows wheels remain CI-only and are excluded from both release attachment and publication.

Base dm-platform-wheels; 9 incremental files. Merge #91 → #140 → #92. Windows release support uses WSL2 with the Linux x86-64 wheel.

Head 8f5471712d5b36312b1ec899166da409ff9b1454.

Change map

Maintained file-by-file map.

Testing Done

Rebased onto main 836e343c; all 19 stack commits are signed. Local checks passed: 188 packaging/workflow tests plus four subtests, 94 core tests, 158 datamodule tests (one required a subprocess-permission rerun), 656 Rust tests (two ignored), 250-document validation, artifact manifests, 410-component notices and flake8/isort. The workflow fixture now uses local pathlib operations instead of application dependencies; all 156 tests in the exact minimal repository-check environment passed without pydantic.

Fresh run 41570848349 at 8f5471712d5b36312b1ec899166da409ff9b1454 completed successfully: four producers, 144 dependency resolutions, twelve CPU reload jobs and the inherited Linux x86-64 GPU gate (eight tasks) passed. Release attachment and Kitmaker publication were skipped. The final stack retains both release gates; native Windows remains CI-only. No ARM/Windows GPU coverage or package publication is claimed.

Separate automatic connector checks fail only two restricted BigQuery tests missing GCP_BIGQUERY_NO_TABLE_SERVICE_ACCOUNT and GCP_BIGQUERY_NO_JOB_SERVICE_ACCOUNT; 1,911 other connector tests passed on each PR. That credential configuration is owned elsewhere and is not fixed here.

Hotfix Context

Release preparation.

Checklist

  • Breaking changes listed (none intended).
  • Examples and documentation updated.
  • Focused tests added or updated.

Release attachment and Kitmaker publication jobs were skipped in this manual run; no package was published.

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
Walkthrough

This change adds Windows support across DiskGraph and Kumo Core, including platform-specific file operations, executable selection, progress forwarding, and path handling. It adds a CPU-or-CUDA engine smoke test and a workflow for Linux ARM64, Windows WSL, and native Windows runners. The change also adds platform regression tests and documentation for smoke-test setup and coverage.

Sequence Diagram(s)

sequenceDiagram
  participant Workflow as GitHub Actions workflow
  participant Runner as Platform runner
  participant SmokeTest as Kumo engine smoke test
  participant Results as JUnit results
  Workflow->>Runner: Start platform-specific job
  Runner->>SmokeTest: Install packages and run CPU or CUDA checks
  SmokeTest->>Results: Write test results
  Workflow->>Results: Upload test results
Loading
Merge Risk: Moderate · previous review 095d2

The change adds Windows and ARM64 platform support and a smoke workflow. Before merging, gate the Unix-only Windows test, remove the temporary push trigger, fix the PowerShell example, and mark the reported runs as historical. Positive DataLoader worker counts on Windows are not supported by this change and should stay disabled or be handled with Windows-specific waiting. The zero-worker native Windows smoke path is not affected.

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

Failed Failed checks: 1 error · 1 inconclusive

Check name Status Explanation Resolution
Public Resource Access Error The pull request adds an inaccessible external reference at packages/kumo-engine/platform-smoke.md:76: https://github.com/nv-gha-runners/enterprise-runner-configuration/pull/549. An anonymous requ… Replace the PR 549 link with an accessible public reference, or copy the required ARM64 runner-access status and configuration details into this repository.
Change Map Design Review Inconclusive The required <!-- kumo-pr-change-map --> conversation comment is not available in the supplied review context or repository. The PR description links to that comment but does not include its Change … Provide the complete change-map conversation comment, or an accessible export of it, then review each proposed change against the repository code and the stated problem or release requirement.
Passed Passed checks: 1 passed
Check name Status Explanation
Pr Size Passed The pull request changes 25 files in the reviewed Git range. The limit is 40 files, so the PR passes this check.
Full details: Public Resource Access

Explanation

The pull request adds an inaccessible external reference at packages/kumo-engine/platform-smoke.md:76: https://github.com/nv-gha-runners/enterprise-runner-configuration/pull/549. An anonymous request returned HTTP 404. The added workflow action commit references, Windows image reference, and recorded run links returned HTTP 200.

Resolution

Replace the PR 549 link with an accessible public reference, or copy the required ARM64 runner-access status and configuration details into this repository.

Full details: Change Map Design Review

Explanation

The required &lt;!-- kumo-pr-change-map --&gt; conversation comment is not available in the supplied review context or repository. The PR description links to that comment but does not include its Change map. Repository guidance confirms that the comment must contain the per-change rationale, existing behavior, focused verification, and stopping condition. Without it, this design review cannot assess necessity, abstraction layer, or omitted behavior for each change.

Resolution

Provide the complete change-map conversation comment, or an accessible export of it, then review each proposed change against the repository code and the stated problem or release requirement.

Finishing Touches
Fix failing CI checks
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.

@danielmawhirter danielmawhirter mentioned this pull request Oct 21, 2026
3 tasks done
@danielmawhirter

danielmawhirter commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator Author

Change map

Qualify same-run installed wheels on WSL2 and Linux ARM64 across Python 3.11–3.14, retaining experimental native Windows CPU checks. Enable Linux ARM64 release attachment and publication only behind installed-wheel qualification. The three release artifacts are Linux x86-64 (also used by WSL2), Linux ARM64 and macOS ARM64. Native Windows wheels remain CI-only and are excluded from both release attachment and publication.

Base dm-platform-wheels; 9 incremental files. Merge #91 → #140 → #92. Windows release support uses WSL2 with the Linux x86-64 wheel.

Head 8f5471712d5b36312b1ec899166da409ff9b1454.

File Function / scope What changed Why
.github/workflows/kumo-engine-platform-smoke.yml Installed-wheel CPU matrix Runs Python 3.11–3.14 across native Windows, WSL and Linux ARM64 using exact same-run artifacts, clean environments and retained results. Qualifies installed binaries without checkout imports, GPU access or native rebuilding; removes the temporary push trigger.
.github/workflows/kumo-engine-wheel.yml Build and release routing (including inherited GPU gate) Calls installed-wheel CPU qualification and gates release attachment; enables Linux ARM64 in attachment/publication allowlists while native Windows remains commented out. Preserves main’s Linux x86-64 wheel-smoke gate alongside the platform CPU gate; separates CI validation from release eligibility; Windows release support is WSL2-only.
docs/development/releasing-kumo-engine.md Release scope and prerequisites Documents WSL2 as the Windows release path, native Windows as experimental CI-only, and qualified ARM64 release eligibility and applicable CPU/runtime prerequisites. Distinguishes supported release installation from preparatory native Windows validation.
packages/kumo-engine/README.md Release scope and prerequisites Documents WSL2 as the Windows release path, native Windows as experimental CI-only, and qualified ARM64 release eligibility and applicable CPU/runtime prerequisites. Distinguishes supported release installation from preparatory native Windows validation.
packages/kumo-engine/platform-smoke.md Qualification contract and release scope Documents same-fit CPU bundle reload and prediction parity, plus WSL2-only Windows release support and experimental native Windows checks. Explains the expanded installed-wheel proof without implying native Windows publication.
packages/kumo-engine/scripts/verify_installed_wheel.py Installed runtime audit Checks runtime platform/Python, virtual-environment import origins and packaged ingest; checks the installed local-wheel URL, records independent wheel digest and environment evidence; rejects Faiss on Windows/ARM. Detects checkout shadowing and wrong or incomplete runtime installation before qualification.
packages/kumo-engine/test/smoke_platform.py Installed-wheel CPU round trip Runs one fit, predicts, loads that fit’s bundle on CPU and predicts the same population/snapshot; compares IDs, counts and finite values at atol=1e-4 while requiring exactly four optimizer steps throughout. Closes saved-model portability coverage without additional training, data or matrix jobs.
test/scripts/test_engine_wheel_workflow.py Workflow policy regressions Tests the twelve-job CPU matrix, same-run artifacts, qualification gate and three-artifact release allowlists. Prevents experimental Windows publication and premature ARM64 release eligibility.
test/scripts/test_installed_wheel.py Runtime audit regression tests Tests accepted installed origins and platforms and rejects checkout imports or non-WSL substitutes. Makes environment identity requirements enforceable.

Focused verification: Rebased onto main 836e343c; all 19 stack commits are signed. Local checks passed: 188 packaging/workflow tests plus four subtests, 94 core tests, 158 datamodule tests (one required a subprocess-permission rerun), 656 Rust tests (two ignored), 250-document validation, artifact manifests, 410-component notices and flake8/isort. The workflow fixture now uses local pathlib operations instead of application dependencies; all 156 tests in the exact minimal repository-check environment passed without pydantic.

Fresh run 41570848349 at 8f5471712d5b36312b1ec899166da409ff9b1454 completed successfully: four producers, 144 dependency resolutions, twelve CPU reload jobs and the inherited Linux x86-64 GPU gate (eight tasks) passed. Release attachment and Kitmaker publication were skipped. The final stack retains both release gates; native Windows remains CI-only. No ARM/Windows GPU coverage or package publication is claimed.

Separate automatic connector checks fail only two restricted BigQuery tests missing GCP_BIGQUERY_NO_TABLE_SERVICE_ACCOUNT and GCP_BIGQUERY_NO_JOB_SERVICE_ACCOUNT; 1,911 other connector tests passed on each PR. That credential configuration is owned elsewhere and is not fixed here.

Stopping condition: reviewed portable runtime, strict wheel assembly and installed-wheel CPU qualification with WSL2-only Windows release support. No native Windows publication, GPU or multi-worker support claim. No upload, release or version bump is authorized.

@coderabbitai coderabbitai 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.

Note

Quiet mode is enabled, so only the most important comments were posted inline. Other review comments are grouped below.

Caution

Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

⚠️ Outside diff range comments (1)

🟠 Major · Gate the Unix-only open-file-limit test. · ts_grouping.rs:740-744

packages/diskgraph/diskgraph-ingest/src/ts_grouping.rs:740-744
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Gate the Unix-only open-file-limit test.

libc 0.2.186 does not export rlimit, setrlimit, or RLIMIT_NOFILE for Windows. The ungated test prevents cargo test -p diskgraph-ingest and the workspace test workflow from compiling on Windows. Excluding this crate avoids the failure but also omits its tests; non-test builds and runtime use are unaffected.

🐛 Suggested fix
+    #[cfg(unix)]
     #[test]
     fn merge_open_files_do_not_scale_with_shards() {
🟡 Other comments: 1
.github/workflows/kumo-engine-platform-smoke.yml: 1

7-13: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Remove the temporary push trigger before merging.

The workflow still starts all smoke jobs when code is pushed to dm-platform-smoke. The documented delivered configuration must remain manual-only through workflow_dispatch.

Suggested fix
-  # Temporary pre-merge qualification on the upstream development branch.
-  # Remove this branch-specific trigger before merging; retain manual dispatch.
-  push:
-    branches: [dm-platform-smoke]
   workflow_dispatch:

ℹ️ Review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/kumo-engine/.coderabbit.yaml
  • Review profile: QUIET
  • Plan: Enterprise
  • Run ID: e8195c55-8dc8-4512-94a0-334822195373
📥 Commits

Reviewing files that changed from the base of the PR and between bdb6294 and d368c28.

⛔ Files ignored due to path filters: 2
  • packages/diskgraph/Cargo.lock is excluded by !**/*.lock, !**/*.lock
  • uv.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing: 27
  • .github/workflows/kumo-engine-platform-smoke.yml
  • packages/diskgraph/diskgraph-fs/Cargo.toml
  • packages/diskgraph/diskgraph-fs/src/cloud_transfer.rs
  • packages/diskgraph/diskgraph-index/src/graph.rs
  • packages/diskgraph/diskgraph-index/src/pkmap.rs
  • packages/diskgraph/diskgraph-index/src/reader.rs
  • packages/diskgraph/diskgraph-ingest/Cargo.toml
  • packages/diskgraph/diskgraph-ingest/src/disk_manager/mod.rs
  • packages/diskgraph/diskgraph-ingest/src/disk_manager/path_safety.rs
  • packages/diskgraph/diskgraph-ingest/src/lib.rs
  • packages/diskgraph/diskgraph-ingest/src/mapping.rs
  • packages/diskgraph/diskgraph-ingest/src/ts_grouping.rs
  • packages/diskgraph/pyproject.toml
  • packages/diskgraph/third_party/artifact-manifest.json
  • packages/kumo-core/pyproject.toml
  • packages/kumo-core/src/kumo_core/diskgraph/lightning_data.py
  • packages/kumo-core/src/kumo_core/diskgraph/runner.py
  • packages/kumo-core/src/kumo_core/io/filesystem.py
  • packages/kumo-core/src/kumo_core/train/artifact_manifest.py
  • packages/kumo-core/tests/test_diskgraph_runtime.py
  • packages/kumo-core/tests/test_portable_io.py
  • packages/kumo-core/tests/test_prediction_manifest_storage.py
  • packages/kumo-engine/platform-smoke.md
  • packages/kumo-engine/pyproject.toml
  • packages/kumo-engine/setup.py
  • packages/kumo-engine/test/smoke_platform.py
  • test/train/datamodule/test_diskgraph_lightning_data.py

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 8 remain after this review.

@coderabbitai coderabbitai 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.

Note

Quiet mode is enabled, so only the most important comments were posted inline. Other review comments are grouped below.

🟡 Other comments: 1
.github/workflows/kumo-engine-platform-smoke.yml: 1

10-11: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Remove the temporary push trigger before merge.

If this trigger remains, a push to dm-platform-smoke starts all three jobs after merge. The required rollout is manual dispatch only. Remove push and retain workflow_dispatch. (docs.github.com)


ℹ️ Review info
⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between d368c28 and 8a600fd.

⛔ Files ignored due to path filters: 2
  • packages/diskgraph/Cargo.lock is excluded by !**/*.lock, !**/*.lock
  • uv.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing: 8
  • .github/workflows/kumo-engine-platform-smoke.yml
  • packages/diskgraph/diskgraph-index/src/reader.rs
  • packages/diskgraph/diskgraph-ingest/src/disk_manager/path_safety.rs
  • packages/diskgraph/diskgraph-ingest/src/ts_grouping.rs
  • packages/kumo-core/pyproject.toml
  • packages/kumo-core/src/kumo_core/train/artifact_manifest.py
  • packages/kumo-core/tests/test_prediction_manifest_storage.py
  • packages/kumo-engine/platform-smoke.md

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.

@coderabbitai coderabbitai 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.

Note

Quiet mode is enabled, so only the most important comments were posted inline. Other review comments are grouped below.

🟡 Other comments: 1
packages/kumo-engine/platform-smoke.md: 1

16-16: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Provide a runnable PowerShell CPU command.

If a native Windows user copies line 16 into PowerShell, PowerShell does not accept the Bash-style KUMO_SMOKE_DEVICE=cpu prefix. The CPU smoke test does not start. Keep the Bash example and add a separate PowerShell example that sets $env:KUMO_SMOKE_DEVICE before running pytest. (learn.microsoft.com)


ℹ️ Review info
⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between e46cae7 and 12108bf.

⛔ Files ignored due to path filters: 2
  • packages/diskgraph/Cargo.lock is excluded by !**/*.lock, !**/*.lock
  • uv.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing: 4
  • packages/kumo-core/pyproject.toml
  • packages/kumo-engine/platform-smoke.md
  • packages/kumo-engine/setup.py
  • test/scripts/test_engine_wheel.py

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 8 remain after this review.

@coderabbitai coderabbitai 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.

Note

Quiet mode is enabled, so only the most important comments were posted inline. Other review comments are grouped below.

Other comments: 1
packages/kumo-engine/platform-smoke.md: 1

48-50: Minor · Maintainability & Code Quality · Quick win

Label the reported runs as historical.

The WSL and native Windows results use revision 29b255e, not the reviewed head 095d27941a87e756544ec69bb9a46065388e7d9a. State that these runs do not qualify the current head, and require current-head reruns before treating these platform paths as qualified.

Suggested documentation update
-The latest test passed in 25.98 seconds at revision `29b255e`, the same
-revision as the native Windows pass below. Observed source installation took
+The latest historical test passed in 25.98 seconds at revision `29b255e`, the
+same revision as the historical native Windows pass below. These runs do not
+qualify the current head; rerun them at the current head before qualification.
+Observed source installation took
Nitpick comments: 1
packages/kumo-core/src/kumo_core/diskgraph/lightning_data.py: 1

241-241: Trivial · Stability & Availability · Heavy lift

Handle positive DataLoader worker counts on Windows.

The native Windows smoke path uses zero DataLoader workers, so it bypasses _WorkerPoolDataLoader and does not reach _WorkerHandle.open().

However, a configured positive worker count reaches _WorkerHandle.open(). On Windows, _pidfd_open() returns None, so the code duplicates process.sentinel with os.dup() and later passes it to select.poll(). Windows provides the sentinel as a handle, not a POSIX file descriptor, and select.poll() is not available as a Windows wait API. That configuration can fail during worker initialization or exit polling.

Keep positive DataLoader worker counts disabled on Windows, or add Windows-specific handle duplication, waiting, and cleanup with multiprocessing.connection.wait() or another Windows wait API before supporting them.


Review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 12108bf and 095d279.

Files ignored due to path filters: 1
  • packages/diskgraph/Cargo.lock is excluded by !**/*.lock, !**/*.lock
Files selected for processing: 4
  • packages/diskgraph/diskgraph-ingest/src/lib.rs
  • packages/kumo-core/src/kumo_core/diskgraph/lightning_data.py
  • packages/kumo-engine/platform-smoke.md
  • test/train/datamodule/test_diskgraph_lightning_data.py

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 10 remain after this review.

@danielmawhirter danielmawhirter changed the title Add manual ARM64 and Windows engine smoke tests Qualify Windows, WSL, and ARM64 engine wheels on CPU Oct 30, 2026
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests October 30, 2026 16:49 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests October 30, 2026 16:58 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests October 30, 2026 17:20 — with GitHub Actions Inactive
@danielmawhirter
danielmawhirter enabled stacked auto-merge (squash) November 3, 2026 03:09
Reuse exact build artifacts across Python 3.11–3.14 on native Windows, WSL, and Linux ARM64. Test outside the checkout in clean CPU environments, bind installed-package identity to the wheel, and require real ingestion, optimizer work, and finite predictions before release attachment.
State the AES and architecture SIMD requirements in installation and release documentation, preserving the existing build configuration.
@danielmawhirter
danielmawhirter merged commit f8ba7e1 into main Nov 3, 2026
153 of 172 checks passed
@danielmawhirter
danielmawhirter deleted the dm-platform-smoke branch November 3, 2026 18:42
danielmawhirter added a commit that referenced this pull request Nov 3, 2026
## Summary

Prepare native ingestion portability through platform-specific file I/O,
executable resolution, process handling, local URIs and artifact
ownership. Reject unsupported Windows profiling before modifying
published output. This is preparatory runtime work: native Windows
remains experimental and CI-only, with no native Windows release/support
commitment. Existing optional-Faiss metadata is unchanged.

Base `main`; 22 files. Merge #91 → #140 → #92. Windows release support
uses WSL2 with the Linux x86-64 wheel.

Head `6f52003cd86e9c68989975499ef4276243c0e0e5`.

## Change map

[Maintained file-by-file
map](#91 (comment)).

## Testing Done

Rebased onto main `836e343c`; all 19 stack commits are signed. Local
checks passed: 188 packaging/workflow tests plus four subtests, 94 core
tests, 158 datamodule tests (one required a subprocess-permission
rerun), 656 Rust tests (two ignored), 250-document validation, artifact
manifests, 410-component notices and flake8/isort. The workflow fixture
now uses local pathlib operations instead of application dependencies;
all 156 tests in the exact minimal repository-check environment passed
without pydantic.

Fresh [run
41570848349](https://github.com/NVIDIA/kumo-engine/actions/runs/41570848349)
at `8f5471712d5b36312b1ec899166da409ff9b1454` completed successfully:
four producers, 144 dependency resolutions, twelve CPU reload jobs and
the inherited Linux x86-64 GPU gate (eight tasks) passed. Release
attachment and Kitmaker publication were skipped. The final stack
retains both release gates; native Windows remains CI-only. No
ARM/Windows GPU coverage or package publication is claimed.


Separate automatic connector checks fail only two restricted BigQuery
tests missing `GCP_BIGQUERY_NO_TABLE_SERVICE_ACCOUNT` and
`GCP_BIGQUERY_NO_JOB_SERVICE_ACCOUNT`; 1,911 other connector tests
passed on each PR. That credential configuration is owned elsewhere and
is not fixed here.

## Hotfix Context

Release preparation.

## Checklist

- [x] Breaking changes listed (none intended).
- [x] Examples and documentation updated.
- [x] Focused tests added or updated.
danielmawhirter added a commit that referenced this pull request Nov 3, 2026
## Summary

Build Linux ARM64 and experimental native Windows wheels through the
shared assembly and native/legal verification pipeline, retaining Linux
x86-64 and macOS ARM64. Keep four CI build artifacts, but explicitly
allow only existing Linux x86-64 and macOS ARM64 wheels in release
attachment and publication. ARM64 release eligibility is deferred to
#92; native Windows stays disabled. Build checkout no longer persists
credentials.

Base `dm-platform-native`; 16 incremental files. Merge #91 → #140 → #92.
Windows release support uses WSL2 with the Linux x86-64 wheel.

Head `f87071eda8cf48f6cc138e65ca1857721e4a552b`.

## Change map

[Maintained file-by-file
map](#140 (comment)).

## Testing Done

Rebased onto main `836e343c`; all 19 stack commits are signed. Local
checks passed: 188 packaging/workflow tests plus four subtests, 94 core
tests, 158 datamodule tests (one required a subprocess-permission
rerun), 656 Rust tests (two ignored), 250-document validation, artifact
manifests, 410-component notices and flake8/isort. The workflow fixture
now uses local pathlib operations instead of application dependencies;
all 156 tests in the exact minimal repository-check environment passed
without pydantic.

Fresh [run
41570848349](https://github.com/NVIDIA/kumo-engine/actions/runs/41570848349)
at `8f5471712d5b36312b1ec899166da409ff9b1454` completed successfully:
four producers, 144 dependency resolutions, twelve CPU reload jobs and
the inherited Linux x86-64 GPU gate (eight tasks) passed. Release
attachment and Kitmaker publication were skipped. The final stack
retains both release gates; native Windows remains CI-only. No
ARM/Windows GPU coverage or package publication is claimed.


Separate automatic connector checks fail only two restricted BigQuery
tests missing `GCP_BIGQUERY_NO_TABLE_SERVICE_ACCOUNT` and
`GCP_BIGQUERY_NO_JOB_SERVICE_ACCOUNT`; 1,911 other connector tests
passed on each PR. That credential configuration is owned elsewhere and
is not fixed here.

## Hotfix Context

Release preparation.

## Checklist

- [x] Breaking changes listed (none intended).
- [x] Examples and documentation updated.
- [x] Focused tests added or updated.
danielmawhirter added a commit that referenced this pull request Nov 7, 2026
Design discussion: [ARM64 documentation
follow-up](#92 (comment)),
[confirmed Python
range](#92 (comment)).

## Summary

Make the DGX Spark guide wheel-first for Python 3.11–3.14, with optional
CPU or GPU Faiss for link prediction and a link to the engine's
connector/text extras. Keep CUDA tooling and a source checkout specific
to the optional GPU Faiss build.

Document prebuilt Linux x86_64/ARM64 and macOS Apple silicon wheels as
available for this release. Preserve WSL2-only Windows support.
Documentation only; no packaging, runtime or publication changes.

## Change map

[Maintained file-by-file change
map](#214 (comment))

## Testing Done

Passed: repository documentation checker (259 files), 36 documentation
unit tests, catalog documentation check, and `git diff --check`. Shell
examples are unchanged from the prior successful `bash -n` verification.
Reviewed commands and version claims against package metadata, build
scripts and public wheel indexes. Flake8/isort are not applicable: no
Python files changed.

Installation examples and DGX Spark GPU/Faiss workloads were not
executed. The existing CPU wheel qualification covers Python 3.11–3.14;
this docs-only follow-up adds no runtime validation.

## Hotfix Context

Release documentation follow-up to merged #92; ships with the release
publishing macOS and ARM64 wheels and assumes those wheels are
available.

## Checklist

- [x] Breaking changes listed: none.
- [x] Installation examples and documentation updated.
- [x] Documentation and reference checks completed; no runtime changes
require new tests.

This branch was previously deployed

1 inactive deployment
gha-kumo-workflow-tests — 8f547171 Deployed Nov 3, 2026 by danielmawhirter via import #1329
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.

3 participants