Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Syncing up content with Old Release Procedure

...

  • dspace-api-lang
  • dspace-xmlui-lang
Info
titleVersion Numbering Convention for Language Packs

Note that the version numbering convention for Language Packs is always the same as the current DSpace release, with an additional .<sequence-number> (e.g. the i18n modules for the 1.6.0 release are numbered as follows: 1.6.0.0, 1.6.0.1, etc.)

For each module, perform the full release steps that follow. To save space, the steps are only listed for one of the modules (but don't forget to run it for both language packs):

  1. Checkout Language Pack Module: svn co https://scm.dspace.org/svn/repo/modules/dspace-api-lang/trunk dspace-api-lang
  2. Do a Dry Run: mvn release:prepare -DdryRun=true
  3. Tag and Increment Version: mvn release:prepare -Dresume=false
    • Make sure to assign a version number of the format: major.minor.subminor.sequence-number (e.g. 1.6.0.0, 1.6.0.1, etc for 1.6.0 releases of language packs)
  4. Deploy Artifacts to Staging: mvn release:perform
  5. Verify and Release Staged Artifacts (see instructions at link)

...

In the main pom.xml, provide the proper version range for each language pack. In the below example, we are saying to use any language pack version which is at least version 1.6.0.0, but is less than version 1.7.0.0:

Code Block
  <dependency>
      <dependency>
             <groupId>org.dspace</groupId>
             <artifactId>dspace-api-lang</artifactId>
             <version>[1.6.0.0,1.7.0.0)</version>
        </dependency>
        <dependency>
             <groupId>org.dspace</groupId>
             <artifactId>dspace-xmlui-lang</artifactId>
             <version>[1.6.0.0,1.7.0.0)</version>
             <type>war</type>
        </dependency>

...

Double check that the latest Wiki-based Documentation has been exported as HTML and PDF and committed to http://scm.dspace.org/svn/repo/dspace/trunk/dspace/docs/

Checkout Trunk or Branch to Release

Checkout a copy of the to-be-release version either from a branch or trunk.

Code Block
svn co https://scm.dspace.org/svn/repo/dspace/trunk dspace-release

Do a Dry Run

This step is not required, but performs a useful sanity check without committing any changes. From a your clean, up-to-date copy of trunk, run the following command:

...

This step will set the version declared in the project's pom.xml files, commit the changes to trunk, tag the release, and finally, check in another trunk change that increments the next development version (e.g. x.y.z-SNAPSHOT) in the pom.xml files.

...

(Optionally, you may also include the parameters -Dusername=YourSVNUsername -Dpassword=YourSVNPassword at the end of the above command, though I've not found these to be necessary)

You will have to enter in your GPG passphrase (which you established when you created your Code Signing Key).

Info
titleIf you receive a project dependency error

This may fail to compile part way through the process, complaining that an internal project dependency is not met. If this occurs, don't worry. Just run the following:

  1. mvn install
  2. mvn release:prepare
Note
titleBacking out of changes

If backing out of this step is needed for any reason, the following will restore the subversion repository and your working copy to the state it was previously in:

  1. mvn release:rollback
  2. svn rm https://scm.dspace.org/svn/repo/dspace/tags/dspace-x.yImage Removed

Deploy Artifacts to Staging

This step will sign, checksum, and push all release artifacts (including javadocs and sources) to the staging repository. Run the following:

Code Block
mvn release:perform

You should be prompted by Maven to specify your GPG passphrase (which you established when you created your Code Signing Key). If you run into any issues, it's possible to specify your GPG key and passphrase as arguments to the above command (e.g. -Darguments="-Dgpg.keyname=YourKeyId -Dgpg.passphrase=YourKeyPassword")

Info
titleIf you need to re-deploy

If any errors or problems occur during the deploy, you can re-run mvn release:perform safely after fixing those issues (re-running it will just overwrite existing staged contents).

Verify and Release Staged Artifacts

Note

For screenshots and more details on this step, visit the Sonatype Repository Usage Guide's section on Releasing your artifacts

...

The above command will ask you three basic questions. Here are sample answers for DSpace 1.6.0:

Code Block

 "What is the release version for: XXX" 1.6.0
 "What is SCM release tag or label for: XXXX" dspace-1.6.0
 "What is the new development version for: XXXX" 1.6.1-SNAPSHOT

You will also have to enter in your GPG passphrase (which you established when you created your Code Signing Key).

Info
titleIf you receive a project dependency error

This may fail to compile part way through the process, complaining that an internal project dependency is not met. If this occurs, don't worry. Just run the following:

  1. mvn install
  2. mvn release:prepare
Note
titleBacking out of changes

If backing out of this step is needed for any reason, the following will restore the subversion repository and your working copy to the state it was previously in:

  1. mvn release:rollback
  2. svn rm https://scm.dspace.org/svn/repo/dspace/tags/dspace-x.yImage Added

Deploy Artifacts to Staging in Sonatype

This step will sign, checksum, and push all release artifacts (including javadocs and sources) to the Sonatype staging repository (http://oss.sonatype.org/

...

). Run the following:

Code Block
mvn release:perform

You should be prompted by Maven to specify your GPG passphrase (which you established when you created your Code Signing Key). If you run into any issues, it's possible to specify your GPG key and passphrase as arguments to the above command (e.g. -Darguments="-Dgpg.keyname=YourKeyId -Dgpg.passphrase=YourKeyPassword")

...

Info
titleIf you need to revert back

If anything is incorrect, select the staged repository and select "Drop". After the problem is resolved, you can re-deploy the artifacts to staging and verify them again. To re-deploy an already-tagged release:
mvn release:perform -Dtag=dspace-x.y -DconnectionUrl=scm:svn:https://scm.dspace.org/svn/repo/dspace -Darguments="-Dgpg.keyname=YourKeyId -Dgpg.passphrase=YourKeyPassword"

Create the Distribution Zips for SourceForge

Wiki Markup
The previous actions will have checked out the release tag into the target directory under {{\[dspace-src\]/target/checkout}}. Navigate to that directory and execute the creation of the distributions using the following command. This will create two zip, bzip and gzipped files in the target directory. One set of files is the "binary" release, and the other set is the source release.

(Note: If you've already removed the target/checkout directory, you can also checkout a fresh copy of the newly tagged version and run this command from the DSpace parent directory.)

re-deploy

If any errors or problems occur during the deploy, you can re-run mvn release:perform safely after fixing those issues (re-running it will just overwrite existing staged contents).

Verify and Release Staged Artifacts in Sonatype

Note

For screenshots and more details on this step, visit the Sonatype Repository Usage Guide's section on Releasing your artifacts

  1. Login to http://oss.sonatype.org/
  2. Click "Staging Repositories" in the left column, then select the checkbox next to the staged repository on the right. The contents of it will open up at the bottom of the page.
  3. With the staged repository still selected, click the "Close" button at the top.
  4. Download and test that the artifacts in staging are exactly as they should be once deployed to central.
  5. If everything looks good, select the repository and select "Release". The artifacts should be synced to Maven central (http://repo2.maven.org/maven2/org/dspace/Image Added) within an hour.
Info
titleIf you need to revert back

If anything is incorrect, select the staged repository and select "Drop". After the problem is resolved, you can re-deploy the artifacts to staging and verify them again. To re-deploy an already-tagged release:
mvn release:perform -Dtag=dspace-x.y -DconnectionUrl=scm:svn:https://scm.dspace.org/svn/repo/dspace -Darguments="-Dgpg.keyname=YourKeyId -Dgpg.passphrase=YourKeyPassword"

Create the Distribution Zips for SourceForge

Wiki Markup
The previous actions will have checked out the release tag into the target directory under {{\[dspace-src\]/target/checkout}}. Navigate to that directory and execute the creation of the distributions using the following command. This will create two zip, bzip and gzipped files in the target directory. One set of files is the "binary" release, and the other set is the source release.

(Note: If you've already removed the target/checkout directory, you can also checkout a fresh copy of the newly tagged version and run this command from the DSpace parent directory.)

Code Block
 localhost$ cd target/checkout
 localhost$ mvn package -Pdistributions
 [INFO] Scanning for projects...
 [INFO] ----
Code Block
 localhost$ cd target/checkout
 localhost$ mvn package -Pdistributions
 [INFO] Scanning for projects...
 [INFO] ----------------------------------------------------------------------------
 [INFO] Building DSpace Parent Project
 [INFO]    task-segment: [package]
 [INFO] ----------------------------------------------------------------------------
 [INFO] [site:attach-descriptor]
 [INFO] [assembly:single -(execution. default-)]
 [INFO] Building zip: .../target/dspace-1.5.0-beta1-release.zip
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-release.tar.gz
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-release.tar.bz2
 [INFO] Building zip: .../target/dspace-1.5.0-beta1-src-release.zip
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-src-release.tar.gz
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-src-release.tar.bz2
 [INFO] ------------------------------------------------------------------------
 [INFO] Building BUILDDSpace Parent SUCCESSFULProject
 [INFO] ---   task-segment: [package]
 [INFO] ----------------------------------------------------------------------------
 [INFO] [site:attach-descriptor]
 [INFO] [assembly:single ---

Upload to SourceForge

Upload both the source and binary releases to Sourceforge.net. You can either upload them via the web interface, or copy them over via scp or other command line tools. If you want to copy the files from command line, follow the directions found here: http://apps.sourceforge.net/trac/sourceforge/wiki/File%20management%20service

Using scp to copy to the "DSpace Stable" file directory: (example for 1.6.0 final)
(NOTE: You will need to first create the 'DSpace Stable/1.6.0' directory via SourceForge's Admin UI)

Code Block
 scp <files> <username>,dspace@frs.sourceforge.net:"/home/frs/project/d/ds/dspace/DSpace\\ Stable/1.6.0/"

Using scp to copy to the "DSpace Release Candidate" file directory: (example for 1.6.0-rc2)
(NOTE: You will need to first create the 'DSpace Release Candidate/1.6.0-rc2' directory via SourceForge's Admin UI)

Code Block
 scp <files> <username>,dspace@frs.sourceforge.net:"/home/frs/project/d/ds/dspace/DSpace\\ Release\\ Candidate/1.6.0-rc2/"

After the Release is Finished

Warning
titleDon't Announce Until Maven Packages Have Propagated

You must wait for all the packages to be available at http://repo2.maven.org/maven2/org/dspace/ before you announce the release. Until the DSpace packages are available in the Maven repository, no one else will be able to build DSpace using Maven.

...

  • Announcement on dspace.org, duraspace.org, twitter
  • Plus if new stable version, ask dspace.org admins to upload latest documentation
  • Announce on mailing lists
  • Link announcement on Home of Wiki, change any version numbers on that page.
  • Ensure that the Latest Release page on dspace.org is updated.

...

...

(execution. default-)]
 [INFO] Building zip: .../target/dspace-1.5.0-beta1-release.zip
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-release.tar.gz
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-release.tar.bz2
 [INFO] Building zip: .../target/dspace-1.5.0-beta1-src-release.zip
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-src-release.tar.gz
 [INFO] Building tar: .../target/dspace-1.5.0-beta1-src-release.tar.bz2
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESSFUL
 [INFO] ------------------------------------------------------------------------

Upload to SourceForge

Upload both the source and binary releases to Sourceforge.net. You can either upload them via the web interface, or copy them over via scp or other command line tools. If you want to copy the files from command line, follow the directions found here: http://apps.sourceforge.net/trac/sourceforge/wiki/File%20management%20service

Using scp to copy to the "DSpace Stable" file directory: (example for 1.6.0 final)
(NOTE: You will need to first create the 'DSpace Stable/1.6.0' directory via SourceForge's Admin UI)

Code Block
 scp <files> <username>,dspace@frs.sourceforge.net:"/home/frs/project/d/ds/dspace/DSpace\\ Stable/1.6.0/"

Using scp to copy to the "DSpace Release Candidate" file directory: (example for 1.6.0-rc2)
(NOTE: You will need to first create the 'DSpace Release Candidate/1.6.0-rc2' directory via SourceForge's Admin UI)

Code Block
 scp <files> <username>,dspace@frs.sourceforge.net:"/home/frs/project/d/ds/dspace/DSpace\\ Release\\ Candidate/1.6.0-rc2/"

After the Release is Finished

Warning
titleDon't Announce Until Maven Packages Have Propagated

You must wait for all the packages to be available at http://repo2.maven.org/maven2/org/dspace/ before you announce the release. Until the DSpace packages are available in the Maven repository, no one else will be able to build DSpace using Maven.

  • Add the new contributors to the list: DSpaceContributors
  • Coordinate Announcements with DuraSpace Staff:
    • Announcement on dspace.org, duraspace.org, twitter
    • Plus if new stable version, ask dspace.org admins to upload latest documentation
    • Announce on mailing lists
    • Link announcement on Home of Wiki, change any version numbers on that page.
    • Ensure that the Latest Release page on dspace.org is updated.
  • Add group corresponding to the version to the JIRA system (if not already there)
  • Update Wiki pages, particularly these pages which refer to the Current and Next releases:
  • Create a new branch in SVN for any upcoming sub-minor releases (if necessary)

Possible Errors you may Encounter

"Could not find model file" error (with language packs)

If you encounter one of these errors when building/packaging DSpace:

FATAL ERROR: "Reason: Could not find the model file '../dspace-xmlui-lang'. for project unknown"

OR

FATAL ERROR: "Reason: Could not find the model file '../dspace-api-lang'. for project unknown"

Wiki Markup
This is a known bug in Maven. The problem is that you likely have a 'dspace-xmlui-lang' or 'dspace-api-lang' folder at the same level as your \[dspace-source\] parent folder.  Essentially, Maven located them and tried to add them into the build process (which it shouldn't have).   The fix is to completely delete the 'dspace-xmlui-lang' and 'dspace-api-lang' folders, and try to rebuild DSpace.