owl

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2021 License: BSD-3-Clause Imports: 26 Imported by: 0

README

owl

owl eases the docker-based development of Athena.

owl provides a simple (but opinionated) set of commands to setup a local workarea to develop Athena components.

Installation

If you have a Go compiler installed, installing owl is as simple as:

$> go install -v gitlab.cern.ch/binet/owl
go: downloading gitlab.cern.ch/binet/owl v0.0.0-20211014165214-8a6fc7c6457d
github.com/gonuts/flag
github.com/gonuts/commander
gitlab.cern.ch/binet/owl

$> owl
owl - toolbox to manage a workarea

Commands:

    co          clone a repository to the source area
    config      configure a local build area for development
    init        initialize a workarea suitable for development
    make        build a local area
    pkg-add     add a package to the list of packages to build
    pkg-ls      list all packages matching an optional regexp
    pkg-rm      remove a set of packages
    pkg-show    display the list of packages to build
    run         run a command inside the dev-containter
    shell       start an interactive shell inside the dev-containter

Use "owl help <command>" for more information about a command.

Example

$> cd /some/where
$> owl init Athena,latest,master
owl: building image "owl-env"... (with="Athena,latest,master")
owl: pulling base image "atlas/centos7-atlasos-dev"...
owl: building image "owl-dev"...

$> owl co ssh://git@gitlab.cern.ch:7999/binet/athena.git
Cloning into 'athena'...
warning: unable to find all commit-graph files
remote: warning: unable to find all commit-graph files
remote: Enumerating objects: 1271500, done.
remote: Counting objects: 100% (32365/32365), done.
remote: Compressing objects: 100% (1729/1729), done.
remote: Total 1271500 (delta 31668), reused 30636 (delta 30636), pack-reused 1239135
Receiving objects: 100% (1271500/1271500), 423.28 MiB | 15.38 MiB/s, done.
Resolving deltas: 100% (951095/951095), done.
Updating files: 100% (58900/58900), done.

$> owl pkg-ls | wc -l
1986

$> owl pkg-ls StoreGate
Control/AthenaExamples/AthExStoreGateExample
Control/StoreGate
Control/StoreGateBindings
Control/StoreGateTests

$> owl pkg-add StoreGate
owl: adding "Control/StoreGate"...

$> owl pkg-add AthenaKernel StoreGateTests
owl: adding "Control/AthenaKernel"...
owl: adding "Control/StoreGateTests"...

$> owl pkg-show
Control/AthenaKernel
Control/StoreGate
Control/StoreGateTests

$> owl pkg-rm StoreGateTests
$> owl pkg-show
Control/AthenaKernel
Control/StoreGate

$> owl config
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/lcg/gcc/8.3.0-cebb0/x86_64-centos7/bin/gcc - skipped
[...]
-- Configuring done
-- Generating done
-- Build files have been written to: /owl/workarea/build

$> owl make
[  1%] Building CXX object Control/StoreGate/CMakeFiles/StoreGateLib.dir/src/ActiveStoreSvc.cxx.o
[  2%] Building CXX object Control/StoreGate/CMakeFiles/StoreGateLib.dir/src/ReadCondHandle.cxx.o
[...]
[ 98%] Built target atlas_tests
[100%] Linking CXX shared library ../../x86_64-centos7-gcc8-opt/lib/libSGtests.so
Detaching debug info of libSGtests.so into libSGtests.so.dbg
[100%] Built target SGtests
[100%] Built target Package_StoreGate

$> owl run athena GaudiSequencer/test_athsequencer.py
Fri Oct 15 18:20:39 CEST 2021
Preloading tcmalloc_minimal.so
Py:Athena            INFO including file "AthenaCommon/Preparation.py"
Py:Athena            INFO using release [Athena-22.0.46] [x86_64-centos7-gcc8-opt] [master/daa4c166ef2] -- built on [2021-10-14T2101]
Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
Py:Athena            INFO executing ROOT6Setup
Py:Athena            INFO including file "AthenaCommon/Execution.py"
Py:Athena            INFO including file "GaudiSequencer/test_athsequencer.py"
Py:ConfigurableDb    INFO Read module info for 5082 configurables from 2 genConfDb files
Py:ConfigurableDb    INFO No duplicates have been found: that's good !
Py:Athena            INFO including file "AthenaCommon/runbatch.py"
[...]
Py:PerfMonSvc        INFO Writing out collected data... [athsequencer.pmon.gz] =>    5.429 kb
ApplicationMgr       INFO Application Manager Finalized successfully
ApplicationMgr       INFO Application Manager Terminated successfully
Py:Athena            INFO leaving with code 0: "successful run"

$> owl shell
[bash][atlas]:workdir > which athena
/cvmfs/atlas-nightlies.cern.ch/repo/sw/master_Athena_x86_64-centos7-gcc8-opt/2021-10-14T2101/Athena/22.0.46/InstallArea/x86_64-centos7-gcc8-opt/bin/athena
[bash][atlas]:workdir > ^D
$> 

Documentation

Overview

Command owl eases the development workflow of Atlas packages

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL