fix(ci): force exact Ditto versions#201
Conversation
Not forcing these can cause builds to pick up other versions, without any warning or failure.
There was a problem hiding this comment.
Pull Request Overview
This PR enforces exact version pinning for Ditto dependencies across multiple projects to prevent silent version resolution issues during CI builds. The change was prompted by discovering that prerelease versions (like ^4.11.7-rc.1) were being silently ignored in favor of stable releases, leading to false-positive CI results.
Key Changes:
- Removed caret (
^) version prefix from all Ditto package dependencies - Changed from semver range specification to exact version pinning
Reviewed Changes
Copilot reviewed 5 out of 11 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| react-native/package.json | Pinned @dittolive/ditto to exact version 4.12.3 |
| react-native-expo/package.json | Pinned @dittolive/ditto to exact version 4.12.3 |
| javascript-web/package.json | Pinned @dittolive/ditto to exact version 4.12.3 |
| javascript-tui/package.json | Pinned @dittolive/ditto to exact version 4.12.3 |
| flutter_app/pubspec.yaml | Pinned ditto_live to exact version 4.12.3 |
Files not reviewed (4)
- javascript-tui/package-lock.json: Language not supported
- javascript-web/package-lock.json: Language not supported
- react-native-expo/package-lock.json: Language not supported
- react-native/package-lock.json: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pvditto
left a comment
There was a problem hiding this comment.
Not using exact versions is good when quickstart apps are just that - quickstart apps - because it allows us to be less timely with bumping versions and still have users install the latest patches available. But of course it interferes with our dual use of running integration tests on the same apps. LGTM!
Not forcing these can cause builds to pick up other versions, without any warning or failure.
This was discovered when testing
4.11.7-rc.1. Flutter was asked to pick^4.11.7-rc.1, but failed to do so and silently defaulted to the latest version,4.12.3, giving us false-positive results in the CI.