Skip to content
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

Implement Brackets Portable Build on Mac and Windows #446

Open
core-ai-bot opened this issue Aug 17, 2021 · 22 comments
Open

Implement Brackets Portable Build on Mac and Windows #446

core-ai-bot opened this issue Aug 17, 2021 · 22 comments

Comments

@core-ai-bot
Copy link
Member

Issue by bchintx
Friday Sep 20, 2013 at 22:37 GMT
Originally opened as adobe#333


Allows Brackets to be run (eg. from removable media, such as a thumb drive) on any Mac or Windows computer without having to first be installed on that computer. Implements "Portable build" user story.

To set up a portable build onto a removable media storage device, follow these steps:

  1. first install Brackets onto a Mac or Windows machine
  2. copy the installed binaries to a new folder on your removable media. For Mac, copy "/Applications/Brackets Sprint XX.app". For Windows, copy the folder "\Program Files (x86)\Brackets Sprint XX".
  3. in the removable media folder, next to either the .app or .exe file, create a new, empty file, named 'makePortable'

That's it! You can now run Brackets from that removable media on any other Mac or Windows machine.

Note: you can copy both a Mac and Windows portable build onto the same removable media. However, please be sure to create two different folders into which you copy each platform's build.

When launched, Brackets will check for the existence of the 'makePortable' file, alongside either the .app or .exe. If it exists, then the following will occur during program execution:

  1. preferences will be read from and saved in the 'Brackets' folder on the removable media;
  2. extensions will be installed in and run from the 'Brackets\extensions' folder on the removable media; and
  3. (on Windows) window state and size will be saved in 'Brackets\lastWindowState.dat' on the removable media.

bchintx included the following code: https://github.com/adobe/brackets-shell/pull/333/commits

@core-ai-bot
Copy link
Member Author

Comment by bchintx
Monday Sep 23, 2013 at 22:09 GMT


@JeffryBooher Thanks for your help in getting the Linux-side of this feature implemented. Basically, all that's needed is to implement the code similarly implemented in appshell/client_app_mac.mm in this branch.

Specifically, we need a Linux implementation of ClientApp::IsPortableInstall(), which effectively just checks for the existence of a 'makePortable' trigger file, and updating ClientApp::AppGetSupportDirectory() to point to the application executable folder, rather than a machine-based settings folder, for a portable install.

@core-ai-bot
Copy link
Member Author

Comment by ingorichter
Friday Oct 25, 2013 at 17:34 GMT


@bchintx @JeffryBooher Any progress on this PR?

@core-ai-bot
Copy link
Member Author

Comment by JeffryBooher
Friday Oct 25, 2013 at 17:59 GMT


@ingorichter sorry. I haven't had time to look at it. @bchintx the Linux implementation of AppGetSupportDirectory is that thing that neither of us could remember last week :) It should be implemented now on Linux so you should give it a whirl. Let me know if you need help with the Linux implementation -- I'll review it once that is finished.

@core-ai-bot
Copy link
Member Author

Comment by le717
Wednesday Dec 25, 2013 at 19:47 GMT


