pablof7z / pablof7z/nampplets

[M0] Repair clean-checkout build gates and pin a compatible Rust/Swift toolchain

Open
#2 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: CI area: runtime bdd: required enhancement milestone: M0 priority: blocker
Dominant language
Rust
Stars
1
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Spec / invariant

Definition of done; FR-C10, FR-R07. A fresh clone must reproduce every generated native artifact and test result.

Current evidence

CI pins Rust 1.85 while Cargo.lock contains packages requiring newer compilers. Apple CI runs Swift tests without first producing the ignored universal XCFramework, so a clean runner cannot resolve NMPNativeRuntime.

Deliverables

Pin one toolchain compatible with the lock or make the lock compatible; build/regenerate UniFFI Swift sources and the universal XCFramework in CI; validate generated bindings are current; document clean-clone commands.

Acceptance

A fresh checkout with empty target/.build passes Rust fmt/clippy/tests, the Swift package tests, Apple package tests, and the shared Workbench scheme on both arm64 and x86_64 artifacts. No generated binary is committed.

Dependencies

None.

Global constraints

  • ~/Work/nmp is read-only; do not modify it.
  • Use the pinned NMP public facade only and keep queues/maps/frames finite.
  • Do not advertise behavior until its contract and teardown tests pass.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Inspect the CI toolchain pins and Cargo.lock first, then trace the UniFFI Swift-source and universal XCFramework generation steps. Run the existing Rust, Swift, Apple package, and Workbench checks from an empty target/.build checkout on both arm64 and x86_64. Done means all gates pass without committing generated binaries and clean-clone commands are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, swift
Domain
build-system, ci-cd
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.