-
Notifications
You must be signed in to change notification settings - Fork 93
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
Update to libv8-node 18.x #261
Conversation
env keyword does not work under jobs, only under steps This reverts commit a0e7ae2.
@lloeki Are you still on this? |
If anyone else is able to take over the process of publishing libv8 and upgrading ... let me know cc @nightpool @seanmakesgames We are getting so behind here I am super concerned. We are missing many security fixes on libv8 now. |
Looks like there are a few open threads here. I am keen on getting more up to date on everything, but am also weighed down by my own backlog of outdated things. |
Updated https://github.com/rubyjs/libv8-node/tree/node-18 from node 18.8.0 to latest LTS node 18.13.0.
It's fairly limited already:
The changes here are actually quite limited, to eschew these we would need an abstraction level that just doesn't exist in libv8 (this abstraction level is basically The only thing here is I kind of winged these PR changes: it compiles, it appears to run (tests are green), but I am not sure if I did the correct thing semantically. |
@bjfish @eregon I think you two were maintaining the truffleruby stuff (those tests are failing on bundle) -- do you have any idea what's going on with those? |
@lloeki I assume we are waiting / working on the publish of libv8.
|
That error on TruffleRuby is caused by the changes in Gemfile: https://github.com/rubyjs/mini_racer/pull/261/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55f One solution is to copy mini_racer/ext/mini_racer_extension/extconf.rb Lines 3 to 6 in b05d691
Of course the |
Sweet. Makes sense. Thanks! |
If you / we don't trust the tests, I can definitely write a few more targeted ones to give some confidence here. |
This reverts commit 81401a8.
Yeah that was an attempt at making such branches work when gems are not published.
The above was supposed to work (it did back then, although it was slow since it built from source, but now it doesn't seem to in some cases) So it doesn't quite work as I expected so I reverted that change. |
I just published libv8-node 18.13.0.0 gems. Now we get stuck with #259 on Linux:
Note that as I mention in the linked issue:
|
I realise this is blocked at least on the linux test fails, but is there likely going to be some movement on this? We cannot install the current version of mini-racer anymore because the python version is incompatible. We have to pin old versions of python just to install lib node 16.10 |
@rvowles |
Any updates? |
I wish I could put a money bounty on this... to be honest. CDCK would pay 10k dolllars to get us on latest libv8 node at this point in time... |
Hey folks, apologies for the silence 🙏 We're getting out of a looong 1+yr crunch stretch at Datadog, which left me with no spare time (or really, energy). I should be able to resume working on rubyjs on my spare time and pick things up starting next week. |
We should be pretty close if I recall. Point @Fayti1703 and I where we can support once you catch back up. |
Hello there, I am a NixOS developer and we are EOL-ing Node.js 16, we are noticing a lot of downstream software (Discourse notably) using Node.js 16 and not being compatible at least due to mini_racer, just wanted to inform you about https://endoflife.date/nodejs. |
As I mentioned earlier , happy to put a 10k dollar bounty on getting us
upgraded to latest
…On Sat, 20 May 2023 at 8:46 am, Ryan Lahfa ***@***.***> wrote:
Hello there, I am a NixOS developer and we are EOL-ing Node.js 16, we are
noticing a lot of downstream software (Discourse notably) using Node.js 16
and not being compatible at least due to mini_racer, just wanted to inform
you about https://endoflife.date/nodejs.
—
Reply to this email directly, view it on GitHub
<#261 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAABIXI5XBSU7A3XOK76ZOTXG7Z6DANCNFSM57WT5I6A>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
@SamSaffron I'd love to get on a 30m call with you if you can spare the time. I think we/I can get this moving or done. |
FYI, another possibility if it's too tricky to maintain these bindings to V8 could be to embed https://github.com/oracle/graaljs as a native image (i.e. link to |
@eregon it certainly sounds interesting but I would prefer to keep to using libv8 The sad thing here is that we did the whole move to nodejs based bundling cause it was meant to be easier - but back in the day it feels like it was a bit easier for @ignisf to push new releases and we are in total standstill here for about a year. @seanmakesgames contact me please (samsaffron@gmail), it is not an offhand remark that CDCK are willing to fund this, its a super important project and I am extremely worried about shipping JS engine with multiple serious security vulnerabilities given V8 is old and has well known CVEs |
Agreed, the reasons to move to separate libv8-node packaging were not anecdotal. They notably make "from source" builds of mini-racer (thus independent of Ruby C ABI) able to still fetch ruby-ABI-independent binary builds of libv8-node. |
So, let me try to summarise status, please correct me if I'm wrong:
I now propose this plan:
I realise this may look like a lot of churn, but from experience it has proved extremely risky in complexity to bump to latest right away. Each intermediate version reduces risk towards a final release and provides a fallback spot to have an actual release with the widest OS and compiler support. WDYT? |
|
This is great @lloeki -- Can you number the proposed plan steps so that we can reference them easier? I think status looks good. Plan items have a typo or two, but generally look great. I agree that likely our best path for quality is to provide options / workarounds to consumers and have them provide feedback from their testing. Our test suite is not as exhaustive as our consumer's suites / usage. I also like that we are releasing -a version- of 18 early in the plan steps, to get feedback on compat there as soon as possible. I also remember reading some manual release process steps that we might be able to automate, improving the speed that we get this matrix of versions delivered. I've opened an issue for discussion on the current version numbering scheme #276 to not derail this thread from the task at hand. :) |
Moving that to a dedicated issue we can work off of instead of filling this PR up. |
There are indeed, in my mind everything should be basically doable from CI. Currently this can't be done in practice because: a) CI is slow (I'm improving that by progressively introducing So for now I'm building+pushing locally on two different machines (one Intel and one ARM) which is immeasurably faster compared to a). |
Bumps version to 0.8.0 to match libv8-node bump
Yep- definitely some interesting challenges here to solve to get us to more hands-off, safer releases. @SamSaffron I haven't looked into it super closely, but I think there's probably a way to throw some money at faster CI runs here. Based on our current engineering activity, it's probably not much, whatever the cost may be. :) Taking a look at the diff on this PR now. |
Looks like we are merging 18.16 as 0.8.0 which doesn't line up with the plan as written.
I'm probably ok with this if we get the customer bake time we were talking about. |
I do love all the green checkmarks! |
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.
See comments above
I know there are a lot of people watching this thread, so just a direct call to action for you: We would love your help testing for stability in your products. Here's the main issue thread where we are tracking progress: Please let us know the results of your tests in our branches so we can do the actual releases on those branches with confidence. |
🎉 impressive work |
Thanks for excellent work 💞 |
I'm not too sure about the changes but a quick
rake compile
+rake test
worked.Note that even if this works, we may still want a node 17 based release of mini_racer as the requirements for node 18 have increased a lot from node 17 (e.g macOS 10.13 -> macOS 10.15).
For reference: https://stackoverflow.com/a/72754601