February 2012
1 post
1 tag
Fixing SVN Merge History in Git Repositories
Assuming you use the fabulous svn2git to convert your SVN repository to a Git one, you might still run into a problem: merge history.
Why And How To Fix Merge History
Things Might Be Just Fine
If you have always used SVN 1.5 or newer and thus have svn:mergeinfo properties for all your merges, you can ignore this part, as git-svn will correctly identify merges from, say, a branch back to trunk...
January 2012
2 posts
1 tag
Finding Problems in Commit Messages and Tickets...
Sometimes, you commit a change, but then you realize that you did not mention the ticket ID in your commit message. Or, worse: you use the wrong ticket ID.
The usual remedy is adding this info to the ticket by hand. On the Agavi Trac, when a ticket ID was incorrect in a commit message, we would typically remove the corresponding entry from the wrong ticket and move it to the correct one.
When...
1 tag
Basic Preparations for GitHub Ticket Migration
Before modifying the ticket and comment contents themselves (to convert them from TracWiki syntax to Github Flavored Markdown), a few more fundamental changes are necessary:
Find missing ticket IDs (the Agavi Trac has 83 “gaps” in the ticket ID sequence; those were all spam tickets that got deleted, but not in time for a legit ticket showing up with a later ID in the database)
...
December 2011
5 posts
1 tag
Porting Trac Ticket Attachments to GitHub
Some of the tickets in the Agavi Trac have attachments; these attachment files need special treatment as the GitHub issue tracker itself has no support for attachments.
We’ve created a repository (agavi/trac-ticket-attachments) for this purpose and simply imported the everything from trac/attachments/tickets, which contains just a bunch of folders with the ticket ID and the attachments of...
1 tag
Testing GitHub Tickets for the Migration
One thing we’ve always put a focus on is having tickets for every change we make, and using these tickets extensively in commit messages and from other tickets so a quick svn blame on a line not only shows a description of the change, but also gives a ticket number that can be looked up on Trac to follow a discussion of the change.
On numerous occasions, I looked at a bit of code, found it...
1 tag
Moving to GitHub!
We have just begun working on migrating trac.agavi.org and svn.agavi.org to GitHub; there is whole range of things to consider, from referencing users correctly over rewriting commit messages so the correct Git commit references are included to preserving the history of tickets in their right order.
We will add more blog posts as we move along to document the process in case other projects would...
Agavi 1.0.7 released!
Agavi 1.0.7 is now available for download at www.agavi.org and through the PEAR channel.
The release contains just two minor changes over RC2, so I’ll simply quote from the final release notes:
The getCredentials() method on an Action is no longer called unconditionally (i.e. whether or not the isSecure() method returned false) but only if the Action is “secure”.
It is...
Agavi 1.0.7 RC2 released!
Agavi 1.0.7 RC2 is now available for download at www.agavi.org and through the PEAR channel.
A few minor fixes and changes have made it in since RC1; most notably, PHPUnit 3.6 should work fine now, and the Form Population Filter, when populating several forms (via an array as the value for “populate” with form IDs as keys) now gives precedence to boolean true values (so error...
November 2011
1 post
Agavi 1.0.7 RC1 released!
Agavi 1.0.7-RC1 is now available for download at www.agavi.org and via the PEAR channel.
As always, the CHANGELOG has the full story, but here is a summary of the most important changes:
The getCredentials() method on an Action is no longer called unconditionally (i.e. whether or not the isSecure() method returned false) but only if the Action is “secure”.
The PHPTAL renderer now...
July 2011
2 posts
Agavi 1.0.6 released!
We’re thrilled to announce that the final version of Agavi 1.0.6 is now available for download at agavi.org and through the PEAR channel.
There were no changes in this release over the release candidate, so please refer to the RC1 release announcement and of course once again the CHANGELOG to see what great new features and changes are included in this new version.
Agavi 1.0.6 RC1 released!
We’re happy to announce that the first release candidate for version 1.0.6 is now available for download at agavi.org and through the PEAR channel.
This release adds a database adapter for Doctrine 2, a renderer for the Twig template engine, a native session storage for ext/sqlsrv and various enhancements such as support for Smarty 3 in the existing renderer and extended configuration...
June 2011
2 posts
Agavi 1.0.5 released!
The final version of Agavi 1.0.5 is now available at www.agavi.org and through the PEAR channel.
A small number of fixes and changes have made it in since 1.0.5 RC1; the most important one is compatibility with PHPUnit 3.5.
To support PHPUnit 3.5, we had to drop support for PHPUnit 3.4 since a few backwards-incompatible changes were made that we could not work around. Your tests should not be...
Agavi 1.0.5 RC1 released!
Agavi 1.0.5 RC1 is now available for download at www.agavi.org and through the PEAR channel.
There are quite a few changes in this release, so I’ll quote from the RELEASE_NOTES:
This release improves the robustness of AgaviFormPopulationFilter especially for XHTML and HTML5, and fixes several issues. The database adapters for ext/mysql, ext/mysqli and ext/pdo (when used with MySQL...
December 2010
2 posts
Agavi 1.0.4 released!
The final version of Agavi 1.0.4 is now available, our biggest maintenance release yet!
You can download it at agavi.org or install it via the pear.agavi.org PEAR channel.
Here is a summary of the most important changes over 1.0.3 (for a full list, please refer to the RELEASE_NOTES and CHANGELOG files):
Support for the Windows Azure platform
AgaviXsltRenderer
AgaviDoctrineDatabase lazy...
Agavi 1.0.4 RC1 released!
It’s been quite a while since our last release, so we’re happy to announce the availability of Agavi 1.0.4 RC1, our biggest maintenance release yet!
You can download it at agavi.org or install it via the pear.agavi.org PEAR channel.
Here is a summary of the most important changes in this release (for a full list, please refer to the RELEASE_NOTES and CHANGELOG files):
Support for...
April 2010
3 posts
Agavi 1.0.3 released!
Agavi 1.0.3 has just been released and can be downloaded at agavi.org.
Only very few changes were done since RC1, so I’ll once more leave it to the RELEASE_NOTES to list the most important changes:
This maintenance release fixes a number of issues over Agavi 1.0.2 and features a few minor enhancements.
Several issues and inconsistencies have been fixed in AgaviNumberValidator and...
1 tag
Agavi on the Azure Platform
The next release of Agavi will have initial support for running applications on the Microsoft Windows Azure platform, as well as a database adapter for the new ext/sqlsrv driver to communicate with Microsoft SQL Server and support for the IIS7 web server, which now finally has a very nice rewrite module.
As always with these kind of features, the biggest task was getting to know the platform and...
1 tag
Jump In! Camp
Jump In! Developers’ Camp has started today at a beautiful resort near ZĂ¼rich, Switzerland. Over the next three days, we’ll have workshops focusing on the topics of cloud computing, the Microsoft Azure platform. There are quite a bunch of fellow Open Source developers here, and it’ll be exciting to sit together and hack away on various features.
For Agavi, this means that work...
March 2010
2 posts
Agavi 1.0.3 RC1 released!
Agavi 1.0.3 RC1 is ready for testing and can be downloaded at www.agavi.org.
I’ll quote right from the release notes to give you an overview of the most important changes. Please help us test this release thoroughly!
This maintenance release fixes a number of issues over Agavi 1.0.2 and features a few minor enhancements.
Several issues and inconsistencies have been fixed in...
Agavi at ConFoo
The beacon of hope that is Agavi is carried to Montréal this week, where the ConFoo Web Tech conference takes place.
David will be giving a talk on Agavi, and although we know that some of you will be there to watch it live, all those who couldn’t make it to MontrĂ©al (it’s a lovely city, so consider attending next year) need not despair, as at least the slides, and possibly also a...
February 2010
1 post
PHP UK Conference 2010 Agavi Discount
We’re proud to announce that Agavi is a community partner of the always-awesome PHP UK Conference which takes place this Friday, February 26, in London, England.
The conference is now in its fifth year and is bigger and better than ever. Friday’s event has 16 different hour-long talks from some of the world’s best PHP speakers, covering core, database and various specialist...
January 2010
2 posts
Agavi 1.0.2 released!
The Agavi team is happy to announce that Agavi 1.0.2 is now available for download at www.agavi.org.
The CHANGELOG for this release counts 8 additions, 22 changes and at least 39 fixes over Agavi 1.0.1; the most important ones are:
Support for HTML 5 forms in AgaviFormPopulationFilter.
Support for Doctrine 1.2.
Support for Propel 1.4.
Support for Phing 2.4.0.
Support for PHPTAL 1.2.
...
Agavi 1.0.2 RC4 released!
Agavi 1.0.2 RC4 is now available for download at www.agavi.org.
This release adds support for Doctrine 1.2 and implements HTML 5 forms in AgaviFormPopulationFilter.
A couple of bugs have also been fixed; the most important one results in whitespace-only configuration parameter values being cast to null now instead of an empty string.
The timezone database has also been updated to their...
December 2009
3 posts
Server Migration Wednesday/Thursday
We’re about to move agavi.org and a ton of related stuff to a new server. This will affect the website, Trac, SVN, PEAR Channels, Mailing Lists and so forth.
The DNS TTL for agavi.org is 24 hours and unfortunately, we can’t change that, so it’ll take quite a bit for the updated nameserver records to propagate. Because of this, we’re switching all services on the old...
Save Letters, Use Short Validator Names!
Something’s been bugging me lately. Be it customer projects or code people post on the channel, I often find code that spells out long validator names, over and over again:
<?xml version="1.0" encoding="UTF-8"?>
<ae:configurations
xmlns="http://agavi.org/agavi/config/parts/validators/1.0"
xmlns:ae="http://agavi.org/agavi/config/global/envelope/1.0"
...
Agavi 1.0.2 RC3 released!
Agavi 1.0.2 RC3 is now available for download at www.agavi.org.
This release adds support for Propel 1.4 and introduces a new way to configure connection setting overrides for Propel; see the RELEASE_NOTES for details.
A couple of bugs have also been fixed, most notably an issue where the first element of a multi-dimensional array would be lost when exported from a validator.
PHPUnit and the...
November 2009
1 post
Agavi 1.0.2 RC2 released!
Hello everybody,
Agavi 1.0.2 RC2 is now available for download at www.agavi.org.
A couple of fixes have been made since RC1, and PHPUnit and the timezone database have been updated to their latest versions.
We’re currently planning a final release next week, after another new version of the timezone database has been released.
Enjoy your weekend,
David
September 2009
3 posts
Fifth Agavi Article on IBM developerWorks
The fifth and final article in the series on Agavi over at IBM developerWorks has just been published.
This last part talks about handling of file uploads, storing data in sessions and writing custom validator classes. Go read it, rate it, blog about it and spread the word!
Agavi 1.0.2 RC1 released!
Agavi 1.0.2 RC1 is now available for download at www.agavi.org.
This maintenance release fixes a number of issues over Agavi 1.0.1 and brings a couple of minor enhancements.
The following fixes are worth mentioning:
AgaviArraylengthValidator didn’t work with files.
AgaviValidationManager::clear() didn’t clear validation errors.
Multiple settings blocks and settings prefixes...
Fourth Agavi Article on IBM developerWorks
The fourth article in the series on Agavi over at IBM developerWorks has just been published.
The new part details Agavi’s Output Types and how to quickly implement alternative response formats. Go read it, rate it, blog about it and spread the word!
August 2009
5 posts
Get me a standard agavi project, the fast way
More often than not I want to create a new agavi project the “standard” way, that is:
Change the projects name
Change the projects prefix
Use the defaults for all other options
Calling agavi project-wizard makes me answer all questions, one by one. Sure, pressing enter at every prompt works, but I value my time too much to press enter at every prompt. I’d rather go write a...
Third Agavi Article on IBM developerWorks
The third article in the series on Agavi over at IBM developerWorks has just been published.
This part focuses on creating an administration interface and on securing it. Go read it, rate it, blog about it and once again spread the word!
Finally, nightly documentation builds
Finally a nightly pdf build of the agavi guide is available. It’s based on trunk and can be downloaded from http://www.agavi.org/documentation-nightly-pdf.tar.gz. The tarball contains the pdf version of the guide and all stage tarballs.
The current build scheme is very simple and the file is replaced every night. The location may change if and when we decide to keep older versions of the...
Using your own build templates from second zero
Some tasks are nice to have around in each and every project, such as the JSLint task I wrote about earlier today. However, we still don’t want that in each and every project - where’s the point in having a js-lint in a project that does not use any javascript at all like a pure service oriented project without any html output? So we don’t want that task in the core agavi build...
Extending the build system - integrating JSLLint
Javascript errors are annoying and notoriously hard to track down due to limited IDE support and misleading error messages in browsers, but often it’s only a missing comma or a bracket in the wrong place. A linter helps by checking that your javascript is a least structurally sound. It’s the first check I run on any javascript that does not work, so having it right at my fingertips is...
July 2009
6 posts
New SSL Certificates on agavi.org
https://svn.agavi.org/ and https://trac.agavi.org/ now use SSL Certificates signed by CACert. CACert’s root certificate is not installed by default on most operating systems, browsers and so forth, which means you might get trust warnings.
You can either trust the individual certificates, or, for more convenience, you can download their root certificate from their website and import it...
Icinga praises Agavi
The Icinga team posted an “Ode to Agavi” yesterday. All I can say is “Thanks, I feel flattered.” and I’m speaking on behalf of all team members here. This is exactly why we do this and we’ll do our very best to code up your high expectations.
For those who have never heard the name: Icinga is a fork of the popular Nagios monitoring application.
Second Agavi Article on IBM developerWorks
The second article in the series on Agavi over at IBM developerWorks has just been published.
It focuses on handling of forms and the integration with Doctrine. Go read it, rate it, blog about it and spread the word!
Agavi 0.11.8 released!
Agavi 0.11.8 is now available for download at www.agavi.org.
This maintenance release fixes three bugs over Agavi 0.11.7:
AgaviArraylengthValidator didn’t work with files
Arrays that failed validation were not purged from request data
Memory leak in AgaviTranslationManager::getLocaleIdentifier()
It also contains minor optimizations in AgaviInarrayValidator and...
News from The Edge - Improved Build System
Since some weeks ago, the agavi build system features a set of new nifty features. The build system has always been a great help to me as a developer saving me the tedious, boring work of writing the action, view and model stubs. And now, the build system gets even better:
The agavi build system now supports
Generation of executeRequestMethod() methods for action. That saves another hundred...
Agavi Article Series on IBM developerWorks
Our dear user Vikram Vaswani has written a series of articles on Agavi for publication on IBM developerWorks.
The first article in this series has now been published. Please check it out, share it, blog it, tweet it, and most importantly, rate it and leave feedback in comments.
We’ll keep you in the loop about further releases.
May 2009
1 post
Agavi 1.0.1 released!
Agavi 1.0.1 is now available for download at www.agavi.org.
This maintenance release fixes a number of issues over Agavi 1.0.0 and brings a couple of minor enhancements.
The following are worth mentioning:
Most notable, a race condition in configuration file compilation was fixed that could lead to corrupt compiled files on disk.
Arrays that failed validation are now always purged correctly...
April 2009
2 posts
Agavi 0.11 end-of-life schedule
Today we’re announcing the end-of-life and end-of-support dates for Agavi 0.11.
We will stop providing any changes and fixes after June 30, 2009. One last 0.11 version is scheduled for release shortly after this date.
Security fixes will be provided until December 31, 2009. Releases will be made when necessary.
We will continue merging timezone database updates from newer branches...
Agavi 1.0.1 RC2 released!
Agavi 1.0.1 RC2 is now available for download at http://www.agavi.org/
This maintenance release fixes a number of issues over Agavi 1.0.0 and brings a couple of minor enhancements.
The following are worth mentioning:
Most notable, a race condition in configuration file compilation was fixed that could lead to corrupt compiled files on disk.
Arrays that failed validation are now always...
March 2009
2 posts
Agavi 1.0.1 RC1 released!
Hello folks,
Agavi 1.0.1 RC1 is now available for download at www.agavi.org
This maintenance release fixes a number of issues over Agavi 1.0.0 and brings a couple of minor enhancements.
The following are worth mentioning:
Most notable, a race condition in configuration file compilation was fixed that could lead to corrupt compiled files on disk.
Exporting values from validators with...
Agavi 0.11.7 released!
Agavi 0.11.7 is now available for download at www.agavi.org
This maintenance release fixes a number of issues over Agavi 0.11.6.
The following are worth mentioning:
Most notable, a race condition in configuration file compilation was fixed that could lead to corrupt compiled files on disk.
Exporting values from validators with argument bases is now possible, and it’s possible to...
February 2009
6 posts
It's finally done: Agavi 1.0.0 has arrived!
We’re delighted to announce the release of Agavi version 1.0, available for download at www.agavi.org.
The list of notable features is too long to include in entirety here, so I’ll just list the most important ones:
New XML configuration infrastructure, now much more capable than before, with native XML support in config handlers, support for XSL transformations, XML Schema, RELAX...
Agavi 1.0.0 RC2 released!
Agavi 1.0.0 RC2 is now available for download at www.agavi.org.
This release fixes one regression in the routing, comes with several improvements to the best practices implemented in projects generated by the project configuration system, and now allows passing of a validation report object to Form Population Filter. Also, a last-minute change in RC1 that made “pattern” attributes...
Agavi 1.0.0 RC1 released!
I’m pleased to announce the immediate availability of Agavi 1.0.0 Release Candidate 1. Download it now at www.agavi.org!
We fixed a couple of regressions in beta8/beta9, but nothing dramatic, so updating should, as always, be smooth.
Speaking of which, I’d like to encourage everyone to give this release a try - we’ve been working hard over the last weeks and months to...
Agavi 1.0.0 beta 9 released!
Agavi 1.0.0 beta 9 is now available for download at www.agavi.org.
This release includes a relatively modest number of changes over 1.0.0 beta 8:
Testing infrastructure (experimental!) was declared “finished” (it will be changed and improved until at least 1.1)
Routing callbacks can now return an AgaviResponse from onMatched() and onNotMatched()
Cache group callbacks need to...