arduino-ide icon indicating copy to clipboard operation
arduino-ide copied to clipboard

Add a portable mode

Open ornea opened this issue 4 years ago • 31 comments

Describe the request

Allow the Arduino IDE installation and dependencies (application, preferences, platforms, sketchbook) to be stored under a single folder.

🙂 The user can put a complete sketch development environment on a portable drive and use it on any available computer. 🙂 The user can create a complete self-contained project environment with all project dependencies, including the IDE application itself.

Describe the current behavior

The IDE installation and dependencies are stored in multiple separate places on the user's computer:

  • Application folder (e.g., C:\Program Files\Arduino IDE\)
  • Configuration folder (e.g., C:\Users\<username>\.arduinoIDE\)
  • Data folder (e.g., C:\Users\<username>\AppData\Local\Arduino15\)
  • Sketchbook folder (e.g., C:\Users\<username>\Documents\Arduino\)

It is not possible for the user to configure the location of the "configuration folder".

It is possible to configure the location of the "data folder" (via <configuration folder>/arduino-cli.yaml), but doing so is user friendly and the configuration file is under the non-configurable "configuration folder" anyway.

🙁 A complete sketch development environment can not be easily moved between computers. 🙁 Complete self-contained project environments can't be created.

Arduino IDE version

58aac236bf51532313db1855298294348c0abeb0

Operating system

All

Operating system version

Any

Additional context

Arduino IDE 1.x has a portable installation capability, which is enabled by creating a folder named portable under the Arduino IDE installation folder. The configuration, boards platforms, and sketchbook are then stored under that folder:

https://docs.arduino.cc/software/ide-v1/tutorials/PortableIDE

Due to system security restrictions, it is not possible for users of the macOS or Microsoft Store packages of Arduino IDE 1.x to use that feature. These deficiencies in the previous system might be considered when designing an equivalent feature for Arduino IDE 2.x

Additional reports

  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-581034999
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-588062961
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-699656953
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-826223410
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-845663641
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-852546573
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-955734164
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1077587059
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1078159544
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1136120558
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1166531495
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1218040181
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1221705145
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1247196478
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1247197948
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1247391295
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1247577119
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1247609568
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1247712864
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1248047427
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1248048157
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1248118001
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1250076345
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1250098152
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1250329765
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1253596483
  • https://github.com/arduino/arduino-ide/issues/122#issuecomment-1262455530
  • https://github.com/arduino/arduino-ide/issues/210#issue-829925887
  • https://github.com/arduino/arduino-ide/issues/210#issuecomment-1703948467
  • https://github.com/arduino/arduino-ide/issues/2321#issuecomment-1873358113
  • https://forum.arduino.cc/t/is-there-really-a-portable-version-of-the-arduino-ide-2/1101134
  • https://forum.arduino.cc/t/italiano-lo-spamm-bar-part-2/847652/5079
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/1
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/6
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/9
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/10
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/11
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/13
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/16
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/17
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/19
  • https://forum.arduino.cc/t/portable-version/1033334
  • https://forum.arduino.cc/t/instructions-for-portable-installation-of-ide-2-0/885980
  • https://forum.arduino.cc/t/how-to-use-arduino-ide-2-0-0-b9-in-offline-mode/888926
  • https://forum.arduino.cc/t/portable-is-not-honored/850853
  • https://forum.arduino.cc/t/post-here-for-ide-2-0-rc/937541/3
  • https://forum.arduino.cc/t/arduino-ide-2-0-windows-multiuser-environment/972533
  • https://forum.arduino.cc/t/italiano-lo-spamm-bar-part-2/847652/6854
  • https://forum.arduino.cc/t/missing-old-ide-features/698280/1
  • https://forum.arduino.cc/t/missing-old-ide-features/698280/2
  • https://forum.arduino.cc/t/checking-back-in-after-8-months-any-progress-on-a-true-portable-ide-2-x/1166551
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/24
  • https://forum.arduino.cc/t/arduino-ide-2-0-portable/1031833/25
  • https://forum.arduino.cc/t/arduino-ide-2-2-1-portable/1170657
  • https://forum.arduino.cc/t/arduino-ide-2-2-1-portable/1170657/9
  • https://forum.arduino.cc/t/your-reason-for-not-switching-to-the-2-x-ide/1176322/12
  • https://forum.arduino.cc/t/your-reason-for-not-switching-to-the-2-x-ide/1176322/17
  • https://forum.arduino.cc/t/your-reason-for-not-switching-to-the-2-x-ide/1176322/23
  • https://forum.arduino.cc/t/your-reason-for-not-switching-to-the-2-x-ide/1176322/49
  • https://forum.arduino.cc/t/your-reason-for-not-switching-to-the-2-x-ide/1176322/145
  • https://forum.arduino.cc/t/need-a-way-to-make-newer-versions-of-2-0-portable/1259445
  • https://forum.arduino.cc/t/is-there-a-portable-version/1265230
  • https://www.facebook.com/official.arduino/posts/pfbid02x5KM54Gf7L56Tea79pLYVafrciYAGZrioedDVD6YFKEnJdsiNT3w6S2WinZtrAc9l?comment_id=941291360659178

