Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: changed examples to use new release numbering scheme (major.minor)

...

Info
titleVersion Numbering Convention for Language Packs

Wiki Markup
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.7.0 release are numbered as follows: 1.7
 {{.\[sequence-number\]}}. For example, the i18n modules for the 1.8.0 release are numbered as follows: 1.8.0.0, 1
.7
.8.0.1, etc.  However, for 3.0, the i18n modules will be numbered as follows: 3.0.0, 3.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
    • Wiki Markup
      Make sure to assign a version number of the format: {{\[major\].\[minor\].
      subminor.
      \[sequence-number\]}} (e.g.
      1
       3.
      7.
      0.0,
      1
       3.
      7.
      0.1, etc for
      1.7
       3.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)

...

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 13.7.0.0, but is less than version 14.8.0.0:

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

...

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

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

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

...

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.58.0-beta1-release.zip
 [INFO] Building tar: .../target/dspace-1.58.0-beta1-release.tar.gz
 [INFO] Building tar: .../target/dspace-1.58.0-beta1-release.tar.bz2
 [INFO] Building zip: .../target/dspace-1.58.0-beta1-src-release.zip
 [INFO] Building tar: .../target/dspace-1.58.0-beta1-src-release.tar.gz
 [INFO] Building tar: .../target/dspace-1.58.0-beta1-src-release.tar.bz2
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESSFUL
 [INFO] ------------------------------------------------------------------------

...

Using scp to copy to the "DSpace Stable" file directory: (example for 1.78.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.78.0/"

Using scp to copy to the "DSpace Release Candidate" file directory: (example for 1.78.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.78.0-rc2/"

After the Release is Finished

...

  • Add the new contributors to the list: DSpaceContributors
  • Coordinate Announcements with DuraSpace Staff:
    • Announcement on dspace.org, duraspace.org, twitter
    • 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:
  • Also, update the Documentation Wiki area! Specifically:
  • For major releases, create a new branch in SVN for any upcoming sub-minor releases:
    • E.g., after 1.68.0 release, we created a 1.68.x branch for the subsequent 1.68.1 and 1.68.2 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 a command similar to:
      Code Block
      svn copy http://scm.dspace.org/svn/repo/dspace/trunk \
               http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_63_x \
            -m "Creating a branch for 13.6.x bug-fix releases."
      • Then, go back to your Trunk checkout, and make sure to update it's version numbers in the pom.xml files by running the following:
        Code Block
        mvn release:update-versions
        (Remember to enter in the next appropriate major version number. E.g. After releasing 13.7.0, Trunk should be updated to "1.84.0-SNAPSHOT", while the new 13_7_x branch should be at "13.7.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.
      • 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 at Trunk.
  • For major releases, make sure to create a new DuraSpace Bamboo Project to auto-build the new branch you created in SVN.
    • Usually, it's easiest to just 'clone' the existing Trunk project, rather than starting from scratch.
    • You'll want to name it something similar to "17BRANCH18BRANCH" (for 1.78.x branch).
  • Updates to JIRA:
    • Move any uncompleted issues to the next DSpace version tag in JIRA.
    • Ask a JIRA Administrator to close out the release in JIRA (this will ensure no new issues can be added to that release).

...