Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Java 17 (or later) and Tomcat 10 (or later) is required for the backend.  The DSpace 8 backend can no longer be run on Java 11 or Tomcat 9 as it has been updated to Spring 6 / Spring Boot v3 to support Jakarta Enterprise Edition 9+.  You must upgrade these dependencies in order to run DSpace 8.  If you are using a different servlet engine, you must ensure it is compatible with Jakarta EE 9+ (e.g. Jetty must be version 11 or later)
    • If you have any custom Java code or custom plugins, they must all be migrated to use "jakarta.*" dependencies instead of "javax.*" dependencies.  It is not possible to use older "javax.*" dependencies in DSpace 8. 
  • Node 18 or 20 is required for the frontend. The DSpace 8 User Interface has been upgraded to Angular 16, and Node 16 is no longer supported. This is less likely to impact local customizations, but is worth being aware of.
  • The deprecated REST API v6 ("dspace-rest" module) was removed.  All custom code must be migrated to the new REST API (first released in 7.x).  Any custom code which depends on the older REST API v6 must be rewritten, as the new REST API is not backwards compatible. For more information on the removed REST API v6, see the DSpace 7.x documentation.
  • Apache Tomcat is now OPTIONAL for the backend.  A new Runnable JAR exists for the DSpace backend which embeds the latest version of Tomcat within it.  This Runnable JAR can be used to run the DSpace Backend without installing Tomcat. See the Installing DSpace guide for more details (Donated by 4Science)
  • "Type" field (dc.type) is now required by default. In all submission form configurations (in "submission-forms.xml" as described in Submission User Interface), the "dc.type" field is now required. This was changed to better support integrations with DataCite and other systems that expect a "type" for every resource.  If you do not want this change, you can undo the changes in your local copy of "submission-forms.xml". (Donated by The Library Code)

Major Updates and Improvements

  • Apache Tomcat is now OPTIONAL for the backend.  A new Runnable JAR exists for the DSpace backend which embeds the latest version of Tomcat within it.  This Runnable JAR can be used to run the DSpace Backend without installing Tomcat. See the Installing DSpace guide for more details (Donated by 4Science)
  • Header and navbar refactoring: change both header and footer structure to make easier to handle DSpace and base themes (Donated by 4Science)
  • Alteration to index-discovery script to only (re-)index specific type of IndexableObject: https://github.com/DSpace/DSpace/pull/9243 Merging immediately. But, I'm also flagging as "needs documentation" as we should update the indexing script docs for DSpace 8 in Discovery#DiscoverySolrIndexMaintenance If you have a chance to add this new param to those docs, I'd appreciate it. A new "-t" flag is added to the "index-discovery" script which allows you to only reindex specific object types (E.g. Item, Collection, Community). See Discovery#DiscoverySolrIndexMaintenance
  • Migrate from Joda-Time to java.time:  as required by Joda-Time website, using java.time:
  • UI should have a ProcessPollingService for common polling activities (feature process polling): dspace-angular should have a ProcessPollingService which can be used to check if a specific activity has completed.
  • [Port main] i18n production improvements: TO IGNORE ? (port from 7.6.10Translation (i18n) files are now hashed to ensure they reload when updated:  See https://github.com/DSpace/dspace-angular/issues/2461
  • Migrate to standalone components, directives, pipes: Having standalone components, directives and pipes makes it easier to think about the dependencies of the components and are easier to refactor. (Donated by 4Science)
  • Embedding data doesn't work for some rest objects: Rest controllers actually don't use the singular name, but the plural name in their beans. It would be better to normalise this behaviour so that the repositories also work like this. This would also mean that we won't have to use the makeSingular method anymore to find the beans. To avoid Some rest objects to throw a 404 error when you try to embed data.
  • Expose 'creationTime' property on Process object and add it to '/search/byProperty' sort options:  exposes the creationTime property on Process objects and adds it to the possible sort options for /processes/search/byProperty. As startTime and endTime are nullable, processes with these properties set to null can't be sorted properly. Every process does have a creationTime however, making for a more reliable sorting mechanism.

...