LiquiBase Extension Contest 2009 Now Underway

LiquiBase 2.0 is all about 3rd party extension and integration, and to help kick that off, we are holding a contest.

Thanks to donations from Atlassian and O’Reilly, we have some great prizes for the winners

Rules

  • Your entry must embed or extend LiquiBase
  • Extensions must be compatible with Liquibase 2.0 (currently under construction)
  • Your plugin must be listed on the LiquiBase Extension Portal
  • You must announce your extension and your interest in submitting it to this contest on the LiquiBase User Forum
  • There is no license restrictions on your plugin, although we prefer an open source license

Prizes
Grand Prize:

  • Your choice of 5 O’Reilly books, donated by O’Reilly
  • One copy of PostgreSQL

Runner Up:

  • Atlassian laptop bag from Timbuk2 (US$150 value), donated by Atlassian
  • One copy of MySQL Community Edition

5x Honorable Mentions:

  • Your choice of 1 O’Reilly book, donated by O’Reilly
  • One copy of JavaDB

Judging

The winning plugins will be judged by lead developer Nathan Voxland on:

  • Usefulness
  • Creativity and Elegance
  • Completeness
  • Code quality and documentation

Key Dates

  • June 24th, 2009: Contest opens
  • August 31st, 2009, High Noon, US Central Time (GMT-5): Contest closes
  • September 15th, 2009: Winners Announced

For more information, see the offical contest page

Now Open: LiquiBase Extension Portal

Although it is currently just a skeleton of what it will be, the LiquiBase Extension Portal is now open at http://www.liquibase.org/extensions.

The goal of the extension portal is to provide:

  • A place for database-specific or experimental functionality that has not/should not be incorporated into the main LiquiBase library
  • A single location for end-users to find plug-ins of value to them
  • An easy way for 3rd parties to submit, manage and maintain plug-ins by providing a documentation wiki, issue tracking, and source control
  • Documentation on how to create your own extensions for public or private use

I was hoping to improve the sample extension pages (set-identity-insert and vacuum) to provide a better template, but I wanted to get something out before the online meetup tomorrow.  We will improve the content on the portal over the next week once real work settles down.

As always, let us know if you have any questions or comments on the portal.

LiquiBase 2.0 Milestone 1 Released

The first public release of LiquiBase 2.0 is now available.  This release is a milestone release, and therefore not for general consumption, it is not even at beta stage yet.

The focus of milestone 1 was a major refactoring and standardization of the external-facing APIs to give 3rd party extension contributors a stable platform to build on.  We have not yet begun to address bugs found in 1.9 or implement new functionality.  Additionally, the checkum generation logic has changed and is currently incompatible with checksums generated in liqubase 1.x.  LiquiBase 2.0 final will handle upgrades graceful.

Because it is just a milestone release, the download packages are not on sourceforge, but are linked from the download page.

Please let us know of any feedback, questions, or bugs you find.   Although we have focused on stabilizing the API, parts may change during the milestone phase based on feedback from the community.

The roadmap for 2.0 is to have several milestone releases, followed by a beta period.  2.0 final is scheduled for a September release, although that may change.

Note: Don’t forget the LiquiBase online meetup tomorrow!

LiquiBase 1.9.4 Released

LiquiBase 1.9.4 has been released.  The 1.9.x branch continue to be maintained, even as work continues on LiquiBase 2.0.

1.9.4 is primarily a bug fix release, but also introduces the following features:

  • DB2 for iSeries support
  • Improved Maven support
  • executeCommand does not run under updateSQL etc.

As usual, you can download the newest version from http://www.liquibase.org/download and post any questions or issues to http://www.liquibase.org/forum

We would like to thank Mark Logemann, Don Smith, and Oleg Taranenko for the patches they submitted.

LiquiBase Online Meetup: Thurs June 25, 2009, 12:00 PM US Central Time

We will be having our first meetup 2009-6-25 at 12:00 PM US central time (GMT-5) using the “Chat” functionality of the LiquiBase community forum (http://liquibase.org/forum/chat/index.php).  To log in, you will need to be registered on http://www.liquibase.org/forum/

I will be there to discuss the upcoming 2.0 release, development processes, outstanding issues and feature requests, and anything else of interest to participants.  Planned time is 1 hour.

Hope to see you there

Database Version Control on StackOverFlow Podcast

One of the questions that was discussed on a recent StackOverFlow podcast was “Do you source control your database“.

It is, obviously, a question near to my heart and I very much agree with the answer of “YES”. I also like that “use liquibase” has a few up votes and isn’t too far down the page…

It is great to see the concept getting some attention. I know that managing your database changes is just as vital as managing your code changes, yet the discussion, tool support, and interest is significantly higher for code version control than it is for database version control. There are endless articles and podcasts on SVN vs. Git, source control best practices, and mocking of people still using CVS and VSS, but basically no mention of LiquiBase vs. ActiveMigrations, database changeset best practices, or mocking of people manually managing their database changes or using database diff tools.

I know LiquiBase has saved my butt as many times as SVN has, and I want it to be able to help as many other developers as possible. The first step, however, is learning that there are tools out there that will help them.

3rd Party LiquiBase Training

On the Agile Database group the other day, there was a message that mentioned that their company provided a training course that included LiquiBase.

Note: I know nothing about the course beyond the link above, but I know there has been interest in LiquiBase training in the past and this may be a useful option for some.

I am mentioning it because it is the first professional LiquiBase training I have seen, and also because of their quote on the group: “Run, don’t walk to liquibase.org and find out more about this lifesaver.”

LiquiBase 2.0 Status

I have been working hard on LiquiBase 2.0 lately, and it feels very, very good to be updating and cleaning up the codebase. I am putting the SOLID principals to work, increasing test coverage, and building in integration hooks.

So you do not worry, The changelog XML format will stay the same and be completely backwards compatible with the 1.x series so the vast majority of users will see little to no changes. It is only the underlying java classes that will change significantly. If you are using any liquibase classes directly, this will be a large change for you, but the number of people using the API is small enough that it is worth simplifying and standardizing now, before really opening up the library for extension like the plan is. We will provide a migration guide for anyone needing it.

Curently I feel I am about 1/2 done with the main code update, which means that in about 1 month we should have a beta 1 release. The plan is to have a series of beta releases before the final release.

With beta 1, I am hoping to open up a plug-in contest. There will be many new integration points around modifying what SQL gets ran for a change, new database support, new changes, new changelog parsers, and more. There are many tools and enhancements that would be very helpful to some, but not general purpose enough to make it into the core application that would make great plugins, so get thinking. Despite having no budget, I would like to kick off the extensibility support with a bang, hopefully I can find a company willing to throw in a prize for some PR. Wost case, the grand prize will be a copy of mysql community server and sqlserver desktop edition :)
Despite not being finished with the refactoring, feel free to review the code and give me any feedback (or patches) you have. There are many use cases i have heard over the years that I plan on supporting, but there the best ones are often the ones I never thought of.

LiquiBase as a Job Requirement

Saw LiquiBase as a requirement on dice.com today.

It’s nice to see that it is becoming important enough to companies for them to list it as an important skill.

Either that or it is so difficult to use that companies do not think it is something that they can train new hires on in a reasonable amount of time….

Twitter of the Day

@leopinheiro: I want to use Liquibase with Rails (like a plugin), any idea?

When I started LiquiBase, I quickly threw out the idea of creating a Java port of Rail’s Migrations. Over the years, a common question is “why doesn’t this work like Migrations?” It is nice to see at least one person in the Rails community that sees the light :)