Hacker Newsnew | past | comments | ask | show | jobs | submit | marshallofsound's commentslogin

Electron maintainer here, although we _also_ support arm64 for Windows. Apple silicon support was driven from the beginning as a priority, it was obvious that it was the future of macOS and without direct support you'd be left behind. arm64 on Windows is barely supported by anything, let alone msft itself...

Also Apple did a fantastic job with early engagement for Apple silicon development, even going as far as to assist with code changes / patches early on.


Interested in why you think this was a bad decision. For a multitude of reasons surrounding security, performance and wanting the Latest And Greatest JS features we want to stay as close to upstream Chromium as possible. Curious what you feel the negative impact of major-versioning is?

For more info on our release cadence: https://www.electronjs.org/blog/12-week-cadence


The Electron version numbers are essentially meaningless now. I have no idea what even changed between Electron 4 and 8, the changelogs are all just bug fixes that didn't necessitate so many major version releases.

Also there are some NPM packages that have to create builds for specific versions of Electron, and those builds come out after Electron does, so I'm always 1 or 2 versions behind on Electron which leads into dependency hell situations.

Trying to stay up to date is exhausting.


With semantic versioning, you can tell the magnitude of the release (and if backwards compatibility is broken) by looking at the major version number.


Disclaimer: Electron dev

So few quick things, the projects that are copied are done so to guarantee deterministic builds in an isolated build environment (no dependencies on third party systems).

The API you say they don't provide is literally the API that Electron uses. --> https://chromium.googlesource.com/chromium/src/+/HEAD/conten...

And as for the build process, eh, it's kinda slow but it's hardly arcane. On linux you can run like 4 commands and it'll build Chromeium.


Yeah. Four commands. The first one downloads binaries from the internet. If I was inclined to do so, I would not need to build in the first place ;).

Give it a try with the current HEAD of their home-grown and undocumented build tool and see how far you get.

And regarding the deterministic builds: I call bullshit. They just don't want to follow the different packaging guidelines from the different operating systems, so they repackage everything. Now I have to trust them to keep all these dependencies up-to-date and I have to accept the unecessary bloat? No way.


> [build process]

I agree, the chromium build tooling is unfriendly af.

> I call bullshit

Lot of works goes into deterministic builds, have fun going down this rabbit hole: https://bugs.chromium.org/p/chromium/issues/detail?id=314403

> Now I have to trust them to keep all these dependencies up-to-date

Looks like it rolls on average every 10-20 minutes: https://chromium.googlesource.com/chromium/src/+log/HEAD/DEP...

> and I have to accept the unecessary bloat?

Ah yes, because all operating systems ship with a pristine installation of the latest pdfium.


> Lot of works goes into deterministic builds

That has nothing to do with their dependency management. In fact, if you link against system libraries, it should be simpler to get deterministic builds, as you have to build less.


Hey thanks for you and your team's hard work. I absolutely love the empowerment that electron provides.


Hi Electron maintainer here, I explained how gatekeeper and asar validation plays in with macOS codesigning here --> https://news.ycombinator.com/item?id=20637791


Hi Electron maintainer here

ASAR files are signed as part of the application bundle. The issue is that folks don't understand how gatekeeper works so let me try explain it here.

When you download an application from the internet, macOS initially considers it "quarantined". When a quarantined application is first opened gatekeeper scans it _completely_ and if it's happy removes the quarantine tag and let's it launch.

Once that quarantine tag is removed, gatekeeper will never run a complete check of that application again. Meaning the ASAR files are validated once, when the application is first launched.

What people are seeing here is they're taking an application that gatekeeper has already signed off on, modifying it, and then asking why gatekeeper didn't stop them.

If you took that modified application, zipped it up, uploaded it somewhere, downloaded it again and tried to run it, it would NOT work. Gatekeeper would boot that invalid application to the shadow realm.


