Workarea 3.0.0

Rename to Workarea

Workarea 3 renames the WebLinc software and its components to Workarea. The rename encompasses the core software and all plugins, including file and directory names, code constants, repository names, and gem names.

Dependencies

Elasticsearch

Workarea 3 requires Elasticsearch version 5.x. You must update this dependency in all environments.

Ruby

Workarea 3 requires Ruby version 2.3.x. You must update this dependency in all environments.

PhantomJS

Workarea 3 requires PhantomJS version 2.x. You must update this dependency in all test environments. Workarea 2.3.0 allowed use of PhantomJS 2.x, but this version is now a hard requirement in Workarea version 3.

Extracted Plugins

Workarea v3 removes the following features.

The features above have been extracted to the plugins below. These plugins are maintained by the WebLinc Product Team.

Testing

First introduced in WebLinc 2.3, Minitest is the standard test framework in Workarea 3.0. Using Minitest allows applications to run Workarea platform tests without copying them into the application, and it allows applications to decorate tests like other Ruby classes.

Workarea version 3 provides the following commands to run tests within an application.

Workarea 3 moves all feature and request tests from RSpec to Minitest (and renames them system and integration tests, respectively) and also moves a variety of other tests from RSpec to Minitest. Other tests remain in RSpec, however, these tests will be moved to Minitest in future minor releases.

Workarea 3 moves all RSpec dependencies into a separate Workarea RSpec engine. This engine will provide continued support for RSpec testing during and after the migration of platform tests from RSpec to Minitest.

Existing applications are not expected to migrate existing specs to Minitest. RSpec testing will continue to be supported indefinitely. However, new applications should write Minitest tests exclusively, in order to benefit from test decoration.

Refer to Testing for further coverage of testing in Workarea 3.

Workers, Listeners & Publishers

Workarea version 3 removes WebLinc's system of listeners and publishers and adds Sidekiq extensions that provide the concept of a callbacks worker in addition to other changes to the workers APIs.

The Workers guide explains the version 3 workers APIs.

Workarea 3 makes a variety of changes to search, including those in the following list. The Search guide explains the version 3 search APIs in greater detail.

Shipping

Workarea v3 makes a variety of changes to shipping. Specifically, shipping rates are requested from an ActiveShipping carrier, and Workarea provides a default carrier that mimics the previous shipping implementation. This change allows for easier extension of shipping functionality.

The Shipping guide explains the version 3 shipping APIs in more detail.

Workarea version 3 splits navigation into two separate concerns: taxonomy and navigation. Taxons, which compose the site's taxonomy, are used to organize Navigables and other nodes into a tree structure. This structure provides the hierarchy needed for secondary navigation such as breadcrumbs.

Meanwhile, the primary navigation is presented as a series of menus, each of which is contentable and releasable, allowing for more flexible visual designs and management.

The Navigation guide explains the APIs concerning taxonomy and navigation.

Content

Workarea version 3 iterates on CMS functionality, primarily to allow faster creation of custom content block types. Block types are stored in memory and are created using a DSL. Developers no longer need to implement the admin UI for each block type. A block type is composed of fields, which are organized into fieldsets. A field defines the type of UI control that should be used to collect data, the default value of the field, and how the collected data should be typecast.

The Content guide explains the content APIs in more detail.

Sample Data (Seeds)

Workarea 3 renames Weblinc::SampleData to Workarea::Seeds and removes the weblinc:sample_data Rake task in favor of Rails' own db:seed task. New Workarea 3 applications implement db:seed as follows:

# your_app/db/seeds.rb
require 'workarea/seeds'
Workarea::Seeds.run

Applications migrating to version 3 may want to copy this implementation.

Seed files live in the Rails app directory and are therefore required automatically and may be decorated like other Ruby classes. Furthermore, Workarea 3 stores the list of seeds to be run in the Workarea.config.seeds configuration to allow for easier extension.

CSS Grid System

Workarea v3 uses the Avalanche CSS grid system (source) for generic grid layout in the Admin and Storefront UIs.

This grid system has configurable settings, which are configured differently for the admin and storefront.

Admin UI

Workarea version 3 redesigns the Admin UI, providing improved performance, discoverability, and extensibility. Some of the specific changes are summarized in the following list.

Admin Toolbar

The admin toolbar that displays for administrators when browsing the Storefront is updated to match the Admin, providing the full Admin search and navigation directly within the Storefront. Administrators can navigate easily between Admin and Storefront views of the same object.

Internationalization

In addition to being redesigned, the Admin UI has been internationalized, allowing for translation into different and multiple locales. The Storefront and Admin UIs are now both internationalized.

Now on GitHub