Skip to content

fix(checkpoints): ensure remote config reads are generation consistent - #7575

Draft
rickvdl wants to merge 6 commits into
rickvdl/namespace-checkpoint-resultsfrom
rickvdl/remote-config-generation-consistency
Draft

fix(checkpoints): ensure remote config reads are generation consistent#7575
rickvdl wants to merge 6 commits into
rickvdl/namespace-checkpoint-resultsfrom
rickvdl/remote-config-generation-consistency

Conversation

@rickvdl

@rickvdl rickvdl commented Sep 2, 2026

Copy link
Copy Markdown
Member

Description

Multiple remote config topic providers were doing (cache) staleness checks against the current config generation. Essentially duplicating work in the config providers that ultimately should be part of the infrastructure layer.

This PR addresses that by introducing a RemoteConfigManager.readConsistent {} helper that will ensure the remote config generation being stable for as long as the operation. All config topic providers were updated to use this new helper.

@emerge-tools

emerge-tools Bot commented Sep 2, 2026

Copy link
Copy Markdown

4 builds increased size

Name Version Download Change Install Change Approval
RevenueCat
com.revenuecat.PaywallsTester
1.0 (1) 20.3 MB ⬆️ 49.0 kB (0.24%) 73.9 MB ⬆️ 216.9 kB (0.3%) N/A
BinarySizeTest
com.revenuecat.binary-size-test.local-source
1.0 (1) 4.9 MB ⬆️ 32.9 kB (0.67%) 14.6 MB ⬆️ 78.0 kB (0.54%) ⏳ Needs approval
BinarySizeTest
com.revenuecat.binary-size-test.cocoapods
1.0 (1) 7.3 MB ⬆️ 36.0 kB (0.5%) 31.7 MB ⬆️ 145.0 kB (0.46%) ⏳ Needs approval
BinarySizeTest
com.revenuecat.binary-size-test.spm
1.0 (1) 4.9 MB ⬆️ 32.1 kB (0.65%) 12.6 MB ⬆️ 77.9 kB (0.62%) ⏳ Needs approval

RevenueCat 1.0 (1)
com.revenuecat.PaywallsTester

⚖️ Compare build
⏱️ Analyze build performance

Total install size change: ⬆️ 216.9 kB (0.3%)
Total download size change: ⬆️ 49.0 kB (0.24%)

Largest size changes

Item Install Size Change
DYLD.String Table ⬆️ 90.2 kB
Code Signature ⬆️ 6.0 kB
RevenueCat.CustomerInfoManager.CustomerInfoManager ⬆️ 2.9 kB
DYLD.Exports ⬆️ 1.7 kB
Strings.Unmapped ⬆️ 1.5 kB
View Treemap

Image of diff

BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.local-source

⚖️ Compare build
📦 Install build
⏱️ Analyze build performance

Total install size change: ⬆️ 78.0 kB (0.54%)
Total download size change: ⬆️ 32.9 kB (0.67%)

Largest size changes

Item Install Size Change
📝 RevenueCat.CustomerInfoDimensionProvider.values(for,at) ⬆️ 7.2 kB
📝 RevenueCat.CustomerInfoDimensionProvider.entitlements(from) ⬆️ 6.1 kB
📝 RevenueCat.CustomerInfoDimensionProvider.purchases(from,at) ⬆️ 3.3 kB
Swift.Sequence.reduce(into) ⬆️ 3.2 kB
Swift.UnsafeMutableBufferPointer._stableSortImpl(by) ⬆️ 3.0 kB
View Treemap

Image of diff

BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.cocoapods

⚖️ Compare build
📦 Install build
⏱️ Analyze build performance

Total install size change: ⬆️ 145.0 kB (0.46%)
Total download size change: ⬆️ 36.0 kB (0.5%)

Largest size changes

Item Install Size Change
DYLD.String Table ⬆️ 51.6 kB
📝 RevenueCat.CustomerInfoDimensionProvider.values(for,at) ⬆️ 7.2 kB
📝 RevenueCat.CustomerInfoDimensionProvider.entitlements(from) ⬆️ 6.1 kB
📝 RevenueCat.CustomerInfoDimensionProvider.purchases(from,at) ⬆️ 4.3 kB
Swift.Sequence.reduce(into) ⬆️ 3.6 kB
View Treemap

Image of diff

BinarySizeTest 1.0 (1)
com.revenuecat.binary-size-test.spm

⚖️ Compare build
📦 Install build
⏱️ Analyze build performance

Total install size change: ⬆️ 77.9 kB (0.62%)
Total download size change: ⬆️ 32.1 kB (0.65%)

Largest size changes

Item Install Size Change
📝 RevenueCat.CustomerInfoDimensionProvider.values(for,at) ⬆️ 7.2 kB
📝 RevenueCat.CustomerInfoDimensionProvider.entitlements(from) ⬆️ 6.1 kB
📝 RevenueCat.CustomerInfoDimensionProvider.purchases(from,at) ⬆️ 3.3 kB
Swift.Sequence.reduce(into) ⬆️ 3.2 kB
Swift.UnsafeMutableBufferPointer._stableSortImpl(by) ⬆️ 3.0 kB
View Treemap

Image of diff


🛸 Powered by Emerge Tools

Comment trigger: Size diff threshold of 100.00kB exceeded

@rickvdl
rickvdl force-pushed the rickvdl/remote-config-generation-consistency branch from 7c5a0f8 to 10617c7 Compare September 2, 2026 13:27
@rickvdl
rickvdl force-pushed the rickvdl/remote-config-generation-consistency branch from 10617c7 to fd18a89 Compare September 2, 2026 13:31
@rickvdl
rickvdl force-pushed the rickvdl/remote-config-generation-consistency branch from fd18a89 to b95246d Compare September 3, 2026 08:41
@rickvdl

rickvdl commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

@RCGitBot please test

@rickvdl
rickvdl requested review from a team, ajpallares and tonidero September 4, 2026 04:54

@ajpallares ajpallares left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it looks good! I have some comments, the most important one about the generation Int in the operation closure not being used, I believe.

Comment thread Sources/Networking/WorkflowsConfigProvider.swift Outdated
Comment thread Tests/UnitTests/Networking/RemoteConfig/RemoteConfigIntegrationTests.swift Outdated
Comment thread Tests/UnitTests/Networking/RemoteConfig/RemoteConfigManagerTests.swift Outdated
Comment thread Sources/Networking/RemoteConfigManager.swift Outdated

@tonidero tonidero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just the existing comments, but looks great to me!

@rickvdl

rickvdl commented Sep 4, 2026

Copy link
Copy Markdown
Member Author

@RCGitBot please test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants