Add possibility to install several (FEniCS) branches side by side

Registered by Andre Massing

Add lightweight support for:
- Installing different branches than stable and trunk (for instance 1.0.x or 1.1.x)
- Installing several branches side by side in a consistent manner.

Blueprint information

Status:
Started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
Andre Massing
Definition:
Discussion
Series goal:
None
Implementation:
Started
Milestone target:
None
Started by
Andre Massing

Sprints

Whiteboard

ATM dorsal is only capable of installing trunk, snapshot or stable releases. It would be nice to extend dorsal in a lightweight manner to support the installation of user-defined branches. Use case: a user would like to install the latest backported feature from 1.1.x.
As a developer you have to keep around several branches of ufl, ffc, ufc doflin etc.
In addition to be able to install the branch of your choice, it would be nice to have an option to keep track of several different installations of say (ufl,ffc,ufc) without causing too much headaches and the possibility to switch between them seamlessly.

My suggestion is to extend the local.cfg usage by
- defining branch names for various packages e.g.
  UFL_BRANCH=lp:ufl/1.0.x
- defining destination for the branches e.g
  FFC_BRANCH=lp:ffc/1.1.x,ffc-massing
- adding a flag to indicate whether you would like to have a "multi branch" set-up:
  MULTI_BRANCH=true
- adding a command line parameter --config=MY_BRANCHES.cfg
  where the layout og MY_BRANCHES.cfg is similar to the dorsal.cfg or local.cfg

To keep track of various branches when installed side by side an idea would be to
- download and install each package version into subdirectories of
  $DOWNLOAD_PATH and $INSTALL_PATH, e.g.
  parmetis:
       -parmetis-3.x
       -parmetes-4.0.1
 ufl:
       -ufl-1.0.x
       -ulf-your-new-cool-overlap-feature :)
- in case of bzr branches and MULTI_BRANCH=true, the the ufl directory
  could be a bzr repo
- to generate proper config (and module) files for each of them
- to generate a "global" config (and module) file named similar to the
  MY_BRANCHES.cfg
  which sources all the proper conf files generated by this specific build.

(?)

Work Items

Work items:
Checkout of user-defined branches: DONE
Install several branches side by side in common package directory : DONE
Added command line switch to chose config file: DONE
Generate individual config files for packages in multi-branch scenario: DONE
Generate build specific "super" config file sourcing packages config file: DONE
Generate corresponding module files: TODO
Proper testing of added functionality: TODO

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.