-
-
Notifications
You must be signed in to change notification settings - Fork 413
chore: various bun tweaks #8449
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary of ChangesHello @wemeetagain, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces several adjustments primarily aimed at improving compatibility and performance when running the application with Bun, a new JavaScript runtime. It addresses how TypeScript source files are handled by workers, gracefully manages platform-specific worker options like Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces several adjustments for Bun runtime compatibility and updates the datastore implementation. The changes are well-aligned with the description, particularly the conditional handling of worker options for Bun and the switch to datastore-fs. I've provided a few suggestions to improve consistency in how Bun-specific worker options are configured across different files, which should enhance maintainability.
| const worker = new Worker(path.join(WORKER_DIR, "worker.js"), { | ||
| suppressTranspileTS: Boolean(globalThis.Bun), | ||
| workerData, | ||
| } as ConstructorParameters<typeof Worker>[1]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency with the changes in networkCoreWorkerHandler.ts, consider creating the worker options object separately and then conditionally adding the suppressTranspileTS property. This improves readability and maintainability by making the pattern for handling Bun-specific options consistent across the codebase.
const workerOpts: ConstructorParameters<typeof Worker>[1] = {
workerData,
};
if (globalThis.Bun) {
workerOpts.suppressTranspileTS = true;
}
const worker = new Worker(path.join(WORKER_DIR, "worker.js"), workerOpts);| const worker = new Worker(path.join(workerDir, "worker.js"), { | ||
| suppressTranspileTS: Boolean(globalThis.Bun), | ||
| workerData, | ||
| } as ConstructorParameters<typeof Worker>[1]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency with the changes in networkCoreWorkerHandler.ts, consider creating the worker options object separately and then conditionally adding the suppressTranspileTS property. This improves readability and maintainability by making the pattern for handling Bun-specific options consistent across the codebase.
const workerOpts: ConstructorParameters<typeof Worker>[1] = {
workerData,
};
if (globalThis.Bun) {
workerOpts.suppressTranspileTS = true;
}
const worker = new Worker(path.join(workerDir, "worker.js"), workerOpts);| const worker = new Worker("./worker.js", { | ||
| suppressTranspileTS: Boolean(globalThis.Bun), | ||
| workerData, | ||
| } as ConstructorParameters<typeof Worker>[1]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency with the changes in networkCoreWorkerHandler.ts, consider creating the worker options object separately and then conditionally adding the suppressTranspileTS property. This improves readability and maintainability by making the pattern for handling Bun-specific options consistent across the codebase.
const workerOpts: ConstructorParameters<typeof Worker>[1] = {
workerData,
};
if (globalThis.Bun) {
workerOpts.suppressTranspileTS = true;
}
const worker = new Worker("./worker.js", workerOpts);
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## unstable #8449 +/- ##
============================================
- Coverage 52.24% 52.24% -0.01%
============================================
Files 853 853
Lines 64770 64788 +18
Branches 4764 4766 +2
============================================
+ Hits 33841 33846 +5
- Misses 30859 30872 +13
Partials 70 70 🚀 New features to boost your workflow:
|
Performance Report✔️ no performance regression detected Full benchmark results
|
**Motivation** - Review of #8468 metrics - In #8449, use of `datastore-level` was unilaterally removed in favor of the bun-supported `datastore-fs` - This caused a regression **Description** - use `datastore-level` by default, only use `datastore-fs` in bun --------- Co-authored-by: Nico Flaig <nflaig@protonmail.com>
|
🎉 This PR is included in v1.35.0 🎉 |
**Motivation** - Review of ChainSafe#8468 metrics - In ChainSafe#8449, use of `datastore-level` was unilaterally removed in favor of the bun-supported `datastore-fs` - This caused a regression **Description** - use `datastore-level` by default, only use `datastore-fs` in bun --------- Co-authored-by: Nico Flaig <nflaig@protonmail.com>
Motivation
Description
surpressTranspileTS: trueis needed for workers to use typescript source directly without transpiling it (and incorrectly loading it via a commonjs loader)resourceLimits- Bun doesn't implement it, it throws if you use itdatastore-fsinstead ofdatastore-levelfor backing our libp2p database -- Note this is changed unilaterally (affecting current nodejs usage)