-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
feat(preprod): Add tooling versions to apple_app_info and android_app_info (EME-606)
#104846
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
apple_app_info and android_app_info (EME-606)
cli and fastlane plugin versions as part of `apple_app_info` cli and gradle plugin versions as part of `android_app_info` This replaces those respective fields in the UpdateData object.
ccd1e86 to
92173be
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #104846 +/- ##
===========================================
- Coverage 80.49% 80.49% -0.01%
===========================================
Files 9371 9371
Lines 402261 402264 +3
Branches 25841 25841
===========================================
Hits 323794 323794
- Misses 78019 78022 +3
Partials 448 448 |
|
|
||
| if "cli_version" in android_info: | ||
| head_artifact.cli_version = android_info["cli_version"] | ||
| updated_fields.append("cli_version") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Duplicate field entries possible when both platforms present
If a request contains both apple_app_info and android_app_info with cli_version set in each, the updated_fields list will contain "cli_version" twice. This causes the API response's updatedFields array to have duplicate entries. Additionally, the final stored value for cli_version will be from android_app_info since it's processed second, silently overwriting the Apple value with no indication to the caller.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both platforms cannot be present in a single zip.
| "android_app_info": "The android_app_info field must be an object.", | ||
| "android_app_info.has_proguard_mapping": "The has_proguard_mapping field must be a boolean.", | ||
| "android_app_info.cli_version": "The cli_version field must be a string with a maximum length of 255 characters.", | ||
| "android_app_info.gradle_plugin_version": "The gradle_plugin_version field must be a string with a maximum length of 255 characters.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Nested error messages will never be displayed to users
The newly added error messages for nested fields like apple_app_info.cli_version, apple_app_info.fastlane_plugin_version, android_app_info.cli_version, and android_app_info.gradle_plugin_version will never be displayed. The error handling at lines 116-118 only uses e.path[0] (the first path element), so it constructs keys like "apple_app_info" instead of the full dotted path "apple_app_info.cli_version". When validation fails on these nested properties, users will see the parent object's error message instead of the specific field's message.
rbro112
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect, thanks for this!
app_infoobject.apple_app_infoandroid_app_info