halfbridge1974 / arduino

Automatically exported from code.google.com/p/arduino
0 stars 0 forks source link

Modularize Arduino software for packaging and/or multiple users #8

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Currently Arduino expects to be installed and run from a single directory
tree (eg: /home/foo/arduino-0015).  If Foo wants to add a new library, he
puts it in /home/foo/arduino-0015/lib; if he wants to save a sketch, he
saves it in /home/foo/arduino-0015/sketchbook.  If Foo upgrades to a newer
version of Arduino, it gets installed in a different directory (eg:
/home/foo/arduino-0016), and he has to copy all of his modifications from
'0015 to '0016, maybe missing something.

While this is ok (if clunky) in a single-user environment, in a multi-user
environment (particularly one where the software may be installed by an
installer or package manager) this makes it very inconvenient to package. 
If Arduino recognized the concept of home or working directories, in
addition to the normal installation (system) directory, it would make the
tool significantly easier to package for installation and use with multiple
users and workspaces.  It would also make it easier for someone to upgrade
to later versions of Arduino.

To make this work, Arduino would need to support multiple paths for key
directories (definitely examples, lib, sketchbook, and possibly hardware),
and in the event of duplicate files, choose the user's file instead of the
system file.  In this scenario, Arduino would be installed somewhere
appropriate to the system (C:\Program Files\Arduino on Windows,
/usr/share/arduino on Ubuntu, etc.) and there would also be a set of
directories for the user's files (C:\Users\Foo\AppData\arduino on Windows,
/home/foo/arduino on Unix/Linux/MacOSX).  When Arduino needs a file, it
looks in the user's directory first, then the system directory.

Original issue reported on code.google.com by craig.tr...@gmail.com on 4 Apr 2009 at 1:26

GoogleCodeExporter commented 9 years ago
For libraries at least, this is being addressed in the sync with Processing's 
code base for Arduino 0017.  Once 
that's done, I'll work on something similar for board definitions and cores.  

Original comment by dmel...@gmail.com on 5 Jun 2009 at 4:04

GoogleCodeExporter commented 9 years ago
For libraries and sketcbook, this should be basically fixed in Arduino 0017.

Original comment by dmel...@gmail.com on 15 Aug 2009 at 8:26