Issue checklist

  • [X] I searched for previous requests in the issue tracker
  • [X] I verified the feature was still missing when using the latest nightly build
  • [X] My request contains all necessary details

ornea avatar Feb 01 '20 10:02 ornea

+1 I use portable mode on a thumbdrive with different Ide versions easy to maintain and handy on multiple PC's

linxcow avatar Feb 01 '20 14:02 linxcow

Yes a portable mode and plz not use ApData and one drive. and store board managers

keesdekoning avatar Feb 19 '20 06:02 keesdekoning

Any news on this topic? Portable mode is the first thing I enable after downloading any Arduino IDE ...

moelski avatar Sep 27 '20 16:09 moelski

Was ready to test the Arduino IDE 2.0 Beta, will not until I can safeguard my other environments with this feature.

If I may suggest an improvement over the IDE 1.x behavior, make portable mode a checkbox in the preferences dialog.

Tonymac32 avatar Apr 25 '21 02:04 Tonymac32

any news?

ortegafernando avatar May 21 '21 05:05 ortegafernando

Please add portable mode! We have many Arduino projects, and have a portable Arduino IDE for each project with all required boards and libraries installed. This will can always build old projects without worrying about board and library version my IDE currently has. Only useful to me if it has a portable mode.

modtronix-com avatar Jun 01 '21 23:06 modtronix-com

portable mode is essential to me.

I will not load 2.0 until that is available. as @modtronix-com says: "Only useful to me if it has a portable mode".

tophe2019 avatar Oct 31 '21 15:10 tophe2019

@tophe2019 thank you for your feedback. We know that portable mode is very useful to some users, and it is in our backlog. We do not plan to give it higher priority for now as our first goal is to release a stable IDE and later focus on more niche uses.

