Skip to content

2025-11-15

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Nov 03:41
Make all swift anon targets content based hashed

Summary:
TSIA

For the anon targets, we could not use `get_uses_experimental_content_based_path_hashing(ctx)` to determine whether we enable content based paths to them (as demonstrated in D86439116)

The reason is that the current setup of rolling out the feature is on a per app basis by adding a modifier to the app's target platform. The issue that brings is that any dependency that is built against the execution platform won't get that information, causing them to still have content based paths disabled. Then, when come to anon targets, if target A and target B both depends on anon target X, if A has content based path enabled and B has it disabled, this would cause an inconsistent state for target X, which leads to a duplicate entry in modulemap.json (https://www.internalfb.com/intern/diffing/?paste_number=2028864153), and hence causing build failures.

The solution, as described by the updated rollout plan: https://docs.google.com/document/d/1tS5CUQ8Xdpx6-hbsUx6NoGXd4VpuZu7FeXtXfHVGoRo/edit?tab=t.0, is that we will be a bit more aggressive in our rollout strategy and just enable content based path by default to the targets that are causing issues.

#buildall-fbobjc

Reviewed By: benb

Differential Revision: D86690264

fbshipit-source-id: 3c976288fee84cc24cbbee6b2067badb9a65825a