Skip to content

Updated Yoga to the latest version and integrate new attributes#98

Open
scorsin-oai wants to merge 9 commits into
Snapchat:mainfrom
scorsin-oai:simon/260514-yoga_upgrade
Open

Updated Yoga to the latest version and integrate new attributes#98
scorsin-oai wants to merge 9 commits into
Snapchat:mainfrom
scorsin-oai:simon/260514-yoga_upgrade

Conversation

@scorsin-oai
Copy link
Copy Markdown

@scorsin-oai scorsin-oai commented May 14, 2026

Description

This change upgrades Yoga to the latest upstream version, and adds support for the gap, rowGap, and columnGap properties. The Yoga C++ API had changed quite a bit so I had to update the runtime code in a bunch of places.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • Documentation improvement
  • Performance optimization
  • Test improvement
  • Other (please describe)

Testing

  • Tests pass locally (bazel test //...)
  • Added/updated tests for changes (if applicable)
  • Tested on multiple platforms (iOS/Android/Web/macOS as applicable)
  • Manual testing performed (describe below)

Testing Details

Checklist

  • Code follows project style guidelines
  • Documentation updated (if needed)
  • No breaking changes (or documented in description)
  • Commit messages follow conventional format
  • No secrets, API keys, or internal URLs included

Related Issues

Additional Context

(cherry picked from commit 34df6ba73d0837ad10e153c6c3839cdbc908264f)
(cherry picked from commit 220da1abb23be9fd1b6c355d87244ebe72997b8b)
(cherry picked from commit 530b50b44a29a7b603c286366622aa52a0d271c0)
(cherry picked from commit 1a2e639eb8576e8decae223e26c79d55c68cfd45)
(cherry picked from commit d4034b1aab6ab45580c9c3aa6cdd7f165c574df5)
(cherry picked from commit 7d2a8e0f32da2c09113f39dd590ca1a06eaf0ec1)
(cherry picked from commit cd748087f0ccd5d2b6bcabfb2fa5407ee8ef75b7)
## Description
This fixes a case in the recipe widget where a fixed layout causes the
widget to not consume its entire available height space.

## Type of Change
- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] Documentation improvement
- [ ] Performance optimization
- [ ] Test improvement
- [ ] Other (please describe)

## Testing
- [ ] Tests pass locally (`bazel test //...`)
- [ ] Added/updated tests for changes (if applicable)
- [ ] Tested on multiple platforms (iOS/Android/Web/macOS as applicable)
- [ ] Manual testing performed (describe below)

### Testing Details
<!-- Describe the testing you performed -->

## Checklist
- [ ] Code follows project style guidelines
- [ ] Documentation updated (if needed)
- [ ] No breaking changes (or documented in description)
- [ ] Commit messages follow [conventional
format](../CONTRIBUTING.md#commit-messages)
- [ ] No secrets, API keys, or internal URLs included

## Related Issues
<!-- Link related issues using: Closes #(issue), Fixes #(issue), Relates
to #(issue) -->

## Additional Context
<!-- Add any other context, screenshots, or information that would help
reviewers -->

(cherry picked from commit 62faf3a266a9cc5067a8288fcf6192af2127711b)
@github-actions
Copy link
Copy Markdown

Sensitive Files Detected

🧘 Yoga layout engine — HIGH blast radius — affects all layout. Verify layout tests exist and pass.

⚠️ Core runtime — App-wide blast radius — touches the rendering core. Must be gated.

This is an automated notice. A maintainer will review after import.

@github-actions github-actions Bot added area/runtime Valdi runtime (C++/native) area/yoga Yoga layout engine area/build-system Bazel build rules and config area/snap-drawing SnapDrawing library platform/ios iOS-specific labels May 14, 2026
} // namespace

Path resolveTestPath(const std::string& path) {
auto testPath = resolveRunfilesTestPath({".", "../+local_repos+valdi"});
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

this is a side change: upstream broke snap drawing tests because they now require to run under bzlmod which is not setup in Valdi open source. This change fixes it by making the resolve runfiles test path resilient against either running in bzlmod or without.

@clholgat
Copy link
Copy Markdown
Collaborator

Pulling this in for additional testing.

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

Labels

area/build-system Bazel build rules and config area/runtime Valdi runtime (C++/native) area/snap-drawing SnapDrawing library area/yoga Yoga layout engine platform/ios iOS-specific

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants