TWiki> LHCb Web>LHCbComputing>LbSoftUseCases (revision 2)EditAttachPDF

Development Use Cases

Motivation

One of the conclusion of the 6th LHCb Computing Workshop is that we could benefit from modern development techniques and tools that enable, for example, teams to easily perform code reviews. Git in association with Gitlab/Github are potential candidates but imply a change that is not limited to the tooling used, but also affects the workflow used to develop and release the software.

The goal of this page is to ease the transition by listing the known use cases for development in order to make sure they are all covered.

HLT Use Cases

Person X wants to develop a new HLT line

Contact: Vava

Description: Developer needs to add HLT line for further analysis. The has to be reviewed to make sure it follows proper HLT conventions and does not slow down the whole trigger.

Frequency: High

Priority: High

Workflow: Developer creates a new 'topic' branch, develops his/her changes in this branch, and then submits a merge request for this branch. (note: this assumes all development is contained to a single repository)

New Loki functionality needed for a new HLT Line (from Vanya)

Contact: Vava

Description:

Frequency:

Priority:

Workflow:

Vanya starts a new topic branch, and implements the requested functionality, and then creates a merge request for this branch. Two different cases can happen: 1) the development is fully contained within the 'HLT' project repository, in which case no further action is required. 1) the changes pertain to other projects. This needs to be further worked out.

In the meantime persons Alpha, Beta, Gamma have been working on new reconstruction options and once implemented, X needs to integrate these in order to properly test the rates etc of their lines

Contact: Vava

Description:

Frequency:

Priority:

Workflow:

persons Alpha, Beta and Gamma start topic branches for each of their developments. Once implemented, they each request a merge request. X reviews these requests, and decides which one to merge first, lets take Alpha for this. At this point, it is possible that the changes from Beta and Gamma no longer cleanly apply, and X informs Beta and Gamma of this (actually, Beta and Gamma can see this from the gitlab merge request status pages), and asks them to resolve the conflicts, and then processes their requests.

We eventually decide to merge only the reconstruction changes from Gamma and Beta, while Alpha needs to wait another round

Contact: Vava

Description:

Frequency:

Priority: Workflow: X only merges the merge request from Gamma and Beta, and does not merge Alpha's request....

At the end of all this, HLT responsible Z needs to, with the WG liaisons, prepare the relevant HLT Settings files on top of all this and release the correct mixture of what we are happy with for use in the pit

Contact: Vava

Description:

Frequency:

Priority:

Assuming X merged the requests from Gamma and Beta, there is now a branch with their changes included. Z creates a new branch on top of this branch, and adds the required further changes, which results in yet another merge request. This merge request is then accepted and the basis for a release. (note: this assumes all changes are within a single repo -- the multiple repo version needs further thought.)

Analysis Uses Cases

All LHCb developers are using old Moore, DaVinci, and Stripping versions in parallel with their development of the new code.

Contact: Vava

Description: This is needed to reprocess old data in one way or another, and need all this to happily coexist in a reasonably sized cmtuser directory.

Frequency:

Priority:

Workflow: Old code remains 'as is' in old repositories, so no action is needed....

Data Analyst modifies a package and ships it to the Grid with Ganga

Contact: Roel

Description: It is not uncommon for Analysts to have to fix/improve DecayTreeTuple Tools. They check out a few packages whcih they modify and ship to the grid with their jobs using Ganga. Would it be possible to do this with a whole project ?

Frequency: High

Priority: High (Can't customize DecayTreeTuple otherwise)

-- BenjaminCouturier - 2015-11-23

Edit | Attach | Watch | Print version | History: r11 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2015-11-23 - GerhardRaven
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback