Uh oh!
There was an error while loading. Please reload this page.
Update to libv8-node 18.x - #261
Conversation
env keyword does not work under jobs, only under steps This reverts commit a0e7ae2.
tnir
commented
Dec 31, 2022
@lloeki Are you still on this? |
SamSaffron
commented
Jan 2, 2023
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. |
seanmakesgames
commented
Jan 4, 2023
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. |
lloeki
commented
Jan 6, 2023
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. |
seanmakesgames
commented
Jan 6, 2023
@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? |
seanmakesgames
commented
Jan 6, 2023
@lloeki I assume we are waiting / working on the publish of libv8. |
eregon
commented
Jan 6, 2023
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 |
seanmakesgames
commented
Jan 6, 2023
Sweet. Makes sense. Thanks! |
seanmakesgames
commented
Jan 6, 2023
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.
lloeki
commented
Jan 7, 2023
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:
|
rvowles
commented
Jan 30, 2023
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 |
seanmakesgames
commented
Feb 1, 2023
@rvowles |
HLFH
commented
Apr 26, 2023
Any updates? |
SamSaffron
commented
Apr 26, 2023
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... |
lloeki
commented
Apr 27, 2023
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. |
seanmakesgames
commented
Apr 27, 2023
We should be pretty close if I recall. Point @Fayti1703 and I where we can support once you catch back up. |
RaitoBezarius
commented
May 19, 2023
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. |
SamSaffron
commented
May 19, 2023
via email
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:
***@***.***>
|
seanmakesgames
commented
May 20, 2023
@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. |
eregon
commented
May 20, 2023
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 |
SamSaffron
commented
May 23, 2023
@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 |
lloeki
commented
May 23, 2023
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. |
lloeki
commented
May 23, 2023
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? |
lloeki
commented
May 23, 2023
|
seanmakesgames
commented
May 23, 2023
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. |
lloeki
commented
May 23, 2023
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
seanmakesgames
commented
May 27, 2023
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. |
seanmakesgames
commented
May 27, 2023
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. |
seanmakesgames
commented
May 27, 2023
I do love all the green checkmarks! |
seanmakesgames
commented
May 27, 2023
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. |
ignisf
commented
May 28, 2023
🎉 impressive work |
tnir
commented
Jun 27, 2023
Thanks for excellent work 💞 |
I'm not too sure about the changes but a quick
rake compile+rake testworked.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