If you look at the 1.7 beta, which was released recently, you may want to know where to look for new features. In 1.7 most of the changes, even though technically features, are really enhancements of existing functions, making them work better for site users, site administrators and developers. I posted recently about some of them, but here are some more, some of which may not be immediately obvious.

Jacob Thrane Lund improved the mass mail function by allowing it to optionally exclude disabled users from mass mailing. This is really useful, and I can easily think of two reasons why it matters. First, none of us want to be accused of spamming people who have left our sites. Second, if you have suspended a user for some reason, you may not want to communicate some kinds of information with them. On the other hand, maybe you do. Either way it is helpful to have the option.

Jonathan Cameron contributed a nice code change that lets the core editor buttons (editor-xtd plugins) have meaningful tooltips. It’s so great to have many eyeballs noticing things like this and having people who discover them follow through with code improvements.

Rouven Weßling contributed another useful item by adding support for Open Search and another nice thing in bringing in PHP and HTML code highlighting support to the Code Mirror editor.

Amy Stephen contributed code to bring Viewing Access Level support to the back end component views for the first time, which means that back end users won’t be able to see content items in the back end that they aren’t allowed to see in the front end.

The loadmodule plugin was also changed to add some new features. Now you can add specific module chrome when you load a position (for example and you can load a module by module name and title instead of position (for example {loadmodule mod_login,Login Form,outline}).  This was mine so thanks Mark and Andrew for accepting it and JBS for testing :). Now we will happily not have to use fake positions just to be able to load a single module.

There are a number of new features in 1.7 that are more or less invisble to users who aren’t developers, but that are going to make future releases much better for users. For example in one helpful change for developers, Vladimir Serotyukov contributed work to add more information to debugging outputs.

Geraint Edwards put in code on both the issue tracker and github to enable better interactions between third party extensions and core database queries. Geraint, of course, works on JoomFish and this will help that project, but also other extensions that may need to do similar things. This is a great example of how third party developers can and should contribute improvements to the core that help everyone rather than creating work-arounds to solve situations in which the core is not doing exactly what they need.

Andrew Eddie put in support for logging use of deprecated methods, taking advantage of the new logging capabilities in 1.7/11.1.  That is going to help developers avoid compatibility problems in the future by reminding (nagging) them to update their code now instead of waiting until they absolutely have to when support for those methods is removed.

Probably the biggest invisible change that has happened for core developers, though, is the addition of the ability to update the core databases when users update their sites. This is a really complex story deserving of its own post, but the short version is that now if a new table or field needs to be added or a field needs to be changed (to make it bigger for example) that can now be done as part of updating.

We don’t know yet if there will be any changes to the database in 1.7 but this is actually a huge step in terms of being able to have updates instead of migrations. Christophe Demko did most of the coding on this using the incredible power of the JInstaller library initiated by Sam Moffatt and Louis Landry and with help in testing by too many Bug Squad members to list them all out. It was one of those great JBS collaborative efforts, part of what makes participating fun and rewarding.

Really, making a stable and mature application like the Joomla! CMS better is in a lot of ways about steady, incremental, non-disruptive changes. Of course there will be new big features and changes in the future, but with the new release cycle we’ll see more and more of these changes that don’t need years of development coming out when they are ready instead of waiting for the huge projects to be done.