Skip to content

Do not pull default engine features into runtime#4879

Merged
nekevss merged 3 commits intoboa-dev:mainfrom
tomasol:no-default-features
Mar 6, 2026
Merged

Do not pull default engine features into runtime#4879
nekevss merged 3 commits intoboa-dev:mainfrom
tomasol:no-default-features

Conversation

@tomasol
Copy link
Copy Markdown
Contributor

@tomasol tomasol commented Mar 5, 2026

The default features include temporal which cannot be deactivated with the previous configuration.

@tomasol tomasol requested a review from a team as a code owner March 5, 2026 17:50
@tomasol tomasol marked this pull request as draft March 5, 2026 17:52
The default features include `temporal` which cannot be deactivated with the previous configuration.
@tomasol tomasol force-pushed the no-default-features branch from b194c78 to 42bde73 Compare March 5, 2026 17:56
@tomasol tomasol marked this pull request as ready for review March 5, 2026 18:04
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 5, 2026

Test262 conformance changes

Test result main count PR count difference
Total 52,963 52,963 0
Passed 49,666 49,666 0
Ignored 2,284 2,284 0
Failed 1,013 1,013 0
Panics 0 0 0
Conformance 93.77% 93.77% 0.00%

Tested main commit: 5cbf23323e1be945022cd1e6332cbacc22e9a2c8
Tested PR commit: 880c0c5bd0a96d8e14942b6229d6f808054cd2f1
Compare commits: 5cbf233...880c0c5

@nekevss
Copy link
Copy Markdown
Member

nekevss commented Mar 5, 2026

What is the use case for not wanting to include default features into the runtime?

Also, if we are turning it off by default, shouldn't provide corresponding feature flags to turn them back on?

@tomasol
Copy link
Copy Markdown
Contributor Author

tomasol commented Mar 5, 2026

What is the use case for not wanting to include default features into the runtime?

I want to be able to disable certain engine features like temporal for smaller binary size. This is possible if just depending on engine, however runtime is currently dependent on all default engine features as well, so they are pulled anyway.

Also, if we are turning it off by default, shouldn't provide corresponding feature flags to turn them back on?

I've re-enabled the engine's default features as default features of runtime, so existing users should see no change. Only users who explicitly disable runtime's default features gain the ability to also exclude temporal etc.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 6, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 57.12%. Comparing base (6ddc2b4) to head (880c0c5).
⚠️ Report is 756 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4879      +/-   ##
==========================================
+ Coverage   47.24%   57.12%   +9.87%     
==========================================
  Files         476      555      +79     
  Lines       46892    60599   +13707     
==========================================
+ Hits        22154    34616   +12462     
- Misses      24738    25983    +1245     

☔ 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.

@jedel1043
Copy link
Copy Markdown
Member

I agree with this change. boa_runtime should be a reusable library of components that folks can use to build their runtimes first, and a "runtime" second. Not bundling unnecessary features by default seems to align with our first target.

@nekevss
Copy link
Copy Markdown
Member

nekevss commented Mar 6, 2026

I'm for this changes as well.

Part of the reason why I'm for the same change in the engine too. It's just given me pause because I'm curious if there's a way to ship temporal without any of the data compiled in the binary. But that can be solved by feature flagging the default provider.

@nekevss nekevss added this pull request to the merge queue Mar 6, 2026
Merged via the queue into boa-dev:main with commit 6e80e70 Mar 6, 2026
19 checks passed
@jedel1043 jedel1043 added C-Dependencies Pull requests that update a dependency file A-API Changes related to public APIs labels Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-API Changes related to public APIs C-Dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants