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
New User Features
- OpenAIRE suggestions (publication claim): this feature provides a closer integration between DSpace and two OpenAIRE services, the Notification Broker and the OpenAIRE REST API. See DSpace documentation for details. OpenAIRE suggestions was made possible thanks to the OpenAIRE Call Innovation funded project "Enrich local data via the OpenAIRE Graph” awarded by 4Science.
- COAR Notify Protocol: DSpace 8 has implemented the COAR Notify service Protocol. Refer to DSpace documentation to enable the service. See Technical implementations documented here : COAR Notify Documentation
- Basic Duplicate Detection in submission and workflow: this feature introduces basic Duplicate Detection into DSpace submission and item links, using Solr's ability to search by levenshtein distance. Documentation available (needs login) at Kim's wiki space: Basic Duplicate Detection for DSpace 8 [MUST BE COPIED IN A PUBLIC SPACE]. Developed by The Library Code with support of TU Berlin, FHNW and ZHAW.
- New processes overview page organization: to simplify process management throught the administrator UI, the process page has been restructure to splits and group processes into separate sections for running, scheduled completed and failed. These lists update automatically.
- Better Primary bitstream management: submitters can now define if a bitstream is a "primary" bitstream directly on the submission page once a bitstream has been uploaded. This feature also add a bitstream switch on the download page for each file and anothor in the modal editing window of a specific file, which can be used to make a bitstream the primary one. A primary bitesteam badge now appears aside the file name of the bitstream that has been eventually set as primary.
- Search Facets: facets can now be used on home page and all Community, and Collection pages.
- Advanced Search page : DSpace provide an new search page with Boolean options. The operator drop-down list should have four values: Contains, Not Contains, Equals, and Not Equals.
- Lookup in external sources in the edit item page (Relatinships tab): new relations can be added between items using external sources (i.e. ORCID) in the
Edit Item page
. - Multiple import source (e.g. DOI -> Crossref, DataCite): a new external source has been added which can be configured to query multiple existing sources simultaneously, returning results from either.
- Make forgot-password link removable: new configuration has been added to checks for the forgot-password feature. The same feature can also check, whenever is provided, that the user is able to update its password.
- Enable lookup for metadata controlled by authority in edit view: it is now possible to Implement vocabulary value selectors in item’s metadata edit form. User are also able to edit metadata controlled by vocabularies in item's metadata edit form in the same way that is done in submission form.
- RIOXX v3 OAI profile support: DSPace can expose metadata in the OAI module in the Research Outputs Metadata Schema (RIOXX) Application Metadata Profile Version 3. See RIOXX version 3 specification for technical details.
- OAI XOAI Resource Policies for every bitstream: access rights at bitstreams level is available in the OAI XOAI format and has been added to the following OAIS format: OpenAIRE and UKETD/EthOS.
- OpenAIRE OAI Crosswalk: the OpenAIRE OAI format as been improved to include the access rights conditions at the bitstream level (accessRightsURI attribute of oaire:file element.
- Research Organization Registry (ROR) Integration: when using configurable entities ROR can now be used as
Organization
Data Provider. It enable live-import from the ROR API. The ROR icon is also displayed on DSpace organiztion page, as suggested by the ROR-ID guidelines. - Recently Added Items display on Community pages: similar to the homepage, new available items are also displayed their respective community page.
- Item submission process can be configured at community level: the new configuration allows to use a community handle to map the descendant collections to a specific 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.
- DSpace Users correction: enables all logged users to create WITHDRAWN and REINSTATE requests for an item using the quality DSPace assurance event mechanism. Gives the possibility to create or retrieve quality assurance events created by the current user and delete them. The DSpace User Corrections manage different types of correction providing future proof extensibility that can be discovered via the proposed new REST API correctiontypes endpoint. Once a WITHDRAWN or REINSTATE request is submitted, it can also be also canceled. The feature can be configured (local.cfg). It is disabled by default and require to configure the user group that will be able to make Withdrawn and Reinstate requests, the name of the group must be set qaevents.withdraw-reinstate.group property.
- DSpace Reports: beta release of the DSpace reports only provides the ability to run the reports and display the results in the Angular UI. As such, reports feature must be used with caution. The reports are an Administrator tool. There are 2 reports: Filtered Collection and Metadata Query. See Report documentation for mode details.
Breaking Changes
- 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.
- 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.
Major Updates and Improvements
- Header and navbar refactoring: change both header and footer structure to make easier to handle dspace and base themes
- 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.
- 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 aProcessPollingService
which can be used to check if a specific activity has completed. - [Port main] i18n production improvements: TO IGNORE ? (port from 7.6.10
- 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.
- 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
. AsstartTime
andendTime
are nullable, processes with these properties set tonull
can't be sorted properly. Every process does have acreationTime
however, making for a more reliable sorting mechanism.
8.0 Acknowledgments
Major Contributing Institutions
The following institutions have been major code contributors to the DSpace 8 release (in general)
Financial Contributors
We gratefully recognize the following institutions who together have generously contributed financially to support the DSpace 8 and individuals who devoted time to fundraising:
Frontend / User Interface Acknowledgments [BASED ON DSpace 7, TO REVISE]
The following individuals have contributed directly to the new DSpace (Angular) User Interface in this release (ordered by number of GitHub commits): Giuseppe Digilio (atarix83), Kristof De Langhe (Atmire-Kristof), Lotte Hofstede (LotteHofstede), Art Lowel (artlowel), Marie Verdonck (MarieVerdonck), Julius Gruber (Flusspferd123), Yury Bondarenko (ybnd), William Welling (wwelling and wellingWilliam), Yana De Pauw (YanaDePauw), Tim Donohue (tdonohue), Alessandro Martelli (alemarte), Michael Spalti (mspalti), Jonas Van Goolen (jonas-atmire), Laura Henze (lhenze), Dániel Péter Sipos (dsipos-dev), Samuel Cambien (samuelcambien), Bruno Roemers (bruno-atmire), Matteo Perelli (sourcedump), Bram Luyten (bram-atmire), Ben Bosman (benbosman), Terry Brady (terrywbrady), Raf Ponsaerts (Raf-atmire), Danilo Di Nuzzo (ddinuzzo), Andrea Chiapparelli (andreachiapparelli), Antoine Snyers (antoine-atmire), Corrado Lombardi (corrad82-4s), Courtney Pattison (courtneypattison), Àlex Magaz Graça (rivaldi8), Chris Wilper (cwilper), Christian Scheible (christian-scheible), Andrew Wood (AndrewZWood), Reeta Kuuskoski (reetagithub), Vítor Silvério Rodrigues (vitorsilverio), Alexander Sulfrian (AlexanderS), muiltje, José Carvalho (josekarvalho), Claudia Jürgen (cjuergen), fernandaruizm, Ivan Masar (helix84), Paulo Graça (paulo-graca), Philip Vissenaekens (PhilipVis), Nagy Akos (akoscomp), Kevin Van de Velde (KevinVdV), Sascha Szott (saschaszott), Mohamed Mohideen Abdul Rasheed (mohideen), David Cavrenne (davidatmire), Hardy Pottinger (hardyoyo), Luca Giamminonni (LucaGiamminonni), Mateus Mercer (MatMercer), Denijs Balodis (Denijsb), Pascal-Nicolas Becker (pnbecker), Mikus Zarins (MixonZ), marciofoz, Andrea Bollini (abollini), Martin Walk (MW3000).
Backend / REST API Acknowledgments [BASED ON DSpace 7, TO REVISE]
The following individuals have contributed directly to the DSpace backend (REST API, Java API, OAI-PMH, etc) in this release (ordered by number of GitHub commits): Raf Ponsaerts (Raf-atmire), Tim Donohue (tdonohue), Andrea Bollini (abollini), Michele Boychuk (Micheleboychuk), Mark Wood (mwoodiupui), Marie Verdonck (MarieVerdonck), Ben Bosman (benbosman), Luigi Andrea Pascarelli (lap82), Terry Brady (terrywbrady), Tom Desair (tomdesair), Yana De Pauw (YanaDePauw), Chris Wilper (cwilper), Peter Nijs (peter-atmire), Kevin Van de Velde (KevinVdV), Bruno Roemers (bruno-atmire), Giuseppe Digilio (atarix83), Pasquale Cavallo (pasqualecvl), Jelle Pelgrims (jpelgrims-atmire), Andrew Wood (AndrewZWood), Samuel Cambien (samuelcambien), Antoine Snyers (antoine-atmire), Kim Shepherd (kshepherd), Yury Bondarenko (ybnd), Michael Spalti (mspalti), Alessandro Martelli (alemarte), Oliver Goldschmidt (olli-gold), Jonas Van Goolen (jonas-atmire), Kristof De Langhe (Atmire-Kristof), Alexander Sulfrian (AlexanderS), Patrick Trottier (PTrottier), Pablo Prieto (ppmdo), Hardy Pottinger (hardyoyo), Pascal-Nicolas Becker (pnbecker), William Tantzen (tantz001), Paulo Graça (paulo-graca), Luca Giamminonni (LucaGiamminonni), Ivan Masar (helix84), Hrafn Malmquist (J4bbi), Ian Little (ilittle-cnri), Anis Moubarik (anis-moubarik), Claudia Jürgen (cjuergen), Alan Orth (alanorth), xuejiangtao, Danilo Di Nuzzo (ddinuzzo), James Creel (jcreel), Marsa Haoua (marsaoua), Philip Vissenaekens (PhilipVis), Miika Nurminen (minurmin), Bram Luyten (bram-atmire), Christian Scheible (christian-scheible), Nicholas Woodward (nwoodward), József Marton (jmarton), Mohamed Mohideen Abdul Rasheed (mohideen), Saiful Amin (saiful-semantic), Àlex Magaz Graça (rivaldi8)
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:
- DSpace 7 developers group
- DSpace Community Advisory Team (DCAT) - This team helped organize/lead the DSpace 8.0 Testathon (to bang on the system to find any last bugs), and they also provided us with advice on features, etc.
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.