Drupal 7.x-dev

webchick - July 2, 2008 - 22:24
Nightly development snapshot from CVS branch: HEAD
First released: July 2, 2008 - 22:24
Download: drupal-7.x-dev.tar.gz
Size: 2.14 MB
md5_file hash: 720644e69a01d5ddd92bc76567e4d9c6
Last updated: November 25, 2009 - 00:05
View usage statistics for this release

The HEAD of the Drupal core CVS repository is now open for the forthcoming 7.x series. This is a development snapshot release for the 7.x series. This is not stable, and production sites should not run this code. However, users wishing to help test and develop the next version of Drupal are encouraged to use this for test sites.

Release notes for DRUPAL-7-0-UNSTABLE-9 (September 15, 2009)

Changes for developers:
=======================
* Database-wise, core is now fully DBTNG-compliant! YAY! We also added
basic support for 'date' and 'time' types to Schema API, update_sql()
is dead, dead, dead, AND now hook_uninstall() and hook_install() will
automatically handle your schema definitions. Ahhh.

* The File API now uses stream wrappers for accessing files, which
basically means that all functions that used to take a file path now
take a URI like public://old_photos/banana.jpg. Core ships with three
default stream wrappers: temp://, public://, and private:// (which
means that public and private files FINALLY co-exist!) with support
for contrib to offer wrappers such as s3:// for Amazon S3, flickr://
for getting data into/out of Flickr, and so on. We also added a
hook_file_url_alter() for content delivery network (CDN) support. w00t!

* Remember that awesome code registry I talked about back in
UNSTABLE-1 or so that was going to solve all of our performance woes?
Yeeeah... Turns out, it caused severe developer experience issues, in
addition to not offering performance improvements on par with more
well-supported systems such as APC, so this got partially rolled back.
The registry no longer caches functions, though we do still offer a
class registry, which means that $foo = new Foo; will work from
anywhere.

* Field API improvements: Taxonomy terms are now fields, comments and
taxonomy terms are fieldable, and fields are also now translatable.

* In terms of clean-ups, we now have the R part of a real CRUD API in
core with standardized, swappable entity loaders. We also have a
*real* user and permissions API, as well as a filter API. We also
renamed 'box' to 'custom_block' in the name of sanity.

* Performance-wise, we now ship with "smushed" images that are lighter
on bandwidth, and we've now added a caching system to the render API
which is currently implemented by blocks, and because it happens early
in the page render cycle, it works for both authenticated users and
with node access modules. Yum.

* Install profile improvements! Shock! Install profiles are now
basically modules with .install files, .info files to declare
dependencies, etc. If you can write a module, you can write an install
profile, and you can also do everything from install profiles you can
do with modules including use the full Drupal API and write update
functions to move from one version to another. Speaking of versions,
you can now specify version-level dependencies in your .info files, so
you can say your module depends on at least Views 2.0-rc1 but less
than Views 3.0. And finally, you can run update.php and install.php
from the command line without Drush having to do unholy things. Yay!

* In terms of our testing framework, there's now a debug() function
which can be used as a 'lite' version of dsm(), and also prints
debugging data as SimpleTest assertions. There's also a new "verbose"
mode which logs screen captures of the pages SimpleTest hit on its way
through, along with the assertion messages. This should make figuring
out why tests are failing MUCH easier! Thanks to the testing sprint in
LA back in mid-August, we also greatly grew our test coverage and
cleaned up a lot of lingering test patches from back in Szeged.

Changes for themers:
====================
* Regions $sidebar_left and $sidebar_right are now called
$sidebar_first and $sidebar_second, for better semantics and to make
them more RTL-friendly.

* The AJAX framework from CTools is now in core, and core now supports
a new .once() method for ensuring that a behaviour applies only a
single time. I don't really know what any of this means, but the JS
folks are really excited about it. ;)

* You can now use a "wildcard" operator in tpl.php files, for example
page-user-%.tpl.php to affect any user/xxx while letting page-
user.tpl.php affect only the actual page /user.

