Easy Install of libraries

Hi all,

This is something I've been thinking about for a while and have started a really rough bit of code to start implementing it (pre-alpha at this point and terribly buggy and inconsistent). What I'm after is some thinking around features, how you'd use it and indeed whether it is useful at all.

Any of you that use python or indeed Linux will be intimately familiar with package managers that make your life very easy to install libraries or packages. Something I've got annoyed about with Arduino to the point of doing something about it is managing non-core libraries.

For those that are not imagine being able to simply issue a command: arduino-install somelibrary

And it goes away, downloads it, installs it and puts all the right files in the right places for you...

So my questions to the community are:

  1. Would you find this useful?

  2. Is command line acceptable (at least for a first release) and are people comfortable enough with command line to use it?

  3. Is anyone doing anything truly whacky with their library folders and sketchbook location? (I'm assuming a config element to this at least initially to tell it where the sketchbook is).

  4. Does anyone regularly run into issues with dependencies (ie where a library requires another library or a specific version of a library)?

And finally is there anything you'd like to see in a package / library manager feature wise given what you use elsewhere.

My frame of reference at the moment is APT / YUM on Linux and easy install / pip in Python all of which I use pretty much every day.

Cheers
ajfisher

The thing about this is that there's no central repository for Arduino libraries, at least right now. Perhaps you can do something like Eclipse does, where a XML file gives the locations/filetypes of the library files, and then the IDE grabs them (with curl, or whatever) and unpacks them to the appropriate folder. Then it'd be the developer's initiative to set up a server, and the Arduino guys could have an 'official' one that holds well-tested libraries.

Very good point and you've hit on why my code is so buggy right now and not ready for release. Part of what I'm trying to build is a centralised package repository online something similar to PyPi which acts as a reference point.

I don't mind the eclipse set up in small doses but find it annoying when a library repo can't be found and Eclipse goes and decides to have a heart attack. Also full XML for packaging is overkill - generally all you need are two URLs, one for the latest stable release and one for the latest unstable release.

So I'm attacking this from both sides at the moment and actually building it in python from a speed standpoint.

Cheers
ajfisher