Asynchronous Release: Asynchronous Release is change in the DSpace release process and version numbering process on modules within the DSpace trunk to allow more flexibility adding prebuilt Addon modules into DSpace. |
The primary goal of Async release is to break the the authoritative grip that dspace-parent has on the version assignment and dependencyManagement in the DSpace trunk modules such that:
We will want to introduce an API over the DSpace Object Model that will allow us acquire DSpaceObjects from DSpaceObjectServices without depending on dspace-api. Once in place, there would be two features of the API and Implementation that benefit Addon projects:
Benefits: We will then be able to support only releasing the API when it changes and addons which depened ont eh API would not need to be rereleased over new versions of DSpace
New module Projects
Ceases to exist, we will move all projects that use dspace-parent to use dspace-pom (http://scm.dspace.org/svn/repo/modules/dspace-pom/trunk/pom.xml) which is released separately from trunk.
Continues to fill its role as an assembly point for constructing a DSpace instance. Important changes are that the assembly is changed so that dependencies are not defined here and a separate "cli" project is created to hold dependencies that will be assembled into the DSpace lib directory. This allows a specialized location to add customizations to go specifically into the lib directory codebase. Upgrades to DSpace will require migrating your changes in dspace/pom.xml dependencies into the cli project instead.
├── modules │ ├── pom.xml │ ├── cli │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── resources |
Will be defined as the place that dependencyManagement is customized for a specific DSpace instance. Dependency Management is then moved out of the scope of dspace-parent. This allows individual DSpace instances to mediate the versions of dependencies chosen for a specific deployment.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.dspace</groupId> <artifactId>modules</artifactId> <version>11-SNAPSHOT</version> <packaging>pom</packaging> <name>DSpace Addon Modules</name> <url>http://www.dspace.org</url> <description>DSpace Addon Modules</description> <parent> <artifactId>dspace-pom</artifactId> <groupId>org.dspace</groupId> <version>8</version> </parent> <modules> <module>cli</module> <module>xmlui</module> <module>lni</module> <module>oai</module> <module>jspui</module> <module>sword</module> <module>solr</module> </modules> <dependencyManagement> <dependencies> <!-- DSpace core and endorsed Addons --> <dependency> <groupId>org.dspace</groupId> <artifactId>dspace-api</artifactId> <version>2.1-SNAPSHOT</version> </dependency> |
Module |
Scheme |
1.7.0 |
1.8.0 |
1.9.0 |
|
---|---|---|---|---|---|
dspace |
N |
10 |
11 |
12 |
once a year |
dspace/modules |
N |
10 |
11 |
12 |
once a year |
dspace/modules/... |
N |
10 |
11 |
12 |
once a year |
dspace-api |
M.M |
1.7.0 |
2.0 |
3.0 |
Increments as needed |
dspace-jspui |
M.M |
1.7.0 |
2.0 |
2.1 |
Increments as needed |
dspace-jspui-api |
M.M |
1.7.0 |
2.0 |
2.0 |
Increments as needed |
dspace-xxx-yyy |
M.M |
1.7.0 |
2.M |
M.M |
Increments as needed |
|
|
|
|
|
|
M.M: First Bit is Major release number, Second is minor, Major releases are reserved for API, Configuration and DB changes, minor releases are for bug fixes and other backward compatible release changes.