/DSpace

Anything in this fork may be mercilessly rebased and force-pushed at any time. You have been warned.

Primary LanguageJavaOtherNOASSERTION

DSpace

Build Status

DSpace Documentation | DSpace Releases | DSpace Wiki | Support

DSpace open source software is a turnkey repository application used by more than 2,000 organizations and institutions worldwide to provide durable access to digital resources. For more information, visit http://www.dspace.org/


⚠️ Work on DSpace 7 has begun on our master branch. This means that there is temporarily NO user interface on this master branch. DSpace 7 will feature a new, unified Angular user interface, along with an enhanced, rebuilt REST API. The latest status of this work can be found on the DSpace 7 UI Working Group page. Additionally, the codebases can be found in the following places:

If you would like to get involved in our DSpace 7 development effort, we welcome new contributors. Just join one of our meetings or get in touch via Slack. See the DSpace 7 UI Working Group wiki page for more info.

If you are looking for the ongoing maintenance work for DSpace 6 (or prior releases), you can find that work on the corresponding maintenance branch (e.g. dspace-6_x) in this repository.


Downloads

The latest release of DSpace can be downloaded from the DSpace website or from GitHub.

Past releases are all available via GitHub at https://github.com/DSpace/DSpace/releases

Documentation / Installation

Documentation for each release may be viewed online or downloaded via our Documentation Wiki.

The latest DSpace Installation instructions are available at: https://wiki.duraspace.org/display/DSDOC6x/Installing+DSpace

Please be aware that, as a Java web application, DSpace requires a database (PostgreSQL or Oracle) and a servlet container (usually Tomcat) in order to function. More information about these and all other prerequisites can be found in the Installation instructions above.

Running DSpace 7 in Docker

See Running DSpace 7 with Docker Compose

Contributing

DSpace is a community built and supported project. We do not have a centralized development or support team, but have a dedicated group of volunteers who help us improve the software, documentation, resources, etc.

We welcome contributions of any type. Here's a few basic guides that provide suggestions for contributing to DSpace:

We also encourage GitHub Pull Requests (PRs) at any time. Please see our Development with Git guide for more info.

In addition, a listing of all known contributors to DSpace software can be found online at: https://wiki.duraspace.org/display/DSPACE/DSpaceContributors

Getting Help

DSpace provides public mailing lists where you can post questions or raise topics for discussion. We welcome everyone to participate in these lists:

Great Q&A is also available under the DSpace tag on Stackoverflow

Additional support options are listed at https://wiki.duraspace.org/display/DSPACE/Support

DSpace also has an active service provider network. If you'd rather hire a service provider to install, upgrade, customize or host DSpace, then we recommend getting in touch with one of our Registered Service Providers.

Issue Tracker

The DSpace Issue Tracker can be found at: https://jira.duraspace.org/projects/DS/summary

Testing

Running Tests

By default, in DSpace, Unit Tests and Integration Tests are disabled. However, they are run automatically by Travis CI for all Pull Requests and code commits.

  • How to run both Unit Tests (via maven-surefire-plugin) and Integration Tests (via maven-failsafe-plugin):
    # NOTE: while "mvn test" runs Unit Tests,
    # Integration Tests only run for "verify" or "install" phases
    mvn clean install -Dmaven.test.skip=false -DskipITs=false
    
  • How to run just Unit Tests:
    mvn clean test -Dmaven.test.skip=false
    
  • How to run a single Unit Test
    # Run all tests in a specific test class
    # NOTE: testClassName is just the class name, do not include package
    mvn clean test -Dmaven.test.skip=false -Dtest=[testClassName]
    
    # Run one test method in a specific test class
    mvn clean test -Dmaven.test.skip=false -Dtest=[testClassName]#[testMethodName]
    
  • How to run Integration Tests (requires running Unit tests too)
    mvn clean verify -Dmaven.test.skip=false -DskipITs=false
    
  • How to run a single Integration Test (requires running Unit tests too)
    # Run all integration tests in a specific test class
    # NOTE: Integration Tests only run for "verify" or "install" phases
    # NOTE: testClassName is just the class name, do not include package
    mvn clean verify -Dmaven.test.skip=false -DskipITs=false -Dit.test=[testClassName]
    
    # Run one test method in a specific test class
    mvn clean verify -Dmaven.test.skip=false -DskipITs=false -Dit.test=[testClassName]#[testMethodName]
    
  • How to run only tests of a specific DSpace module
    # Before you can run only one module's tests, other modules may need installing into your ~/.m2
    cd [dspace-src]
    mvn clean install
    
    # Then, move into a module subdirectory, and run the test command
    cd [dspace-src]/dspace-server-webapp
    # Choose your test command from the lists above
    

License

DSpace source code is freely available under a standard BSD 3-Clause license. The full license is available at http://www.dspace.org/license/