Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Remove redundant references to projects.dspace.org as we no longer generate a website on that server.

...

  1. Write access to the DSpace subversion repository hosted at http://scm.dspace.org/svn/repo; This requires an administrator to add you to the svn repository permissions via the TRAC user group.
  2. Write access to the org.dspace groupId in the snapshot and staging repositories hosted at oss.sonatype.org.  If you don't already have this, you will need to:
  3. You must generate and publish your own personal Code Signing Key (required by Sonatype). Here are two sites that give hints on how to do that:
  4. Write access to projects.dspace.org (which is where the DSpace Projects website is hosted)
    • Ask the previous release manager (or someone else with access) to be given access to this server.
    • Include your proposed username
    • Include a local SSH Public Key (which will be used for authentication).

Setting up a new person with proper access to projects.dspace.org

Here's notes from Mark Diggory on how to give someone else access to the OSUOSL server (projects.dspace.org):

  1. adduser -m <user-name>
  2. Add authorized key to ~/.ssh/authorizedkeys (make sure permissions are correct on file)
  3. Add user to /etc/groups
    Code Block
    maven:x:4002:peterdietz,esm,mdiggory,tdonohue,ben,kim,apache
  4. Make sure umask 002 is in the users ~/.bash_profile so maven permissions are written correctly.
      • your name

Update Maven settings.xml

...

Code Block
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>
    <!--Login info for Sonatype SnapShot repository-->
    <server>
      <id>sonatype-nexus-snapshots</id>
      <username>YourSonatypeUsername</username>
      <password>YourSonatypePassword</password>
    </server>
    <!--Login info for Sonatype Staging/Release repository-->
    <server>
      <id>sonatype-nexus-staging</id>
      <username>YourSonatypeUsername</username>
      <password>YourSonatypePassword</password>
    </server>
    <!--Login info for DSpace Projects (projects.dspace.org) website @OSUOSLfor Sonatype Staging/Release repository-->
    <server>
       <id>website<<id>sonatype-nexus-staging</id>
       <username>YourOSUOSLUserName<<username>YourSonatypeUsername</username>
       <privateKey>[Full-path-to]\.ssh\id_rsa</privateKey>
       <passphrase>YourKeyPassphrase (if necessary)</passphrase><password>YourSonatypePassword</password>
    </server>
  </servers>
</settings>

...

  1. Checkout Language Pack Module: svn co https://scm.dspace.org/svn/repo/modules/dspace-api-lang/trunkImage Removed 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.7.0.0, 1.7.0.1, etc for 1.7.0 releases of language packs)
  4. Deploy Artifacts to Staging in Sonatype: mvn release:perform
  5. Verify and Release Staged Artifacts in Sonatype (see instructions at link)

...

Once the Language Packs are released, you may need to modify the DSpace Parent pom.xml (http://scm.dspace.org/svn/repo/dspace/trunk/pom.xmlImage Removed) to reference the new version of the Language Packs. This should be similar to the following:

...

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.7.0.0, but is less than version 1.8.0.0:

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

...

Note
titleWatch for conflicts when updating HTML Documentation in SVN

It's often easier to completely remove all current HTML content before committing the updated HTML content. Because of the HTML directory structure exported by Confluence, it can be very difficult to determine which files need removing (especially old attachments). So, you may want to completely remove the old HTML directory, before committing the updated content. An example follows:

  1. Delete old HTML docs: e.g. svn delete http://scm.dspace.org/svn/repo/dspace/trunk/dspace/docs/htmlImage Removed (Or delete from branch, as appropriate)
  2. Update your checked-out copy of Trunk/Branch: svn up
  3. Wiki Markup
    Locally, recreate the {{\[dspace-source\]/dspace/docs/html/}} in your checked out copy of Trunk/Branch
  4. Wiki Markup
    Copy new HTML docs to {{\[dspace-source\]/dspace/docs/html/}}, so that the {{index.html}} file is at {{html/index.html}}
  5. Commit new docs back to SVN

...

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

Code Block
 "What is the release version for: XXX" 1.7.0
 "What is SCM release tag or label for: XXXX" dspace-1.7.0
 "What is the new development version for: XXXX" 1.7.1-SNAPSHOT

...

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 in Sonatype

...

  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.
    Info
    titleIf You Need to Revert Back before Releasing

    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"

  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 Removed) within an hour.
    Warning
    titleOnce Released, There is No "Undo" Option

    Once you select "Release", there is no way to "undo" the release. If any major issues are found, you'll have to increment the version number and perform a new bug-fix 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] ----------------------------------------------------------------------------
 [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] BUILD SUCCESSFUL
 [INFO] ------------------------------------------------------------------------

...

Using scp to copy to the "DSpace Stable" file directory: (example for 1.7.0 final)
(NOTE: You will need to first create the 'DSpace Stable/1.7.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.7.0/"

Using scp to copy to the "DSpace Release Candidate" file directory: (example for 1.7.0-rc2)
(NOTE: You will need to first create the 'DSpace Release Candidate/1.7.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.7.0-rc2/"

...