Sunday, February 21, 2010

Midway....

Well it has been about 3 months since my Professor at UVI approached me with the opportunity to partake in UCOSP. I spent a few days reading up on the projects and talking to some people who partook in Fall Semester 2009 before I finally made my decision, which since I am writing this, must of been the right one. I settled with pony-build, there was no one else working on it, it was in its infancy, and I wanted to do something different, python, and who can pass up a project led by a guy named C. Titus Brown-- What does the C stand for?.....the world may never know. Its been up and down for me, I have had some scheduling issues and some procrastination issues, Hey! I live in paradise you know, can't ignore the ocean calling all the time.

I think I started out with these grand thoughts in my head, "Oh Yea! I will race through this and turn out some huge fixes or implementations." But, alas, as the days, then weeks have passed I have set my sights a little lower, but not too low! I have slowly started tackling small issues one by one, which after getting these implemented and working smooth is a great feeling. In this short period of time though, I have learned lots. Coming into this I knew very little python, "Hello World!"-- I now have a pretty solid base understanding of the language. I am looking forward to getting in to some more advance techniques over the rest of the semester.

The idea of UCOSP, itself, is great-- Getting us involved in some real world projects is great. We get experience working on a distributed team and we improve our skill set. Oh, and that little extra line on our resumes does not hurt either.

Monday, February 15, 2010

Indentation is Serious Business

That is all.

Sunday, February 14, 2010

We messed up dude.

So this week I started to mess around with virtualenv some more and getting it to fail if pip can not install a dependency. Some info in no particular order.....

1) VirtualenvContext is just another context for running build scripts, but in this case it gives us the advantages of virtualenv . We can run the build script in a "fresh" environment, which leads us to why we need to have the pip integration. Pip lets us install everything the application will need to build and run properly.

2) You can follow a thread I started on the pb list to discuss how we would want to go about catching any issues pip may run into during the install process. The main issues, spelling(which basically means the pkg will come back as not existing) and just the pip process failing all together. Since we run under virtualenv we have no worries about rights issues, so it would come down to some other error - which I think we can catch with an OSError, stop execution and print out whatever the error may be to the user.

3) So far I am just testing for the pkg not existing. You can see the code so far here. Right now I think it is a pretty poor way to figure it out. Basically I am parsing the output from _run_command and looking for 'not'. 'not' shows up in the error from pip saying it can not find the requested package at the 40th place.

I think I finally all so got the mkdir stuff and Git to a final state. (Though its under the close scrutiny of ctb as I write this, so who knows). I changed things here and there, the core functioning of the process did not change but rather just a little "prettying-up" of things.

Thursday, February 4, 2010

Slowing to a Trot

Well the semester is in full swing now and the work load is mounting. I would be lying if I said I was paying the amount of attention I should be to pony-build. Finding the time between full time student and full time employee at a busy IT consulting firm (which is staffed by myself and one other person) to devote to pb is rather difficult. What little time I have found to work on pb related stuff has been used to work on the following.

1)Make it so, if the cache_dir(~/.pony-build) does not exist, create it and do some initial repo checkouts.
  • The whole point of the cache_dir is to remove the need to continuously checkout data from a public repo. Once the first initial co is done we can just grab the deltas int he future, then use the local cache for our building needs and checkouts.
  • So there has been a few iterations that you can look through at : mkdir Started out doing the creation inside the different "Clone" classes. We will now move to just calling on a function that will check for and do whatever needs to be doen to make sure cache_dir is there. This way inside the classes we can just check for the repo dirs and either update or create. This cut down on the code needed inside the classes significantly.
I am hoping to get SVN and HG working with this implementation over the next few days.