Version Numbers Using git tag, git describe

I’ve spent the past year doing all of my development using the Git version control system. It’s far better than than subversion and has made my job as project manager/developer/commit manager much easier.

However, since it does not use revision numbers like subversion it’s more difficult to include as build numbers or version numbers. I wanted some automated way to identify the build in some way other than a non-incremental SHA1-hash. The only solution I’ve been able to find (without using any external software) is as follows.

The workflow to make this process work as expected would involve the following:

  • Prepare master for a new release. Create a new branch for the release and tag it with 1.0.
  • Make a single commit on master (necessary to separate the history) and re-tag with something for the next revision, like 1.1-alpha.
  • Tags on branch continue with 1.0-1, 1.0-2, etc. Tags on master continue with 1.1-alpha-1, 1.1-alpha-2, etc.

What’s problematic with this is the requirement to both tag and branch each time you want a release. You also need to add in a extra commit before re-tagging master so there’s an unwanted extra step.
Continue reading this post…

Published by Michael Botsko on 12/30/2009 | Categories: Git

Correcting CGI Perl Module for Bugzilla 3.4.2

I was recently installing Bugzilla on a new server and ran into problems with the CGI perl module from CPAN being too recent. Apparently, version 3.47 has some issues, so I had to downgrade to 3.45.

Bugzilla recommends that you use their installer when the checksetup.pl script spits out missing modules. However, if you encounter problems or need older version, this won’t work.

However, their own script makes a copy of the CGI.pm file inside of the bugzilla libs/ directory.

In order to solve the issue, you need download and install the proper version, but then copy of the file to the bugzilla libs folder.


$ wget http://search.cpan.org/CPAN/authors/id/L/LD/LDS/CGI.pm-3.45.tar.gz
$ tar -xzvf CGI.pm-3.45.tar.gz
$ cd CGI*
$ perl Makefile.PL
$ make
$ make install
$ cp /usr/lib/perl5/5.8.8/CGI.pm /var/www/vhosts/trellisdev.com/subdomains/bugs/httpdocs/lib/CGI.pm

Then, continue with your checksetup.pl process as usual.

Published by Michael Botsko on 12/30/2009 | Categories: Hosting, Software

Bugzilla 3.4 localtime issue on CentOS

While recently upgrading and moving Bugzilla to 3.4.2 I ran into an issue on a CentOS 5 server that was giving the following error any time I tried to access a buglist:

undef error – Cannot determine local time zone

After some searching I finally discovered that the issue was with Bugzilla looking for the timezone information in /etc/localtime, while CentOS had not updated that file since it’s original installation.

The solution is to change /etc/localtime to a symlink that leads to the correct timezone file for you:

ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

Published by Michael Botsko on 9/24/2009 | Categories: Software, Systems

To Collin on His First Day of Kindergarten

DearĀ Collin,

The past five years and 9.8 months have gone very quickly.

Continue reading this post…

Published by Michael Botsko on 9/9/2009 | Categories: Personal

Apache VirtualHosts on Internal Network (No DNS)

It’s quite common for web engineers to develop applications on either a local machine, or a server running on the local network. In many situations one does not have the luxury of a domain name service to base everything off of, and it becomes a matter of using the IP address or an internal host file.

For example, I have an internal server that we do most of our development on and we’ve typically placed everything in the default htdocs directory. That tends to be a problem if we’re working on a pre-existing application that was designed to work only from the root level.

In the following steps I’ll describe setting up a virtual host and how to trick your computer into simulating the domain service.
Continue reading this post…

Published by Michael Botsko on 8/18/2009 | Categories: Apache, Systems

Creating a Remote Git Repository

Here is a quick and dirty guide to create your own remote repository. Access is controlled through standard ssh so it’s as secure as your ssh access is.
Continue reading this post…

Published by Michael Botsko on 8/13/2009 | Categories: Git, Systems, Tech-Tidbit

Installing Git on Cent OS 5

It’s pretty straightforward to install Git on a mediatemple DV 3.0 server. If you have later versions of their servers with Yum installed, you may be able to simply install it through yum.

To begin you need to download the latest version and run through the standard extraction and configure/make/make install.

Continue reading this post…

Published by Michael Botsko on 8/13/2009 | Categories: Git, Systems, Tech-Tidbit

Storing GMT in MySQL, Timezone Conversion in PHP

At Trellis Development we’re working on several applications which need to frequently convert dates between various time zones.

By default, both PHP and MySQL operate using a single timezone which is identified during installation and is quite often the same as the host server. Both tools allow you to specify a different timezone on the fly, and all following date operations work based off of that locale.

The primary goal is to preserve a base standard time so that we can easily convert between different timezones, without loosing the ability to convert again. Two choices emerged – storing a Unix Time stamp or a date string stored using GMT/UTC time.
Continue reading this post…

Published by Michael Botsko on 8/13/2009 | Categories: MySQL, PHP

Accepting Proposals for MySquibbles.com

Three years ago Botsko.net launched MySquibbles.com after several months of design and programming work.

Squibbles is a web-based community where adults share their favorite links for their children. Parents, care providers, teachers, and others share website links that their children enjoy and can easily find new links that have been moderated by website administrators and voted on by other users. Users also organize favorite links into lists for up to five children, submit content, vote, view links recommended for them, and more.

The community grew well in the first few months and the site performed very well for the use it was getting. In the following months Squibbles lost the focus it had and was not able to receive any of the proper marketing it deserved. This lack of marketing prevented the community from growing despite a significant interest from early testers, parents, schools, etc.

Botsko.net, LLC is seeking new offers on this web property, which we believe still has great potential. Accepted offers range from equity partnerships to acquisition. We’re looking for someone with access and experience in marketing this type of resource to the proper target audience.

We’re willing to remain involved for technical work if the eventual agreement allows.

Please contact Michael Botsko with any communications regarding MySquibbles.com.

Published by Michael Botsko on 8/3/2009 | Categories: Work

Integrating QuickBooks for Mac-based Users

During development of a recent point-of-sale / e-commerce package, I started researching ways of exporting data from a web-based application into QuickBooks. A decent tool called Web Connector allows QB to connect with a web source and share information, and there’s even what appears to be a very thorough PHP class for interfacing.

However, Web Connector is Windows-only. My client runs a Mac.

Disclaimer: Prepare to be disappointed.

Continue reading this post…

Published by Michael Botsko on 7/31/2009 | Categories: PHP, Software