Page History
...
For DSpace 6.x, you can use Java 8.
For DSpace 5.x, you should be using Java 7 . Unfortunately and running Maven with "-Dhttps.protocols=TLSv1.2" to avoid errors as described at https://stackoverflow.com/a/50924208/3750035
- Unfortunately even disabling `doclint` on these branches seems to not be enough (See https://github.com/DSpace/DSpace/issues/6509), so you really do need to find an old version of Java 7 around somewhere.
If you are using a recent version of Ubuntu, OpenJDK 7 is harder and harder to find. However, there are still some PPAs that have unmaintained copies (i.e. no security patches). This is good enough for installing on something like vagrant-dspace just do perform the release. Here's a PPA that has worked (as of July 2017):
Code Block # Install the add-apt-repository command (if not available) sudo apt install software-properties-common # Add a PPA that has old 7 versions of OpenJDK sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update # Install OpenJDK 7 sudo apt-get install openjdk-7-jdk # Switch which Java alternative is in use (and select OpenJDK 7) # OBVIOUSLY, YOU SHOULD MAKE SURE TO SWITCH BACK AFTER THE RELEASE IS COMPLETE update-alternatives --config java # Check that the settings are now correct java -version
...
Code Block |
---|
mvn {target} {-D[version-specific-option]} # NOTE: for DSpace 7.x, you MUST use the "-Drelease" flag in all commands. It will automatically release all modules. # NOTE: for DSpace 6.x, make sure the "-Dmirage2.on=true" flag is specified to ensure Mirage2 is released # NOTE: for DSpace 5.x, make sure the "-Dmirage2.on=true" flag is specified to ensure Mirage2 is release released # AND the LNI module must be manually specified (-Pdspace-lni) # AND "-Dhttps.protocols=TLSv1.2" (needed for Maven + Java 7) |
...
Code Block |
---|
mvn install -Dmirage2.on=true
# NOTE: for DSpace 5.x, the LNI module must be manually specified (-Pdspace-lni)
# Additionally, if releasing using Java 7, then you must include "-Dhttps.protocols=TLSv1.2" to avoid protocol_version errors in Maven. |
Updating your local maven cache will help to ensure that the release process goes more smoothly, and should help you to avoid any errors having to do with Maven being unable to locate any particular dependencies. That being said, this step actually may not be necessary, if our release process is working correctly.
...
Code Block |
---|
# For DSpace 6.x or below mvn release:prepare -DdryRun=true -Dmirage2.on=true # NOTE: for DSpace 5.x, the LNI module must be manually specified (-Pdspace-lni) to ensure it is also released . # ForAdditionally, DSpace 7.if releasing using Java 7, then you must include "-Dhttps.protocols=TLSv1.2" to avoid protocol_version errors in Maven. # For DSpace 7.x or above (the "-Drelease" flag is required and it selects all modules to release) mvn release:prepare -DdryRun=true -Drelease |
...
Code Block |
---|
# For DSpace 6.x or below
mvn release:prepare -Dresume=false -Dmirage2.on=true
# NOTE: for DSpace 5.x, the LNI module must be manually specified (-Pdspace-lni) to ensure it is also released
# Additionally, if releasing using Java 7, then you must include "-Dhttps.protocols=TLSv1.2" to avoid protocol_version errors in Maven.
# For DSpace 7.x or above (the "-Drelease" flag is required and it selects all modules to release)
mvn release:prepare -Dresume=false -Drelease |
...
Code Block |
---|
# For DSpace 6.x or below
mvn release:perform -Dmirage2.on=true
# NOTE: for DSpace 5.x, the LNI module must be manually specified (-Pdspace-lni) to ensure it is also released
# Additionally, if releasing using Java 7, then you must include "-Dhttps.protocols=TLSv1.2" to avoid protocol_version errors in Maven.
# For DSpace 7.x or above (the "-Drelease" flag is required and it selects all modules to release)
mvn release:perform -Drelease |
...
Code Block |
---|
# NOTE: for DSpace 5.x, the LNI module must be manually specified (-Pdspace-lni) to ensure it is also distributed
# Additionally, if releasing using Java 7, then you must include "-Dhttps.protocols=TLSv1.2" to avoid protocol_version errors in Maven.
localhost$ cd target/checkout/dspace/
localhost$ mvn package -Pdistributions -Dmirage2.on=true
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------------------------------------------------------------
[INFO] Building DSpace Assembly and Configuration 3.0
[INFO] ----------------------------------------------------------------------------
....
[INFO] --- maven-assembly-plugin:2.2.1:single (default) @ dspace ---
[INFO] Reading assembly descriptor: src/main/assembly/release.xml
[INFO] Reading assembly descriptor: src/main/assembly/src-release.xml
[INFO] Building zip: [full-path-to-dspace-src]/dspace/target/dspace-3.0-release.zip
[INFO] Building tar: [full-path-to-dspace-src]/dspace/target/dspace-3.0-release.tar.gz
[INFO] Building tar: [full-path-to-dspace-src]/dspace/target/dspace-3.0-release.tar.bz2
[INFO] Building zip: [full-path-to-dspace-src]/dspace/target/dspace-3.0-src-release.zip
[INFO] Building tar: [full-path-to-dspace-src]/dspace/target/dspace-3.0-src-release.tar.gz
[INFO] Building tar: [full-path-to-dspace-src]/dspace/target/dspace-3.0-src-release.tar.bz2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
|
...
- Make sure all contributors to the release have been added to the Release Notes!
- Coordinate Announcements with LYRASIS Staff:
- You might post draft announcements to a service such as https://gist.github.com/ and send out a call to committers for review. When finalized, DSpace releases should be announced on the dspace-community, dspace-devel and dspace-tech lists/groups.
- Announcement on dspace.org, twitter
- (As necessary) Ensure that the Latest Release page on dspace.org is updated.
- Plus, ask dspace.org admins to upload latest documentation in PDF/HTML format
- Announce on all DSpace mailing lists
- Link announcement on Home of DSpace Wiki, change any version numbers listed on that page.
- Update Wiki pages, particularly these pages which refer to the Current and Next Releases:
- Current Release
- Next Release Status
- Releases
- NOTE: See DSpace Wiki Style Guide for notes on how to actually edit the above Redirect pages
- Also, update the Documentation Wiki area! Specifically:
- All Documentation page -> Has current release info
- Add a warning to the documentation of the newest unsupported release (e.g. the warning for DSpace 1.7) and link to our Support Policy.
Spaces - Space directory - (i) next to the space - Space Admin - Themes - Configure Theme - Header - Homepage for the current Documentation (e.g. DSpace 6.x Documentation) -> Has links to download latest version of DSpace
- Update the database schema diagram
- For major releases, create a new branch in GitHub for any upcoming bug-fix releases:
- E.g., after the 3.0 release, we created a 3.x branch for any subsequent bug fix releases.
- To automatically create a branch, you may be able to use the release:branch command (NOTE: untested, but it should work! once we test it out, this may be the best practice way of creating a branch).
To manually create a branch, run commands similar to:
Code Block language bash git clone git@github.com:DSpace/DSpace.git branchit cd branchit git checkout -b dspace-3_x dspace-3.0 git push --set-upstream origin dspace-3_x
Then, go back to your
master
main
checkout, and make sure to update its version numbers in the pom.xml files by running the following:Code Block git checkout mastermain mvn release:update-versions -Dmirage2.on
(Remember to enter in the next appropriate major version number. E.g. After releasing 3.0,
master
shouldmain
should be updated to "4.0-SNAPSHOT", while the new3_x
branch should be at "3.1-SNAPSHOT")- NOTE: the
update-versions
command doesn't always work perfectly. You will want to try a complete rebuild of DSpace before committing anything, as it sometimes misses updating a few version numbers. - Push your verified changes back to GitHub.
- You'll also need to ensure that all version numbers and the
<scm>
section is appropriate in the pom.xml files of your new Branch. Remember, the<scm>
configurations should point at the branch, rather than back atmaster
.
- Updates to GitHub:
- Move any uncompleted PRs to the next DSpace version tag / project board
- Close the release milestone (adding date of the release)
- Find the contributors (helpful data for the announcement, you are drafting an announcement, right?):
For bugfix releases
Code Block # This example is to find the list of contributors to 6.3 # It lists contributors to 6.x branch since the 6.2 tag git shortlog -ns dspace-6_x ^dspace-6.2
- For major releases (or from main branch), you can use GitHub contributors pages with a date range.
- Find date of last major release (e.g. 6.0 was released on Oct, 24, 2016)
- Use contributors graph to find contributors between 6.0 and 7.0, e.g. https://github.com/DSpace/DSpace/graphs/contributors?from=2016-10-24&to=2021-07-29&type=c
...