* In accessibility news, there are now system-wide classes for marking
elements as either completely hidden (.element-hidden: equivalent to
jQuery's hide() function) or invisible (.element-invisible: visible
only to screen readers). We're now working to apply those classes to
various points in core, as well as other important accessibility
improvements.

Changes for end-users:
=====================

* CC-FREAKING-K IN CORE! OH YEAH! :D Not to mention Token, FileField,
and Poormanscron!

* As a trade-off, lots of extraneous features were removed from core
in favour of either contributed modules or field API alternatives:
minimum number of words on the body field, related terms for taxonomy
terms, per-user theme selection, Blog API module.

* The D7UX IA is fully in place; no more confusing "half the items are
in 'Site configuration' and half under 'Configuration & Modules'"
stuff. Thanks for bearing with us while we went through that transition!

* Some nice security improvements. Users are now prompted at install
time to get notified via e-mail about security updates for their
sites. This is great because I'm pretty sure almost no one realizes
this is a setting in Drupal 5 and 6. :P We also now limit the number
of login attempts to help prevent brute force attacks. And running
update.php is now tied to a permission rather than having to open it
up to the entire universe if you don't like sharing your user 1
password. Oh, and last but not least, SSL support in core! :D

Release notes for DRUPAL-7-0-UNSTABLE-8 (July 24, 2009)

Changes for developers:
=======================

- Berdir has been leading the charge on lots of conversions to the new database abstraction layer in Drupal 7 (DBTNG). Most of core has now been converted, with just *two more* open issues!

- Speaking of database stuff, Schema API now has support for defining foreign key relations between tables. While core doesn't do anything with this information yet (due to the fact that we have to support stinky old MyISAM tables), contrib modules certainly could. There's also now support for queries to ignore slaves when you are using a replication set up, which is great for high performance sites.

- The miserable DX suck-fest that is node_get_types() has been split up into much more reasonable function names like node_type_get_types() and node_type_get_names() etc. YAY!

- Installation Profiles have at long last gotten some love! They now come with .info files where all of the various metadata such as name, description, dependencies, etc. goes. No more learning obscure PHP functions, and this lays important ground work for being able to smarten up the packaging system. Hooray! Adrian has big plans for a more robust installation profile system.

- Catch has been going bananas with a code profiler, filling the issue queue with all sorts of interesting optimization issues and patches. This is an important area, because right now D7's performance as compared to D6's is not so hot.

- Field API improvements galore, including conversion of node's "body" and "teaser" fields, a query API for our pluggable storage system, alter hooks for all of the various metadata and settings, and fieldable taxonomy terms.

- Lots of improvements in the testing world, including user interface improvements to SimpleTest module (you can now re-run the same batch of tests easily), a 'verbose' debugging mode, improved test coverage of long-neglected areas such as Poll module, and various under-the-hood improvements for rolling out version 2.0 of the testing bot.

- t() now supports additional contextual information for short strings, which comes in really handy since words like "View" can often mean entirely different things depending on what it's referring to.

Changes for themers:
====================
- Under the banner of "eliminating WTFs/minute for new themers", themes no longer auto-recognize scripts.js and style.css: you specify those in the .info file same as you do all other CSS/JS files. Additionally, themes no longer support the theme_engine prefix name on function calls: always use the theme name.

- All dynamic classes in templates are now in a single $classes string (and corresponding $classes_array). Good bye, class="node

<?php
if ($sticky) { print ' sticky'; }
?>
<?php
if (!$status) { print ' node-unpublished'; }
?>
" and hello class="
<?php
print $classes
?>
" w00t!

- New functions render(), hide(), and show() have been introduced for selecting exactly when and where to print *part* of a complex variable such as $content without having to micro-manage the whole thing. I'm very tired and doing a horrible job of explaining this, but hopefully http://drupal.org/update/theme/6/7#granular helps.

- jQuery UI now ships with Drupal core! Would love to see some patches that take advantage of this library to improve user experience, and/or replace our old, crusty custom implementations of stuff like autocomplete. Additionally, a new drupal_add_library function was added, to provide a centralized registry for JS/CSS libraries such as jQuery UI.

