Uh oh!
There was an error while loading. Please reload this page.
Refactor Mac installer generation - #776
Conversation
This refactors the Mac .pkg generation to use Packages. This moves io.js away from using the deprecated Package Maker, and allows for easy localization of the installer.
rvagg
commented
Feb 10, 2015
Amazing, this is a great contribution @remixz, I'll try and make time to test this out and give feedback. Initial quesitons:
|
remixz
commented
Feb 10, 2015
remixz
commented
Feb 10, 2015
ghost
commented
Feb 10, 2015
I think an uninstall is important. |
bnoordhuis
commented
Feb 10, 2015
I'm not sure if that makes sense on OS X. A symlink opt-out may give the false impression that joyent/node and io.js can coexist peacefully when they can't. The installer installs to /usr/local. If a joyent/node install already exists there, io.js will happily stamp on it. The symlink is just the top of the ice berg. The only scenario that I can think of where an opt-out would help is when joyent/node and io.js are installed to separate locations that are both on the PATH. The exact meaning of the "Create a symlink" checkbox would need to be called out in the installer if we don't want angry bug reports. :-) |
remixz
commented
Feb 11, 2015
@bnoordhuis A description can be added to the symlink installer entry, so when someone clicks on it to uncheck it, it can say something like "joyent/node and io.js don't coexist nicely, keeping this symlink is recommended". |
bnoordhuis
commented
Feb 11, 2015
@remixz Sounds good. |
tellnes
commented
Feb 12, 2015
Could we reuse the translations for other distributions? |
fhemberger
commented
Feb 12, 2015
I prepared the German translation for the installer using Packages: https://github.com/fhemberger/io.js/commit/65ba54ec0eb112ce040415ac2b3b321b8e38b5d1 |
remixz
commented
Feb 13, 2015
@tellnes It's likely, but there'd have to be some changes so that it doesn't specifically reference Mac locations. @fhemberger Awesome!! 👍 🎉 It might need to be rebased by the time this is merged, since the file will probably change a bit when the uninstaller is finalized, but this is great. |
There was a problem hiding this comment.
no_symlink = len(args) > 4 and args[4] == 'true'?
remixz
commented
Feb 13, 2015
@bnoordhuis Implemented all of your changes. Thanks! |
bnoordhuis
commented
Feb 13, 2015
LGTM but I'm not an expert when it comes to OS X installers. @iojs/collaborators Can I have one more LGTM? |
remixz
commented
Feb 13, 2015
@bnoordhuis Ah, I need to finish the uninstaller portion before this can ship. (unless you want to move that to another PR?) |
remixz
commented
Feb 14, 2015
Cool. I've added the uninstaller, which means once reviewed, this should be good to go. |
evanlucas
commented
Feb 14, 2015
From running local tests, it looks like |
evanlucas
commented
Feb 14, 2015
remixz
commented
Feb 14, 2015
@evanlucas I changed For the success screen, I'm pretty sure it can't change based on what's installed, which definitely leaves a sucky experience for people doing an uninstall. |
rvagg
commented
Feb 16, 2015
i18n changes pending resolution of #819 |
fhemberger
commented
Mar 2, 2015
Is the updated installer ready to land? As #819 seems to be resolved according to the TC meeting, I'd love to add the translation for the installer and make it a proper PR. |
bnoordhuis
commented
Mar 2, 2015
I don't know if it's possible to implement this but what tools/install.py does is unlink the directory iff it's empty after removing all installed files. |
remixz
commented
Mar 5, 2015
@bnoordhuis Yup, that can be done! Added with 2526e1d. @fhemberger If the translation issue is all resolved, then I think this is ready to land. |
fhemberger
commented
Mar 5, 2015
Thanks, I'll create a proper translation PR for further discussion as soon as this has landed. |
fhemberger
commented
Mar 17, 2015
@remixz We should add a paragraph to |
fhemberger
commented
May 24, 2015
Any news on the status of the new Mac installer? cc @nodejs/core |
Qard
commented
Jun 26, 2015
@nodejs/collaborators Anyone familiar with the existing OSX installer that can review this? |
rvagg
commented
Jun 27, 2015
On my list but not a high priority compared to other things like node-gyp, so help from others would be greatly appreciated. @remixz if you have time would you mind rebasing on the current |
rvagg
commented
Jul 28, 2015
evanlucas
commented
Aug 26, 2015
I think we should definitely try to get this merged before the converged release. Anything I can do to help? |
fhemberger
commented
Aug 26, 2015
The changes in this PR need to be merged against the current master for the 4.0.0 release, including the renaming from 'iojs' to 'node'. It would be great if we could get this running, so we can ship localized installers in the next major version. |
fhemberger
commented
Aug 27, 2015
I did a rebase against master in #2571, can you all please have a look? |
jasnell
commented
Oct 22, 2015
Closing this in favor of #2571 |



This refactors the Mac installer generation to use Packages. This moves io.js away from using the deprecated Package Maker, and allows for easy localization of the Mac installer.
I've included a README with localization instructions, which should make it easy for localization teams to localize the installer. The only thing I couldn't test with this was the package signing, so that should be tested before merging. This might also help pave the way to fixing other Mac installer-related issues, since now it's using something a bit modern for generation.