Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

Upgrade from any past version of DSpace!

Installing DSpace provides an overview of the DSpace 8 installation process and all prerequisite software.  You should review this before attempting an upgrade, in order to ensure you are running the required versions of Java, Node, etc.

Upgrading DSpace provides a guide for upgrading from any old version of DSpace to v8.  As in the past, your data migrates automatically, no matter which older version you are running.  However, as the old XMLUI and JSPUI user interfaces are no longer supported, you must switch to using the new User Interface.

8.0 Release Notes

DSpace 8.0 was released on June 21, 2024

To try out DSpace 8 immediately, see Try out DSpace 8.   This includes instructions for a quick-install via Docker, as well as information on our Sandbox Site.

To test an upgrade to DSpace 8.0 from 7.x or any prior version, see Upgrading DSpace

  • To upgrade to 8.0, you MUST upgrade both the backend and frontend (user interface).

To install DSpace 8.0, see Installing DSpace.

DSpace 8.0 is a major release of the DSpace platform.  It provides new features and improvements, along with bug fixes.  You should be aware that all major releases may provide some "breaking changes" (major changes that may impact your local customizations).

Security Fixes

  • Fix CVE-2024-38364 (low severity) by disabling the ability to open HTML/XML bitstreams in a user's browser.  See https://github.com/DSpace/DSpace/pull/9638 (or mailing list announcements) for more details & configuration workaround. (Discovered and reported by Muhammad Zeeshan (Xib3rR4dAr))