Changes for end-users:
=====================
- A swanky-looking new admin toolbar, and some re-working of administration paths. This isn't quite what you see in the mocks at http://www.d7ux.org/header/ (it's missing icons, for one), but lays the initial ground work for further improvements.

- IMAGE HANDLING IN CORE!! You heard it here first. (Well. Unless you heard it on Drupal Planet, or Twitter, or...) So far, we've got ImageCache in core - which allows the set up of "image styles" (like thumbnail or album cover) with various "image effects" attached (like "scale & crop" or "rotate") which can then be applied to any image in the system, such as user pictures.

- Tons of work is being put forth into an effort to move "Plugin Manager" into core. What is Plugin Manager you ask? Can you say automatic project updates from within Drupal? I *knew* you could! So far we have some underlying libraries for handling SSH/SFTP/FTP communication, but there's still much more work to be done before this is ready.

- Path and Search module are now enabled in the default profile, thus eliminating the first step that 90% of Drupal site builders do once they've installed Drupal. Core also ships with an admin role, eliminating the second step that 90% of Drupal site builders do once they've installed Drupal. ;)

- The wall of text that appears when you first install Drupal, including (mysteriously) to anonymous visitors, and whose instructions "helpfully" disappears when you post your first piece of content thus leaving you completely straded, has been moved to the landing page of the help system. In its place is a simple message that there has been no front page content posted yet, and invites you to either create content or go change your home page.

- A variety of help text clean-up patches, mainly in removing useless or overly verbose messages.

- Per-content type block visibility that we ripped out of core in Drupal 5 or so is now back! There'll now be a nice little selection for showing a block only on "Story" nodes, for example.

- Form element titles no longer end with a colon by default. Goodbye, "How old are you?:" You will not be missed!

Release notes for DRUPAL-7-0-UNSTABLE-7 (May 27, 2009)

Changes for developers:
=======================

- A spangly new Job Queue API which allows for batch processing of items. See http://api.drupal.org/api/group/queue/7 for more info.

- Some nice performance improvements:
o SimpleTest module no longer has to instantiate every test class in order to simply read its metadata. $memory_usage--;
o There's now a taxonomy_vocabulary_load_multiple(), user_delete_multiple() to improve performance around massive amounts of these types of data.
o Drupal now serves more sensible headrs for reverse proxies.
o Core now defaults to using MySQL's InnoDB storage engine rather than MyISAM.

- A new centralized static caching mechanism, so we don't need to litter $reset parameters all over the dang place.

- New hooks hook_node_access_records_alter() and hook_node_grants_alter() to allow for complex interactions between multiple node access modules.

- Field API improvements, including a pluggable storage mechanism, increased test coverage, and de-coupling from Form API.

- Lots of DBTNG conversions. Less than 10 more to go! http://bit.ly/DBTNG_Conversion Yeehaw!!

- Tests for OpenID module. We actually got a lot of tests, but these were *extra* awesome (and sorely needed), so I wanted to mention them specially here. ;)

Changes for themers:
====================
- There are now nice extra body classes added to match a page's template suggestions. So for example node/1/edit would give you classes of page-node, page-node-edit, and page-node-1. The Zen theme offers this too in Drupal 6.

- box.tpl.php is DEAD. DEAD, my friends! In its place are far more sensible theme_comment_form_box() and theme_search_results_listing(). That's right. There was absolutely nothing about box.tpl.php that had anything to do with block.module. Go figure.

- A whole gaggle of formerly "special" things are now just regular old blocks. Footer message, feature-specific help text, mission statement, and even $content! This means they can be more precisely positioned and have the same configurable visibility as other blocks in the system.

Changes for users:
==================
- Those tired and ugly collapsed fieldsets on the node form have now become nice looking and useful Vertical Tabs! See http://buytaert.net/drupal-7-usability-update for a screeshot.

- The horrible frankenstein "dumping ground of random crap" monster that is the default "Navigation" menu has now been split up into:
o User menu: Contains "My account" and "Logout" links. This is positioned in the upper-right corner.
o Management menu: Contains "Add new content" (formerly "Create content") and "Administer" links. Think of this as the "do stuff" menu.
o Navigation menu: The same as before, but now at least with fewer links! :D

