Upcoming Events
NYC CiviCRM Meetup - September 7th
September 7th, 2010
This next NYC meetup will feature a case study or 2, a look at what's new in (more...)
Configuring, Customizing and Extending CiviCRM - New York
September 16th, 2010
This comprehensive two-day hands on training course is targeted at (more...)
CiviCRM User and Administrator Training - New York
September 16th, 2010
A comprehensive two day hands on training course covering the configuration, (more...)
CiviCRM Code and Test Sprint - New York
September 18th, 2010
This code and test sprint is targeted at experienced developers who want to (more...)
CiviCRM Toronto Meetup
September 21st, 2010
Come meet others from the Toronto Area who are interested in, using or (more...)
CiviCRM Philly Meetup – September 2010
September 23rd, 2010
Come meet others from the Philadelphia Area who are interested in, using or (more...)
CiviCRM Seminar - Dublin
September 28th, 2010
NfP Services are hosting a free seminar at The IBOA, Stephen St Upper, Dublin 8 (more...)
London developer and implementer training
September 30th, 2010
This comprehensive two-day hands on training course is targeted at implementers, (more...)
London user and administrator training
September 30th, 2010
A comprehensive two day hands on training course covering the configuration, (more...)
Berlin user and administrator training
October 6th, 2010
A comprehensive one day hands on training course covering the configuration, (more...)
Berlin developer and implementer training
October 7th, 2010
This comprehensive one-day hands on training course is targeted at implementers, (more...)
Benelux meetup in Brussels: Connect, communicate and activate your supporters and constituents
October 11th, 2010
Come meet others who are interested in, using or developing for CiviCRM. For (more...)
CiviCRM Toronto Meetup
October 19th, 2010
Come meet others from the Toronto Area who are interested in, using or (more...)
CiviCRM Toronto Meetup
November 16th, 2010
Come meet others from the Toronto Area who are interested in, using or (more...)
Bad CiviCRM release tarball: What happened?
- Not Just a Contact Database
-
These optional components give you more power to connect and engage your supporters.

civiCONTRIBUTE
Online fundraising and donor management.

civiEVENT
Online event registration and participant tracking.

civiMEMBER
Online signup and membership management.

civiMAIL
Personalized email blasts and newsletters.

civiREPORT
Report generation and template management.
Earlier today at approx 6:00 am NZT (yes, we are early birds), we released CiviCRM v2.0-beta4. At approx 9:00 am, I saw a post from aaron about some missing files in the release. I downloaded and verified what aaron said and realized we had messed up big time :(. Our release czar piotr was offline and not reachable. Michal and I had to dive into the release code and figure out what was happening.
We pretty soon figured out that DAO (php files that we use to talk to the database that are auto generated from an xml schema description) generation was failing, however the script did not exit at this stage which is a bug. The process is quite sequential, and an error early on should abort the process. It took us a couple of hours to figure out the fix and test it. Testing was not as easy, since we had to simulate a release process but not actually release the code. Did not realize this, but svn operations are much faster on the local server than from a remote server, even though it was a url->url copy.
So while we were in the process of removing and creating beta4 multiple times to test, my itchy fingers managed to instruct svn to delete the v2.0 branch. That was a "oh my god" moment, what do we do now? We quickly remembered that svn was a version control system, and the branch was somewhere within the repository. A quick search for some other folks who made the same mistake gave us the need command (svn copy -r REV BRANCH_URL BRANCH_URL). We ran this on the server and we were back in business. We made sure our latest commits were in there. Things went smoothly after that, and we managed to get beta5 out there at approx 11:30 am or so. Not the fastest fix time, but we did manage to fix another beta issue (CRM-2776) in between. Dave was kind enough to do a manual download and test of the release.
A few things we need to do from this experience, to prevent this from happening in the future:
- We need to implement a test and validate procedure BEFORE pushing a tarball to sourceforge. We should initally hide the release.
- Ideally we should be able to run our unit and web unit tests on this release and all tests should succeed before the release.
- We should implement a checksum validation on the tarball and also implement a download and test release after it is uploaded to sourceforge.
- After the above, we can unhide the release for folks to download.
- We should check return status for the various scripts and abort as needed. Need to investigate what happens to an svn commit if the post commit hook fails.
- It did help that the michal and I knew the release code a fair bit and could quickly debug it. Always helps to have redundancy in the team :)
Overall it was a valuable experience for us. I wonder how other open source projects manage the above process?







Comments
Releasing
One thing we've moved to at Joomla! is having the bug squad and a few others test the release packages. We use the lead time we give our translators (we aim for 2 weeks) for testing.