Skip to content

Conversation

@vonovak
Copy link
Contributor

@vonovak vonovak commented Aug 13, 2025

Why

This PR fixes an issue with profile extension in EAS JSON configuration. Previously, when a build profile extended a base profile that contained platform-specific settings, there was no handling for overriding these settings on the common level. For example, given eas.json:

{
    cli: {
      version: '>= 0.52.0',
      requireCommit: true,
      appVersionSource: 'remote',
      promptToConfigurePushNotifications: false,
    },
    build: {
      base {
        ios: {
          prebuildCommand: 'ios prebuild',
        },
        android: {
          prebuildCommand: 'android prebuild',
        },
      },
      extension1: {
        extends: 'base',
        prebuildCommand: 'new great prebuild',
      },
    },
  }

What should the resulting prebuildCommand be for extension1? Well, we didn't handle this scenario - these kinds of overrides were ignored.

It's probably quite unlikely that people will override random commands like this, but I happened to run into this problem when overriding the cache field: I was attempting to disable cache which was defined in base only for ios, but marking it as disabled: true in an extending workflow was ignored.

I fixed that in the first commit because I feel it's reasonable to want to disable a cache.

But then the question arises, what about overriding other entries like in the example above? I think it doesn't make sense to support this for all values, and in the second commit, I throw an error when user attempts to do that.

Up for for discussion whether this is best.

How

  • refactor packages/eas-json/src/build/resolver.ts

Test Plan

Added several test cases to verify the behavior.

Copy link
Contributor Author

vonovak commented Aug 13, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@vonovak vonovak changed the title [eas-cli] fix disabling cache when extending eas config [eas-cli] improve eas config extension handling Aug 13, 2025
@vonovak vonovak force-pushed the vonovak/_eas-cli_fix_disabling_cache_when_extending_eas_config branch from 08216bc to 3152bc2 Compare August 13, 2025 14:09
@vonovak vonovak force-pushed the vonovak/_eas-cli_fix_disabling_cache_when_extending_eas_config branch from 3152bc2 to 7e8a949 Compare August 13, 2025 14:11
@github-actions
Copy link

github-actions bot commented Aug 13, 2025

Size Change: -630 B (0%)

Total Size: 53.6 MB

Filename Size Change
./packages/eas-cli/dist/eas-linux-x64.tar.gz 53.6 MB -630 B (0%)

compressed-size-action

@vonovak vonovak force-pushed the vonovak/_eas-cli_fix_disabling_cache_when_extending_eas_config branch from 7e8a949 to aa06e60 Compare August 13, 2025 14:35
@codecov
Copy link

codecov bot commented Aug 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.92%. Comparing base (3784745) to head (8ab71f6).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3143      +/-   ##
==========================================
+ Coverage   51.90%   51.92%   +0.03%     
==========================================
  Files         616      616              
  Lines       24850    24861      +11     
  Branches     5225     5228       +3     
==========================================
+ Hits        12895    12906      +11     
  Misses      10883    10883              
  Partials     1072     1072              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@vonovak vonovak force-pushed the vonovak/_eas-cli_fix_disabling_cache_when_extending_eas_config branch from aa06e60 to 640cbb5 Compare August 13, 2025 14:39
@vonovak vonovak marked this pull request as ready for review August 13, 2025 14:40
@github-actions
Copy link

Subscribed to pull request

File Patterns Mentions
**/* @douglowder

Generated by CodeMention

Co-authored-by: Kadi Kraman <kadi@expo.io>
@github-actions
Copy link

✅ Thank you for adding the changelog entry!

@vonovak vonovak requested a review from douglowder August 13, 2025 18:57
@vonovak vonovak removed the request for review from sjchmiela August 29, 2025 10:40
@douglowder douglowder removed their request for review October 23, 2025 21:24
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.

3 participants