Skip to content

Releases: projectblacklight/blacklight

Blacklight 4.0.0

17 Sep 19:15
Compare
Choose a tag to compare

Commit History | Upgrade Guide

Release Notes

  • Remove dependency on RSolr::Ext. In this first stage, some RSolr::Ext code is now maintained in Blacklight, e.g.:
    • RSolr::Ext::Response::Facets => Blacklight::SolrResponse::Facets
    • RSolr::Ext::Doc => Blacklight::Solr::Document
    • etc
  • Bootstrap-based view templates and default stylesheet; removed compass/susy
  • Drop support for Ruby 1.8; add support for Ruby 2.0

And the usual bug-fixes (some of which are backported into 3.8.x):

  • fix #64, show MoreLikeThis titles on record show page if available
  • fix #422; show prev/next options even when not linked
  • fix #450; support Solr 4.x and use it by default.
  • fix #484, use top-level constant BLACKLIGHT_VERBOSE_LOGGING (uninitialized by default) to log the full solr response with each solr query
  • fix #495 Remove blacklight_config.rb template
  • fix #496, removing hard-coded 'id' field reference in BookmarksController
  • remove unicode as an explicit Blacklight dependency, but use it if it is available
  • fix #499 When document_heading is an array, don't draw the array bracket…
  • fix #502, Endnote action tries to render partials and gives error
  • update per_page widget to use i18n strings; don't require echoParams
  • use 1.9-style string interpolation for template path lookups
  • consolidate solr pagination information lookup.

Plugins Compatibility

As of 11/26:

Tested/Compatible

  • blacklight_advanced_search
  • blacklight_cql
  • blacklight_range_limit
  • blacklight_browse_nearby

Upgrade Guide

When approaching the Blacklight 3.x => 4.0 upgrade, we'd strongly recommend adopting the bootstrap templates, update local overrides to use bootstrap, and do your own bootstrap stylesheet customization.

That said, it should be possible to do a fairly straightforward in-place upgrade if you so choose. Most of the Blacklight 4.x work was limited to views, javascript and stylesheets. If you want to keep the old Blacklight theme, you should be able to grab them from Blacklight and drop them into your application directly. We wouldn't recommend it though.

To upgrade your application to Blacklight 4.x:

  • Update your application's gem dependency to use Blacklight 4.0:
gem 'blacklight', "~>4.0"
  • Add the unicode gem to your application's Gemfile (if you want to use it to normalize character encoding for refworks integration):
gem 'unicode'
  • Remove compass/susy references; replace with bootstrap-sass:
# REMOVE:
gem 'compass-rails', '~> 1.0.0', :group => :assets
gem 'compass-susy-plugin', '~> 0.9.0', :group => :assets

# ADD:
gem 'bootstrap-sass'
  • (Remember to bundle install)
  • Add the following into your stylesheets directory (possibly as app/assets/stylesheets/blacklight.css.scss):
@import 'bootstrap';
@import 'bootstrap-responsive';

@import 'blacklight/blacklight';

You no longer need the blacklight_themes directory and can remove require 'blacklight_themes/standard' (and the jquery UI css) from your application.css

In app/assets/javascripts/application.js, you can also remove

//= require jquery-ui
  • If you have local overrides of stylesheets, javascript or view templates, you should update them appropriately. Be warned that some of the bootstrapped Blacklight HTML element classes and IDs may have shifted slightly, and the previous susy-grid and YUI class names have been removed.

In your ApplicationController, you need to tell your application which layout to use:

# completely Blacklight 3.x-backwards compatible
layout :choose_layout

# if you don't need dynamic layout switching, just do the Rails-standard:
layout 'blacklight'
  • If you are using devise-guests, you probably want to update to devise-guests ~> 0.3. After doing so,
$ rails g devise_guests
  • Then run the database migration task
$ rake db:migrate

If you've already chosen a different layout for your application, you don't need to do anything at all.

Here are some minor differences elsewhere:

  • Some i18n strings have been updated to read better in the new UI
  • the helper #render_document_heading returns an h4 instead of an h1.
  • the helper #document_show_fields returns a hash instead of a list of keys

Document partial paths

The default naming convention for format-specific partials was changed. In Blacklight 3.1, the default format-specific path was changed to catalog/_index_[format_name].html.erb, but support for the Blacklight 2.x style was left in place. In Blacklight 4, the Blacklight 2.x style was removed from the list of defaults.

So, if you have partials in a directory like:

catalog/_index_partials/[format_name].html.erb

they should be moved to

catalog/_index_[format_name].html.erb

Or, alternatively, you may override the helpers document_index_path_templates and document_partial_path_templates with a custom naming convention.