Typo 4.0.0

I’d like to announce the release of Typo 4.0.0, the latest version of the most widely-used Ruby-based blogging software. This is the first official release of Typo 4.0, and the product of almost a year’s work by the Typo team. This is a huge upgrade over the previous Typo release, version 2.6.0. You can download it from Rubyforge, or you can use the new Typo .gem and installer.

At least a dozen people have contributed new code to this version of Typo, and dozens more have helped report bugs. The core Typo team has had two new additions since the last major release–Kevin Ballard and Piers Cawley. They’ve both made a huge contribution to this release in many ways. They’ve added all of the useful features, while I’ve mostly specialized in adding bugs.

Here’s a partial list of changes since Typo 2.6:

  • A new installer and a Typo .gem file. Run gem install typo and then typo install /some/path to install Typo.

  • Text filter plugins, including easy inline Flickr image support and syntax highlighting for code.

  • Enhanced feed support. Atom 1.0 and RSS 2.0 are both supported. Atom 0.3 has been removed. Both feed types have better UUIDs. There are also per-tag, -category, and -author feeds. Most pages have their own content-specific feeds available via feed autodiscovery.

  • Tags. The ‘keywords’ field in the Typo admin UI (as well as many blog editors) has been commandeered to provide tagging for Typo. Tags are separated by spaces (just like Flickr). If you want to include a space in a tag, then use quotes.

  • Improved spam management. There’s a “Feedback” tab in the admin interface that lists all comments and trackbacks so they can be bulk-deleted. In addition, Typo can now use Akismet for spam filtering.

  • File uploads. You can now upload images and other content directly from the admin UI.

  • Podcast support (experimental).

  • Email and/or Jabber notification of new content, including comments and trackbacks.

  • Support for posting articles with a future posting date. Pre-posted articles don’t appear on the blog or feeds until their posting date passes.

  • A new cache system that automatically times out stale entries. Several types of content, including the Flickr sidebar, will automatically cause the page to be rebuilt every few hours to ensure freshness.

  • Better theme support. Some of this was back-ported to Typo 2.6.0.

  • A redirect table to help users migrating to Typo. You can enter new URLs into the Redirect table and Typo will look there whenever it doesn’t recognize a URL. So you can move from Movable Type-style permalinks to Typo-style permalinks without losing the perma- in your links.

  • Cleaner migrations.

  • Rails 1.1 support. Rails 1.1.4 is strongly recommended. Rails 1.0 won’t work at all.

  • Improved sidebar support, with a cleaner API and more built-in sidebars.

  • Google sitemap support.

  • Gravatar support for comments.

  • Comment previews.

  • Markup help for comments, articles, and pages.

The single most exciting change for me is the new installer. Typo is almost certainly the world’s most widely distributed Rails app, and we’ve found that it’s really hard for people to get all of Typo’s dependencies installed and working the first time. Even worse, our old documentation wasn’t very helpful. I’ve heard from a lot of people who have spent hours getting Typo working, sometimes without success. My personal favorite comment came from a co-worker:

I tried installing typo last night, and the experience was so comically horrible that I was seriously tempted to blog about it, and make the whole world point and laugh at Typo, haw haw haw.

Properly shamed, we built an installer for Typo. If you’re new to Typo, you can install it like this:

  $ gem install typo
  $ typo install /some/directory

This will install Typo in /some/directory, using SQLite and Mongrel by default. As they say, there is no step three. There are a few prerequisites that you’ll have to have on your system before this will work (Ruby, Gems, SQLite 3, and SWIG), but most people should find the installer a lot easier to work with then the traditional installation mechanism. Of course, if you’re happy with your current Typo install, then there’s no need to use the installer–it’s optional. Checking things out from Subversion or downloading .tar or .zip files still works fine. It’s just more work.

I’ll post more details on the installer here soon. I’m planning on extracting it from Typo and bundling it into its own Rubyforge project so other Rails apps can use it. Let me know if you’re interested.

For now, please report Typo bugs on typosphere.org or the Typo mailing list.

Posted by Scott Laird Sun, 23 Jul 2006 04:26:00 GMT


  1. Francisco Hernandez about 5 hours later:

    got an error while installing:

    Migrating Typo’s database to newest release rake aborted! SQLite3::SQLException: unsupported file format: SELECT version FROM schema_info

    (See full trace by running task with –trace) /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/./installer/rails-installer.rb:386:in migrate': Migration failed (RailsInstaller::InstallFailed) from /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/./installer/rails-installer.rb:520:inin_directory’ from /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/./installer/rails-installer.rb:384:in migrate' from /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/./installer/rails-installer.rb:86:ininstall_sequence’ from /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/./installer/rails-installer.rb:61:in install' from /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/./installer/rails-installer/commands.rb:54:incommand’ from /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/./installer/rails-installer.rb:491:in execute_command' from /opt/local/lib/ruby/gems/1.8/gems/typo-4.0.0/bin/typo:37 from /opt/local/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:140:inload’ from /opt/local/bin/typo:18

  2. Edo about 7 hours later:

    This is definetly 3.99.whatever, Mate, two people tried to get this stuff running on Mac OS X with Mongrel and Lighty, keep on getting errors after errors, this stuff is definetly not for production use.

    I’ll give it a new try in 2 months or so. ,-)

  3. Jamie about 10 hours later:

    I don’t believe it… I upgraded my blog in the early hours of this morning for the first time in almost a year and missed the new release by a matter of a couple of hours… grrrrr.

    Oh we now I have the installer things should be easier.

  4. Scott Laird about 10 hours later:

    Francisco: this is odd. It means that your ‘sqlite3’ command-line tool and your sqlite3 library are out of sync and incompatible. Is /usr/bin before /opt/local/bin in your path?

  5. Scott Laird about 10 hours later:

    Edo: it’s developed on OS X for crying out loud. Which error were they getting?

  6. Josh Ferguson about 13 hours later:

    sqlite3 shouldn’t be a requirement of the gem since it’s not required to run typo. Having to try and get these additional libraries to install is a pain especially since I use mysql in production and don’t care about sqlite3.

  7. Jay about 14 hours later:

    Yeah I’d like to see the installer have a nice upgrade option. I am using mysql as well Josh, so maybe I’ll be waiting to upgrade.

  8. Scott Laird about 14 hours later:

    Jay: it has an upgrade option. Just run ‘typo PATH install’ and it’ll do the right thing. If you’re using sqlite, then it’ll even back up your database for you. The installer documentation covers this, but it’s kind of hard to find right now. I’ll make it clearer.

  9. Scott Laird about 14 hours later:

    Josh: The installer uses sqlite by default. I’ll edit the announcement to make that clear. You can work around it, but it’s a lot easier for people who know what they’re doing to work around the sqlite requirement then it is for people who don’t have a good background in Ruby to install sqlite on their own.

  10. bonde about 14 hours later:

    oh my.. this is excellent. the installer worked perfectly for me and these new features are appreciated. thank you very much for your work.

    i did however do a clean install and have not upgraded an older version. i do also have an older version using mysql as its database, will the installer upgrade it import my older config? i suppose i could also just update via svn.

    anyway, nice job!

  11. Scott Laird about 15 hours later:

    bonde: The installer has been tested upgrading existing installer-created Typo installs, but we haven’t really tested it with non-installer upgrades. I’ll take a look at that this week.

    Worst-case, back up your database and Typo directory and give it a try :-).

  12. Adam about 16 hours later:

    Any idea on this problem:

    gem install typo

    Attempting local installation of ‘typo’ Local gem file not found: typo*.gem Attempting remote installation of ‘typo’ Install required dependency rails? [Yn] Y Install required dependency activerecord? [Yn] Y ERROR: While executing gem … (Errno::ENOENT) No such file or directory - getcwd

    Mac OSX 10.4

  13. Adam about 16 hours later:

    hrm, actually its not typo. I get that error from gem install rails, too…

  14. Adam about 16 hours later:

    …nevermind. My terminal was acting funny.

  15. bonde about 16 hours later:

    scott: thanks i figured i would just try and see what happens.

    on another note, i was happy when presented with the account signup page after using the installer, however i get an “Application error (Rails)” every time i attempt to create an account. i checked the production.log and it has this after the attempt to create the account:

    Errno::EACCES (Permission denied - /Users/collin/Sites/typo/config/../tmp/cache):

    seems odd

  16. bonde about 17 hours later:

    okay i got it. deleted the cache folder (which wasn’t a valid folder actually) and made a new one and it worked

  17. Sarah about 17 hours later:

    It’s great to finally see Typo 4.0 out there! Unfortunately, several tests fail after installing via the gem on Mac OS X 10.4. It appears to be the same problem as ticket #1023. Does this have anything to do with SQLite, perhaps?

    Adam: Try “sudo gem install typo”.

    Can’t wait for this to work on Dreamhost!

  18. sly about 19 hours later:

    Thanks for taking the time to work on typo scott. I’m looking forward to future releases of typo.

  19. tvon about 21 hours later:

    Just an FYI for people, I had to remove slqite3 from DarwinPorts to get the gem install/typo install process to work.

  20. bonde about 22 hours later:

    scott: in case you are interested, i was able to update a pre-installer version of typo with the 4.0 installer but had to do a few things to the old installation first:

    1 delete the tmp/cache directory and make a new one:

    2 delete vendor/plugins/acts_as_ferret directory:

    3 delete all the files in db/migrate:

    i am however getting “Application error (rails)” whenever i try to view it in a browser so it may not have been entirely successful. looking into the production.log i found:

    Mysql::Error: #42S02Table ’typo_local_db.blogs’ doesn’t exist

    the name of my db table is actually ”typo_local_db” without the .blogs and i am not sure where that is coming from.

  21. Lanfeust21 1 day later:

    Hi slaird ! Nice work and congratulation to you all to all the complete Team of typo. One small remarks to say is that with mongrel typo will only work with ruby 1.8.4 or upper (1.8.5 beta?), not with 1.8.2

  22. sprewell 1 day later:

    For anyone who’s trying to skip the dependencies on rails, sqlite, or mongrel, here’s the command to install the typo gem and ignore those:

    gem install -f typo

  23. Scott Laird 1 day later:

    Sarah: if you’re using DarwinPorts on OS X, make sure that your path lists /opt/local/bin ahead of /usr/bin in your path. That should help.

    For 4.0.1, I’m planning on using ActiveRecord to load the schemas directly, skipping the sqlite3 command-line tool. That should fix a lot of problems.

  24. fp 1 day later:

    Since I’m on a shared host, I couldn’t install the typo gem into the default directory. After I installed the gem to somewhere else, I got “command not found” error when I tried to call typo. I tried to set the gem_path etc., but still the same error. I basically knew nothing about gem, and for the shared host, looks like this installation method is even harder :(

  25. Scott Laird 1 day later:

    fp: Look in $HOME/bin/typo.

  26. Raymond Brigleb 1 day later:

    Any way to import a MySQL database from the 2.6 era?

  27. Scott Laird 1 day later:

    Raymond: you don’t really need to import it; you can keep using the same DB. Use the same database.yml from 2.6, and run rake migrate on the command-line.

    As usual, back up your db first.

  28. Sarah 1 day later:

    Thanks, Scott. For some reason my .profile is not loading, so I have to manually run export to add /opt/local/bin. I installed DarwinPorts, installed SWIG, reinstalled sqlite3-ruby, and reinstalled Typo.

    Now the signup page comes up (*if* I use an IP address instead of “computername.local”), but when I submit the form I get: Application error (Rails). Close, but no cigar.

  29. fp 1 day later:

    it’s not there:( If I run “gem query”, typo is there. but if I type “typo install /blahblah”, still get not found error

  30. Scott Laird 1 day later:

    Sarah: hmm. What’s in Typo’s log? I haven’t seen this error from Mongrel recently.

  31. Scott Laird 1 day later:

    fp: hmm. What does gem env say?

  32. Sarah 1 day later:

    I don’t see any recognizable errors in the log files. A lot weird characters, but nothing signaling a failure. Mongrel worked fine when I was attempting to learn Rails, but that was with MySQL.

  33. Scott Laird 1 day later:

    Weird characters? That’s… weird. Are you looking in log/production.log?

  34. Sarah 1 day later:

    Nevermind. I just deleted tmp/cache and then recreated the folder. Now it works just fine!

  35. Raymond Brigleb 1 day later:

    Thanks Scott! Mostly seems to have worked, but now I’m getting “No rhtml, rxml,themes/lucid/layouts/default” for an error. It seems to me that the “blogs” table is suspect, for the only entry now in that table is id “1”, settings “— “. Thought it worth noting. Will try comparing the DB of a fresh install to this problematic one, and it’ll probably make sense.

  36. fp 1 day later:

    gem env says: Rubygems Environment:

    • VERSION: 0.8.10 (0.8.10)
    • INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
    • GEM PATH:
      • /home/myuser/gems
      • /usr/lib/ruby/gems/1.8

    Looks like the installation of sqlite3-ruby failed. the error message is something like: * extconf.rb failed * Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.

  37. fp 2 days later:

    I still couldn’t install sqlite3-ruby…I’m on site5.com, don’t know whether it’s the server’s problem. sent them an email 5 hours ago, no reply yet.

    I tried to skip the dependencies and run “ruby rails-installer.rb”, still no luck. and it looks like even I choose not to use sqlite database, typo installer still won’t continue if sqlite-ruby is not installed.

    and I tried to use the old method to install, but get an error message when I tried to access typo in the brower: “Your browser sent a request that this server could not understand.” I don’t know whether it’s because the rails version on my server is still 1.0.0. I installed the latest rails in my local directory and tried to set GEM_PATH in dispatch.fcgi, but it didn’t work. What else should I do?

    sigh. the gem thing looks cool, but may not work in many shared hosts:(

  38. edbury 11 days later:


    I was wondering what revision number the official 4.0 release is. I’d love to use the gem install, but it’d be more hassle-free for me to use svn (just so I don’t have to deal with emailing my host, etc).


  39. Carina 15 days later:

    Hi Scott, I have TYPO 4 installed and drag and dropped the sidebar “upcoming” into psoition. I also added my feed and published, but it’s not visible. Any clues?

    Thanks, Carina

  40. Scott Laird 15 days later:

    Carina: did you click on the “publish changes” button?

  41. Jason 3 months later:

    Hi there, I’m finally getting the time to get into this. I’ve tried installing via gems onto the latest version of instantrails that includes mongrel (on a win machine).

    I got a “need mongrel 0.2.0” error, so tried installing by hand. Things have gone quite well, but I’m getting “Mysql::Error: Lost connection to MySQL” Anyone got any ideas? I can give more info if it helps!

  42. Michael @ SEO G 5 months later:

    Looks like you have some spam that got into the trackbacks.

    Glad to see there is a new installer, I had a heck of a time trying to get an earlier version rolling, there really wasn’t much documentation and as someone new to Rails then it was a bit difficult.

    I’ve used Akismet for wordpress and it is pretty effective as catching spam. Some manages to slip through but it really grabs most of it.