- There's a slick new input format selector. Goodbye, 3-foot long collapsed fieldset with radios showing every godforsaken option known to mankind, hello compact, JS-ified select box!

- There's a new top-level "International" administration menu for any localization/translation-related modules to put their stuff and a "Development" administration menu for developer tools.

- On the permissions page, permissions checked for authenticated users will auto-check the same permissions for all other roles on the client side. This helps make it more obvious to people what checking that box actually does.

- Removed Clean URL choice from installer. Seriously, are you ever going to opt *not* to have Clean URLs? If so, there's a settings page for that. :P

- Some security improvements:
o A watchdog event is now fired whenever modules are enabled/disabled.
o PHP module is now the "global killswitch" for whether users can use PHP anywhere in the system.

Release notes for DRUPAL-7-0-UNSTABLE-6 (March 19, 2009)

  • In JavaScript-y news, Drupal 7 now comes with jQuery 1.3.2 and jQuery Forms 2.21. it's also now possible to use jQuery alongside other JS libraries (Prototype, etc.)! This requires a small change to your JS code that you can do even now in Drupal 6 as a best practice. See http://drupal.org/node/224333#javascript_compatibility for more details. You can also now reference external JS files from drupal_add_js() rather than having to do silly workarounds with drupal_set_html_head(). Yay for consistency!
  • Massive re-working of image handling libraries (basically ImageAPI in core), which gives us important groundwork towards ImageCache in core http://drupal.org/node/371374 and even possibly ImageField in core. OoOoOoo... :)
  • The new database system (DBTNG) now supports pager and tablesort queries via "extenders," which means that we can now work on converting pretty much all of Drupal core queries to DBTNG. Feel free to pick off an issue from http://drupal.org/project/issues/3060/term/131 if you'd like to get a head start on learning this essential part of Drupal.
  • For designers, lots of exciting news! First, page.tpl.php now has some nice, cleaner markup to make it easier for CSS designers to jump in and start theming without any PHP knowledge. w00t! Next up: node.tpl.php: http://drupal.org/node/382870. Also, our aging, ugly pals Bluemarine, Chameleon, and Pushbutton have been retired from core so they no longer offend designers new to Drupal and make them think that apart from Garland, all Drupal can ever be is ugly and non-standards compliant. ;) Hooray! Thanks to JohnAlbin, who took a hit for the team, they're still in contrib if anyone needs them. :)
  • Drupal 6 -> Drupal 7 core upgrades should actually work now without any manual monkeying with settings.php! :) Yay!
  • A new filter was added which will let you post a link to <a href="[internal:node/123]">About Us</a> and automatically figure out the right path.

Release notes for DRUPAL-7-0-UNSTABLE-5 (February 17, 2009)

Developer Changes

  • The biggest news of course is we now have a fabulous Field API in core! HOORAY! While there is still work to do, the initial patch and several follow-ups went in, which allows fields to be attached to both users and nodes. If you're interested in helping with this, please see http://drupal.org/node/361849 for a "jump off" point.
  • Another big, exciting development is hook_page_alter(). Page callbacks now return drupal_render()able arrays, which modules can then modify before they are output. Some crazy, exciting stuff can be done here.
  • Lots of documentation fixes/improvements: Thanks to the inclusion of API documentation in core, and thanks in part to our new "Novice" tag (http://drupal.org/patch/novice), we've had lots of undocumented hooks documented, unclear comments clarified, and incorrect docs corrected. Please keep those patches (and issues) coming!
  • Comment and Taxonomy modules are now truly optional and can be uninstalled. In more radical news, *Block* module has also been made optional. OoOoOOo, scandalous. ;)
  • Performance improvements, including adding the ability to disable anonymous sessions to help with the Digg/Slashdot effect, mammoth hook_form_alter()s have been broken up to use hook_form_FORM_ID_alter() instead, and stopping filter_xss_bad_protocol from being called hundreds of time on each page. There is definitely still some work to do, but we're getting there!
  • Error handling has been improved. Core now uses E_ALL error reporting by default (which helps ensure squeaky-clean code), and changing its sensitivity can be done from a settings page instead of by hacking common.inc. ;)
  • Nedjo organized a great virtual internationalization sprint, which resulted in fixing of several annoying bugs (locale uninstall being broken, all languages being active in language switcher block) and made important in-roads to more complex features that will hopefully be part of a future unstable release.

