[ANN] Radiant CMS 0.6.8 "Incise" Release

Looks like it’s time for another release of Radiant:


Radiant 0.6.8 “Incise” adds a number of new features that enhance
support for
extensions and completes the project’s move to github. Of special note

  • Extension installer/uninstaller scripts (script/extension) and a
    ‘extension registry’ at http://ext.radiantcms.org
  • Support for freezing edge Radiant using ‘git’
  • Remember-me functionality for the admin UI

This should be a seamless upgrade for users of 0.6.7 and should require
minor adjustments for versions 0.6.5+.


Radiant is a no-fluff content management system made for designers and
programmers and is ideal for use on small teams. It is similar to
Movable Type or Textpattern, but is much more than a blogging engine.

Radiant features:

  • An elegant user interface
  • The ability to arrange pages in a hierarchy
  • Flexible templating with layouts, snippets, page parts, and a
    custom tagging language (Radius: http://radius.rubyforge.org)
  • A dynamic extension system
  • A simple user management/permissions system
  • Support for Markdown and Textile as well as traditional HTML
    (it’s easy to create other filters)
  • Operates in two modes: dev and production depending on the URL
  • A caching system which expires pages every 5 minutes
  • Built using Ruby on Rails (which means that extending Radiant is
    as easy as any other Rails application)
  • Licensed under the MIT-License
  • And much more…

There’s even a live demo over on the project Web site:



  • Hide page publish date selector unless page.edit.published_date?
    config is
    set. [Sean C.]
  • Add <r:yield /> tag to support snippets that accept blocks. [Andrew
  • Fix bug with FileNotFoundPage subclasses and draft status. [cradle]
  • Update radiant:freeze:edge task to support BRANCH, TAG, and REVISION.
  • Update to Haml 2.0.1. [Jim G.]
  • Fix radiant:update:configs task to properly evaluate environment.rb
    [Sean C.]
  • Fix page subclass loading issues. [Sean C.]
  • Add <r:unless_ancestor_or_self> and <r:unless_self> tags. [Tim
  • Add specific installation modes for gzip and bzip2 compression. [Sean
  • Added extension installation scripts. [Sean C.]
  • Added find attr to r:if_content and r:unless_content to expand based
    finding ‘any’ or ‘all’ specified parts [Jim G.]
  • Added inherit attr to r:if_content and r:unless_content to search for
    independently in the page tree. [Jim G.]
  • Update radiant:freeze:edge task to use git and GitHub. [John M.]
  • Update login page layout from prototype. [Sean C.]
  • Change order of extension paths to prefer project extensions over
    [John M.]
  • Switch default session store to cookies [Josh F.]
  • Add remember-me function to login [Josh F.]
  • Allow an inclusive list of parts in r:if_content and r:unless_content
    [Jim G.]
  • Added a defaults.page.filter config setting for setting a default page
    filter. [Alex W.]
  • Fix Users fixtures for extensions that still use test/unit. [Nick
  • Don’t search for missing Page subclasses before bootstrap. [Sean
  • Added tolerance for missing Page class definitions. [Loren J.]
  • Don’t require an authenticity token check on the login action. [Sean
  • Make sure region sets are reloaded when activating extensions in
    mode. [Sean C.]
  • Fix Haml rendering errors. [Thomas W. Steen]


We’ve worked hard to make it easy to install Radiant. For starters you
can download it with Ruby Gems:

% gem install radiant

Once the Radiant gem is installed you have access to the radiant
command. The radiant command is similar to the rails command (if you
are from the Rails world. It’s how you generate a new Radiant project
for a website. So cd to the directory where you would like your
instance to be installed and type:

% radiant -d [mysql|postgres|sqlite3] .

Next, edit config/database.yml to taste. Then run the rake bootstrap

% rake production db:bootstrap

And start up the test server:

% script/server -e production

Finally, hit the /admin/ URL and you should be off to the races. See the
README file in the release for additional details.

If you are interested in other download options, visit the download
page: http://radiantcms.org/download/.


  1. Update the Radiant gem:

    % gem update radiant

  2. Change the RADIANT_GEM_VERSION constant in config/environment.rb
    to “0.6.8”.

  3. Run the update rake task:

    % rake radiant:update

  4. Run migrations:

    % rake db:migrate

  5. Restart the server


The upgrade process changed significantly from last release, so listen
up! To upgrade an existing installation, BACKUP YOUR DATABASE, update
the gem, and create a new Radiant project using the instructions above.
Then point Radiant to the right database by editing config/database.yml
and execute the following command in your project directory:

% rake db:migrate

If you have problems during the upgrade, please let us know.


Radiant wouldn’t be possible without the help of some fine people. The
following people have made contributions to this release:

Andrew N. cradle Tim G.
John M. Josh F. Jim G.
Alex W. Nick Plante Loren J.
Sean C. Thomas W. Steen

Thanks guys! If you’d like to hop on the development band wagon head on
over to our dev site (http://dev.radiantcms.org/).


The best place to get support is definitely on the Radiant mailing list.
There’s a crowd of people there who have been hanging around for many
moons now. Newbie questions are welcome! To sign up, go to:


The Radiant mailing list is also accessible via Ruby forum:



Sean C.
for the Radiant CMS Dev Team

just tried installing on winxp. i did the sqlite3 option, then when
bootstrapping the db, i selected the “3” option to prepopulate a blog.
when logging into admin i get an error.

SystemStackError in Admin/page#index

Showing admin/page/_node.html.haml where line #1 raised:

stack level too deep

Extracted source (around line #1):

1: %tr.node{:id => “page-#{page.id}”, :class =>“level-
2: - render_region :node, :locals => {:page => page, :level =>
level, :simple => simple} do |node|
3: - node.title_column do
4: %td.page{:style => “padding-left: #{padding_left(level)}px”}

Trace of template inclusion: /admin/page/_node.html.haml, /admin/page/

RAILS_ROOT: C:/Documents and Settings/Scott/Desktop/webdev/projects/

Sean C. wrote:

‘extension registry’ at http://ext.radiantcms.org

  • Support for freezing edge Radiant using ‘git’
  • Remember-me functionality for the admin UI

Thanks! I don’t think that this changes the documentation much, so it’s
still good!

7/28/2008 | 2:36 PM.

There’s a minor error in the radiant:update:configs task that I
discovered this morning when fixing the demo site – this should only
affect upgrades from older versions. I have pushed the fix to github.
If you want to stay on the gem, the workaround is to do two things:

  1. Make sure you have a unique secret in your
    config.action_controller.session setting.
  2. Add the line “Page.load_subclasses” to the end of the file (outside
    the config block).


I get the exact same thing on Ubuntu with MySQL and both database
template 2 and 3. The blank template works, however.

A brand new installation seems to require specifying the name of the
directory for your installation. So, for example:

-bash-3.00$ radiant
Usage: /home/danorine/ruby/bin/radiant /path/to/radiant/app [options]

-r, --ruby=path Path to the Ruby binary of your
(otherwise scripts use env, dispatchers current path).
-d, --database=name Preconfigure for selected database
(options: mysql, postgresql, sqlite3, sqlserver).
Default: mysql

Radiant Info:
-v, --version Show the Radiant version number and
-h, --help Show this help message and quit.

General Options:
-p, --pretend Run but do not make any changes.
-f, --force Overwrite files that already exist.
-s, --skip Skip files that already exist.
-q, --quiet Suppress normal output.
-t, --backtrace Debugging: show backtrace on
-c, --svn Modify files with subversion.
svn must be in path)

and, yet:

-bash-3.00$ radiant radiant
create INSTALL
create LICENSE
create README
create config
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create db
create log
create public
create public/.htaccess
create public/404.html
create public/500.html
create public/dispatch.cgi
create public/dispatch.fcgi
create public/dispatch.rb
create public/favicon.ico
create public/images
create public/images/admin
create public/images/admin/add-child.png
create public/images/admin/brown-bottom-line.gif
create public/images/admin/clear-page-cache.png
create public/images/admin/collapse.png
create public/images/admin/expand.png
create public/images/admin/layout.png
create public/images/admin/minus.png
create public/images/admin/new-homepage.png
create public/images/admin/new-layout.png
create public/images/admin/new-snippet.png
create public/images/admin/new-user.png
create public/images/admin/page.png
create public/images/admin/plus.png
create public/images/admin/remove-disabled.png
create public/images/admin/remove.png
create public/images/admin/snippet.png
create public/images/admin/spinner.gif
create public/images/admin/view-site.gif
create public/images/admin/virtual-page.png
create public/javascripts
create public/javascripts/admin
create public/javascripts/admin/admin.js
create public/javascripts/admin/ruledtable.js
create public/javascripts/admin/sitemap.js
create public/javascripts/admin/tabcontrol.js
create public/javascripts/application.js
create public/javascripts/controls.js
create public/javascripts/dragdrop.js
create public/javascripts/effects.js
create public/javascripts/pngfix.js
create public/javascripts/prototype.js
create public/javascripts/string.js
create public/robots.txt
create public/stylesheets
create public/stylesheets/admin
create public/stylesheets/admin/main.css
create script
create script/about
create script/breakpointer
create script/console
create script/extension
create script/performance
create script/performance/benchmarker
create script/performance/profiler
create script/process
create script/process/inspector
create script/process/reaper
create script/process/spawner
create script/process/spinner
create script/runner
create script/server
create script/spec
create script/spec_server
create script/version
create vendor/extensions
create vendor/plugins
create script/generate
create config/database.yml
create Rakefile
create config/routes.rb
create config/environment.rb
create config/boot.rb
readme …/…/…/…/INSTALL

== Installation and Setup

Once you have extracted the files into the directory where you would
like to
install Radiant:

  1. Create the MySQL/PostgreSQL/SQLite databases for your Web site. You
    need to create the “production” database, but you may also want to
    the “development” and “test” databases if you are developing
    or running tests.

  2. Edit config/database.yml to taste.

  3. Run the database bootstrap rake task:

    % rake production db:bootstrap

    (If you would like bootstrap your development database run rake development db:bootstrap.)

  4. Start it like a normal Rails application. To test execute:

    % script/server -e production

    And open your Web browser on port 3000 (http://localhost:3000). The
    administrative interface is available at /admin/. By default the
    rake task creates a user called “admin” with a password of “radiant”.

When using Radiant on a production system you may also need to set
on the public and cache directories so that your Web server can access
directories with the user that it runs under.

Once you’ve installed Radiant on your own Web site, be sure to add your
and Web site to the list of radiant users:



There was a minor error in a feature added to 0.6.8
If you had a database with pages that referenced page types that no
longer existed, you would have received errors about undefined
constants. 0.6.8 tried to address this by only loading that class if
the class was defined. This is a great way to allow you to easily
remove extensions without repercussions, but there was an oversight in
that that feature wasn’t reloading in development mode.

0.6.9 Is in the works and should be out soon, but this is fixed on edge.

As for Dan and Norine Simpson’s message about needing to specify the
directory for a new instance, I don’t recall ever not needing to do
that. The rails command has the same requirement. But perhaps I’m
misunderstanding something.


Dan and Norine Simpson said the following on 28/07/08 11:46 AM:

A brand new installation seems to require specifying the name of the
directory for your installation. So, for example:

Most of us here are already using radiant and every upgrade makes me

It is the test of a good religion whether you can joke about it.

  • G. K. Chesterton

As for Dan and Norine Simpson’s message about needing to specify the
directory for a new instance, I don’t recall ever not needing to do that.
The rails command has the same requirement. But perhaps I’m misunderstanding

I don’t recall having to do that in the past. I only noted it because
was at odds with Sean’s installation instructions.


But I think you missed the dot at the end of the command (referring to the
current directory)
% radiant -d [mysql|postgres|sqlite3] .

Ah! You are absolutely right, Jim! Thanks for pointing that out.


On Jul 29, 2008, at 10:29 AM, Dan and Norine Simpson wrote:

because it
was at odds with Sean’s installation instructions.


Sorry Dan. I didn’t realize that.

But I think you missed the dot at the end of the command (referring to
the current directory)

% radiant -d [mysql|postgres|sqlite3] .