Release Management

Saturday, January 26, 2008

Implementing Subversion post-commit hook

Today I've configured Subversion to send a notification to a mail list every time one of developers commits a change to the specific project. This is obviously the most useful for a shared project and I do plan to expand SVN notifications to other projects as well. This is one of the ways we can all keep up with what's going on with shared projects, and will hopefully reduce the amount of "stepping on toes" when working on similar project.

Instead of using supplied with SVN commit-email.pl with hundred lines of Perl without an effort to format the check-in comment, I used SVN-Notify package. I added package to SVN server Linux machine that sends out an email notification when anyone checks in something to Subversion. The Subversion notification email contains the following information:

Person that made the change
What files were changed
Check in comments
Diff of all of the changes that were made

The Perl SVN-Notify package has been installed in the /data/scripts/svnnotify directory and an SVN post-commit hook has been added to the /data/svn/company/hooks directory. The post-commit hook is a shell file that calls the SVN-Notify package with the information from the Subversion checking. This file controls what notification gets sent to whom. The post-commit file has the line :

--to-regex-map DevAlias@foo.bar.com=project \

This line controls who gets notified of what. The DevAlias@foo.bar.com can be any email or email list and can be multiple email addresses separated by a comma. After the = sign, is the SVN repository pattern that is matched to determine if an email is sent for this checkin. In the example above, only checkins on the "project" directory will generate an email to DevAlias@foo.bar.com. This line can be repeated for each pattern that needs to be matched. So, an email notification can be sent to just the email list for that application by having a line for each application.

Next step would be implementation of Subversion and Atlassian's Jira bug tracking tool integration. Developers would have ability to reference Jira issues when they make SVN commits.

Labels: ,

Tuesday, January 8, 2008

Luntbuild dealing with SMTP response 554

In our environment Luntbuild uses email as feedback mechanism for our continuous integration process. Luntbuild was configured to send an email in the build fails or succeeds including detail of build and release process. No emails were sent today, despite the fact that developers were actively working on the new project. In the Luntbuild's build log file I found the following lines

[Thread-472] INFO - Triggering step "Notify".
[Thread-472] INFO - Checking necessary condition of step "Notify".
[Thread-472] INFO - Condition satisfied, running step "Notify".
[Thread-472] INFO - Send build notification via email to: realias@foobar.com
[Thread-472] INFO - Sending email: Build of "SVN YYY build XXX" is successful
[Thread-472] WARN - Failed to send email
[Thread-472] ERROR - org.apache.tools.ant.BuildException(Problem while sending mime mail:) Cause: javax.mail.MessagingException(Could not connect to SMTP host: SMTP_SERVER_NAME, port: 25, response: 554)
[Thread-472] INFO - Step "Notify" is successful.

Been there done that. Somehow network people again removed the IP address of machine on which Luntbuild is installed from the list that the SMTP server will allow relaying from. Just to confirm my suspicion I logged in to Windows box where Luntbuild (Quickbuild) installed and tried to connect to SMTP server with this command 'telnet SMTP_SERVER_NAME 25' and got response '554 Blocked. Internal Relay Attempt From An Untrusted Host. Connection to host lost'. I have one more help ticket ticket to submit.

Labels: , ,

Wednesday, January 2, 2008

Selenium drops out

Selenium drops out of the race by not so obvious reason as Borland SilkTest 2006. First of all different tools exists under the name Selenium: Selenium IDE, Selenium Core, and Selenium RC. I only tried Selenium RC with Selenium IDE. Selenium Core does not work for us, because it needs to be installed on the same website as application for post release validation.

There are two major drawbacks with using Selenium vs Canoo WebTest. The tool is kind of slow, I run the same tests with Canoo WebTest and they at least a few times faster and this is very critical for us. Next issue is integration with LuntBuild, Selenium requires the browser, while WebTest tests are just a bunch of ANT tasks, so in the future we can easily integrate them to continuous integration process.

Labels:


All posts in one place

  • Doxygen vs JavaDoc
  • Installing JNetDirect's JSQLConnect driver
  • Finding problems in Java code wtih PMD
  • Log4j best practices
  • Can't open activity db: Permission denied error for SVN commits
  • Jira Subversion Plugin
  • Implementing Subversion post-commit hook
  • Troubleshooting Subversion and TortoiseSVN
  • IIS 6.0 does not serve files with .docx
  • Installing ANT on Windows XP
  • Luntbuild dealing with SMTP response 554
  • Confluence and Jira OutOfMemory errors
  •