How could I forget that ...

Please feel free to report any issues you find!

http://datamapper.lighthouseapp.com/projects/20609-datamapper/overview
#datamapper on irc.freenode.net
__snusnu__ on twitter

All specs pass on mri-1.8.7 but we haven't tested other interpreters
yet. Of course it might also be that you hit an edge case that isn't
covered by the specs yet. In any case, please report back to us and
we'll try to fix it as fast as possible.

On Wed, Mar 24, 2010 at 03:56, Martin Gamsjaeger <[email protected]> wrote:
> Hey folks,
>
> I have merged the patches that make dm-core and all of dm-more
> compatible with both active_support-3.0.0.beta1 and extlib into both
> dm-core and dm-more master branches. Also, dm-core and all dm-more
> gems now have a Gemfile, so setting up a development environment to
> work on DM itself is dead simple now.
>
> Before anything else, I should say that this is only an internal
> change and should not affect you as an application developer. If
> you're using DM with merb for example, everything will continue to
> work the way it did because DM still knows how to fall back to using
> extlib in case it couldn't require the necessary active_support
> features. This is different from before when DM had a hard dependency
> on extlib. We removed this dependency, and instead try to require
> active_support features first. If this fails, we fall back to
> requiring extlib. Code that we need from extlib that is not present in
> active_support has been pulled into dm-core to support running with
> active_support only, without any needs for requiring extlib. This is
> necessary because these two libs don't really play well together. A
> nice effect of using active_support only is that it makes DM
> compatible with the rails3 codebase. Previously, requiring both
> active_support and extlib could lead to weird problems because the two
> gems sometimes provide overlapping method definitions.
>
> This also means that from now on, DM will prefer active_support and we
> plan to make more use of active_support features where that makes
> sense. Eventually, extlib compatibility will be dropped completely,
> but this probably won't happen any time soon. It definitely won't
> happen before either merb decides to use active_support too, or takes
> other measures to improve compatibility. We definitely don't want to
> break existing merb applications.
>
> So while for application developers this change mostly means that they
> can start to use DM along with dm-rails [1] and the rails-templates
> [2] to build rails3 applications, it means a few more things for
> people working on either DM itself or any kind of DM plugin. First of
> all, setting up a development environment has never been that easy.
> Clone the repo and run
>
>  bundle install --without quality # i know it sounds weird, but bear with me
>
> to install dm-core or any of the dm-more gems along with all its
> dependencies. This works thanks to the awesomeness that is bundler
> [3], so you'd obviously need to "gem install bundler" if you haven't
> already done so. Bundling with the above command will give you a
> development environment that uses active_support-3.0.0.beta1 from
> rails master branch since this is the default now. If you want to
> include extlib instead of active_support in your bundle (because you
> want/need/should run the tests for extlib too) issue
>
>  EXTLIB=true bundle install --without quality
>
> Note that you need to run both these "bundle install" commands at
> least once in order to be able to run specs with either active_support
> or extlib. This will make sure that both gems are part of the bundle
> (but only one will be activated at a time, depending on the EXTLIB
> environment variable)
>
> To run the specs you will need to make sure that you're using the
> bundled environment too. Issuing
>
>  bundle exec rake spec
>  # or
>  EXTLIB=true bundle exec rake spec
>
> will run the specs with either active_support or extlib.
>
> The above instructions work for dm-core and any gem that is part of
> dm-more. The toplevel Rakefile in the dm-more project now has a few
> new tasks too.
>
> rake bundle:install          # Runs 'bundle install --without quality'
> for all gems in dm-more
> rake bundle:install:quality  # Runs 'bundle install' for all gems in dm-more
> rake gemspec                 # Generate gemspecs for all gems in dm-more
>
> Additionally, the toplevel "rake spec" task now uses "bundle exec"
> under the hood by default which means that once you ran "rake
> bundle:install" in the dm-more directory, you can run "rake spec" to
> run specs for all bundled dm-more gems. The rake tasks all accept an
> EXCLUDE=true env variable too, which can be useful if for example you
> want to skip running specs for (a comma separated list of) some gems.
>
> This should be enough to get a working datamapper development
> environment up and running.
>
>
> So now that DM decided to prefer active_support, we'd really
> appreciate seeing the community of plugin authors to catch up on these
> new developments. It'd be cool to see as many plugins as possible
> supporting DM's decision by implementing the double compatibility
> approach too. It's not hard to do so at all! Have a look at the (meat
> of the) patch at [4] and [5] to see what's basically needed to support
> both gems.
>
> I should not forget to mention the original motivation behind this
> change. Of course rails3 was a big factor. We definitely want to
> support developing apps with DM on that platform as smoothly as
> possible. But there are also other benefits. The community developing
> active_support is just so much bigger, and the code has probably seen
> more real world usage/tests than extlib. Also, the latest refactorings
> in the active_support-3.0 series made it cherry pickable, which means
> that we can safely only require the parts we need, without the need to
> pull in everything, as was the case with previous versions. These,
> along with the fact that it contains quite some other goodies that
> could help clean up some parts of DM, made us think that it's the best
> choice to make for DM in the long term.
>
> cheers
> snusnu
>
>
> [1] http://github.com/datamapper/dm-rails
> [2] http://github.com/snusnu/rails-templates
> [3] http://github.com/carlhuda/bundler
> [4] http://is.gd/aVhHV
> [5] http://is.gd/aVhDp
>

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en.

Reply via email to