@modtronix-com being able to reproduce a build will be implemented in a more efficient way once the Reproducible Build RFC goals are reached (https://github.com/arduino/tooling-rfcs/blob/main/RFCs/0003-build-profiles.md) This will allow anyone to simply get a Sketch and make sure that everything they need to build it successfully is available to the CLI and IDE 2.0

ubidefeo avatar Nov 01 '21 06:11 ubidefeo

".....later focus on more niche uses."

With all the feedback it doesn't look like niche usecase, more like a hidden gem feature to make arduino sketches future proof by going offline with tools and librarys needed by bigger projects

Meins321 avatar Mar 24 '22 12:03 Meins321

I can't really add to much to this other than to say portable mode is essential to my work flow too. When I'm making libraries I want to make sure that it works with different versions of board definitions and portable mode was an easy way for me to achieve this.

It was a workaround though as I do think the best solution would be a per project board and library config, but that would be a fundamental change I suppose

witnessmenow avatar Mar 24 '22 20:03 witnessmenow

Any estimate as to when portable 2.0 will be available?

Lou-Menz avatar May 24 '22 16:05 Lou-Menz

The portable mode is also very important to me. It's not just for having the IDE on a stick or move it around between multiple computers. It is also the easiest way to make snapshots of whole dev environment.

In the past it happened to me that i wanted to do a very small change to the code of one of my older projects - just 2 or 3 lines had to be changed. But the project was not used over years and multiple libraries had been updated since then. So my project was not compiling anymore. So i would had to migrate to the new libs - which would have been much more than 2-3 lines. Happily i had a old, not updated installation on my old laptop, which i could use to compile my project. Since this time i always use the Arduino IDE in portable mode and create snapshots now and then. Not the fanciest solution, but it works. It's a bit like "venv" for python.

So please, please, please bring back this portable mode.

JoeLoginIsAlreadyTaken avatar Jun 26 '22 13:06 JoeLoginIsAlreadyTaken

Same here, I need different snapshots (done until now through different portable installations) for different projects being maintained each one in its own version of board and libraries. So I would need IDE 2.0 to use the portable folder if it exists (as IDE 1 does) for being able to jump to it

simondddd avatar Aug 17 '22 13:08 simondddd

+1

aidenfarley avatar Aug 22 '22 02:08 aidenfarley

+1

johntor avatar Sep 14 '22 19:09 johntor

+1

seeers avatar Sep 14 '22 19:09 seeers

Portable mode is very important to me as well. I think I'll use the older 1.x version of the IDE until its portable mode is brought to the new 2.0 version

embsysblog avatar Sep 14 '22 23:09 embsysblog

The same ... I am not moving from version 1.x until the ability to have "portable" is available in version 2.x

gpb01 avatar Sep 15 '22 04:09 gpb01

Same here, the bells and whistles are not worth it without portable mode

OpenSourceDevelop avatar Sep 15 '22 05:09 OpenSourceDevelop

Me too. Until portable is available in version 2 I am not moving to the new version

PcSpecific avatar Sep 15 '22 07:09 PcSpecific

cannot move to 2.0 before portable mode is included

nmaas87 avatar Sep 15 '22 12:09 nmaas87

Just adding to the me too's. Without portable mode i can't be moving up to 2.0

torntrousers avatar Sep 15 '22 12:09 torntrousers

+1 Without portable mode i can't move to 2.0

Zedus112 avatar Sep 15 '22 13:09 Zedus112

same for me

raihei avatar Sep 17 '22 13:09 raihei

In addition to everything else that has been said,

portable would also be extremely useful in working around various new-in-2.0 bugs. For example, a portable mode would be a work-around for https://github.com/arduino/arduino-cli/issues/1880

ObviousInRetrospect avatar Sep 17 '22 16:09 ObviousInRetrospect

+1 Portable mode is prerequisite to switch to new main version.

JohnboyK avatar Sep 18 '22 15:09 JohnboyK

Hi all. Feedback about the community's need for this missing feature is valued, but "+1" comments can generate a lot of noise for the people who watch the repository to follow the development.

Comments that add new information to the discussion are always welcome, but if you only want to express support then I suggest the use of GitHub's "Reactions" feature.

per1234 avatar Sep 18 '22 16:09 per1234

being able to reproduce a build will be implemented in a more efficient way once the Reproducible Build RFC goals are reached (https://github.com/arduino/tooling-rfcs/blob/main/RFCs/0003-build-profiles.md) This will allow anyone to simply get a Sketch and make sure that everything they need to build it successfully is available to the CLI and IDE 2.0

I'm not sure that the 0003-build-profiles proposal is enough to replace portable mode, as its currently written. For example, one thing I use portable mode for is fiddling with the board support packages, like source files within portable\packages\esp32.

torntrousers avatar Sep 20 '22 07:09 torntrousers

Portable mandatory!

Kabron287 avatar Sep 21 '22 11:09 Kabron287

Portable mode (where everything can be in one folder, like creating the portable folder within the installed (unzipped) ide folder as the 1.x does) is required for me to move to 2+. Moving my entire build platform (or a particular customized version of it) from one computer to another, or even running it from a thumb drive is a frequent event for me. Please please portable.

n0bel avatar Sep 29 '22 15:09 n0bel