Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

major.minor.subminor (e.g. 1.67.0)

  • Increment subminor for bug-fix only releases (database, translations and core APIs stable)
  • Increment minor for feature changes (database schema, translations, APIs may change, though we'll try and keep API changes as small as possible, and will always provide an upgrade/migration path)

The one exception is that the Language Packs (dspace-api-lang and dspace-xmlui-lang) use the numbering convention major.minor.subminor.sequence-number (e.g. 1.67.0.0). This allows us to release new versions of the language packs more frequently than normal DSpace releases.

...

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.67.0 release are numbered as follows: 1.67.0.0, 1.67.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.67.0.0, 1.67.0.1, etc for 1.67.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 1.67.0.0, but is less than version 1.78.0.0:

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

...

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

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

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

...

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

Using scp to copy to the "DSpace Release Candidate" file directory: (example for 1.67.0-rc2)
(NOTE: You will need to first create the 'DSpace Release Candidate/1.67.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.67.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:
  • For major releases, create a new branch in SVN for any upcoming sub-minor releases:
    • E.g., after 1.6.0 release, we created a 1.6.x branch for the subsequent 1.6.1 and 1.6.2 releases
    • To 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_6_x \
            -m "Creating a branch for 1.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 1.67.0, Trunk should be updated to "1.78.0-SNAPSHOT", while the new 1_67_x branch should be at "1.67.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.
  • 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 "16BRANCH17BRANCH" (for 1.67.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).

...