User Changes

  • Locale interface has been **dramatically** improved. It now behaves a lot more like the watchdog or node content administration screens do.
  • The vocabulary edit form has been also visually simplified by removing a bunch of needless fieldsets and the "weight" field. Ahhh...
  • Lots of textual improvements, too. For example, "Input formats" are now "Text formats" which help better describe what they are for.
  • There are snazzy new forum icons! Hooray!
  • Administration theme has been moved from under site configuration where NO ONE ever finds it, to the bottom of the themes page where people actually might. ;)

Release notes for DRUPAL-7-0-UNSTABLE-4 (January 15, 2009)

Developer Changes

  • RDF goodness! An RDF namespace registry (and core now is XHTML 1.1 compliant as a result). I don't really know what an RDF namespace registry means, but Dries is excited about it. ;)
  • All of our hook documentation is now embedded in Drupal core files. This means it is easily searchable without access to api.drupal.org, You can enter "hook_something_something" in an IDE and have it auto-fill, AND it means that we will no longer have any hook introduced into Drupal without corresponding documentation. Hooray!
  • There were several patches committed that are bringing consistency to our table naming conventions: blocks -> block, filters -> filter, etc. This is an enabler for interesting Data API things.
  • Speaking of the database, HOOK_DB_REWRITE_SQL() IS DEAD. Long live hook_query_alter(), which gives you an actual *query object* instead of a fricking *string* that you have to parse with regex! :P Hooray!
  • Various "plumbing" improvements to systems like SimpleTest (which got way faster and also had some bug fixes), DBTNG (which got bug fixes, subquery support, improved test coverage, various conversion patches, etc.), File API (tests, tests, and more tests, all of which fixed underlying bugs), and so on.
  • Node links and comments were moved into $node->content['links'] and $node->content['comments'], respectively. This will make them a lot easier to theme.
  • Performance improvements to the module system, bootstrap, etc. and the addition of functions such as node_load_multiple() and file_load_multiple() which allow you to save approximately oodles of queries by retrieving all of the objects you need at once rather than one at a time.

User Changes

  • Users can now (if given permissions) cancel their own accounts. So endeth the oldest issue in the issue queue. Sniff. ;)
  • Permissions page now displays human-readable names, in addition to descriptions.
  • Improvements have been made to Aggregator module which allow pluggable feed fetchers, parsers, and processors.
  • SQLite database support, which, among other things, opens up interesting possibilities for a "LiveCD"-like distribution of Drupal that requires no installer.
  • A PostgreSQL "surge" has brought us pretty close to "true" PostgreSQL database support (for real this time - we even have two maintainers!).
  • The "Display post information" options have been moved from the theme settings (where no one on earth ever thinks to look) to the content type settings (where they do).
  • A new "Clear all logs" button which lets you delete all watchdog data without having to dork around in the database.
  • A new module dependency system which magically figures out what order to enable modules when you check off a bunch of them that are inter-dependent so you don't get ugly "function does not exist" fatal errors. Yay, math!

Release notes for DRUPAL-7-0-UNSTABLE-3 (November 13, 2008)

Developer Changes

  • drupal_set_title() now check_plain()s by default, which should help developers prevent XSS.
  • Performance improvements: the registry now keeps a record of all modules that implement a given hook, and caches registry lookups.
  • Taxonomy gets some love, with new hook_taxonomy_term_load/insert/update/delete() hooks and various standardization/consistency improvements.
  • SimpleTest now remembers the tests that were last selected so they can be re-run (WOOHOO) and can catch errors and warnings that come up during test runs, even if they're not part of an actual assertion.
  • Improvements to drupal_add_js(), which now has some cleaned-up parameters and a full-on weighting system for scripts. More drupal_add_js() improvements are in the pipeline, and expect them to make it over to drupal_add_css() as well.
  • Ground work has been laid in the database system for supporting of more exotic database drivers. Expect to see SQLite support in UNSTABLE-4!
  • Also on the database side of things, numerous files and modules have been converted from legacy syntax to the new DBTNG syntax. A great place to help out if you're interested in learning this stuff hands-on in advance of when you are forced to. ;)

