Handoff: modelling-export versions on Nexus vs the schema 1.1 writer

2026-09-04 13:58 · for the next agent session · generated by Claude (Fable 5.1)

Summary

Continuation target: confirm the version situation of iolabs-point-cloud-modelling-export and, if Miro agrees, release the schema-1.1 writer as 0.10.0 to Nexus, then relock the consumers.

Finding so far: Nexus tops out at 0.9.0, which is the schema-1.0 writer (only write_xml.py, no feature_classes.py, no SchemaVersion). The schema-1.1 work (AI3D-376) is already merged to origin/master (PR #4) but pyproject.toml still says 0.9.0, no tag past v0.9.0 exists, and nothing newer was published. The local master and the local checkout branch are both behind origin/master.

Current state

Nexus (checked 2026-09-04 via the simple index)

Published versions0.1.0, 0.1.1, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.8.0, 0.9.0 (sdists only)
0.9.0 sdist contentssrc/iolabs_point_cloud_modelling_export/__init__.py, write_xml.py, README, pyproject. Zero hits for SchemaVersion in write_xml.py.
Index URLhttps://nexus.iolabs.ch/repository/pypi-private/simple/iolabs-point-cloud-modelling-export/ (auth via UV_INDEX_NEXUS_USERNAME / UV_INDEX_NEXUS_PASSWORD in the environment; do not paste them anywhere)

Git, repo /mnt/data/dev/3dai.iolabs.pointcloud.modellingexport

Remotegit@bitbucket.org:ioholding/3dai.iolabs.pointcloud.modellingexport.git
Tag v0.9.067047e6 "AI3D-346 Release v0.9.0" (2026-07-22). Tree = the Nexus 0.9.0 content. Local master sits here.
Local checked-out branchai3d-376-xml-schema-1-1 at 95adddf, 11 commits past v0.9.0, clean tree, 1064 tests pass.
origin/masterb2cea5a = branch merged via c0339bf "Merged in ai3d-376-xml-schema-1-1 (pull request #4)" plus b2cea5a "AI3D-369: Remove tautological tests". pyproject.toml there still reads version = "0.9.0". No tag on it.
Local dist/wheels/sdists for 0.7.0, 0.7.1, 0.9.0 only (stale, ignore).

Consumers (all pull from the Nexus index)

RepoPinNote
3dai.iolabs.pointcloud.asphaltedge (branch t3code/3abd1a9d, AI3D-384)>=0.9.0, locked 0.9.0New export_xml.py is writer-agnostic: builds feature dicts by hand; emits Annotation/Attributes/SchemaVersion only once a 1.1 writer is installed (export_xml.WRITER_SCHEMA_VERSION).
3dai.iolabs.pointcloud.modellinglines>=0.8.0lanefinder step 7 lane model; legacy producer dict, must keep byte-identical output under 1.1 (spec R-2.4.1).
3dai.lanefinderunpinnedcalls write_xml.create_xml in scripts/pipeline/run_7_cluster_stepper.py.
3dai.iolabs.pointcloud.guardrailsunpinnedguardrails/export.py has a stand-in writer fallback; 1.1 would let it move polyline keys into attributes (spec N-8.6.3).

Key artifacts

Verification done / not done

Next steps

  1. Sync the repo: in /mnt/data/dev/3dai.iolabs.pointcloud.modellingexport run git switch master && git pull --ff-only. Confirm git log --oneline -3 shows b2cea5a on top and grep ^version pyproject.toml still says 0.9.0.
  2. Run the suite on master: uv run pytest -q. Check the README still describes 1.1 and that feature_classes.py is present.
  3. Ask Miro (or use the standing decision if he already gave one) to release 0.10.0. Minor bump is the right size: new elements, legacy dicts byte-identical apart from SchemaVersion.
  4. Release with the wrap-up skill under Jira tag AI3D-376: bump to 0.10.0, uv build, uv publish dist/*0.10.0*, commit, tag v0.10.0, push with tags. Verify with the Nexus simple index listing that 0.10.0 appears (wheel and sdist).
  5. Relock consumers to >=0.10.0: asphaltedge first (branch t3code/3abd1a9d; then tests/test_export_xml.py runs without the skip and the exported XML gains SchemaVersion/Annotation/Attributes), then modellinglines and lanefinder (uv lock --upgrade-package iolabs-point-cloud-modelling-export), guardrails when its 1.1 migration is done.
  6. Update the memory note modellingexport-nexus-version-lag.md to say 0.10.0 is published, or delete it.

Risks and open questions

Suggested skills