Skip to content

Pin SWIG 4.4.1 across package builds - #239

Merged
MaxRev-Dev merged 2 commits into
mainfrom
fix/pin-swig-4.2
Aug 28, 2026
Merged

MaxRev-Dev merged 2 commits into
mainfrom
fix/pin-swig-4.2

Conversation

@MaxRev-Dev

@MaxRev-Dev MaxRev-Dev commented Aug 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

Pin SWIG 4.4.1 across Linux, macOS, and Windows package builds so each platform generates the same C# API surface.

  • keep the SWIG version and source checksum in shared/swig.lock
  • build checksum-verified SWIG from source on Unix platforms
  • install the locked Chocolatey version on Windows and fail if another version remains active
  • invalidate platform build caches when the shared SWIG lock changes
  • update local build prerequisites and stable PATH guidance

Context

This addresses the ABI consistency concern raised in OSGeo/gdal#15079. SWIG versions below 4.2 do not support the C# cs:defaultargs feature used by that bindings overhaul, which could otherwise give the same NuGet package version a different API surface on Linux.

Tests

  • built and ran the locked SWIG version from a clean temporary prefix on macOS
  • built the Debian 12 base stage and verified swig -version reports 4.4.1
  • passed ShellCheck and shell syntax validation
  • passed PowerShell parser and shared-lock parsing validation
  • parsed the modified GitHub Actions workflows as YAML
  • passed Dockerfile build checks (apart from an existing keyword-casing warning in ci/Dockerfile.vcpkg)

@MaxRev-Dev
MaxRev-Dev merged commit 7167ab7 into main Aug 28, 2026
15 checks passed
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