Skip to content
This repository has been archived by the owner on Oct 20, 2018. It is now read-only.

Proposal: refactoring of the repositories layout

hmalphettes edited this page Jun 10, 2011 · 11 revisions

This refactoring takes place on the branch “branch_support”. The goal of this refactoring consists of supporting branches for each component repository, the composite repository and the debian packages.

The master branch has the following limitations:

  • Limited support for making a release of a branch component

  • No support for debian packages for a branch build

The suggested refactoring consists of using a different layout for the repositories produced. Each component build produces a complete repository that will look like this:

$groupID
  $branchName
    $buildID (version number or name)
      plugins (part of the usual p2repository)
      features (part of the usual p2repository)
      debs (the folder that contains the deb packages produced by this build)

The composite repository will be exactly similar:

$groupID
  $branchName
    $buildID (version number or name)
      compositeContext.xml  (part of the usual composite p2repository)
      compositeArtifacts.xml ( part of the usual composite p2repository)
      debs (the folder that contains a copy of all the deb packages for the child repos)

The promoted build will be identical to the composite build that it was made from except that it contains an aggregated p2repo instead of a composite p2repo.

The build files for the component and composite repository will remain unchanged. Note that each build’s repo can be directly consumed by apt-get on the VM:

deb http://release.intalio.com/p2repo/$groupID/ $branchName/$buildID/debs/

The URL of the p2 repository is directly derived from the URL of the apt repository.

Support for building multiple repositories from the same maven tycho reactor project.

The best practice is to build a single repository for each tycho reactor project.

When it is necessary to output several of them, it is required to specify the maven property ‘repositorySuffix’ in the pom.xml of all but one the project modules that output a repository. The path to the deployed repository is:

$groupID
  $branchName.$repositorySuffix
    $buildID
      debs/,plugins/,features/,artifacts.jar,content.jar