1.0 release notes (preliminary)

The Aegir team is very pleased to announce the first official stable release of Aegir - 1.0. While it's been a mostly "open secret" that most of our releases are production ready, this one has been tested through no less than 15 alpha releases, 2 beta releases and 7 release candidates, for a grand total 24 test releases before we deliver this stable version.

Speaking of open secrets, here's a word from our founder, Adrian Rossouw:

The 1.0 release marks the end of my association with the Aegir project, as I am officially stepping down as project leader, handing the reigns to Antoine, Miguel and the rest of the team.

It's been public knowledge that I have not been involved with the project in the recent months as I have been in the past, owed primarily to my commitments elsewhere.

I'm incredibly happy and proud of the progress made, even in my absence, and I see my stepping down as the completion of one of the goals I have had for this project from the outset.

The Aegir project was built, from the ground up, to be able to function and grow even after I have moved on to new challenges, and the amazing team of maintainers we have attracted ensures its survival.

I want to thank everybody for their support, and I wish nothing but the best for the project and it's future victories!

Thank you, Adrian, for this great project you have given to the Drupal community, it means a lot to us!

Now onto the release. This actual release isn't much different from the previous release candidates - you can see the list of changes from the previous RC7 release at the end of those notes. However, since this is our first major release in a long time, we figured it would be important to outline how things have changed since the old days of 0.3. For those of you who weren't there, back then installing Aegir was hard. There was no "clone", no SSL, no multiserver. You had to migrate sites one at a time and you had to create platforms yourself (no drush make!). We were still using CVS.

With 1.0, we have multiserver support, Debian packages, DNS, we're using git, drush make and we have a very dynamic community of users and shops using the project. We have ambitious goals for 2.0 and we're eager (pun intended) to start moving again! So if you were waiting for Aegir to be stable, easy to install, production-ready, now is the time. The 1.x branch will be well supported as a lot of shops are running it in production already. What are you waiting for?!

1. Major changes in this release

Since our last stable release (0.3) in august 2009, we've done an incredible amount of work. The code size nearly doubled as the development team and user base, although we don't clearly know yet how many installs there are out there.

We can already say that we've been pretty successful at fulfilling our release goals for 0.4 and the 1.0 roadmap. Even though we're missing bits and pieces, especially in DNS, and multi-server support is not as robust as we'd like it to be, there's still space for improvements and bugfixes in the 1.x branch, and we'll also start on the 2.0 roadmap once this release is out the door.

  • Multi-server support
    • External and multiple DB support
    • External and multiple webserver support
    • Webserver cluster support
    • Server and services abstractions
  • DNS
    • Master zones created on the fly with sites
    • Manual modification allowed through the provision-zone command
    • Slave servers
    • Support for Bind and dnsmasq
  • SSL support
    • multi-domain/wildcard support
    • use of HTTPS can be enabled or required
  • Migration improvements
    • Batch migrations
    • Site migration fixes your body and teaser for sites/community.aegirproject.org/ changes
    • No more rebuilding the whole node_access table
    • Cloning
    • Site rename support
    • Inter-profile migration
    • Ignoring site-specific modules so that mass-migrations are easier
  • Improved task management
    • Limit how many tasks run at a time
    • task revisions and timing
    • canceling tasks
    • possibility of queuing tasks from the backend
  • Improved platform management
    • Automated platform creation through Drush makefile or even a URL
    • access control and locking
    • deletion
    • platforms are stored in ~/platforms
  • Site management improvements
    • Named backups
    • Password resets
    • Inter-site security (storing passwords outside of settings.php AKA cloaking)
    • stopped hardcoding page cache
    • bulk operations
    • Views support
    • local.settings.php overrides
    • backup file size
    • .htaccess customization
    • Clean database names and users (instead of site_X)
  • Other improvements
  • Install and upgrade process improvements
    • Aegir can upgrade and install itself, no need to go through the frontend wizards in install.php or upgrade.php
    • Remote DB server support for installs and upgrades
    • Debian packages - apt-get install aegir
    • The Aegir install went from being a known nightmare to a total breeze, with 46 seconds to 5 minutes install times with the debian packages and 15 minutes installs on manual installs (for unsupported platforms)
  • Support for 7 operating systems and counting, we added:
    • Solaris support
    • CentOS support
    • Ubuntu support
    • Gentoo support
    • FreeBSD support
    • ... and that's just the confirmed installation reports, if it's UNIX, it can probably run Aegir!
  • Project management
    • Migrated to our own git repositories
    • ... then migrated back to Drupal.org when they switched to git
    • We now have our own OpenAtrium site (this site!) for the community (this means you!) to participate in
    • A handbook has been created and expanded to provide solid, collaborative documentation for the project, that anybody can contribute to (it's a wiki!)
    • We now have clear maintainers for different sections of the code, with 4 maintainers and counting
    • We now have continuous integration with a Jenkins server testing Aegir after commits and also testing the upgrade path
  • An explosion of third party modules

2. API changes, 1.x maintenance policy and 2.0

The API changes since 0.3 are too numerous to list here. However, we are now committed to maintain the whole 1.x series with a stable API. There will be no change in the existing API, although we may add in some stuff if it is really necessary. All future API changes between 1.x and 2.x will be clearly defined so that third party module can be supported.

Major changes to 1.x will not be committed unless they are first tested in 2.0 and merged back. We will however keep the branch opened for documentation fixes and non-invasive changes like performance enhancements and cosmetic changes to the frontend. Major problems and "aegirWTF" may also be corrected in the 1.x branch, after a shakedown in the 2.x branch.

From now on, major development will take place in the 2.x branch, which will be created shortly after this release. The roadmap for that branch is ambitious but we'll tackle things one at a time, again on feature branches for major changes so that even that branch will stay stable throughout its development cycle. We will there keep in making stable alpha releases for your testing pleasure.

3. Installing and upgrading

The canonical source of installation documentation is on the community site at:

http://community.aegirproject.org/installing

In a similar fashion, the upgrade documentation is:

http://community.aegirproject.org/upgrading

Within those sections you'll find step-by-step instructions for performing both manual and automatic upgrade processes.

It is still imperative that you read the the upgrade path and version-specific information and follow all version-specific upgrade instructions before trying to run the upgrade script or manual upgrade. This especially applies to users upgrading from releases prior to 0.4-alpha8, including 0.3.

For users coming from the 0.4 betas or recent rc releases, there are unlikely to be any version-specific manual steps required to upgrade, but you should make a habit of reading them anyway just to make sure. No-one likes a nasty surprise!

4. Need help?

If you struggle to install or upgrade your Aegir system, you have a number of options available to you for getting help.

Consult this page for more information: http://community.aegirproject.org/help

Thanks to our awesome community for their help, support and encouragement as always! Enjoy the new release :)

5. New features

Since this is like a release candidate, we tried to limit the changes to this release to avoid breaking too many things, so not many new features. Of course, since 0.3, there are tons (see above) but this is only since rc7.

6. Bugfixes

We did fix a lot of things however, with the upgrade path and the remaining critical issues.

7. Known issues

Being really open about our project, we have never hidden the fact that some things, sometimes, do not work in Aegir. Our issue trackers are public, and we've made it a point of honor not only to document clearly what is wrong in our releases as soon as we find out about it, but also to reroll new releases when we fix it.

That being said, 1.0 suffers from a number of significant issues and design flaws. This is the list of all issues marked "major" in the queue right now. Some of those issues can be fixed within the 1.x branch, some can only be fixed by refactoring, and so they will be fixed in 2.x.