@bchintx @JeffryBooher This a great PR and feature addition to Brackets. What is the current status of this, other than Linux support and file associations? I am a web design student and use Brackets for my work, and as I'm taking web animation using HTML, CSS, and JS starting in January, I'd love to have a portable installation of Brackets on my flash drive for use at school (since I won't have my laptop with me). 😃

@core-ai-bot
Copy link
Member Author

Comment by ninjamonkno1
Saturday Dec 28, 2013 at 22:44 GMT


I could really do with this also, @bchintx any news on the linux version as that seems to be blocking this from being merged?

@core-ai-bot
Copy link
Member Author

Comment by ConnorKrammer
Sunday Feb 16, 2014 at 18:34 GMT


@bchintx @JeffryBooher I'd just like to say that this would be a really nice feature. What's left to do on this?

@core-ai-bot
Copy link
Member Author

Comment by JeffryBooher
Monday Jun 16, 2014 at 21:09 GMT


@bchintx what's the plan for this? It seems that it can not be merged and I haven't heard any details about what we want to do with this.

@core-ai-bot
Copy link
Member Author

Comment by bchintx
Monday Jul 07, 2014 at 23:55 GMT


@JeffryBooher I've updated my branch with the latest changes from master, so it's mergeable again. This change is ready for review and testing on Mac and Windows. If we're ok with splitting off the Linux implementation separately, then this pull request could be merged sooner rather than later.

Besides this code change, we'd probably also want to update the build machines to produce a portable .zip archive on Mac and Win and then update brackets.io to allow users to download the resulting archive.

@core-ai-bot
Copy link
Member Author

Comment by le717
Tuesday Jul 08, 2014 at 03:18 GMT


@bchintx You have no idea how glad I am to hear this news. :D

@core-ai-bot
Copy link
Member Author

Comment by JeffryBooher
Wednesday Jul 16, 2014 at 22:38 GMT


@bchintx done with first pass. let me know what your thoughts are on the comments and I'll start testing.

@core-ai-bot
Copy link
Member Author

Comment by bchintx
Thursday Jul 17, 2014 at 17:29 GMT


@JeffryBooher thanks for the review. I'll make the requested changes when I return to my office next week and push a new commit for review.

@core-ai-bot
Copy link
Member Author

Comment by bchintx
Wednesday Aug 13, 2014 at 01:10 GMT


@JeffryBooher Done w/ code review changes. Should be working on both Mac and Windows again. The "trigger" file is now called portable, which you'll need to create next to your .exe or .app.

@core-ai-bot
Copy link
Member Author

Comment by le717
Tuesday Oct 14, 2014 at 16:09 GMT


I am really looking forward to this landing soon after 1.0 for multiple reasons, but also because this could help out with the auto-update user story. :D

@core-ai-bot
Copy link
Member Author

Comment by bchintx
Friday Dec 19, 2014 at 23:16 GMT


Updated branch with requested changes and with latest master. Ready for review, testing, and merge. @JeffryBooher

@core-ai-bot
Copy link
Member Author

Comment by bchintx
Friday Dec 19, 2014 at 23:19 GMT


FYI- I think we could go ahead and merge this now. That would allow users to create their own portable build installations. Ideally, we'd distribute the portable build as an archive available off of http://brackets.io. However, at this point, we probably shouldn't hold up this PR for any upcoming build machine or website changes.

@core-ai-bot
Copy link
Member Author

Comment by James-Parsons
Tuesday Feb 03, 2015 at 17:54 GMT


Is anyone working on this??

@core-ai-bot
Copy link
Member Author

Comment by le717
Tuesday Feb 03, 2015 at 18:01 GMT


FYI- I think we could go ahead and merge this now. That would allow users to create their own portable build installations. Ideally, we'd distribute the portable build as an archive available off of http://brackets.io. However, at this point, we probably shouldn't hold up this PR for any upcoming build machine or website changes.

I agree. The schematics can be worked out after it is merged, it's not like the code here depends on how it is packaged and released.

@bchintx Quick thought, is there a reason Linux is not supported in this PR, or is the Linux version already "portable" in the sense it requires no installation?

@core-ai-bot
Copy link
Member Author

Comment by bchintx
Tuesday Feb 03, 2015 at 18:25 GMT


@le717 Good point. These changes would need to be made in the Linux shell as well. However, I don't have a Linux dev environment in which I could easily port these changes. Without these changes, then, yes, the Linux build is just "portable" as the app is already today. However, these changes allow the preference settings to be transportable with the install onto different machines.

@core-ai-bot
Copy link
Member Author

Comment by avindra
Monday Mar 02, 2015 at 15:28 GMT


+1. FYI, per the trello card,

this workaround does the trick until an official solution is implemented (replace with your own values):

msiexec /a Brackets.Release.1.2.msi /qb TARGETDIR=C:\App\Brackets

@core-ai-bot
Copy link
Member Author

Comment by digideth
Friday Jun 26, 2015 at 19:22 GMT


I guess we are still waiting on a official solution?

Is @avindra solution the best way?

@core-ai-bot
Copy link
Member Author

Comment by le717
Tuesday Sep 29, 2015 at 15:24 GMT


Soooo... what is happening here? Obviously Linux support has never been added, but then again Linux is historically behind Windows and Mac (see: CEF 2127). I do not think Linux-only code is imperative to finally land this code, and as @bchintx said, the exact release schematics are not required before this is eventually landed. An official portable Brackets build would still be a very nice thing to have.

@core-ai-bot
Copy link
Member Author

Comment by rockyallen
Friday Nov 04, 2016 at 21:43 GMT


Will this change allow installation without admin rights?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant