Skip to content

feat(size): Drive binary analysis worker count from sentry-options - #672

Merged
NicoHinderling merged 1 commit into
mainfrom
feat/binary-analysis-workers-option
Sep 4, 2026
Merged

feat(size): Drive binary analysis worker count from sentry-options#672
NicoHinderling merged 1 commit into
mainfrom
feat/binary-analysis-workers-option

Conversation

@NicoHinderling

@NicoHinderling NicoHinderling commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #663 and #671. The choice between the process pool and the old in-process path for Apple per-binary analysis was controlled by a deploy-time env var. Changing it meant an ops PR and a rollout, which is the wrong shape for a rollout lever: the point of the switch is to flip a region back to serial quickly if the parallel path misbehaves, or to trim workers for a region with smaller pods, without redeploying.

This moves the knob to a sentry-option, size.binary_analysis.workers, using the wiring from #668. It's an integer with a schema default of 4; 0 selects the in-process path. The processor reads the option when it builds the analyzer and passes it as a constructor argument alongside the existing skip_* flags, so the size package stays free of the options client, the CLI keeps the default of four, and each task picks up the current value. The env var and its parsing are removed rather than kept as a second knob.

The paired getsentry/sentry-options-automator#9609 sets the value explicitly to 4 in launchpad's default values, so a later change, or a region override such as 0 for a serial baseline or 2 for a memory-constrained region, is a one-line edit there. That PR validates against this schema, so it merges after this one.

Tests: unit tests on the analyzer factory for the schema default and an overridden value via override_options, following the projects.skip tests; the worker-count and in-process-versus-parallel equivalence integration tests now set the count through the constructor, as do the worker-logging tests.

The pool-versus-serial decision for Apple per-binary analysis was a
deploy-time env var, so flipping a region back to the serial path or
trimming workers to fit a smaller pod meant an ops change and a
rollout. Move it to a `size.binary_analysis.workers` option so the
value can change per region without a redeploy; 0 keeps the previous
in-process behaviour.

The processor reads the option when it builds the analyzer and passes
it as a constructor argument, so the size package stays free of the
options client and the CLI keeps the default of four.
@sentry

sentry Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Size Analysis

1 component analyzed, 1 component processing

iOS Builds

Name Configuration Version Download Size Install Size
HackerNews (iOS)
com.emergetools.hackernews
Release 3.8 (1) 6.5 MB (0 B) 9.7 MB (0 B)

Android Builds

Name Configuration Version Download Size Uncompressed Size
Hacker News (Android)
com.emergetools.hackernews
Release 1.0.2 (13) Processing... (-) Processing... (-)

Configure launchpad-test-ios status check rules

@sentry

sentry Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📲 Install Builds

iOS

🔗 App Name App ID Version Configuration
HackerNews com.emergetools.hackernews 3.8 (1) Release

Android

🔗 App Name App ID Version Configuration
Hacker News com.emergetools.hackernews 1.0.2 (13) Release

⚙️ launchpad-test-android Build Distribution Settings

@NicoHinderling
NicoHinderling merged commit f9281e4 into main Sep 4, 2026
28 checks passed
@NicoHinderling
NicoHinderling deleted the feat/binary-analysis-workers-option branch September 4, 2026 03:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants