Eric D. Schabell: ABout Time Linux
Showing posts with label ABout Time Linux. Show all posts
Showing posts with label ABout Time Linux. Show all posts

Monday, August 25, 2008

ABout Time Linux blog opened

The new blog for this category (ABout Time Linux project) is now at an apart location. All future posts will be made there regarding the AbT Linux project.

Tuesday, May 20, 2008

Development behind a proxy

Some of the problems you will encounter when trying to use the development tools from behind a http proxy. I have been sorting these out this week to be able to spend some evening hours on AbTLinux development and wanted to post the results here.

Subversion:
The problem here is that we need to checkout code and commit our changes to the repository. Normal anonymous checkouts are taken as so:

$ svn co http://svn2.assembla.com/svn/abtlinux

# To do this over a proxy you need to either set the
# global subversion server configuration to include a
# proxy machine address and a port specification, or
# you can put this in your users home directory
# configuration. Bother are shown here.

/etc/subversion/servers

~/.subversion/servers

# Put this in the servers file in the global section.

[global]
http-proxy-host = your-proxy-hostname
http-proxy-port = 8081

# A commit of code changes on this project as checked
# out above encounters the following error.

$ svn commit -m "Your commit message"

svn: Commit failed (details follow):
svn: MKACTIVITY of '/svn/abtlinux/!svn/act/e0331bc3-e9e7-': 400 Bad Request

# To commit your changes you need to be on the https
# version of the code repository, so you can migrate
# your existing checkout as follows.

$ svn switch --relocate
http://svn2.assembla.com/svn/abtlinux https://svn2.assembla.com/svn/abtlinux


Wget:
Finally, I ran into some wget problems when trying to download package sources. The only way to get wget to run is to set an environment variable to point to your http proxy.

$ export http_proxy="proxy-servername:8081"

Monday, April 28, 2008

Trac for AbTLinux has been recovered

A few weeks ago the AbTLinux project lost its Trac machine. I was able to pick it up last week and a bit of digging in the internals turned up the fact that two of the three cooling fans were pretty borked. It sounded like a sick helo trying to land at high altitudes, if you can imagine that. It was specifically the case fan in the back and the tiny fan on the video card.

Until repairs can be made I have dissected the machine and was able to recover the entire Trac database. I have found new hosting, uploaded the old database, and the work put in to setup our development plan for 2008 was recovered.

Check it out at the AbTLinux Trac site.

Thursday, April 3, 2008

AbTLinux Trac site down

We seem to have lost our Trac site due to hardware failure (fan acting up). I am not sure if the box had a meltdown or was just taken offline as a preventive measure.

Either way, I have removed the site link and will put it up after low (thanks!) gets a chance to setup a new hosting location. He is a handy guy to have around and I am sure we will be up and running again soon.

And I just setup our development plan for 2008...

Sunday, March 30, 2008

AbTLinux - development plans for 2008

I have laid out some development plans over at our Trac site in the form of milestones, deadlines, and such for the versions up to 1.0. Basically I put a release on the schedule for every month, with plans to complete but a few issues in each period.

This is more to facilitate progress, something new every month, than to put pressure on myself. Again, the only developer so far is me!

I have on the schedule for the next release v0.3 two items:
  1. provide for default configuration overriding
  2. implement 10 new packages from our supported packages list

Monday, January 28, 2008

AbTLinux package manager tagged v0.2

Over the last few days I have been playing with the code for abt, the AbtLinux package manager, on a newly installed Ubuntu box. The auto detection stuff that installs abt for you seems to be fine (some bugs fixed), basic features are there, and I included a new package for checkinstall.

I feel this is good enough to put out a tag, so today I give you version 0.2!

You can find it over in subversion at our site: http://www.abtlinux.org or just run:

$ svn co https://abtlinux.svn.sourceforge.net/svnroot/abtlinux/src/tags/abt-0.2


Feel free to provide input or comments on irc.freenode.net at #abtlinux.

Ruby system function help and hints

Lately while using Ruby and trying to make sense of the system() function, which has a boolean return value, I was getting a bit frustrated. It seams you have one of two choices, so thought I would outline them here.

First, you can use the system(command) function which will execute your command in a subprocess and report a boolean success value. It should be noted that stdout will be available on the screen/console while the given command is running and you can redirect with the standard Linux commands (such as tee, |, >, >>, etc.).

The second option is to use what are called backticks, which allows you to capture the commands output into a variable. Note that you will no longer see stdout on the screen/console, but you will receive stderr on the screen/console. Usage is like this:

stdout = `#{command}`

It matters not whether you use the first or the second option, they both provide a means to check their resulting exit codes. I use the standard Bash variable $? like this:

exitcode = $?.exitstatus

These hints and tips should clarify the various options you have when accessing the underlying (Linux) system and to help you when trying to sort out what to do with the results of your commands.

Monday, December 31, 2007

Ruby include path

This has been bothering me for some time, wanting to include paths that will be searched when I want to 'require' or 'load' some class in my project. It is not very nice to have to use a -I flag, but there are other ways.

Use of the $: global variable:
  • $:.push("/whatever")
Or the $LOAD_PATH variable:
  • $LOAD_PATH.unshift '/whatever'

Thursday, December 27, 2007

AbTLinux - more coding progress on the package manager

It has been awhile since I last posted on this subject, so thought it might be time to provide some news on the various updates to the code base.

My new job has settled down a bit so that I have been able to make some time for coding on AbTLinux. This has led to the completion of features and reduced our unit test failure count from 18 down to 12. Here is a summary of the updates:
  • refactored reinstalling a package to allow for fully automated runs
  • implemented show-frozen
  • implemented freeze
  • added /etc/abt configuration directories setup
  • refactored update package and package tree implementation
  • implemented retrieve package tree (part of package-repo add)
  • refactored some logging to make use of ruby Logger
  • implemented verify-integrity
  • fixes to the pruge-src function
  • implemented show-files
I have also split out the general software posting I was doing on AbTLinux into it's own category. This is due to the fact that I might be losing my current Trac and website hosting in 2008. I am not sure, but want to have someplace to document the projects coding progress until I am able to sort out a new site location.

Thursday, August 2, 2007

AbTLinux - coding month reduces failing unit tests to 18

I finally found a few weeks where I could spend some time almost daily on AbTLinux and made a real good coding push. I finished up last time with 27 unit tests failing. After this coding push I am down to 18 unit tests to go!

This coding push involved some major refactoring, included a migration of the file names, method names in all classes, and general unit testing cleanup. This all involved turning my 'java-ish' code into a more 'ruby-ish' look, something pointed out to me by some of you. I checked each of these changes with the fine people that hang out on irc at #ruby-lang. Outside of this work, here is a list of issues that have been implemented:

  • able to purge sources for packages not installed.
  • a simple single word search of package descriptions available.
  • the verification of installed package files (are they installed) implemented.
  • able to view install, build, integrity, configure logs from an installed package.
  • able to generate a list of installed packages.
  • source packages are validated for sha1, currently not allowing failing checks to install.
  • implemented reinstalling of a package.
  • implemented removal of an installed package.
  • can remove build directory (unpacked source tree) or not, configurable in abtconfig.rb.
  • added ipc package source tarball to packages directory, used for copy to correct location instead of having to download sources. This speeds up unit testing.
  • diverse small bugs found along the way.
Over 76 separate code commits over a three week period. We have 46 unit tests running with 54 assertions, 18 failures, and no errors. Things are starting to shape up and I really need a package file generator soon to expand the testing. Things are starting to shape up nicely for the abt framework! ;-)

Friday, June 15, 2007

AbTLinux - caching package installs now!

Having not put time and/or energy into my AbTLinux project lately I decided to push for at implementing one of the failing unit tests (only 27 to go!).

I choose caching a package, which is in the AbTLogManager and runs now after a successful package installation. You can see the coding progress on our Trac (if you get some Trac error message, just hit refresh until it goes away).

Only 26 failing unit tests to go!

Wednesday, June 13, 2007

Mocking up packages in AbTLinux with FlexMock

I was looking for a solution to mocking up objects for my Ruby project Unit Tests and came across the FlexMock project.

I have been looking for something simple that would allow objects, in my case software packages, to be easily tested without all the overhead of actually running through downloads, configuring, building and installing a real package. The obvious solution is to mock up the package object and test that. FlexMock provides a rather extensive tool set for mocking up my package objects.

As of yet I have not exactly decided where and how to integrate this, but I will. For now I have included the library into the code base and will get back to this soon.

Tuesday, June 12, 2007

AbTLinux wiki setup on Sourceforge

With the announcement of Sourceforge hosting support of project wikis, AbTLinux will now be hosting it's wiki.abtlinux.org within it's Sourceforge project space.

I have migrated all old pages over to the new location, set security to prevent spamming and encourage both developers and eventual interested persons to take a look.

To edit the wiki you need to be a project member, which entails getting a sourceforge user account and then requesting addition to the About Time Linux project.

The original announcement for those interested:

SourceForge, Inc. (NASDAQ: LNUX) today said it has teamed-up with Wikispaces to integrate wikis directly into SourceForge.net, the world's largest repository of open source software. The addition of wiki functionality into SourceForge.net gives the community a simpler and more efficient tool to mass-author the documentation and communication necessary to support its open source projects.

