Let's Make Robots!

What are the thoughts on source code managment for projects hosted on LMR?

I'm just throwing this out there, because we could all share our source(for those who want to) as well as keeping backups and shareing knowledge.

Since the source code is usually smaller than most images that are posted, it wouldn't add that much space ot the current load that the servers have. This would also be great for collaboration efforts for a lot of the folks here.

 

Any thoughts, possibilities??

Some file SCM's are SVN, Mercuial,  GIT

more info here

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I use SVN/Trac to manage my software projects -- the LMR site itself is maintained in an SVN repository on the server. So it isn't out of the question to set up one or two more repositories for public (or semi-public) use, and make them and their Trac sites available to LMR members. The main problem is that I'm finding myself really busy these days and definitely wouldn't have time to moderate the repositories, reviewing checkins etc. I'll look into this.

Dan

There's also a "Specific System related" section of the Forums, for questions (typically coding questions) about specific devices. Think that might be workable into posting code bits?
I am going to play devil's advocate :) Why do we need this? If I post a robot I put my code on my robot page. when I make updates I document it in my robot page an dupload the new code/directions if PINs changed. Why do I need to keep all revisions of code uploaded in another place if I can upload them all on my robot page?
You don't need it, you can continue however you want. I"ve found that I've done multiple edits of files and had named them different things which was pretty silly. With the rcs I am able to view all of the changes and see what I changed exactly, notes and code. I don't have to worry about posting it on a forum page and worrying about missing a curly brace while doing a copy/paste. Or maybe missing something because I added a symbol/define value but only posted the function that I had created. Sure you could figure it out, but this is a better way of doing things and imo(this is the real thing, My opinoin) more efficient. I'm not trying to push this on anyone, thats why it's "thoughs on the idea". If people don't find it useful, fine, if they think it should be done differently, fine. I just thought that with some people working on larger projects(global project) or with people wanting to create libraries and maybe work with others on similiar things, it might be good...

I see two major ideas emerging in this thread. Classes and Snippets. These are very different from each other. And therefore (diversity people!) must be complementary to each other.

I mean: they are both useful. When we tried to get a serial port to operate, we downloaded and installed the right class (or library or module). And then we learned (from the documentation!) how to use it.

When we tried to figure out how to forge the last two bits from eight different bytes into a new binary word in Picaxe Basic, we posted a snippet. The snippet was later retrieved to be used again. There is no point in writing a class for that. Even if that language would support it.

Both ideas promote reusable code. And nobody suggests that code be copied verbatim without first understanding what it does. Classes need to be heavily documented, snippets need to be heavily commented.

Sounds like a plan. Separate snippets and classes. Use the noramal forum structure, where the orignal is posted then any changes made a comments. This keep the oringinal intact.

 

Myc 

So you're suggesting just using the forums vs an actual scm or just the hierarchy?

I agree with heirarchy, where  we do something like rascalrobot suggested, but keeping this in the forum....not sure I think that idea would be good. We lose a lost of the functionality of an scm, like diffing, merging, among other such features...

It's a personal preference. I'm a firm believer in the KISS princilpe. Everyone is familiar with the current forum setup and it can be easily implimented.

 

 

Simple is one thing, I just don't see a forum as a proper method of maintaining a file repo...

There are too many factors left to the person developing the code that they could forget to put in the updates on a forum. 

Diffs are an example, sure you can do them on your system, after you rename version one to a new name and make a copy of version 2 then run the diff. 

in the repo, you can just diff the version and not worry about the file naming.

There is a definite lack of efficiency in using a forum for this.

 

I've been a software engineer for over 20 years and I am a certified ISO9000 software auditor, and I agree with you on the benefits of SVC (Software Version Control). I personally keep zipped, dated, and logged copies of software I write, but I don't keep it forever. However, we aren't building a product where a customer might contact us and ask for the Version 3 software when we are at Version 5. Also, if your revision controlled library is targeted for a PicAxe controlled Hex walker, then the Arduino differential drive people have no use for it, and vice versa. Now that CtC has ventured into the world of 'Processing' there should be a dozen new robots in the next couple of weeks, all based on that 'language'. And I don't even want to start talking about how the version numbering system should be setup or how code reviews should be handled.

The typical questions on LMR are "How do I make a servo work on a PicAxe" or "How do I code a ...". I think the bigger question is what files would people like to see? I don't think I have ever needed to do a diff on files or source code I have downloaded from CodeProject, CodeGuru, CSharpCorner, etc.

Let me say again, I agree with source control, but only when everyone is working on the same product and that one product will evolve over time. That just isn't the case here. What we could use though is a "Software" tag under the Components section, with other sub-catagories under that.

Just my $0.02