Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • holau/Gaudi
  • dmagdali/Gaudi
  • pmunozpa/Gaudi
  • ssottoco/Gaudi
  • cvarni/Gaudi
  • mafila/Gaudi
  • admorris/Gaudi
  • staider/Gaudi
  • gunther/Gaudi
  • bstanisl/Gaudi
  • jtorasso/Gaudi
  • wochung/Gaudi
  • mveghel/Gaudi
  • averbyts/Gaudi
  • dguest/Gaudi
  • alboyer/Gaudi
  • dkonst/Gaudi
  • jcarcell/Gaudi
  • elmsheus/Gaudi
  • hpxgaudi/Gaudi
  • ganis/Gaudi
  • tadej/Gaudi
  • hahansen/Gaudi
  • juesseiv/Gaudi
  • imjelde/gaudida
  • jheuel/Gaudi
  • mimazure/Gaudi
  • masato/Gaudi
  • dcasperfaser/Gaudi
  • faser/offline/Gaudi
  • axu/Gaudi
  • sailer/Gaudi
  • amete/Gaudi
  • ponyisi/Gaudi
  • vavolkl/Gaudi
  • mstahl/Gaudi
  • wlampl/Gaudi
  • kreczko/Gaudi
  • emoyse/Gaudi
  • dhynds/Gaudi
  • sstahl/Gaudi
  • rcurrie/Gaudi
  • smh/Gaudi
  • valassi/Gaudi
  • bwynne/Gaudi_gaudi
  • abarton/Gaudi
  • tsulaia/gaudigaudi
  • mnowak/Gaudi
  • roiser/Gaudi
  • merrenst/Gaudi
  • mato/Gaudi
  • christos/Gaudi
  • goetz/Gaudi
  • goetz/AtlasGaudi
  • tsulaia/atlasgaudi
  • olupton/Gaudi
  • pseyfert/Gaudi
  • graemes/Gaudi
  • akraszna/AtlasGaudi
  • cattanem/Gaudi
  • skluth/Gaudi
  • will/Gaudi
  • ssnyder/Gaudi
  • agonzale/Gaudi
  • leggett/AtlasGaudi
  • apearce/Gaudi
  • mnowak/Gaudi-ORIG
  • fwinkl/AtlasGaudi
  • bwynne/Gaudi_atlas
  • chamont/Gaudi
  • rmatev/Gaudi
  • lhcb/Gaudi
  • atlas/Gaudi
  • akraszna/GaudiGaudi
  • fwinkl/Gaudi
  • jonrob/Gaudi
  • azaborow/Gaudi
  • clemenci/Gaudi
  • hgraslan/Gaudi
  • srimanob/Gaudi
  • graven/Gaudi
  • hegner/Gaudi
  • gaudi/Gaudi
