github archivesspace/archivesspace v2.0.0-RC2

latest releases: v3.4.0-RC0, v3.3.1, v3.3.0...
pre-release7 years ago

Highlights of this Release

Rails/JRuby Upgrade

The 2.0.0 release of ArchivesSpace incorporates the newest releases of JRuby and the Rails web framework. Although the user-visible effect of these upgrades is negligible, the newer versions bring performance improvements, large numbers of bug fixes, and support the long-term maintainability of the ArchivesSpace code base.

Large Trees

Support for large record trees has been vastly improved in this release.

The original tree implementation was designed with large trees in mind, but assumed that records would be spread somewhat evenly across several parent records. In practice, some people's trees are more like sticks, with a single parent record containing tens of thousands of children.

The new tree implementation is lazier than ever (in a good way). We have tested it against trees containing over 100,000 records at a single level and they still load quickly and scroll responsively. Features like drag and drop and the various reordering methods have also been reimplemented to work at much larger scales.

Reports Remediation

The reports functionality in ArchivesSpace had fallen into disrepair. This release includes a reworking of the existing reports. The goal was to make the existing reports run successfully, not to add new reports or improve existing reports. Work is well advanced on a specification for an overhaul of reports in ArchivesSpace - this will be implemented in a future release.

As part of this work, Jasper was removed from ArchivesSpace. Any reports that were using Jasper have been reimplemented using the internal report framework. The reasons for this include that the Jasper implementation had not achieved its goals (for example, allowing users to define their own reports), and that the Jasper license does not permit it to be shipped with ArchivesSpace.

Note: Reports can only be run with a MySQL database backend. They cannot be run using the embedded database that is not intended for production purposes.

Background Jobs

The handling of background jobs has been reworked. The key changes are:

  • Added support for multiple threads. This handles the case where one very long running job clogs up the queue.
  • Tidied up permissions. Previously a user had to have import_records to run any kind of job. Now there is a generic create_job permission, and additional permissions can be defined for particular job types.
  • Improved plugability. It is now fairly straightforward to add a new type of job from a plugin.
  • Tweaked the staff UI for creating jobs. Now it shows available job types in a submenu under the Background Job option in the Create menu.
  • Some refactoring to better resolve the abstraction from import jobs.

The distribution now includes a README for background jobs, and an example plugin that adds a job type.

Search for Empty Values

The staff interface advanced search and corresponding search API have been extended to support searching for empty string, date and controlled value fields. While these options have some utility in the standard application, they can be maximized by adding additional fields to the advanced search. (One option for doing so is by using the plugin available at https://github.com/hudmol/extended_advanced_search)

This work was funded by Yale University.

New Public User Interface Beta

This release includes a Beta release of the new Public User Interface application. A production release is planned for inclusion in the next major release of ArchivesSpace -- currently scheduled for June 2017.

By default ArchivesSpace will use the existing, production public user application. In order to enable the new public application set an environment variable ASPACE_PUBLIC_NEW to true when starting ArchivesSpace. This is not recommended for production use.
NOTE: In order to activate the public user interface beta version, once the ASPACE_PUBLIC_NEW environment variable is set to true, you must create a new release in order for the new interface to display. See https://github.com/archivesspace/archivesspace/blob/master/README_RELEASE.md for the steps to do this.

As part of this work, the indexer application has been overhauled. This was necessary because the new public application only interacts with the ArchivesSpace data via Solr, and it has different and quite demanding requirements. Now there are two separate indexers - one for search and browse in the staff application (frontend), and one for the new public application (public-new).

The reworked indexer also includes some stability and performance improvements.

Performance Improvements

Some of the things that were slow are slow no longer. Specifically, records with linked containers would sometimes take a while to load in the staff interface — particularly when they were linked to a container that itself linked to a large number of other records. We've done some work to optimize the containers code, and Resource and Archival Object records load noticeably more quickly as a result.

For the folks who enjoy watching log files, you'll notice that these changes flow-on to indexing performance too. Top Container records index much more quickly now.

Replaced Puma with Mizuno/Jetty

Easily the least interesting item on this list: we've switched the ArchivesSpace devservers from using Puma to using Mizuno. If you're a developer who runs build/run *:devserver, you'll notice Puma has vanished.

Mizuno runs Jetty under the hood, which has the advantage of being what we run in the ArchivesSpace distribution too. Over the years we've hit irritating cases where Puma and Jetty didn't quite behave the same way, so unifying them means fewer surprises when running from the ArchivesSpace distribution.

A note on plugins

This release introduces a small change to the way plugins register their custom Rails routes. If you have implemented a plugin that defines new Rails routes, please take note.

For a plugin to define its own routes, a common pattern was to do something like this:

my_routes = [File.join(File.dirname(FILE), "routes.rb")]
ArchivesSpace::Application.config.paths['config/routes'].concat(my_routes)
The syntax for this changed slightly in Rails 5, so to prevent similar surprises in the future, we've added a standard syntax for loading your routes:

ArchivesSpace::Application.extend_aspace_routes(File.join(File.dirname(FILE), "routes.rb"))
That is, just pass extend_aspace_routes the path to your custom routes file and we'll do the rest for you.

JIRAs delivered in this release

AR-1064
AR-1300
AR-1481
AR-1483
AR-1503
AR-1546
AR-1547
AR-1548
AR-1560
AR-1570
AR-1571
AR-1572
AR-1619
AR-1628
AR-1629
AR-1630
AR-1647
AR-1659
AR-1660
AR-1672
AR-1675
AR-1683
AR-1707
AR-1709

Don't miss a new archivesspace release

NewReleases is sending notifications on new releases.