New User Features

  • OpenAIRE Data Correctionthis feature provides a basic integration with the OpenAIRE Content Provider Dashboard via the Notification Broker.  It allows repositories who have subscribed to the OpenAIRE Notification Broker to import JSON data from OpenAIRE in order to enhance or correct the metadata of Items in the repository. (Made possible thanks to the OpenAIRE Call Innovation funded project "Enrich local data via the OpenAIRE Graph” awarded to 4Science.)
  • OpenAIRE Publication Claim: this feature provides a closer integration between DSpace and the OpenAIRE Publication REST API.  It allows DSpace to import possible publications from OpenAIRE for users having a Researcher Profile in DSpace. (Made possible thanks to the OpenAIRE Call Innovation funded project "Enrich local data via the OpenAIRE Graph” awarded to 4Science.)
  • COAR Notify Protocol: DSpace now supports the COAR Notify Protocol for sending & receiving Linked Data Notifications (LDN) messages from external systems.  DSpace is able to register external LDN services to send or receive messages from.  This allows users to request review/endorsement from an external service (supporting COAR Notify) during the Item submission process.  It also allows these external services to send event notifications into DSpace's Quality Assurance tool.  (Donated by COAR & 4Science)
  • Request Withdrawal or ReinstatementOptionally, all logged-in users are able to request that a specific Item be withdrawn or reinstated using the DSpace Quality Assurance tool (also used by Data Correction, Publication Claim and COAR Notify).  These requests can be reviewed by an Administrator where they can either accept or reject the request. The request may also be cancelled by the user who submitted it. (Backend Donated by 4Science, funded by the University of California - California Digital Library; Frontend Donated by 4Science)
  • Basic Duplicate Detection in submission and workflow: this feature introduces basic duplicate detection into DSpace submission and workflow, using Solr's ability to search by levenshtein distance. When enabled, all new submissions or items in workflow will be checked against similar items already in DSpace & the user will be notified of any possible duplicate items. (Developed by The Library Code with support of TU Berlin, FHNW and ZHAW.)
  • "Processes" page has been reorganized: To simplify process management through the Administrator UI, the "Processes Overview" page has been restructured to group processes into separate sections for "running", "scheduled", "completed" and "failed". These sections update automatically. (Donated by Atmire)
  • Improved "Primary Bitstream" management: Submitters can now define if a bitstream is a "primary" bitstream directly on the submission page after a file has been uploaded.  On the Item page, the primary bitstream now has a badge. The primary bitstream is the file that will be listed first in the download list, and its thumbnail will be displayed on the Item page. (Developed by 4Science, funded by the University of California - California Digital Library)
  • Search Tab on Community/Collection pages: All Community and Collection pages now include a "Search" tab which displays the Recent Submissions by default.  This tab also provides a search box allowing users to search within that Community or Collection. (Donated by Atmire)
  • Search Facets on Homepage, Community/Collection pages: Optionally, search facets/filters can now be displayed on home page and all Community, and Collection pages.  By default, they are not displayed on the homepage (see "showDiscoverFilters" in Homepage settings), but always displayed on Community/Collection pages (see "showSidebar" in Community and Collection settings). (Donated by DSquare Technologies and Atmire)
  • Advanced Search options: Optionally, a new "Advanced Search" filter can be enabled on the Search page to provide advanced search capabilities.  This "Advanced Search" filter allows supports the searching within fields using the following operators by default: Contains, Not Contains, Equals, and Not Equals. See the "advancedFilters" in the Search settings for more details.  (Donated by DSquare Technologies)
  • Lookup via external sources from the Edit Item page (Relationship tab): When editing an Entity, on the "Relationships" tab you can now click the "+Add" button to lookup and import related entities from supported external sources (e.g. CrossRef, ORCID, PubMed, etc).  (Donated by Atmire)
  • Import via DOI searches multiple sources at once (CrossRef, DataCite):  a new external source has been added which can be configured to query multiple existing sources simultaneously, returning results from either.  By default, this external source is configured for a new "DOI" lookup which will search CrossRef and DataCite simultaneously. (Donated by University of Bamberg)
  • Edit Metadata using Authority Control lookup: User are now able to edit metadata controlled by vocabularies in item's metadata edit form in the same way that is done in submission form. (Donated by Toni Prieto)
  • Rioxx v3 OAI profile support: DSpace can now expose metadata in the OAI module in the Research Outputs Metadata Schema (RIOXX) Application Metadata Profile Version 3. See Rioxx v3 schema compliance for details. (Donated by Agustina Martinez, Cambridge University)
  • OAI now can expose embargo information & access rightsaccess rights for bitstreams is available in the OAI XOAI format and has been added to the following OAI formats: OpenAIRE and UKETD/EthOS. (Donated by Agustina Martinez, Cambridge University)
  • Creative Commons licenses now appear on Item page. See https://github.com/DSpace/dspace-angular/pull/3010 (Donated by Alfeu U. Tavares)
  • Research Organization Registry (ROR) Integration: When using Configurable Entities, ROR can be used as an Organization Data Provider.  New "Organizational Unit" entities can be imported via the ROR API (from the existing MyDSpace import tool).  When imported, the ROR icon is displayed on the "Organization Unit" page, linking back to its entry in ROR (as suggested by the ROR-ID guidelines). ROR information is also shareable via OAI-PMH and ORCID.  (Donated by 4Science)
  • Item submission process can be configured at community level: In the "item-submission.xml" configuration, it is now possible to map a submission form to a Community. This will cause all descendant collections to use the mapped item submission process. This can be useful for repositories where top-level communities represent different document types or scopes and descendant collections should share the same submission process. (Donated by Toni Prieto)
  • Administrator Reports (beta): The beta release of the Administrator Reports provides the ability to run the reports and display the results in the User Interface (similar to the "DSpace REST Quality Control Reports" from version 6.x).  Two reports are provided: Filtered Collection and Metadata Query.  It is not yet possible to export these reports. At this time, running large reports with many results may result in site performance issues. Therefore, this feature is disabled by default and should be used with caution. (Donated by Université Laval)

Breaking Changes

The following major changings may negatively impact or "break" your local customizations to prior versions of DSpace.  Please be aware of them before upgrading.

  • 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 17, and Node 16 is no longer supported. (Donated by 4Science)
  • The User Interface has been migrated to Angular standalone components. This means that a large number of Angular components were refactored to use standalone components. This migration was mostly automated using the Angular process to migrate to standalone components. If you have custom Angular components, you may need to migrate them as well. See also https://github.com/DSpace/dspace-angular/pull/2750 for more details on this migration process. (Donated by 4Science)
  • 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.
  • "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)
  • The "dc.date.available" field is no longer set by DSpace during submission. DSpace has had two fields which represented when an object was added/available in DSpace: "dc.date.accessioned" and "dc.date.available".  The Accessioned Date (dc.date.accessioned) has always represented the date the object was deposited into DSpace, while the Available Date (dc.date.available) represented the date the object was first available (which may be later than the accessioned date if the item had an embargo).  Since Embargo information is now stored on the item's authorization policy, the "dc.date.available" date is no longer useful or accurate.  Therefore, DSpace no longer will automatically set a "dc.date.available", as any embargo date can be retrieved via the item's policies. See #9103.
    • If you have any custom code that relied on the "dc.date.available" metadata field, we recommend updating it to use "dc.date.accessioned".  Alternatively, you could use the REST API to obtain embargo information from an Item's resource policies.
  • In User Interface, the service which generates HTML "<meta>" tags in the "<head>" tag has been renamed from "MetadataService" to "HeadTagService".  If you have generated custom "<meta>" tags, then you will need to migrate them to the new "/src/app/core/metadata/head-tag.service.ts" file.

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)
    • DSpace Docker images also now use this Runnable JAR instead of a Tomcat image.
  • Performance Improvements
    • Disabled Angular "inlineCriticalCSS" in all Server Side Rendering (SSR). This provides a performance improvement to all SSR generated pages. See https://github.com/DSpace/dspace-angular/pull/2067 (Donated by 4Science)
    • Indexing script performance improvements when reindexing a large number of items (Donated by Toni Prieto)
    • Media filter performance improvements when filtering a large number of bitstreams (for thumbnail creation or full text indexing). (Donated by 4Science)
    • Group/EPerson management User Interface performance improvements for Groups with many EPerson or SubGroup Members.  Added better pagination of group members.
    • Submission form performance improvements.  The submission form has been updated to ensure it no longer loads all related objects. (Donated by Atmire)
    • Workflow tasks page performance improvements (Donated by Atmire)
    • Submission configuration reloading performance improvements. This also improves performance of creating a new Collection. (Donated by Toni Prieto)
    • Checksum checker performance improvements (Donated by 4Science)
    • Sitemap generation performance improvements (Donated by 4Science)
    • Updated robots.txt to stop crawlers from accessing search facets (Donated by Atmire)
  • Accessibility improvements in User Interface
    • Hidden "Skip to main content" button now exists on all pages. (Donated by Atmire)
    • Header / Navbar / Admin Sidebar accessibility fixes (Donated by 4Science)
    • Community list accessibility fixes (Donated by Hrafn Malmquist)
    • Color contrast fixes to "dspace" theme (Donated by Maciej Kleban)
    • Search results / MyDSpace / Item Edit /  Browse by / Login menu accessibility fixes (Donated by Atmire)
    • Community/Collection Homepage accessibility fixes (Donated by Atmire)
    • Additional keyboard controls in Submission form (Donated by Atmire)
    • Browse by Author accessibility fixes (Donated by Neki-it)
    • "Loading" message accessibility improvements (Donated by Neki-it)
    • Fixing issue with header menu being keyboard accessible on small screens (Donated by Eike Löhden)
  • Google Analytics 4 updated to only count file downloads from ORIGINAL bundle. See https://github.com/DSpace/DSpace/pull/8944 (Donated by Atmire)
  • Header and navbar refactoring: change both header and footer structure to make easier to handle DSpace and base themes. These refactors also improve accessibility. (See https://github.com/DSpace/dspace-angular/pull/2676(Donated by 4Science)
  • Submission form bug fixes / stability improvements. Fixed caching issues and instability of PATCH commands (Donated by 4Science)
  • Update the DataCite metadata schema to version 4.5: When DSpace register DOIs via DataCite, it has to send metadata to the DOI registry. The DataCite metadata schema used by DSpace was updated to version 4.5. (Donated by The Library Code)
  • Option to disable "Forgot Password" link: When using Authentication by Password, it is now possible to disable the "Forgot Password" link via the new "user.forgot-password" backend configuration. See "Authentication by Password" documentation. (Donated by 4Science)
  • Alteration to index-discovery script to only (re-)index specific type of IndexableObject: 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
  • Add HTML support to System Wide Alert. See https://github.com/DSpace/dspace-angular/pull/3028 (Donated by Abel Gomez)
  • Item Counts (webui.strengths) are now updating automatically again.
  • Migrate from Joda-Time to java.time  as required by Joda-Time website (Donated by Mark Wood)
  • UI Translation (i18n) files are now hashed to ensure they reload when updated:  See https://github.com/DSpace/dspace-angular/issues/2461 (Donated by Atmire)
  • UI Migration to Angular 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. See https://github.com/DSpace/dspace-angular/issues/2370 and https://angular.io/guide/standalone-migration (Donated by 4Science)
  • 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
  • Embedding data didn't work for REST API objects ending in "s": Standardized REST objects to use plural names. (see https://github.com/DSpace/DSpace/issues/9240) (Donated by Atmire)
  • Expose 'creationTime' property on Process object and add it to '/search/byProperty' sort options in REST API: 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. (Donated by Atmire)
  • Consolidated spider detection:  there is no longer a separate operation to check for spiders solely by IP address.  Options to do this are removed or replaced, and the configuration property  solr-statistics.query.filter.spiderIp is removed. (Donated by Mark Wood)
  • Option to hide submitter details from dc.description.provenance metadata field.  See the new "metadata.privacy.dc.description.provenance" setting in dspace.cfg  (Donated by PCG Academia)
  • New ESLint rules for User Interface codebase to enforce better coding practices & reduce merge conflicts.  See https://github.com/DSpace/dspace-angular/pull/2343 (Donated by Atmire)
  • Fixed bug where UI would often request "/api" root endpoint multiple times for every page (Donated by Atmire)
  • Fixed bug where Amazon S3 data store was always enabled.  (Donated by 4Science)
  • Fixed bug where Amazon S3 data store would sometimes leave around temp files during download process. See https://github.com/DSpace/DSpace/pull/9477 (Donated by 4Science)
  • Fixed bug where MathJAX code would be displayed twice on item page. (Donated by Atmire)
  • Fixed bug where subject was missing from system emails (Donated by Mark Wood)
  • Fixed bug where "git" was required as a build dependency of the backend (Donated by Hrafn Malmquist)
  • Fixed bug where some Item Edit pages could be viewable anonymously (but could not be interacted with). (Donated by 4Science)
  • Fixed bug where first hit to repository was often not counted in SOLR Statistics because of a CSRF token mismatch.
  • Fixed SEO bug where legacy bitstream URLs were redirecting with a 302 instead of a 301. See https://github.com/DSpace/dspace-angular/pull/3062 (Donated by Atmire)
  • Fixed a large number of other small bugs.  See Changes in 8.x for a list of all changes.
  • Major Dependency updates:  Backend updated to Spring Boot 3, Spring 6, Spring Security 6, Hibernate 6, Flyway 10.  Frontend updated to Angular 17.

New/Updated Language support

  • (NEW) Arabic (العربية) translation added by KnowledgeWare Technologies Est. and updated by Ahmad Mostafa (ahmadmostafa1976)
  • Czech (Čeština) translation updates donated by NTK
  • Finnish (Suomi) translation updates donated by Reeta Kuukoski (reetagithub)
  • French (Français) language updates donated by Pierre Lasou (pilasou)
  • German (Deutsch) language updates donated by Mirko Scherf (mirkoscherf), Sascha Szott (saschaszott), and Janne Jensen (mugraph)
  • Italian (Italiano) language updates donated by 4Science
  • Polish (Polski) language updates donated by PCG Academia
  • Portuguese (Português) language updates donated by Ricardo Saraiva (rsaraivac) and José Carvalho (j-n-c)
  • Portuguese - Brazilian (Português do Brasil) updates donated by Marco Aurelio Cardoso (marcoaureliocardoso) and Thiago Rodrigues (t-rodrigues)
  • Serbian Cyrillic (Српски) language updates donated by Milos Ivanovic (imilos)
  • Serbian Latin (Srpski (lat)) language updates donated by Milos Ivanovic (imilos)
  • Spanish (Español) language updates donated by Arvo Consultores y Tecnología. S.L

8.0 Acknowledgments

DSpace 8.0 had 312,960 lines of code changed and 94 unique individuals contributing to either the frontend or backend.

Frontend / User Interface Acknowledgments

The following 72 individuals have contributed directly to the new DSpace (Angular) User Interface in this release (ordered by number of GitHub commits): Alexandre Vryghem (alexandrevryghem), Andrea Barbasso (AndreaBarbasso), Francesco Molinaro (FrancescoMolinaro), Giuseppe Digilio (atarix83), Enea Jahollari (enea4science), Mattia Vianelli (Sondissimo), Tim Donohue (tdonohue), Yury Bondarenko (ybnd), Alisa Ismailati, Andreas Awouters (AAwouters), Davide Negretti (davide-negretti), Vladzislav Novski (vNovski), Art Lowel (artlowel), Francesco Bacchelli (frabacche), Kim Shepherd (kshepherd), Jean-François Morin (jeffmorin), Kuno Vercammen, Simone Ramundi, Jens Vannerum (jensvannerum), Michele Boychuk (Micheleboychuk), Vincenzo Mecca (vins01-4science), Zahraa Chreim (ZahraaChreim-Atmire), Sascha Szott (saschaszott), Lotte Hofstede (LotteHofstede), Alan Orth (alanorth), Hugo Daniel Dominguez de la Cruz (hugo-escire), Koen Pauwels (KoenP), Toni Prieto (toniprieto), Eike Löhden (Leano1998), Mark Wood (mwoodiupui), Paulo Graça (paulo-graca), Ricardo Saraiva (rsaraivac),  Stefano Maffei (steph-ieffam), Max Nuding (hutattedonmyarm), Hrafn Malmquist (J4bbi), Oscar Chacón, Pierre Lasou (pilasou), Sergio Fernández Celorio (sergius02), Thiago Rodrigues, William Welling (wwelling), Alfeu Uzai Tavares, Kristof De Langhe (Atmire-Kristof), Marie Verdonck (MarieVerdonck), Michał Dykas (michdyk), Nona Luypaert (nona-luypaert), Michael Spalti (mspalti), Mirko Scherf (mirkoscherf), Thomas Misilo (misilot), Victor Hugo Duran Santiago, Yana De Pauw (YanaDePauw), Abel Gómez (abelgomez), Agustina Martinez (amgciadev), Florian Gantner (floriangantner), Milos Ivanovic (imilos),   Hardy Pottinger (hardyoyo), Marco Aurelio Cardoso, Gaurav Patel (GauravD2t), Reeta Kuukoski (reetagithub), Maciej Kleban (Dawnkai), Andrea Bollini (abollini), Andreas Mahnke (mahnkong), Bram Luyten (bram-atmire), IgorBaptist4, Janne Jensen (mugraph), José Carvalho (josekarvalho), Mohamed Ali, NTK, Pascal-Nicolas Becker (pnbecker), Philipp Rumpf (philipprumpf), Nagy Akos (akoscomp), Milan Majchrak (milanmajchrak), Ahmad Nasser.

The above contributor list was determined based on contributions to the "DSpace" project in GitHub between 7.6 (after June 23, 2023) and 8.0 using "git shortlog" on the main branch and excluding all merge commits: 
git shortlog -s -n -e --no-merges --since 2023-06-23

Backend / REST API Acknowledgments

The following 56 individuals have contributed directly to the DSpace backend (REST API, Java API, OAI-PMH, etc) in this release (ordered by number of commits): Tim Donohue (tdonohue), Francesco Bacchelli (frabacche), Michele Boychuk (Micheleboychuk), Mohamed Eskander (eskander17), Mark Wood (mwoodiupui),  Kim Shepherd (kshepherd), Stefano Maffei (steph-ieffam), Agustina Martinez (amgciadev),  Toni Prieto (toniprieto), Alexandre Vryghem (alexandrevryghem), Andrea Bollini (abollini),  Alan Orth (alanorth), Sascha Szott (saschaszott), Vincenzo Mecca (vins01-4science), Paulo Graça (paulo-graca),  Adán Román Ruiz (aroman-arvo), Mattia Vianelli (Sondissimo), Koen Pauwels (KoenP), Yana De Pauw (YanaDePauw), Christian Bethge (ChrisBethgster), Nicholas Woodward (nwoodward), Florian Gantner (floriangantner), Marie Verdonck (MarieVerdonck), Kristof De Langhe (Atmire-Kristof), Pascal-Nicolas Becker (pnbecker), Andrei Alesik (AndrewAlesik), Michael Spalti (mspalti), Nona Luypaert (nona-luypaert), Damian Jozefowski (damian-joz), Jean-François Morin (jeffmorin), Francesco Molinaro (FrancescoMolinaro), Jens Vannerum (jensvannerum),  Philipp Rumpf (philipprumpf), Xiqinger, Roy Brushini (Bezkup), Thomas Misilo (misilot), Max Nuding (hutattedonmyarm), David Steelman, Eike Löhden (Leano1998), Hrafn Malmquist (J4bbi),  Luca Giamminonni (LucaGiamminonni), Martin Walk (MW3000), William Welling (wwelling), Marsa Haoua (marsaoua), wwuck, Christian Clauss (cclauss), Damiano Fiorenza, John Abrahams (jabrah), Marie-Hélène Vézina (mhvezina), Mark Cooper (mark-cooper),  Mirko Scherf (mirkoscherf), Sean Kalynuk (uofmsean), Shankeerthan Kasilingam, Yannick Paulsen (YPaulsen-TLC), Corrado Lombardi (corrad82-4s), Milan Majchrak (milanmajchrak).

The above contributor list was determined based on contributions to the "DSpace" project in GitHub between 7.6 (after June 23, 2023) and 8.0 using "git shortlog" on the main branch and excluding all merge commits: 
git shortlog -s -n -e --no-merges --since 2023-06-23

Additional Thanks

Additional thanks to our DSpace Leadership Group and DSpace Steering Group for their ongoing DSpace support and advice.  Thanks also to Lyrasis for your leadership, collaboration & support in helping to speed up the development process of DSpace 8.

Thanks also to the various developer & community Working Groups who have worked diligently to help make DSpace 8 a reality. These include:

We apologize to any contributor accidentally left off this list. DSpace has such a large, active development community that we sometimes lose track of all our contributors. Acknowledgments to those left off will be made in future releases.

  • No labels