User Changes

  • New, swanky password checker during installation and on the my account page.
  • Cron is automatically run once upon installation so that Drupal doesn't immediately clobber you with a nasty error as a way of saying "Welcome."
  • The content types administration screen shrinks down the "in-your-face-ness" of the machine name of the type.
  • It is now possible (though not easy ;)) to upgrade from Drupal 6 to Drupal 7! Unfortunately, this currently still requires some manual futzing with settings.php. See http://drupal.org/node/304163 if you'd like to help.

Release notes for DRUPAL-7-0-UNSTABLE-2 (October 12, 2008)

Developer Changes

  • - Patch #310212 by justinrandell, catch, et all: removed $op from hook_user().
  • - Patch #310212 by justinrandell: removed $op from hook_nodeapi().
  • #231298 by Crell and rednahead: Allow for aliased multi-site support.
  • #206138 by pwolanin: Rename mis-named 'module' attribute in node types.
  • #142995 by dopry, drewish, quicksketch, jpetso, and flobruit: Adding hook_file_X().
  • #253569 by aaron, agentrickard, and Dave Reid: Add hook_modules_X to allow modules to react when other modules are enabled, disabled, installed, or uninstalled.
  • #282405 by Damien Tournoud, lilou, Dave Reid: Enforce coding standard on elseif.
  • (various) Stamped out bugs in SimpleTests under certain conditions.

User Changes

  • - Patch #296197 by Gabor and meba: Drag and drop on the language selection page.
  • #268584 by agentrickard, Rob Loach, and catch: Display more terms (configurable) on the taxonomy administration pages.
  • - Patch #309821 by sun et al: automatic site maintenance during update.php.
  • #313213 by maartenvg, Gábor Hojtsy: "Nice" permission names that are localizable.
  • #305566 by agentrickard and moshe weitzman: Split 'bypass node access' from 'administer nodes'.
  • (various) All caught up on Drupal 6 security patches.

Release notes for DRUPAL-7-0-UNSTABLE-1 (October 1, 2008)

Developer Changes

  • SimpleTest module, an automated code tester, is now in core, along
    with a bazillion tests. These (should) now all pass, so you can use this
    as a guideline to know whether your patches / modules have broken
    anything. See documentation at http://drupal.org/simpletest.
    http://acquia.com/files/test-results/index.html for an idea of how our
    overall test coverage is coming along.
  • A completely new database API, known as "Database: The Next
    Generation" (DBTNG). This involves a lot of changes, so please see the
    docs at http://drupal.org/node/310069.
  • A "code registry" which is a set of database tables holding all of the
    functions in all of the modules, allowing files to be lazy-loaded. This
    requires changes to your .info files. See
    http://drupal.org/node/224333#registry for more details.
  • WYSIWYG editors now have a hope and prayer of integrating with
    textareas given the new #input_format property on textareas.
  • Image toolkits can now be supplied by modules. This is nice, so you
    don't have to do awkward copying of 'image.imagemagick.inc' into the
    includes folder.

User Changes

  • Core now offers two install profiles: a basic one that sets up stuff
    like an "Article" and "Page" content type, some Taxonomy vocabularies,
    etc. The installer requirements check also got a nice makeover and looks
    more like the status report page.
  • Removed several modules and extraneous features: Throttle module's
    gone, Ping module's gone, access rules are gone, that horrible wall of
    comment settings is gone, etc.
  • Added drag-and-drop to a bunch of areas (poll results, languages,
    etc.) that missed them in D6.
  • Permissions now have descriptions, and node permissions are now sorted
    by content type rather than by verb.
 
 

Drupal is a registered trademark of Dries Buytaert.