🛠️ Maintenance
- Vendored the
motion_photospackage locally to resolve a dependency conflict — Themotion_photospackage (v1.0.0, last published 19 months ago) pinsxml ^6.2.2, which is incompatible withimage ^4.9.1(which requiresxml ^7.0.1), causingdart pub getto fail with a version-solving error. Rather than downgradeimage(losing fixes and features) or wait for an upstream release that does not exist, the small surface area ofmotion_photosthat GPTH uses (MotionPhotos,isMotionPhoto(),getMotionVideoIndex(),VideoIndex) is now re-implemented as a pure-Dart module atlib/common/services/media_services/motion_photos.dart. The implementation mirrors the package's algorithm verbatim (Boyer-Moore search for the MP4ftyp mp42header, then XMP fallback parsingGCamera:MicroVideoOffset/Item:Length), with the only difference being that XMP parsing uses regex instead of thexmlpackage, dropping the transitivexmldependency entirely. Themotion_photosdependency was removed frompubspec.yaml, and all imports inlibandtestwere updated to point at the local module. - Bumped the Dart SDK constraint to
>=3.11.0and pinned the CI Dart SDK to 3.11 —image 4.9.1depends onxml ^7.0.1, which itself requires SDK^3.11.0. The previous constraint (>=3.9.0) allowed Dart 3.9/3.10 wherexml 7.0.1cannot run, sodart pub getfailed on CI runners that installed an older stable Dart. The SDK floor is now3.11.0, and all three GitHub Actions workflows (build-nightly,new-release,build-and-create-release) passsdk: 3.11todart-lang/setup-dartso the correct Dart version is installed on every build runner.
What's Changed
New Contributors
Full Changelog: v6.1.6...v6.1.8