Software for Liquid Argon time projection chambers
Conventions used in this document:
NEW_RELEASE_VERSION - new release version (e.g., v03_00_00)
OLD_RELEASE_VERSION - the version of whatever release is currently setup
TOP_PRODUCT - generally this is larsoft, lbnecode, etc.
QUALIFIERS - qualifiers associated with the TOP_PRODUCT
WORKING_DIRECTORY - directory where you ran the mrb newDev command
mrb - the multi-repository build tool
UPS - Unix Product Support
When a new LArSoft release is available and you want to develop against the new LArSoft release
develop
branch:
cd srcs/git status
usually explains what is left to do, and how to do thatThis is the simplest possible case. We suggest that you start from a fresh login.
This is the scenario:
sbndcode
) using gitflowdevelop
(e.g., v07_07_00
)develop
is based on LArSoft tag v07_09_00
)v07_08_00
)develop
(e.g. sbndcode
now at v07_08_00
)Following the guide above may very well be all you need to do: you’ll get to work with the latest LArSoft (v07_09_00
) and with an sbndcode
that is the latest available (develop
based officially on LArSoft v07_08_00
), tweaked to work with the latest LArSoft.
But if there are breaking changes of any type between LArSift v07_08_00
and v07_09_00
, it might not work!
If the breaking changes pertain directly your code, you’d better bite it and fix them now following the release notes and the breaking changes instructions.
If instead the issues are not in your code, you may either fix the repository code (that is, the whole sbndcode
) for your collaboration, and make the fix available to your release manager as a feature branch (not including your personal code changed); or let the collaboration take care of that.
If you opt for the latter, in the meanwhile you need to:
v07_08_00
of sbndcode
):
develop
or your feature branch, the same where you started)git reset --hard COMMIT
(the commit hash can be found in the log reading git log
); in this way, you land on the older LArSoft dependency too (v07_07_00
); at this point you are where you started fromdevelop
branch via git rebase
(only if you haven’t published your branch yet) or git merge
, landing to the experiment-supported LArSoft version (v07_08_00
)LARSOFT_SUITE
tag matching your experiment LArSoft dependency (git checkout LARSOFT_SUITE_v07_08_00
)07_08_00
) etc., but leave the LArSoft repositories at the LARSOFT_SUITE_...
tag you just checked out; noyr that mrb uv larsoft v07_08_00
should at this point have no effectOr what to do when you see errors like this:
mrbsetenv
The working build directory is /scratch/garren/larsoft/v04_03_02/p/build_slf6.x86_64
The source code directory is /home/garren/scratch/larsoft/v04_03_02/srcs
----------- check this block for errors -----------------------
ERROR: Version conflict -- dependency tree requires versions conflicting with current setup of product : full descriptions cetpkgsupport v1_08_04 -f NULL -z /products vs cetpkgsupport v1_08_05 -f NULL -z /products
ERROR: Version conflict -- dependency tree requires versions conflicting with current setup of product cetpkgsupport: version v1_08_05 vs v1_08_04
ERROR: Version conflict -- dependency tree requires versions conflicting with current setup of product : full descriptions cetpkgsupport v1_08_04 -f NULL -z /products vs cetpkgsupport v1_08_05 -f NULL -z /products
ERROR: Version conflict -- dependency tree requires versions conflicting with current setup of product : full descriptions cetpkgsupport v1_08_04 -f NULL -z /products vs cetpkgsupport v1_08_05 -f NULL -z /products
The default release of cetpkgsupport changes from time to time.
The solution is simply to unsetup cetpkgsupport and rerun the command.
unsetup cetpkgsupport