Once you can establish that the main application binary is codesigned correctly (which AFAIK macOS will do at each launch?), why can't put signature checks into that to validate the ASAR files?


So this sounds like a non-issue -- or at least not a new or novel one. How did this get published so far and wide?


How does any nonsense get published far and wide?

People are trying to be helpful, perhaps, by amplifying some concern, while at the same time not having the expertise necessary to see it as false.


Hey Electron maintainer here

> but if the first thing your codesigned binary does is to read an unprotected JS file off disk and execute it, there's no codesigning benefit.

The ASAR files described in this post are part of the signature of the application though. You can't modify that file and then redistribute the app to another machine without gatekeeper getting incredibly angry at you.

E.g. Try modifying the ASAR file, zip the app up, upload to google drive, download again and try run the app. Gatekeeper will boot it into the shadow realm :)


Hi, Electron maintainer here.

> I just tried this out with Slack on macOS, and it did work

Here's the thing with how gatekeeper works, that application had already passed gatekeeper and will never be _fully_ validated ever again.

If you zipped your modified Slack.app up, uploaded it to google drive, and downloaded it again. Gatekeeper would 100% reject that application, the ASAR file is included as part of the application signature. You can prove this by checking the "CodeResources" file in the apps signature.

You can't re-distribute the app without gatekeeper completely shutting you down.


Thanks for taking the time to reply! Like many here, I've been a critic of Electron, but I think it also does some amazing stuff, and I'm sorry you have to go into PR maintenance mode over such a weaksauce article.

I was coming back to follow up and say that that's exactly what I found -- running `codesign --verify` does show the modification. It makes sense that Gatekeeper wouldn't re-verify a 185 MB bundle on every launch, which makes me wonder if there's something else macOS could be doing at the FS level to see if any files have been modified and trigger a new check.

At any rate, while I don't quite take back what I said about application code in Resources/, I do take back the implication that it had anything to do with this; I suppose there doesn't seem to be anything Electron-specific about TFA, other than that exposing raw JS lowers the bar for who can write the code to inject. (Assuming you can get FS access to inject code in the first place, of course.)



There is a direct migration path from HipChat Cloud to Stride: https://confluence.atlassian.com/stride-documentation/faq-st...


Yow, that was unexpected. Relevant words:

Do you plan to sunset HipChat Cloud?

For now, HipChat Cloud will continue to be supported, but eventually we will encourage all HipChat Cloud customers to upgrade to Stride.


Check out the Stride FAQ: https://confluence.atlassian.com/stride-documentation/faq-st...

> Starting soon, we will begin to upgrade all HipChat Cloud teams to Stride. HipChat Cloud will continue to work as it does today until your team upgrades to Stride. After upgrading, HipChat Cloud will remain in 'read-only' mode so that you can reference your API configuration in HipChat Cloud and receive integration notifications for those apps that are not yet in Stride.


Can't find any info about a datacenter edition, only the cloud. But if hipchat is going away in cloud, then that is going to mean were not going to see any new features in hipchat datacenter...


There is a page on HipChat Data Center aswell: https://confluence.atlassian.com/stride-documentation/faq-st...

:)


Do you work for, or on behalf of Atlassian?



> then that is going to mean were not going to see any new features in hipchat datacenter...

That's been mostly true for a while anyway. You still can't delete or sanely edit a message in hipchat.


Oddly, this is the ONLY thing I think HipChat has ever done sanely.

I've been using sed expressions for almost three decades to alert my fellow chatters of an error in my previous message.

The first time I did that in HipChat... It edited my previous message. I nearly fell off my chair. It was and is probably my favorite HipChat feature.

s/favorite/favourite/ for my English fellow humans. :)


It's fine to have that way of editing as an option or an easter egg but, to have it as the only way of editing a message? No. Just no.


Honestly my current company moved away from Hipchat datacenter edition to Rocket.chat. As long as they don't kill Jitsi-meet, I think we're good...


Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: