Posts Tagged edge

Mode changes to init.rb, user updating to a newer version or Merb will need to add

c[:log_file] = Merb.root/"log"/"development.log"

to their init.rb file or config/environments/development.rb for instance. (Newly generated apps are already setup properly)

We made some changes to the way Rake files work. Merb-core doesn’t require the rspec tasks anymore so Test::Unit see annoying rspec tasks. Once again people upgrading to the latest version of Merb need to make a small change and add:

require'spec/rake/spectask'

to their rake file. Newly generated applications using RSpec already have that line setup.

In the last few days, Yehuda merged in his branch with the new “request-testing feature”. This is a new way of testing your apps. It makes testing a real request going through a controller and being rendered in a view, something quite easy, Merb interegration tests here we go!. Check here to see a example of what you can now do. Rails + Rspec users might be surprised by this choice, and I’ve scheduled to interview Yehuda so he can explain why and when you want to use this way of testing your app. (Don’t miss his talk at MerbCamp next week)

Talking about full stack testing, Merb is almost entirely full stack tested. What does that mean? Take a look at merb-helpers specs in merb-more. Form builders are tested through a real app available from spec/fixture/app, the views are rendered in the specs and the results are check to make sure they will work for you in your real application. Avoiding using too many mocks and stubs helped us really test things in the contet of a real app and avoid a great amount of ghost bugs. Specs might run a bit slower but we believe Merb now has better testing suite than before. More coming up about this topic.

Ohh and we released Merb 0.9.8 “Time Machine”, last release before 1.0RC1

I thought I should share few changes that my affect your apps if you want to upgrade to Edge.

merb_helpers which was previously in merb-plugins now moved to merb-more and got renamed merb-helpers.Â What that means for you is that you probably want to install merb-helpers and change the reference in your init.rb from dependencies “merb_helpers” to dependencies “merb-helpers”

People started reporting problems with templates not being reloaded in dev mode etc.. The reason is that we made some changes to the config/environments/development.rb file few weeks ago and people did not notice. Here is the new generated development.rb file. Note the following interesting change:

c[:reload_templates] = true

You will need to update this setting if you want Merb to auto reload your templates.

Finally, I have a bit of a bad news. We were hoping to release Merb 1.0 final during MerbCamp next week end. Unfortunately it looks like we will only release 1.0RC.

The reason behind this choice is simple, we have been adding a lot of features, fixed a lot of bugs and stabilized the API. However we need more feedback from users to be confident enough to release a final 1.0 release.

Merb 1.0 is almost ready to be pushed out and you might be impatient to start playing with some of the goodies not yet available in the latest stable release. Before getting started, you should know that not everything has been ironed out yet so don’t expect to have a fully stable Edge.

The easiest way to get started requires that you have git installed as well as a gem called thor.

I let you take care of installing git on your machine, Ruby dev without git became quite challenging since GitHub started ruling the Ruby OSS world.

sudo gem install wycats-thor -s http://gems.github.com

Hops, used primarily as a flavoring and stability agent in beer, and also in other beverages and in herbal medicine.

Thor is a sort if mix between rake, sake with a better argument parser and based on Ruby classes.

Thor on its own won’t be very helpful, we need some thor tasks.

Create a folder where you want to store Merb’s source code and cd in it.

It’s hard to believe that in less that 20 days, Merb 1.0 will be released! We are all really happy to to be almost there but we have to be honest and admit that we are also under pressure.

We are all dreaming of a post 1.0 world but in the meantime we have to focus on last minutes bugs and optimization.

During the last week or so, we made a lot of progress, the API is now “almost” frozen and General Katz is focusing on making sure everything will be fine for D Day.

That reminds me that Katz showed me something amazing yesterday! I shouldn’t really talk about it but I’m sure it will stay between us. He was been working on optimizing the general memory consumption and my testing app (real app) went from 120MB of Private Memory used, to 70MB (using 4 processes). I can’t wait to use that on the field. I also hope my old Rails comrades will realize that running ~100Mb processes (x4) really isn’t efficient and event dangerous for the free Ruby world!

I also heard rumors that the higher officers are now using a new strategic tool called http://www.pivotaltracker.com which should help us streamline the process. We are still using LightHouse to track bugs and patches though. I’m not sure if this new “agile” tool will help, but I thought the approach is pretty interesting. What do you think?

You probably also saw my early report on bundling Merb apps, I’m quite happy about the process. Do you think you will deploy bundled/frozen apps or just use the system-wide gems?

Ohh before I forget, some courageous privates went to HEAD and use the 3rd party plugin called merb-auth. What they don’t know is that they need to change their routes to use the slices with the new router. (the new router requires no block variable) Also, if they look at the merb-auth branches they will notice a new mauth branch which is the new version of merb-auth, even better, more flexible than the previous version.