"Open source succeeds because of community," said Michael Rudolph, vice president and general manager, SourceForge.net. "Adding the collaborative power of wikis into what is already a vibrant community will create a better way for the members of SourceForge.net to maintain their projects. Wikispaces gives us the ability to support the high volume of projects on the site and bring greater value to the open source community." [...read more...]

Sunday, March 4, 2007

AbTLinux progress, install a package is working!

I have made another push on the coding of abt, the AbTLinux package manager. We have now got a basic install for the standard software package build cycle of configure, make and make install. This includes configure, build and install logs.

There is still much to do, but the basic framework is starting to appear. As things are getting more stable in my world I am trying to commit at least a few hours in the evenings each week to coding. Watch the progress in the AbTLinux Trac.

Sunday, February 25, 2007

Running Ruby unit tests in Eclipse (AbTLinux project)

I have been playing with running the diverse unit tests and constantly having the problem with needing to be root (su is requested if you run these tests as a non-root user).

The solution was rather simple, just start your eclipse with sudo and the results here are that you see the unit tests executing in the eclipse console. Some are failing as we are in the middle of implementation:



Saturday, November 18, 2006

AbTLinux package manager progress

This last week I got some time free in the evenings to work a bit on the abt package manager, part of AbTLinux distribution. I am working on it this weekend still but have implemented the following functionality based on a test package (fortune):
  • abt -h | –help
  • abt [ -n | news ]
  • abt show-details fortune
  • abt show-journal
  • abt [ -d | download ] fortune
  • abt [ -i | install ] fortune
I have all of the above functionality working and the install function is up to and including queuing the package for install. For more information you can see the project site and check the mailing lists or code repository (SVN on sourceforge) for progress reports.
I have been digging into Ruby as a programming language on the way and received my Ruby book (The Ruby Way, second edition, by Hal Fulton) order this weekend. That has sped up my work considerably! I am expecting to make some good progress over the coming month, so stay tuned! ;-)

Friday, May 19, 2006

Started in on AbTLinux design!

I have gotten some time to work on the AbTLinux design, putting together via Ruby’s rdoc a simple overview of the classes to be used based on our requirements document. It has taken a bit to get the hang of Ruby’s rcod, finding the IDE I might be using (still a toss up between vim and FreeRIDE), template the doc design I like and hammering out the classes in a form that will generate the API docs.

The key here is to stay away from actual coding, so I am just outlining the classes at this point. Based on our requirements I have a pretty good overview and it should slowly start to emerge at Abt API link on the AbTLinux site. Very curious as to how this will end up with my knowledge of Ruby being very limited. It is refreshing to design without being influenced by my knowledge of the language, but I am wondering what this will lead to when I apply OO design elements that are not available in Ruby (for example, it is missing multiple inheritance).

Sunday, March 5, 2006

Infrastructure supported by Sourceforge.net!

A major imporovement in the mirroring of released files, better quality mailinglist and subversion code repository with https access and rsync annonymous mirroing. We take a good step forward in the quality of our tool set for developing AbTLinux.

See our news on the AbTLinux site for more information.

Saturday, December 31, 2005

A look back at AbTLinux in 2005

This has been a big year for me and AbTLinux, finally taking the big step to get this project started I have setup basically all our needed infrastructure over the last year. We have a wonderful website that has grown quite nicely to contain all our needs at http://www.abtlinux.org.

I have also setup a wiki environment which low has been very busy filling with development and design documents. This is the Wikka product, a very nice wiki that provides user controlled ACL's which is working very nice for us at http://wiki.abtlinux.org.

I have also added recently the Trac projects tool for bug tracking, reporting, source repository browsing and roadmapping. See http://trac.abtlinux.org.

Furthermore, we have just finished a cycle of the depEngine requirements which produced (through six teams of students at the Radboud University Nijmegen) six documents I am currently reviewing. One will be selected as the winner and implemented!

Finally, the abt package manager has almost reached its 0.6 version which includes all use cases and a start is made on the scenarios. Please see our roadmap for the project planning and release cycles.

For 2006 I hope to see our first implementation of the abt package manager and maybe even our first iso release. I want to wish all those that have offered input, worked on parts of the project or are just following the developments as they happen a Happy New Year!

See you all in 2006!

Thursday, December 22, 2005

Closing down the for 2005!

Today was my last day of work for 2006!

We close down the university after tomorrow but I am on my daddy day so will not be there. A week off to enjoy the Christmas holidays and New Years, lovely! I do have a set of six AbTLinux depEngine requirements documents to read and evaluate for a course given this last semester, am looking forward to that.

Only plans I have the coming week are to finish up the loft I built this last spring. Need to close out the wall and insulate it up to the ceiling. Furthermore, I would like to fill up the gaps between the sheetrock with filler so that it is ready to hang/paint or whatever it is we decide to do to the walls.

From my family to yours, wishing you a very Merry Christmas and Happy New Year for 2006!