Skip to content

Ensure source bundles generated in the same run don't get overwritten (macOS) #2502

@limbonaut

Description

@limbonaut

Description

This issue is reproducible only on macOS.

When creating source bundles for Godot Engine builds, the previously created bundle for a different architecture gets overwritten because the file name for the source bundle does not include architecture (unlike the original files).

Let me explain with an example. Let's say we compiled templates for macOS using the Sentry guide. We should have the following files and folders in the bin directory as the result:

-rw-r--r--@ 1 limbonaut  staff   51771497 May  7 15:16 godot_macos.zip
-rwxr-xr-x@ 1 limbonaut  staff   71421504 May  7 15:16 godot.macos.template_release.arm64
drwxr-xr-x@ 3 limbonaut  staff         96 May  7 15:15 godot.macos.template_release.arm64.dSYM
-rwxr-xr-x@ 1 limbonaut  staff  153783872 May  7 15:16 godot.macos.template_release.fat
-rwxr-xr-x@ 1 limbonaut  staff   82355224 May  7 15:13 godot.macos.template_release.x86_64
drwxr-xr-x@ 3 limbonaut  staff         96 May  7 15:12 godot.macos.template_release.x86_64.dSYM

To generate source bundles, we could run the following command:

$ sentry-cli debug-files bundle-sources bin/*.dSYM
  WARN    2025-05-12 09:21:07.921441 +02:00 Source exceeded maximum item size limit (1161314). /Users/limbonaut/Projects/godot/main/thirdparty/ufbx/ufbx.c
/Users/limbonaut/Projects/godot/main/bin/godot.macos.template_release.src.zip
  WARN    2025-05-12 09:21:09.496129 +02:00 Source exceeded maximum item size limit (1161314). /Users/limbonaut/Projects/godot/main/thirdparty/ufbx/ufbx.c
/Users/limbonaut/Projects/godot/main/bin/godot.macos.template_release.src.zip

As you can see by the output, sentry-cli generates source bundles with the same file name twice, effectively overwriting its own work. These are supposed to be separate bundles.

I propose that sentry-cli either should keep track of already generated files, so as not to overwrite them, or incorporate the file name in its naming scheme fully, including the architecture tag.

Related to:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions