Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • Allen Allen
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 192
    • Issues 192
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Jira
    • Jira
  • Merge requests 80
    • Merge requests 80
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • LHCbLHCb
  • AllenAllen
  • Merge requests
  • !1149

TCKs for HLT1

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Roel Aaij requested to merge standalone_property_default_values into master Mar 11, 2023
  • Overview 36
  • Commits 38
  • Pipelines 38
  • Changes 79

Support creation of TCKs corresponding to an Allen configuration and configuration of Allen from TCKs (only in stack builds).

  • TCKs can be created with Rec/Allen/scripts/create_hlt1_tck.py
  • A TCK can be used by passing --sequence repository.git:TCK to Allen or allen.py
  • --run-from-json is gone, pass --sequence some_file.json instead.

create_hlt1_tck.py takes three required arguments: sequence, repository and tck; and an optional --label=some_label argument. Sequence can be:

  • a JSON file
  • the name of the python module in AllenSequences
  • a python file

A small python module built with pybind11 has been added (for stack builds) that allows retrieval of a JSON configuration from a git repository. Since the layout of the JSON is not the same as what Allen expects, it is converted to an Allen configuration before being used. An inverse conversion is applied when creating a TCK from an Allen configuration. The hlttck_cdb_listkeys tool is used to insert new TCKs into a git repository.

A prerequisite was to have all default properties in both the JSON files and the Python configuration views. To achieve that, the implementation of the AlgorithmDB has been moved to a cpp file and it has been added to the Stream library. This allows algorithms to be instantiated from different compilation units.

A default_properties executable has been added that is passed a ;-separated list of algorithm namespace::type through stdin, instantiates each algorithm and retrieves its properties. Properties are saved to a JSON representation as strings with the algorithm namespace::type as key. This JSON representation is used to add the property default values to their Python views - as an appropriate Python object - when the views are generated. This is the only way to properly support custom serializers (to and from JSON) for algorithm properties.

Please note that TCKs for MC productions are not yet supported. Support will come at the same time as (or very quickly after) support of TCKs in HLT2.

Depends on LHCb!4050

Needed for MooreOnline!212

Closes #366

FYI @mfontana @cagapopo

TODO:

  • Add tests that create TCKs and compare them to the respective JSON configuration files
  • Add a test that compares the TCK to a JSON file written by Allen using --write-configuration some_file.json
Edited May 23, 2023 by Roel Aaij
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: standalone_property_default_values