Page History
...
- 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.
- 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:
- Sign up for a Sonatype JIRA account. This account will also serve as your login to the Sonatype OSS system
- Ask the previous release manager to request authorization for this account via the Sonatype JIRA system in the Open Source Project Repository Hosting project. Once Sonatype gives you the proper authorization, you should be able to login to the Sonatype OSS system using the same login/password you setup in Sonatype JIRA.
- The full details of signing up and getting access to Sonatype are also posted online here: Sonatype Maven Repository Usage Guide
- 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:
- Creating a Code Signing Key
- How to Generate PGP Signatures with Maven (required for all Sonatype releases)
- Make sure to publish your Key file to
hkp://pgp.mit.edu
, as this is the Key Server Sonatype uses for verification:Wiki Markup (e.g.) {{gpg \--keyserver hkp://pgp.mit.edu \--send-keys \[yourKeyID\]}}
- You can see if your key is already on that Key Server by visiting http://pgp.mit.edu and searching on your name
- 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):
- adduser -m <user-name>
- Add authorized key to
~/.ssh/authorizedkeys
(make sure permissions are correct on file) - Add user to /etc/groups
Code Block maven:x:4002:peterdietz,esm,mdiggory,tdonohue,ben,kim,apache
- 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> |
...
- Checkout Language Pack Module:
svn co
https://scm.dspace.org/svn/repo/modules/dspace-api-lang/trunk
dspace-api-lang
- Do a Dry Run:
mvn release:prepare -DdryRun=true
- 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)
- Deploy Artifacts to Staging in Sonatype:
mvn release:perform
- 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.xml) 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 | ||||
---|---|---|---|---|
| ||||
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:
|
...
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 | ||
---|---|---|
| ||
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:
|
Deploy Artifacts to Staging in Sonatype
...
- Login to http://oss.sonatype.org/
- 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.
- With the staged repository still selected, click the "Close" button at the top.
- Download and test that the artifacts in staging are exactly as they should be once deployed to central.
Info title If 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"
- 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/) within an hour.
Warning title Once 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/"
|
...