Teensyduino libraries in git?

Status
Not open for further replies.
Are the Libraries that come with teensyduino somewhere in a git repository? If not, can they be?

I'm using the OctoWS2811 on a project and have some updates I have made to the movie2serial to add a vertical layout and I'd love to contribute back.

I saw this thread talking about how parts of teensyduino are proprietary. Thank you for your hard work!

Is it possible to get the Libraries that ship with teensyduino into a git repository on github? I'd be happy to help if desired.
 
Here are some of my thoughts based on my experience in using repos for Arduino libraries.

I think it would be great to have all the libraries up in a repo(s) somewhere.
That would allow people to ckeckout/clone the libraries and get updates as well as track their local changes and push back user contributed features & bug fixes.
I'm also big fan of git and prefer it over SVN & HG
All that said, it can be a bit tricky to get a collection of libraries from a repo or multiple repos
to work with the Arduino "libraries" tree methodology
if you are wanting to checkout/clone the libraries directly into your Arduino sketchbook libraries directory.
(which works great for testing and development)

The reason is that the current Arduino build methodology does not allow sub directories for libraries.
(It does allow unlimited sub directories for sketches but not for libraries).
So if you create a subdirectory under your Arduino sketchbook "libraries" directory, the libraries in
further subdirectories won't be found when a sketch tries to use the headers for that library.
(even though it will show up as having examples - since those are sketches)
i.e. you can't do something like create a "teensyduino" directory under your sketchbook libraries directory
and then toss in all the PJRC libraries under that as part of a single repo checkout/clone.
Combine that with git which does not allow partial tree checkouts, it becomes impossible to directly overlay
a group of libraries from a single git repository into a users sketchbook libraries directory.

Currently, what I'm doing is checking out/cloning 3rd party Arduino libraries that have a repository, directly into
my Arduino sketchbook libraries directory. In some cases where libraries don't have repos,
I create a local git repo for the library.
This works quite well but it requires a separate repository for each library.
Each library is then source controlled separately. That separate-ness can
be good or bad depending on your point of view.

In order to allow users to directly checkout/clone directly in their Arduino sketchbook libraries
directory, there are essentially two options:
- Have a separate repo for each library
- do a partial checkout/clone of the desired libraries to allow
checking out/cloning a single library from the repo in a its own subdirectory under "libraries".

This second option essentially allows a single repo of multiple libraries to be used as if there
were a repo for each library.

As far as I know, git & hg don't support partial checkout/clone so that leaves SVN as
the only VCS that can do partial checkouts.

In terms of having a TeensyDuino repo, I think it would great to just slam all the libraries up into
a repo. But then if you want to allow users to directly checkout/clone them into their libraries
directory, you have to either use SVN or have a separate repository for each library.

Another alternative, and this would be really nice but the most difficult would be to update
the Arduino IDE build methodology to look down in sub directories for libraries like it does for sketches.
The big difficulty may be to get something like back into the mainline IDE, that and it has
implications for the new "1.5x library format", which seems to be leaning twards using magic sub directory names
for specifying which architecture cores the library supports.

With that update, then users could create separate sub directories and pull in multiple libraries under
each subdirectory. i.e. you could have something like a Teensyduino sub directory which could even have
futher sub directories like "display", "communication", "timing", etc.. for organization purposes.
It could also all be a single repo or a repo for each category etc...
But that also has painful implications for non IDE development (using real makefiles)

For now, I'm not sure what is the best option. more than likely it would probably be driven
by how you (paul) do your development and source control.

From my perspective, I like the separate repo per library, but then
I am definitely not the typical arduino or teensy user.


--- bill
 
Status
Not open for further replies.
Back
Top