83 results
Show changes
Commits on Source (117)
Showing
with 392 additions and 216 deletions
...@@ -113,6 +113,13 @@ Standard: Cpp11 ...@@ -113,6 +113,13 @@ Standard: Cpp11
TabWidth: 8 TabWidth: 8
UseTab: Never UseTab: Never
--- ---
Language: Json
IndentWidth: 4
ColumnLimit: 120
---
Language: JavaScript
ColumnLimit: 120
---
Language: ObjC Language: ObjC
# Don't format Objective-C, Objective-C++ files. # Don't format Objective-C, Objective-C++ files.
DisableFormat: true DisableFormat: true
......
[flake8] [flake8]
select = F,E101,E7,E9,W6 select = F,E101,E7,E9,W6
extend-ignore = E741 extend-ignore = E741
exclude = */options/* exclude = */options/*
\ No newline at end of file
##################################################################################### #####################################################################################
# (c) Copyright 1998-2020 CERN for the benefit of the LHCb and ATLAS collaborations # # (c) Copyright 1998-2023 CERN for the benefit of the LHCb and ATLAS collaborations #
# # # #
# This software is distributed under the terms of the Apache version 2 licence, # # This software is distributed under the terms of the Apache version 2 licence, #
# copied verbatim in the file "LICENSE". # # copied verbatim in the file "LICENSE". #
...@@ -9,30 +9,26 @@ ...@@ -9,30 +9,26 @@
# or submit itself to any jurisdiction. # # or submit itself to any jurisdiction. #
##################################################################################### #####################################################################################
variables: variables:
LCG_VERSION: "101"
CMAKE_GENERATOR: 'Ninja' # default build system CMAKE_GENERATOR: 'Ninja' # default build system
NO_LBLOGIN: "1" # prevent lbdocker containers to start LbLogin/LbEnv
TARGET_BRANCH: master TARGET_BRANCH: master
# All the configuration
default:
image: gitlab-registry.cern.ch/lhcb-core/lbdocker/centos7-build
before_script:
# Add Ninja and CMake to the PATH
- export PATH="/cvmfs/sft.cern.ch/lcg/contrib/CMake/3.18.3/Linux-x86_64/bin:/cvmfs/sft.cern.ch/lcg/contrib/ninja/1.10.0/Linux-x86_64:$PATH"
- export CCACHE_DIR=$PWD/.ccache
- export PRESET=full
# Job templates # Job templates
.build: &template_build .build: &template_build
tags: tags:
- cvmfs - cvmfs
image: gitlab-registry.cern.ch/lhcb-docker/os-base/centos7-devel:latest
before_script:
# Add Ninja and CMake to the PATH
- export PATH="/cvmfs/sft.cern.ch/lcg/contrib/CMake/3.20.0/Linux-$(uname -m)/bin:/cvmfs/sft.cern.ch/lcg/contrib/ninja/1.11.1/Linux-$(uname -m)/bin:$PATH"
- export CCACHE_DIR=$PWD/.ccache
- "export LCG_VERSION=$(cut -d: -f2 <<< $CI_JOB_NAME)"
- "export platform=$(cut -d: -f3 <<< $CI_JOB_NAME)"
- "export PRESET=$(cut -d: -f4 <<< $CI_JOB_NAME)"
- if [ -z "$PRESET" ] ; then PRESET=full ; fi
script: script:
- platform=${CI_JOB_NAME%/*}
- if [[ "${CI_JOB_NAME}" = */* ]] ; then PRESET=${CI_JOB_NAME#*/} ; fi
- git clone https://gitlab.cern.ch/lhcb-core/lcg-toolchains.git - git clone https://gitlab.cern.ch/lhcb-core/lcg-toolchains.git
- cmake --version - cmake --version
- cmake -S . -B build -Wno-dev -DCMAKE_TOOLCHAIN_FILE=lcg-toolchains/LCG_${LCG_VERSION}/${platform}.cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -C ci-utils/preset-${PRESET}.cmake - cmake -S . -B build -Wno-dev -DCMAKE_TOOLCHAIN_FILE=lcg-toolchains/LCG_${LCG_VERSION}/${platform}.cmake -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DGAUDI_TEST_PUBLIC_HEADERS_BUILD=yes -C ci-utils/preset-${PRESET}.cmake
- ccache -z - ccache -z
# pre-heat ccache cache for GaudiKernel # pre-heat ccache cache for GaudiKernel
- jobs=$(nproc) - jobs=$(nproc)
...@@ -42,104 +38,78 @@ default: ...@@ -42,104 +38,78 @@ default:
- done - done
# build from scratch # build from scratch
- cmake --build build --target clean - cmake --build build --target clean
- cmake --build build 2>&1 | tee build/build.log - cmake --build build 2>&1 | tee build.log
- ccache -s - ccache -s
artifacts: - cp build/compile_commands.json .
paths: # run the tests
- build
- lcg-toolchains
expire_in: 1 week
cache:
key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths:
- .ccache
.build-check: &template_build_check
variables:
LOG: build/build.log
script:
- ci-utils/build-check ${LOG}
allow_failure: true
.test: &template_test
tags:
- cvmfs
script:
- find build -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake
- cd build - cd build
- if ctest -T test -j $(nproc) --repeat until-pass:3 --no-compress-output ; then result=success ; else result=failure ; fi - if ctest -T test -j $(nproc) --repeat until-pass:3 --no-compress-output ; then result=success ; else result=failure ; fi
- cp Testing/$(head -1 Testing/TAG)/Test.xml .. - cp Testing/$(head -1 Testing/TAG)/Test.xml ..
- cd .. - cd ..
- xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml - xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml
- echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml" - echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml"
- test "$result" = "success" # FIXME: Many tests require AIDA, so we ignore them in that case
- test "$PRESET" = "no-AIDA" -o "$result" = "success"
artifacts: artifacts:
paths: paths:
- build.log
- compile_commands.json
- Test.xml - Test.xml
reports: reports:
junit: junit:
- results.xml - results.xml
when: always when: always
expire_in: 1 week expire_in: 1 week
.test_headers: &template_test_headers
tags:
- cvmfs
script:
- export CCACHE_DIR=$PWD/.ccache_headers
- find build -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake
- ccache -z
- cmake --build build --target test_public_headers_build 2>&1 | tee build/test_public_headers_build.log
- ccache -s
artifacts:
paths:
- build/test_public_headers_build.log
when: always
expire_in: 1 week
cache: cache:
key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
paths: paths:
- .ccache_headers - .ccache
- build/Testing
.warnings-check: &template_warnings_check
image: gitlab-registry.cern.ch/linuxsupport/alma9-base:latest
variables:
LOG: build.log
script:
- ci-utils/build-check ${LOG}
allow_failure: true
### Build ### Build
x86_64-centos7-gcc11-opt: lcg:103:x86_64-centos7-gcc12-opt:
<<: *template_build <<: *template_build
x86_64-centos7-gcc11-dbg: lcg:103:x86_64-centos7-gcc12-dbg:
<<: *template_build <<: *template_build
x86_64-centos7-gcc11-opt/minimal: lcg:103:x86_64-centos9-gcc12-opt:
<<: *template_build <<: *template_build
image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
view-gcc8: lcg:103:x86_64-centos9-gcc12-dbg:
<<: *template_build <<: *template_build
script: image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/x86_64-centos7-gcc8-opt/setup.sh
- cmake --version
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- ccache -z
# pre-heat ccache cache for GaudiKernel
- jobs=$(nproc)
- while [[ $jobs -ge 1 ]] ; do
- cmake --build build -j $jobs --target GaudiKernel && break || true
- jobs=$(( $jobs / 2 ))
- done
# build from scratch
- cmake --build build --target clean
- cmake --build build 2>&1 | tee build/build.log
- ccache -s
lhcb-gcc11: lcg:103:x86_64-centos7-gcc11-opt:minimal:
<<: *template_build <<: *template_build
variables:
BINARY_TAG: x86_64_v2-centos7-gcc11-opt lcg:103:x86_64-centos7-gcc11-opt:no-AIDA:
<<: *template_build
lcg:103:x86_64-centos7-gcc12-opt:no-GaudiAlg:
<<: *template_build
lhcb:103:x86_64_v2-el9-gcc12-opt:
<<: *template_build
image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
script: script:
- shopt -s expand_aliases
- . /cvmfs/lhcb.cern.ch/lib/LbEnv - . /cvmfs/lhcb.cern.ch/lib/LbEnv
- cmake --version - cmake --version
- lb-set-platform $platform
- lb-project-init --overwrite - lb-project-init --overwrite
- ccache -z - ccache -z
- mkdir build.${BINARY_TAG} - mkdir build.${BINARY_TAG}
- if [ -e build/Testing ] ; then mv build/Testing build.${BINARY_TAG} ; fi
# pre-heat ccache cache for GaudiKernel # pre-heat ccache cache for GaudiKernel
- jobs=$(nproc) - jobs=$(nproc)
- while [[ $jobs -ge 1 ]] ; do - while [[ $jobs -ge 1 ]] ; do
...@@ -148,129 +118,118 @@ lhcb-gcc11: ...@@ -148,129 +118,118 @@ lhcb-gcc11:
- done - done
# build from scratch # build from scratch
- make clean - make clean
- make 2>&1 | tee build.${BINARY_TAG}/build.log - make 2>&1 | tee build.log
- ccache -s - ccache -s
artifacts: # run the tests
paths:
- build.${BINARY_TAG}
expire_in: 1 week
### Tests
x86_64-centos7-gcc11-opt:test:
<<: *template_test
needs:
- job: "x86_64-centos7-gcc11-opt"
artifacts: true
x86_64-centos7-gcc11-opt:test_headers:
<<: *template_test_headers
needs:
- job: "x86_64-centos7-gcc11-opt"
artifacts: true
x86_64-centos7-gcc11-dbg:test:
<<: *template_test
needs:
- job: "x86_64-centos7-gcc11-dbg"
artifacts: true
x86_64-centos7-gcc11-dbg:test_headers:
<<: *template_test_headers
needs:
- job: "x86_64-centos7-gcc11-dbg"
artifacts: true
view-gcc8:test:
<<: *template_test
needs:
- job: "view-gcc8"
artifacts: true
before_script:
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/x86_64-centos7-gcc8-opt/setup.sh
lhcb-gcc11:test:
<<: *template_test
needs:
- job: "lhcb-gcc11"
artifacts: true
variables:
BINARY_TAG: x86_64_v2-centos7-gcc11-opt
script:
- . /cvmfs/lhcb.cern.ch/lib/LbEnv
- lb-project-init --overwrite
- find build.${BINARY_TAG} -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake
- if make test ARGS="-j $(nproc) --repeat until-pass:3 --no-compress-output" ; then result=success ; else result=failure ; fi - if make test ARGS="-j $(nproc) --repeat until-pass:3 --no-compress-output" ; then result=success ; else result=failure ; fi
- cp build.${BINARY_TAG}/Testing/$(head -1 build.${BINARY_TAG}/Testing/TAG)/Test.xml . - cp build.${BINARY_TAG}/Testing/$(head -1 build.${BINARY_TAG}/Testing/TAG)/Test.xml .
- mkdir -p build && mv build.${BINARY_TAG}/Testing build
- cp build.${BINARY_TAG}/compile_commands.json .
- mv build.${BINARY_TAG}/html . - mv build.${BINARY_TAG}/html .
- xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml - xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml
- echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml" - echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml"
- test "$result" = "success" - test "$result" = "success"
artifacts: artifacts:
paths: paths:
- build.log
- compile_commands.json
- Test.xml - Test.xml
- html - html
reports: reports:
junit: junit:
- results.xml - results.xml
when: always when: always
expire_in: 1 day expire_in: 1 week
lcg-view:102b:x86_64-centos7-gcc11-opt:
<<: *template_build
script:
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/${platform}/setup.sh
- export CONFIGURABLE_DB_IGNORE=/cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/${platform}/lib/Gaudi.confdb
- cmake --version
- cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- ccache -z
# pre-heat ccache cache for GaudiKernel
- jobs=$(nproc)
- while [[ $jobs -ge 1 ]] ; do
- cmake --build build -j $jobs --target GaudiKernel && break || true
- jobs=$(( $jobs / 2 ))
- done
# build from scratch
- cmake --build build --target clean
- cmake --build build 2>&1 | tee build.log
- ccache -s
- cp build/compile_commands.json .
# run the tests
- cd build
- if ctest -T test -j $(nproc) --repeat until-pass:3 --no-compress-output ; then result=success ; else result=failure ; fi
- cp Testing/$(head -1 Testing/TAG)/Test.xml ..
- cd ..
- xsltproc ci-utils/CTest2JUnit.xslt Test.xml > results.xml
- echo "Test results can be browsed at https://lhcb-nightlies.web.cern.ch/utils/test_report?url=${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/raw/Test.xml"
- test "$result" = "success"
### Check build outputs ### Check build outputs
x86_64-centos7-gcc11-opt:build-check: warnings-check:lcg:103:x86_64-centos7-gcc12-opt:
<<: *template_build_check <<: *template_warnings_check
needs: needs:
- job: "x86_64-centos7-gcc11-opt" - job: "lcg:103:x86_64-centos7-gcc12-opt"
artifacts: true artifacts: true
x86_64-centos7-gcc11-dbg:build-check: warnings-check:lcg:103:x86_64-centos7-gcc12-dbg:
<<: *template_build_check <<: *template_warnings_check
needs: needs:
- job: "x86_64-centos7-gcc11-dbg" - job: "lcg:103:x86_64-centos7-gcc12-dbg"
artifacts: true artifacts: true
x86_64-centos7-gcc11-opt:build-headers-check: warnings-check:lcg:103:x86_64-centos9-gcc12-opt:
<<: *template_build_check <<: *template_warnings_check
variables:
LOG: build/test_public_headers_build.log
needs: needs:
- job: "x86_64-centos7-gcc11-opt:test_headers" - job: "lcg:103:x86_64-centos9-gcc12-opt"
artifacts: true artifacts: true
x86_64-centos7-gcc11-dbg:build-headers-check: warnings-check:lcg:103:x86_64-centos9-gcc12-dbg:
<<: *template_build_check <<: *template_warnings_check
variables:
LOG: build/test_public_headers_build.log
needs: needs:
- job: "x86_64-centos7-gcc11-dbg:test_headers" - job: "lcg:103:x86_64-centos9-gcc12-dbg"
artifacts: true artifacts: true
view-gcc8:build-check: warnings-check:lcg:103:x86_64-centos7-gcc11-opt:minimal:
<<: *template_build_check <<: *template_warnings_check
needs: needs:
- job: "view-gcc8" - job: "lcg:103:x86_64-centos7-gcc11-opt:minimal"
artifacts: true artifacts: true
lhcb-gcc11:build-check: warnings-check:lcg:103:x86_64-centos7-gcc12-opt:no-GaudiAlg:
<<: *template_build_check <<: *template_warnings_check
needs: needs:
- job: "lhcb-gcc11" - job: "lcg:103:x86_64-centos7-gcc12-opt:no-GaudiAlg"
artifacts: true
warnings-check:lhcb:103:x86_64_v2-el9-gcc12-opt:
<<: *template_warnings_check
needs:
- job: "lhcb:103:x86_64_v2-el9-gcc12-opt"
artifacts: true
warnings-check:lcg-view:102b:x86_64-centos7-gcc11-opt:
<<: *template_warnings_check
needs:
- job: "lcg-view:102b:x86_64-centos7-gcc11-opt"
artifacts: true artifacts: true
variables:
BINARY_TAG: x86_64_v2-centos7-gcc11-opt
script:
- ci-utils/build-check build.${BINARY_TAG}/build.log
### Misc checks ### Misc checks
x86_64-centos7-gcc11-opt:check-unused: lcg:103:x86_64-centos7-gcc12-opt:check-unused:
image: gitlab-registry.cern.ch/lhcb-docker/os-base/alma9-devel:latest
needs: needs:
- job: "x86_64-centos7-gcc11-opt" - job: "lcg:103:x86_64-centos7-gcc12-opt"
artifacts: true artifacts: true
script: script:
- ci-utils/check-sources build/build.ninja - ci-utils/check-sources compile_commands.json
allow_failure: true allow_failure: true
pre-commit-checks: pre-commit-checks:
image: registry.cern.ch/docker.io/library/python:3.8 image: registry.cern.ch/docker.io/library/python:3.9
variables: variables:
PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
cache: cache:
...@@ -290,7 +249,7 @@ pre-commit-checks: ...@@ -290,7 +249,7 @@ pre-commit-checks:
echo "" echo ""
echo "Generating patch file..." echo "Generating patch file..."
git commit -a -m "pre-commit fixes git commit -a -m "pre-commit fixes
patch generated by ${CI_JOB_URL}" > /dev/null patch generated by ${CI_JOB_URL}" > /dev/null
git format-patch HEAD~ git format-patch HEAD~
cat <<EOF cat <<EOF
...@@ -310,13 +269,23 @@ pre-commit-checks: ...@@ -310,13 +269,23 @@ pre-commit-checks:
expire_in: 1 week expire_in: 1 week
check-copyright: check-copyright:
image: gitlab-registry.cern.ch/ci-tools/ci-worker:cc7 image: registry.cern.ch/docker.io/library/python:3.9
script: script:
- curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/-/raw/master/LbDevTools/SourceTools.py?inline=false" - |
- python lb-check-copyright --exclude lhcbproject.yml --exclude ci-utils/preset-default.cmake --exclude ci-utils/preset-full.cmake --exclude ci-utils/preset-minimal.cmake --exclude ci-utils/preset-no-test.cmake origin/${TARGET_BRANCH} curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/-/raw/master/LbDevTools/SourceTools.py?inline=false"
python lb-check-copyright \
--exclude lhcbproject.yml \
--exclude ci-utils/preset-default.cmake \
--exclude ci-utils/preset-full.cmake \
--exclude ci-utils/preset-minimal.cmake \
--exclude ci-utils/preset-no-AIDA.cmake \
--exclude ci-utils/preset-no-GaudiAlg.cmake \
--exclude ci-utils/preset-no-test.cmake \
origin/${TARGET_BRANCH}
website: website:
image: python image: registry.cern.ch/docker.io/library/python:3.9
script: script:
- rm -rf public - rm -rf public
- mkdir -p public - mkdir -p public
...@@ -329,35 +298,29 @@ website: ...@@ -329,35 +298,29 @@ website:
- public - public
expire_in: 1 day expire_in: 1 day
doxygen: doxygen:103:x86_64-centos7-gcc12-opt:
tags: <<: *template_build
- cvmfs
needs:
- job: "view-gcc8"
artifacts: true
script: script:
- . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/x86_64-centos7-gcc8-opt/setup.sh - . /cvmfs/sft.cern.ch/lcg/views/LCG_${LCG_VERSION}/${platform}/setup.sh
- find build -type f -exec touch -d $(date +@%s) \{} \; # not to re-run cmake - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
- cmake --build build --target doc - cmake --build build --target doc
- rm -rf public - rm -rf public
- mkdir -p public/doxygen - mkdir -p public/doxygen
- cp -r GaudiRelease/web_helpers/. public/doxygen/. - cp -r GaudiRelease/web_helpers/. public/doxygen/.
- mv build/doxygen/html ${CI_COMMIT_REF_SLUG} - mv build/doxygen/html ${CI_COMMIT_REF_SLUG}
- zip -r -q public/doxygen/${CI_COMMIT_REF_SLUG}.zip ${CI_COMMIT_REF_SLUG} - zip -r -q public/doxygen/${CI_COMMIT_REF_SLUG}.zip ${CI_COMMIT_REF_SLUG}
artifacts: artifacts:
paths: paths:
- public - public
expire_in: 1 day expire_in: 1 day
# see https://gitlab.cern.ch/gitlabci-examples/deploy_eos for the details # see https://gitlab.cern.ch/gitlabci-examples/deploy_eos for the details
# of the configuration # of the configuration
deploy-website: deploy-website:
needs: needs:
- job: "website" - job: "website"
artifacts: true artifacts: true
- job: "doxygen" - job: "doxygen:103:x86_64-centos7-gcc12-opt"
artifacts: true artifacts: true
rules: rules:
- if: $CI_COMMIT_BRANCH == "master" - if: $CI_COMMIT_BRANCH == "master"
...@@ -372,4 +335,3 @@ deploy-website: ...@@ -372,4 +335,3 @@ deploy-website:
# do not run any globally defined before_script or after_script for this step # do not run any globally defined before_script or after_script for this step
before_script: [] before_script: []
after_script: [] after_script: []
repos: repos:
- repo: https://github.com/ssciwr/clang-format-precommit - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v13.0.0 rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: "\\.clang-format$"
- id: check-added-large-files
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v16.0.6
hooks: hooks:
- id: clang-format - id: clang-format
- id: clang-format - id: clang-format
...@@ -8,7 +16,7 @@ repos: ...@@ -8,7 +16,7 @@ repos:
types_or: [file] types_or: [file]
files: \.(icc|icpp)$ files: \.(icc|icpp)$
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 22.3.0 rev: 23.9.1
hooks: hooks:
- id: black - id: black
- repo: https://github.com/pycqa/isort - repo: https://github.com/pycqa/isort
...@@ -16,6 +24,6 @@ repos: ...@@ -16,6 +24,6 @@ repos:
hooks: hooks:
- id: isort - id: isort
- repo: https://github.com/pycqa/flake8 - repo: https://github.com/pycqa/flake8
rev: 6.0.0 rev: 6.1.0
hooks: hooks:
- id: flake8 - id: flake8
...@@ -5,6 +5,70 @@ Project Coordinators: Marco Clemencic @clemenci, Charles Leggett @leggett ...@@ -5,6 +5,70 @@ Project Coordinators: Marco Clemencic @clemenci, Charles Leggett @leggett
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
## [v37r0](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v37r0) - 2023-09-14
This is the first major release of Gaudi in a while. This was made necessary to be able to incorporate
a number of backward incompatible changes that have been kept in the backburner until now.
The main (backward incompatible) changes are:
- clean up and improvements to the new monitoring infrastructure
- custom sinks have to be adapted
- drop of `LIKELY` and `UNLIKELY` preprocessor macros
- they have been deprecated for long, but waiting for a major release to effectively
remove the implementation
- make the subdirectory `GaudiAlg` optional
- still enabled by default, it's not really backward incompatible, but the refactoring
implies that some minor adaptations might be needed in downstream code
Since this a major release we took the occasion to update the versions of the hooks in
`pre-commit-config.yaml` and that caused some minor changes in the formatting.
In addition we have the usual batch of fixes and some new features.
### Changed
- Update versions in `pre-commit` hooks (gaudi/Gaudi!1415)
- Remove old warning message referring to `CMT` (gaudi/Gaudi!1486)
- Cleanup, fixes and new features around monitoring sinks (gaudi/Gaudi!1439)
- Reorganize files and refactor code to make GaudiAlg optional (gaudi/Gaudi!1444)
- Dropped (UN)LIKELY macro (gaudi/Gaudi!1227)
- Update and simplify gitlab-ci (gaudi/Gaudi!1476)
### Added
- Added support for the HepPDT vesion 3 (gaudi/Gaudi!1488)
- Implement helper class for arrays of counters (gaudi/Gaudi!1484)
- Fire ContextIncident `CONNECTED_NTUPLE_OUTPUT` when opening a ntuple file in RFileCnv (gaudi/Gaudi!1478)
- Check errors in histograms unit tests on top of bin content (gaudi/Gaudi!1480)
- Add `GAUDI_PGO` CMake options to enable builds with Profile Guided Optimizations (gaudi/Gaudi!1472)
### Fixed
- Fix missing Property name in error messages (gaudi/Gaudi#265 gaudi/Gaudi!1468)
- Fix TTree output reading in tests (gaudi/Gaudi#273 gaudi/Gaudi!1489)
- Use `inspect.signature` (if possible) instead of the deprecated `getargspec` (gaudi/Gaudi!1485)
- Never rely on default Gitlab Docker image in gitlab-ci (gaudi/Gaudi!1491)
- Fix performance of Counter destructor by using appropriate containers in Sink (gaudi/Gaudi!1477)
- Hide `RdtscClock.h` to non x86_64 builds, needed for aarch64 (gaudi/Gaudi!1479)
- Minor fix in a CMake error message (gaudi/Gaudi!1481)
- GaudiMP: few minor fixes for Python3 (gaudi/Gaudi!1473)
- Fixed clang12 warnings (gaudi/Gaudi!1471)
- Fix finally helper with C++20 (gaudi/Gaudi!1475)
- Fix build with GAUDI_USE_AIDA=OFF (gaudi/Gaudi!1474)
## [v36r16](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r16) - 2023-07-28
Release requested by LHCb to backport gaudi/Gaudi!1478
### Added
- Fire ContextIncident `CONNECTED_NTUPLE_OUTPUT` when opening a ntuple file in
RFileCnv (gaudi/Gaudi!1482)
## [v36r15](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r15) - 2023-07-24
This release is needed so that LHCb can pick up a backward compatible version
of gaudi/Gaudi!1477.
### Fixed
- Fix performance of Counter destructor by using appropriate containers in Sink
(adaptation of gaudi/Gaudi!1477)
## [v36r14](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r14) - 2023-06-19 ## [v36r14](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r14) - 2023-06-19
This release features a number of minor fixes to help downstream projects This release features a number of minor fixes to help downstream projects
......
cff-version: 1.2.0
title: Gaudi
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- name: LHCb Collaboration
- name: ATLAS Collaboration
identifiers:
- type: doi
value: 10.5281/zenodo.3660963
repository-code: 'https://gitlab.cern.ch/gaudi/Gaudi'
url: 'https://cern.ch/gaudi'
abstract: >-
Gaudi is a software architecture and framework that can be
used to facilitate the development of data processing
applications for High Energy Physics experiments.
keywords:
- Gaudi
- LHCb
- ATLAS
- CERN
- HEP
- Software Framework
license: Apache-2.0
version: v37r0
date-released: '2023-09-14'
...@@ -55,6 +55,7 @@ after the configuration or use ccmake or cmake-gui. ...@@ -55,6 +55,7 @@ after the configuration or use ccmake or cmake-gui.
* For sanitized build * For sanitized build
* GAUDI_GENCONF_NO_FAIL * GAUDI_GENCONF_NO_FAIL
* Compile options * Compile options
* GAUDI_ENABLE_GAUDIALG
* GAUDI_REFLEX_COMPONENT_ALIASES * GAUDI_REFLEX_COMPONENT_ALIASES
* Doxygen * Doxygen
* DOXYGEN_WITH_LOCAL_MATHJAX * DOXYGEN_WITH_LOCAL_MATHJAX
...@@ -80,7 +81,7 @@ Maintainer's guide: `<https://twiki.cern.ch/twiki/bin/view/LHCb/MaintainGaudiCMa ...@@ -80,7 +81,7 @@ Maintainer's guide: `<https://twiki.cern.ch/twiki/bin/view/LHCb/MaintainGaudiCMa
cmake_minimum_required(VERSION 3.15) cmake_minimum_required(VERSION 3.15)
project(Gaudi VERSION 36.14 project(Gaudi VERSION 37.0
LANGUAGES CXX LANGUAGES CXX
DESCRIPTION "Gaudi Software Framework" DESCRIPTION "Gaudi Software Framework"
HOMEPAGE_URL "https://cern.ch/gaudi") HOMEPAGE_URL "https://cern.ch/gaudi")
...@@ -103,12 +104,14 @@ include(cmake/GaudiToolbox.cmake) ...@@ -103,12 +104,14 @@ include(cmake/GaudiToolbox.cmake)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable/Disable output of compile_commands.json" FORCE) set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable/Disable output of compile_commands.json" FORCE)
set(GAUDI_USE_PYTHON_MAJOR 3 CACHE STRING "Major version of Python to use") set(GAUDI_USE_PYTHON_MAJOR 3 CACHE STRING "Major version of Python to use")
set(GAUDI_OPTIONAL_DEPENDENCIES "${GAUDI_OPTIONAL_DEPENDENCIES}set(GAUDI_USE_PYTHON_MAJOR ${GAUDI_USE_PYTHON_MAJOR})\n") string(APPEND GAUDI_OPTIONAL_DEPENDENCIES "set(GAUDI_USE_PYTHON_MAJOR ${GAUDI_USE_PYTHON_MAJOR})\n")
# Find all the dependencies of the project # Find all the dependencies of the project
list(PREPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules") # (Find*.cmake) list(PREPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules") # (Find*.cmake)
include(cmake/GaudiDependencies.cmake) include(cmake/GaudiDependencies.cmake)
string(APPEND GAUDI_OPTIONAL_DEPENDENCIES "set(GAUDI_ENABLE_GAUDIALG ${GAUDI_ENABLE_GAUDIALG})\n")
# The C++ standard used must be the same as ROOT's # The C++ standard used must be the same as ROOT's
if(NOT GAUDI_CXX_STANDARD) if(NOT GAUDI_CXX_STANDARD)
# FIXME: the day ROOT_CXX_STANDARD is provided by ROOTConfig.cmake, remove this lookup # FIXME: the day ROOT_CXX_STANDARD is provided by ROOTConfig.cmake, remove this lookup
...@@ -145,6 +148,7 @@ add_subdirectory(GaudiCoreSvc) ...@@ -145,6 +148,7 @@ add_subdirectory(GaudiCoreSvc)
add_subdirectory(GaudiUtils) add_subdirectory(GaudiUtils)
add_subdirectory(Gaudi) add_subdirectory(Gaudi)
add_subdirectory(GaudiAlg) add_subdirectory(GaudiAlg)
add_subdirectory(GaudiFunctional)
add_subdirectory(GaudiAud) add_subdirectory(GaudiAud)
add_subdirectory(GaudiCommonSvc) add_subdirectory(GaudiCommonSvc)
add_subdirectory(GaudiHive) add_subdirectory(GaudiHive)
......
...@@ -35,4 +35,3 @@ gaudi_add_pytest(python/Gaudi/Main.py ...@@ -35,4 +35,3 @@ gaudi_add_pytest(python/Gaudi/Main.py
gaudi_install(PYTHON) gaudi_install(PYTHON)
# Install other scripts # Install other scripts
gaudi_install(SCRIPTS) gaudi_install(SCRIPTS)
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# Address sanitizer specific suppressions # Address sanitizer specific suppressions
# http://clang.llvm.org/docs/AddressSanitizer.html # http://clang.llvm.org/docs/AddressSanitizer.html
# #
# Note the leak sanitizer options in Gaudi-LSan.supp # Note the leak sanitizer options in Gaudi-LSan.supp
# are also used by the address sanitizer. # are also used by the address sanitizer.
# -------------------------------------------------- # --------------------------------------------------
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
# http://clang.llvm.org/docs/LeakSanitizer.html # http://clang.llvm.org/docs/LeakSanitizer.html
# -------------------------------------------------- # --------------------------------------------------
# Gaudi leaks -- Should really be looked into, but proving difficult to # Gaudi leaks -- Should really be looked into, but proving difficult to
# isolate and these errors cause a lot of noise downstream so mask # isolate and these errors cause a lot of noise downstream so mask
# until properly fixed. # until properly fixed.
#Indirect leak of 1528 byte(s) in 1 object(s) allocated from: #Indirect leak of 1528 byte(s) in 1 object(s) allocated from:
...@@ -24,7 +24,7 @@ leak:Gaudi::PluginService::v2::Details::DefaultFactory* ...@@ -24,7 +24,7 @@ leak:Gaudi::PluginService::v2::Details::DefaultFactory*
# #0 0x7fe26d832da8 in operator new(unsigned long) /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/build/contrib/gcc-8.2.0/src/gcc/8.2.0/libsanitizer/lsan/lsan_interceptors.cc:229 # #0 0x7fe26d832da8 in operator new(unsigned long) /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/build/contrib/gcc-8.2.0/src/gcc/8.2.0/libsanitizer/lsan/lsan_interceptors.cc:229
# #1 0x41082b in Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::ReturnType Gaudi::PluginService::v1::Details::Factory<Component2>::create<Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&&) ../GaudiPluginService/Gaudi/Details/PluginServiceDetailsV1.h:40 # #1 0x41082b in Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::ReturnType Gaudi::PluginService::v1::Details::Factory<Component2>::create<Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&&) ../GaudiPluginService/Gaudi/Details/PluginServiceDetailsV1.h:40
# #2 0x40505a in Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) ../GaudiPluginService/Gaudi/PluginServiceV1.h:62 # #2 0x40505a in Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) ../GaudiPluginService/Gaudi/PluginServiceV1.h:62
# #3 0x40505a in Base2* Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::create<char [11]>(char const (&) [11], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) ../GaudiPluginService/Gaudi/PluginServiceV1.h:69 # #3 0x40505a in Base2* Gaudi::PluginService::v1::Factory<Base2*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int>::create<char [11]>(char const (&) [11], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) ../GaudiPluginService/Gaudi/PluginServiceV1.h:69
leak:Gaudi::PluginService::v1::Factory* leak:Gaudi::PluginService::v1::Factory*
# Direct leak of 48 byte(s) in 2 object(s) allocated from: # Direct leak of 48 byte(s) in 2 object(s) allocated from:
......
...@@ -39,10 +39,10 @@ vptr:bits/shared_ptr_base.h ...@@ -39,10 +39,10 @@ vptr:bits/shared_ptr_base.h
vptr:include/tbb/task.h vptr:include/tbb/task.h
# Gaudi - listcomponents # Gaudi - listcomponents
#/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid' #/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid'
# #0 0x7f1847675979 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181 # #0 0x7f1847675979 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181
# #1 0x7f1847675b21 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_const_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:196 # #1 0x7f1847675b21 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_const_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:196
# #2 0x7f1847675b21 in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116 # #2 0x7f1847675b21 in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116
# #3 0x7f1847675b21 in boost::serialization::detail::singleton_wrapper<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::singleton_wrapper() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:147 # #3 0x7f1847675b21 in boost::serialization::detail::singleton_wrapper<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::singleton_wrapper() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:147
# #4 0x7f1847675b21 in boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:171 # #4 0x7f1847675b21 in boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::vector<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::tuple<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:171
# #5 0x7f184754d477 in __static_initialization_and_destruction_0 /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:207 # #5 0x7f184754d477 in __static_initialization_and_destruction_0 /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:207
...@@ -60,15 +60,15 @@ vptr:include/tbb/task.h ...@@ -60,15 +60,15 @@ vptr:include/tbb/task.h
# #17 0x403348 (Gaudi/InstallArea/x86_64-centos7-gcc9-dbg+ubsan/bin/listcomponents.exe+0x403348) # #17 0x403348 (Gaudi/InstallArea/x86_64-centos7-gcc9-dbg+ubsan/bin/listcomponents.exe+0x403348)
vptr:Gaudi/GaudiPluginService/src/listcomponents.cpp vptr:Gaudi/GaudiPluginService/src/listcomponents.cpp
#/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid' #/cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181:12: runtime error: reference binding to null pointer of type 'const struct extended_type_info_typeid'
# #0 0x7f1b07822066 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181 # #0 0x7f1b07822066 in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:181
# #1 0x7f1b0782220e in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_const_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:196 # #1 0x7f1b0782220e in boost::serialization::singleton<boost::serialization::extended_type_info_typeid<std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_const_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:196
# #2 0x7f1b0782220e in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116 # #2 0x7f1b0782220e in boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::oserializer() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/archive/detail/oserializer.hpp:116
# #3 0x7f1b0782220e in boost::serialization::detail::singleton_wrapper<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::singleton_wrapper() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:147 # #3 0x7f1b0782220e in boost::serialization::detail::singleton_wrapper<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::singleton_wrapper() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:147
# #4 0x7f1b0782220e in boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:171 # #4 0x7f1b0782220e in boost::serialization::singleton<boost::archive::detail::oserializer<boost::archive::text_oarchive, std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >::get_instance() /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:171
# #5 0x7f1b076f14c3 in __static_initialization_and_destruction_0 /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:207 # #5 0x7f1b076f14c3 in __static_initialization_and_destruction_0 /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.70.0-eebf1/x86_64-centos7-gcc9-dbg/include/boost/serialization/singleton.hpp:207
# #6 0x7f1b076f2f44 in _GLOBAL__sub_I_TestSerializationAlgo.cpp Online/ZeroMQ/component/TestSerializationAlgo.cpp:99 # #6 0x7f1b076f2f44 in _GLOBAL__sub_I_TestSerializationAlgo.cpp Online/ZeroMQ/component/TestSerializationAlgo.cpp:99
# #7 0x7f1b141079b2 in _dl_init_internal (/lib64/ld-linux-x86-64.so.2+0xf9b2) # #7 0x7f1b141079b2 in _dl_init_internal (/lib64/ld-linux-x86-64.so.2+0xf9b2)
# #8 0x7f1b1410c58d in dl_open_worker (/lib64/ld-linux-x86-64.so.2+0x1458d) # #8 0x7f1b1410c58d in dl_open_worker (/lib64/ld-linux-x86-64.so.2+0x1458d)
# #9 0x7f1b141077c3 in _dl_catch_error (/lib64/ld-linux-x86-64.so.2+0xf7c3) # #9 0x7f1b141077c3 in _dl_catch_error (/lib64/ld-linux-x86-64.so.2+0xf7c3)
# #10 0x7f1b1410bb7a in _dl_open (/lib64/ld-linux-x86-64.so.2+0x13b7a) # #10 0x7f1b1410bb7a in _dl_open (/lib64/ld-linux-x86-64.so.2+0x13b7a)
......
...@@ -63,7 +63,6 @@ def _fillConfDict(): ...@@ -63,7 +63,6 @@ def _fillConfDict():
) )
pass pass
del dups del dups
log.warning("Fix your cmt/requirements file !!")
pass pass
else: else:
log.debug("No duplicates have been found: that's good !") log.debug("No duplicates have been found: that's good !")
......
...@@ -213,9 +213,8 @@ def _getAllOpts_old(explicit_defaults=False): ...@@ -213,9 +213,8 @@ def _getAllOpts_old(explicit_defaults=False):
) )
for p, v in items: for p, v in items:
# Note: AthenaCommon.Configurable does not have Configurable.PropertyReference # Note: AthenaCommon.Configurable does not have Configurable.PropertyReference
if ( if hasattr(Configurable, "PropertyReference") and isinstance(
hasattr(Configurable, "PropertyReference") v, Configurable.PropertyReference
and type(v) == Configurable.PropertyReference
): ):
# this is done in "getFullName", but the exception is ignored, # this is done in "getFullName", but the exception is ignored,
# so we do it again to get it # so we do it again to get it
......
...@@ -14,16 +14,16 @@ def test(): ...@@ -14,16 +14,16 @@ def test():
allConfigurables = GaudiKernel.Configurable.Configurable.allConfigurables allConfigurables = GaudiKernel.Configurable.Configurable.allConfigurables
allConfigurables.clear() allConfigurables.clear()
from Configurables import MyGaudiAlgorithm from Configurables import MyAlgorithm
assert not allConfigurables assert not allConfigurables
alg = MyGaudiAlgorithm() alg = MyAlgorithm()
assert len(allConfigurables) == 1 assert len(allConfigurables) == 1
assert "MyGaudiAlgorithm.PrivToolHandle" not in allConfigurables assert "MyAlgorithm.PrivToolHandle" not in allConfigurables
_ = alg.PrivToolHandle _ = alg.PrivToolHandle
assert "MyGaudiAlgorithm.PrivToolHandle" in allConfigurables assert "MyAlgorithm.PrivToolHandle" in allConfigurables
assert "ToolSvc.PrivToolHandle" not in allConfigurables assert "ToolSvc.PrivToolHandle" not in allConfigurables
print(list(allConfigurables)) print(list(allConfigurables))
......
...@@ -12,4 +12,4 @@ from Gaudi.Configuration import AuditorSvc, importOptions ...@@ -12,4 +12,4 @@ from Gaudi.Configuration import AuditorSvc, importOptions
importOptions("test_purge2.opts") importOptions("test_purge2.opts")
AuditorSvc().Auditors += ["TimingAuditor/TIMER"] AuditorSvc().Auditors += ["AlgTimingAuditor/TIMER"]
AuditorSvc.Auditors = {"ChronoAuditor"}; AuditorSvc.Auditors = {"ChronoAuditor"};
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
from pprint import PrettyPrinter from pprint import PrettyPrinter
pp = PrettyPrinter() pp = PrettyPrinter()
expected = {'AuditorSvc': {'Auditors': ['ChronoAuditor', 'TimingAuditor/TIMER']}} expected = {'AuditorSvc': {'Auditors': ['ChronoAuditor', 'AlgTimingAuditor/TIMER']}}
exec("\n".join(stdout.splitlines())) # stdout needs to be sanitized for windows exec("\n".join(stdout.splitlines())) # stdout needs to be sanitized for windows
result["GaudiTest.expected_config"] = result.Quote(pp.pformat(expected)) result["GaudiTest.expected_config"] = result.Quote(pp.pformat(expected))
......
...@@ -30,7 +30,6 @@ def which(file, path=None): ...@@ -30,7 +30,6 @@ def which(file, path=None):
retcode = 0 retcode = 0
try: try:
if len(sys.argv) > 1: if len(sys.argv) > 1:
optfiles = sys.argv[1:] optfiles = sys.argv[1:]
else: else:
......
##################################################################################### #####################################################################################
# (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations # # (c) Copyright 1998-2023 CERN for the benefit of the LHCb and ATLAS collaborations #
# # # #
# This software is distributed under the terms of the Apache version 2 licence, # # This software is distributed under the terms of the Apache version 2 licence, #
# copied verbatim in the file "LICENSE". # # copied verbatim in the file "LICENSE". #
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
##################################################################################### #####################################################################################
# Gaudi subdirectory # Gaudi subdirectory
if(NOT GAUDI_ENABLE_GAUDIALG)
return()
endif()
# Build the library # Build the library
gaudi_add_library(GaudiAlgLib gaudi_add_library(GaudiAlgLib
SOURCES src/lib/EventCounter.cpp SOURCES src/lib/EventCounter.cpp
...@@ -21,12 +25,14 @@ gaudi_add_library(GaudiAlgLib ...@@ -21,12 +25,14 @@ gaudi_add_library(GaudiAlgLib
src/lib/GaudiTool.cpp src/lib/GaudiTool.cpp
src/lib/GetAlg.cpp src/lib/GetAlg.cpp
src/lib/Prescaler.cpp src/lib/Prescaler.cpp
src/lib/Sequencer.cpp
src/lib/Tuple.cpp src/lib/Tuple.cpp
src/lib/TupleObj.cpp src/lib/TupleObj.cpp
src/lib/AlgDecorators.cpp
LINK LINK
PUBLIC PUBLIC
GaudiUtilsLib Gaudi::GaudiUtilsLib
Gaudi::GaudiPythonLib
Gaudi::Functional
Boost::headers Boost::headers
Boost::regex Boost::regex
Rangev3::rangev3) Rangev3::rangev3)
...@@ -37,8 +43,13 @@ if(GAUDI_USE_AIDA) ...@@ -37,8 +43,13 @@ if(GAUDI_USE_AIDA)
src/lib/GaudiHistoTool.cpp src/lib/GaudiHistoTool.cpp
src/lib/GetAlgs.cpp src/lib/GetAlgs.cpp
src/lib/GaudiTupleAlg.cpp src/lib/GaudiTupleAlg.cpp
src/lib/GaudiTupleTool.cpp) src/lib/GaudiTupleTool.cpp
src/lib/HistoDecorator.cpp)
target_link_libraries(GaudiAlgLib PUBLIC AIDA::aida) target_link_libraries(GaudiAlgLib PUBLIC AIDA::aida)
if(GAUDI_USE_CLHEP)
target_sources(GaudiAlgLib PRIVATE src/lib/TupleDecorator.cpp)
target_link_libraries(GaudiAlgLib PUBLIC CLHEP::CLHEP)
endif()
endif() endif()
# Build the plugin # Build the plugin
...@@ -60,3 +71,55 @@ if(GAUDI_USE_AIDA) ...@@ -60,3 +71,55 @@ if(GAUDI_USE_AIDA)
src/components/SequencerTimerTool.cpp) src/components/SequencerTimerTool.cpp)
target_link_libraries(GaudiAlg PRIVATE AIDA::aida) target_link_libraries(GaudiAlg PRIVATE AIDA::aida)
endif() endif()
gaudi_add_dictionary(GaudiAlgDict
HEADERFILES dict/dictionary.h
SELECTION dict/selection.xml
LINK GaudiAlgLib)
if(GAUDI_USE_AIDA)
target_compile_definitions(GaudiAlgDict PRIVATE AIDA_FOUND)
endif()
if(GAUDI_USE_CLHEP)
target_compile_definitions(GaudiAlgDict PRIVATE CLHEP_FOUND)
endif()
gaudi_install(PYTHON)
if(BUILD_TESTING)
# Ignore examples if not building tests
# see https://gitlab.cern.ch/atlas/atlasexternals/-/merge_requests/664#note_3395313
gaudi_add_module(GaudiAlgExamples
SOURCES
src/examples/GaudiCommonTests.cpp
src/examples/MyGaudiAlgorithm.cpp
src/examples/MyGaudiTool.cpp
src/examples/SelCreate.cpp
src/examples/SelFilter.cpp
LINK
GaudiAlgLib
Gaudi::GaudiExamplesLib
)
if(GAUDI_USE_AIDA)
target_sources(GaudiAlgExamples PRIVATE
src/examples/Aida2Root.cpp
src/examples/GaudiHistoAlgorithm.cpp
src/examples/HistoTimingAlg.cpp
src/examples/EvtColAlg.cpp
src/examples/ExtendedEvtCol.cpp
)
target_link_libraries(GaudiAlgExamples PRIVATE AIDA::aida)
if(GAUDI_USE_CLHEP)
target_sources(GaudiAlgExamples PRIVATE
src/examples/TupleAlg2.cpp
src/examples/TupleAlg3.cpp
src/examples/TupleAlg.cpp
src/examples/TupleDef.cpp
)
target_link_libraries(GaudiAlgExamples PRIVATE CLHEP::CLHEP)
endif()
endif()
endif()
gaudi_add_tests(QMTest)
/***********************************************************************************\
* (c) Copyright 1998-2023 CERN for the benefit of the LHCb and ATLAS collaborations *
* *
* This software is distributed under the terms of the Apache version 2 licence, *
* copied verbatim in the file "LICENSE". *
* *
* In applying this licence, CERN does not waive the privileges and immunities *
* granted to it by virtue of its status as an Intergovernmental Organization *
* or submit itself to any jurisdiction. *
\***********************************************************************************/
// redefined anyway in features.h by _GNU_SOURCE
#undef _XOPEN_SOURCE
#undef _POSIX_C_SOURCE
// ============================================================================
// Python must always be the first.
#ifndef __APPLE__
# include <Python.h>
#endif // not __APPLE__
#include <GaudiPython/AlgDecorators.h>
#include <GaudiPython/PyAlg.h>
#ifdef AIDA_FOUND
# include <GaudiPython/HistoDecorator.h>
# ifdef CLHEP_FOUND
# include <GaudiPython/TupleDecorator.h>
# endif // CLHEP_FOUND
#endif // AIDA_FOUND
#ifdef AIDA_FOUND
# include <GaudiAlg/GaudiHistoAlg.h>
# include <GaudiAlg/GaudiTupleAlg.h>
# include <GaudiAlg/Print.h>
// Added to avoid warnings about inlined functions never implemented.
# include <GaudiAlg/GaudiHistos.icpp>
#endif // AIDA_FOUND
#include <GaudiAlg/GaudiAlgorithm.h>
#include <GaudiAlg/GaudiCommon.h>
#include <GaudiAlg/GaudiHistoID.h>
#include <GaudiAlg/IErrorTool.h>
#include <GaudiAlg/IGenericTool.h>
#include <GaudiAlg/IHistoTool.h>
#include <GaudiAlg/ISequencerTimerTool.h>
#include <GaudiAlg/ITupleTool.h>
#include <GaudiAlg/Tuple.h>