adobe/brackets — pull request #3844 by dangoor (2013-05-15 20:05:38+00:00)
Title: FOR DISCUSSION: Switches extensions from .zip files to .tar.gz files

This is a fix for #3802. It should also fix #3734.

The argument in favor of switching to tar.gz files is that node-tar is well supported in Node (it's also a good deal simpler to understand than node-unzip because of node-unzip's use of the "pullstream" library). Making the switch was straight forward.

I tested this code under Node 0.10, and it works just fine. The node-unzip code does not work under 0.10 and will require digging to figure out what's going on. From the looking that I've done so far, I think there's more digging involved there than the work required to give node-tar a shot for this pull request.

Users making use of GitHub won't see much difference. GitHub produces tar.gz files in addition to zip files, and I updated the installer code to make sense of GitHub URLs just as before.

My concern with using tar.gz files is that we need to give users a good way to create them for uploading. This is not difficult to surmount, though. Adding a button to the Extension Manager that packages up "dev" extensions should be straightforward... and node-tar already supports creation of tar files, I believe. Plus, the registry would have a better UX if it allowed users to paste their GitHub URL in to upload an extension directly from GitHub.

I haven't fully made up my mind yet, because I generally want to put user considerations ahead of implementation issues. But, I think the user considerations are things we'd be addressing anyhow.

Comments?