Skip to content

Commit 76cdd8e

Browse files
committed
Move tooling versions out of UpdateData and to respective Android/AppleAppInfoModels.
1 parent 3b2c2d5 commit 76cdd8e

File tree

8 files changed

+15
-26
lines changed

8 files changed

+15
-26
lines changed

src/launchpad/api/update_api_models.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ class PutSizePending(BaseModel):
3737
]
3838

3939

40-
class AppleAppInfo(BaseModel):
40+
class BaseAppInfo(BaseModel):
41+
cli_version: Optional[str] = Field(None, description="sentry-cli version used for uploading")
42+
43+
44+
class AppleAppInfo(BaseAppInfo):
4145
is_simulator: bool
4246
codesigning_type: Optional[str] = None
4347
profile_name: Optional[str] = None
@@ -48,10 +52,12 @@ class AppleAppInfo(BaseModel):
4852
certificate_expiration_date: Optional[str] = None
4953
missing_dsym_binaries: Optional[List[str]] = None
5054
build_date: Optional[str] = None
55+
fastlane_plugin_version: Optional[str] = Field(None, description="Fastlane plugin version used for uploading")
5156

5257

53-
class AndroidAppInfo(BaseModel):
58+
class AndroidAppInfo(BaseAppInfo):
5459
has_proguard_mapping: bool
60+
gradle_plugin_version: Optional[str] = Field(None, description="Gradle plugin version used for uploading")
5561

5662

5763
class UpdateData(BaseModel):
@@ -63,13 +69,6 @@ class UpdateData(BaseModel):
6369
apple_app_info: Optional[AppleAppInfo] = None
6470
android_app_info: Optional[AndroidAppInfo] = None
6571
dequeued_at: Optional[datetime] = Field(None, description="Timestamp when message was dequeued from Kafka")
66-
cli_version: Optional[str] = Field(None, description="sentry-cli version extracted from .sentry-cli-metadata.txt")
67-
fastlane_plugin_version: Optional[str] = Field(
68-
None, description="Fastlane plugin version extracted from .sentry-cli-metadata.txt"
69-
)
70-
gradle_plugin_version: Optional[str] = Field(
71-
None, description="Gradle plugin version extracted from .sentry-cli-metadata.txt"
72-
)
7372

7473
@field_serializer("dequeued_at")
7574
def serialize_datetime(self, dt: datetime | None) -> str | None:

src/launchpad/artifact_processor.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -442,12 +442,16 @@ def _get_artifact_type(artifact: Artifact) -> ArtifactType:
442442
certificate_expiration_date=app_info.certificate_expiration_date,
443443
missing_dsym_binaries=app_info.missing_dsym_binaries,
444444
build_date=app_info.build_date,
445+
cli_version=app_info.cli_version,
446+
fastlane_plugin_version=app_info.fastlane_plugin_version,
445447
)
446448

447449
android_app_info = None
448450
if isinstance(app_info, AndroidAppInfo):
449451
android_app_info = AndroidAppInfoModel(
450452
has_proguard_mapping=app_info.has_proguard_mapping,
453+
cli_version=app_info.cli_version,
454+
gradle_plugin_version=app_info.gradle_plugin_version,
451455
)
452456

453457
update_data = UpdateData(
@@ -459,9 +463,6 @@ def _get_artifact_type(artifact: Artifact) -> ArtifactType:
459463
apple_app_info=apple_app_info,
460464
android_app_info=android_app_info,
461465
dequeued_at=dequeued_at,
462-
cli_version=app_info.cli_version,
463-
fastlane_plugin_version=app_info.fastlane_plugin_version,
464-
gradle_plugin_version=app_info.gradle_plugin_version,
465466
)
466467

467468
return update_data.model_dump(exclude_none=True)

src/launchpad/size/analyzers/android.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ def preprocess(self, artifact: AndroidArtifact) -> AndroidAppInfo:
6060
app_id=manifest_dict["package_name"],
6161
has_proguard_mapping=has_proguard_mapping,
6262
cli_version=metadata.cli_version,
63-
fastlane_plugin_version=metadata.fastlane_plugin_version,
6463
gradle_plugin_version=metadata.gradle_plugin_version,
6564
)
6665

src/launchpad/size/analyzers/apple.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,6 @@ def _extract_app_info(self, xcarchive: ZippedXCArchive) -> AppleAppInfo:
359359
missing_dsym_binaries=missing_dsym_binaries,
360360
cli_version=metadata.cli_version,
361361
fastlane_plugin_version=metadata.fastlane_plugin_version,
362-
gradle_plugin_version=metadata.gradle_plugin_version,
363362
)
364363

365364
def _get_profile_type(self, profile_data: dict[str, Any]) -> Tuple[str, str]:

src/launchpad/size/models/android.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class AndroidAppInfo(BaseAppInfo):
3030
model_config = ConfigDict(frozen=True)
3131

3232
has_proguard_mapping: bool = Field(default=False, description="Whether the app has a proguard mapping file")
33+
gradle_plugin_version: str | None = Field(None, description="Gradle plugin version used for uploading")
3334

3435

3536
class AndroidAnalysisResults(BaseAnalysisResults):

src/launchpad/size/models/apple.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class AppleAppInfo(BaseAppInfo):
7070
missing_dsym_binaries: List[str] = Field(
7171
default_factory=list, description="List of binary names that don't have corresponding dSYM files"
7272
)
73+
fastlane_plugin_version: str | None = Field(None, description="Fastlane plugin version used for uploading")
7374

7475

7576
class AppleInsightResults(BaseModel):

src/launchpad/size/models/common.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,7 @@ class BaseAppInfo(BaseModel):
2828
version: str = Field(..., description="App version")
2929
build: str = Field(..., description="Build number")
3030
app_id: str = Field(..., description="App ID (bundle id on iOS, package name on Android)")
31-
cli_version: str | None = Field(None, description="sentry-cli version extracted from .sentry-cli-metadata.txt")
32-
fastlane_plugin_version: str | None = Field(
33-
None, description="Fastlane plugin version extracted from .sentry-cli-metadata.txt"
34-
)
35-
gradle_plugin_version: str | None = Field(
36-
None, description="Gradle plugin version extracted from .sentry-cli-metadata.txt"
37-
)
31+
cli_version: str | None = Field(None, description="sentry-cli version used for uploading")
3832

3933

4034
class FileAnalysis(BaseModel):

src/launchpad/utils/metadata_extractor.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
"""Utility for extracting metadata from .sentry-cli-metadata.txt files in artifacts."""
2-
31
import zipfile
42

53
from pathlib import Path
@@ -23,9 +21,6 @@ def __init__(
2321
self.fastlane_plugin_version = fastlane_plugin_version
2422
self.gradle_plugin_version = gradle_plugin_version
2523

26-
def __repr__(self) -> str:
27-
return f"ToolingMetadata(cli_version={self.cli_version}, fastlane_plugin_version={self.fastlane_plugin_version}, gradle_plugin_version={self.gradle_plugin_version})"
28-
2924

3025
def extract_metadata_from_zip(zip_path: Path) -> ToolingMetadata:
3126
try:

0 commit comments

Comments
 (0)