Skip to content

Update Ladybug to v0.21.2 and fix auto-update workflow - #11

Merged
adsharma merged 3 commits into
mainfrom
update/ladybug-0.21.2
Oct 6, 2026
Merged

adsharma merged 3 commits into
mainfrom
update/ladybug-0.21.2

Conversation

@adsharma

@adsharma adsharma commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Updates the vendored Ladybug C++ from v0.16.1 to v0.21.2 and fixes the broken auto-update workflow so future releases are picked up.

Ladybug v0.21.2

  • Bump Sources/LadybugCpp submodule v0.16.1 → v0.21.2 (+ nested dataset/extension)
  • Regenerate Package.swift via collect-ladybug-src.py (1183 files: new GDS/FTS/Arrow/graph sources, removed json_utils.cpp)
  • Bump default prebuilt LBUG_VERSION 0.16.1 → 0.21.2
  • Upstream C API changes are purely additive, and the Swift wrapper uses lbug_default_system_config() + per-field setters, so no wrapper changes needed
  • Fix swift-docc-plugin spec branch: → from: in Package.swift (fixes Package.swift: swift-docc-plugin declared with branch: "1.4.5" but 1.4.5 is a tag; SwiftPM/Xcode resolution fails #9; 1.4.5 is a tag, not a branch)

Auto-update workflow fix

  • Old script cloned into Sources/Ladybug (real path is Sources/LadybugCpp), defaulted to nonexistent master branch, ignored failures, and never bumped the pointer — scheduled runs silently did nothing
  • Now resolves latest to newest vX.Y.Z tag (or takes an explicit tag), checks out the submodule, regenerates, bumps prebuilt default, validates manifest, fails loudly
  • Workflow takes a version input (default latest); PR branch named after resolved tag; auto-merge removed so native bumps get CI + review

Verified locally: manifest dumps clean, regen is deterministic, version switching works both directions, latest resolves to v0.21.2.

- Bump Sources/LadybugCpp submodule v0.16.1 -> v0.21.2
- Regenerate Package.swift via collect-ladybug-src.py (1183 files;
  new GDS/FTS/arrow/graph sources, drop removed json_utils.cpp)
- Default prebuilt liblbug version 0.16.1 -> 0.21.2
- Fix swift-docc-plugin spec in Package.swift and template
  (branch: -> from:, 1.4.5 is a tag)
The old updater cloned ladybug into Sources/Ladybug (real submodule
is Sources/LadybugCpp), defaulted to a nonexistent 'master' branch,
ignored subprocess failures, and never bumped the submodule pointer,
so scheduled runs silently did nothing.

- Resolve 'latest' to the newest vX.Y.Z tag (or accept an explicit tag)
- Check out the tag in Sources/LadybugCpp + nested dataset/extension
- Regenerate Package.swift, bump download-liblbug.sh default, validate
  the manifest; fail loudly on any error
- Workflow takes a version input (default latest), names the PR branch
  after the resolved tag, and no longer auto-merges without review
- Mixed-type LIST/MAP parameters are coerced to a common type upstream
  since 0.17 (tryGetMaxParameterType) instead of erroring: assert the
  coerced strings ("4") rather than "same type" errors.
- Skip testGds when the published ALGO extension binary cannot be
  loaded (upstream 0.21.0 artifact ships without usable libnetworkit
  on macOS and Linux); any other failure still fails the test.
- collect-ladybug-src: drop out-of-package -I dirs (e.g. Homebrew
  OpenSSL, new in 0.21.x via CPPHTTPLIB_OPENSSL_SUPPORT) and the SSL
  define, which SwiftPM cannot express and xcodebuild rejects.
@adsharma
adsharma merged commit 6339834 into main Oct 6, 2026
7 checks passed
@adsharma
adsharma deleted the update/ladybug-0.21.2 branch October 6, 2026 20:00
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.

Package.swift: swift-docc-plugin declared with branch: "1.4.5" but 1.4.5 is a tag; SwiftPM/Xcode resolution fails

1 participant