Skip to content

Conversation

@zamderax
Copy link

@zamderax zamderax commented Dec 9, 2025

Summary

This PR adds comprehensive documentation, tests, and cross-platform CI support to loro-swift:

  • DocC Documentation: 8 articles covering all container types

    • GettingStarted guide
    • WorkingWithText, WorkingWithLists, WorkingWithMaps
    • WorkingWithTrees, WorkingWithCounters
    • VersioningAndSync (including time travel)
  • Comprehensive Tests: 51 new unit tests covering

    • Text operations (insert, delete, marks, delta, sync)
    • List and MovableList operations
    • Map operations with conflict resolution
    • Tree operations with fractional indexing
    • Counter operations
    • Versioning, time travel, and synchronization
  • Cross-Platform CI: GitHub Actions matrix for

    • macOS, Linux, and Windows
    • Swift 6.0 support
    • Rust FFI build integration
  • Linux Compatibility: FoundationEssentials support for lighter Foundation dependency

Test Plan

  • All 76 tests pass on macOS
  • CI will validate Linux and Windows builds
  • DocC documentation builds successfully

Files Changed

Category Files
Documentation 8 new DocC articles in Sources/Loro/Loro.docc/
Tests Updated Tests/LoroTests/LoroTests.swift with 51 new tests
CI Updated .github/workflows/ci.yaml with matrix build
Build Scripts scripts/build_linux.sh, scripts/build_windows.ps1
Package Updated Package.swift for cross-platform support
Source FoundationEssentials imports in Loro.swift, Value.swift, Event.swift, Ephemeral.swift

- Add DocC documentation catalog with 8 articles covering all container types
  - GettingStarted, WorkingWithText, WorkingWithLists, WorkingWithMaps
  - WorkingWithTrees, WorkingWithCounters, VersioningAndSync
- Add 51 new unit tests for Text, List, MovableList, Map, Tree, Counter, and Versioning
- Add Linux and Windows CI support with GitHub Actions matrix
- Add FoundationEssentials support for better Linux compatibility
- Add build scripts for Linux (build_linux.sh) and Windows (build_windows.ps1)
- Update Package.swift for cross-platform support with system library target
- Remove Windows CI (complex Swift/VisualC integration issues)
- Mark Linux CI as experimental with continue-on-error
- Revert Package.swift to original simple form (avoids #if os issues)
- Test on Swift 5.10 and 6.0 on macOS
- Update CI to use swiftly for Swift 6.2 installation on macOS and Linux
- Add build_artifactbundle.sh script to build static libraries from Rust
- Update Package.swift to use artifact bundles (SE-0482) for local builds
- Fix Swift 6 strict concurrency issues in generated LoroFFI.swift
- Fix protocol constraints to allow struct conformance
- Add toString() convenience methods for backward compatibility
- Update to loro-ffi 1.10.3
- Creates artifact bundle with variants for macOS, Linux (x86_64/arm64), Windows
- Automatically publishes to GitHub releases on tag push
- Includes checksum and updated LoroFFI.swift in release
- Update Package.swift to use artifact bundle URL for releases
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.

1 participant