Bootstrap project

Bootstrap of Project environments Setup

Each project has a unique software configuration, defined and controlled by that Project.
Setting this up may involve such actions as
  • setting environment variables
  • making aliases or functions
  • running or sourcing scripts

For convenience, Projects are welcome to use a common UPS front end to these actions at Fermilab.

The user does :
  • source /grid/fermiapp/products/common/etc/
  • setup project

This sets up the Project's own project product in /grid/fermiapp/products/ project

To handle cases like mu2e where there is already an incompatible mu2e product.
the procedure first looks for and set up bootstrap_project

Presently supported {{last_modified}}
  • minos
  • nova

Bootstrap Implementation

Product <project> in products/common is an alternate declaration of a product named 'project'.

That project sniffs out the project name,
sets up bootstrap_<project> in the products/project area if it exists,
or <project> if these is no bootstrap project.

This keeps things simple for most projects,
while accommodating mu2e which already has another mu2e product.

Adding a new project

For example, to add nova,

Log into products@if01
  • source /grid/fermiapp/products/common/etc/
  • ups copy project v0.1 -f NULL -G "nova v0.1 -f NULL"
  • cut and paste the command you see on the terminal :
    • ups declare nova v0.1 -f "NULL" -q "" -r "/grid/fermiapp/products/common/prd/project/v0_1/NULL" -z "/grid/fermiapp/products/common/db" -U "ups" -m "project.table"
  • ups declare -c nova v0.1
Log into the account owning /grid/fermiapp/products/nova
  • PROJ=nova
  • cp -r /grid/fermiapp/products/minos/prd/minos prd/${PROJ}
  • mv prd/${PROJ}/v0_1/NULL/ups/minos.table prd/${PROJ}/v0_1/NULL/ups/${PROJ}.table
  • nano prd/${PROJ}/v0_1/NULL/ups/${PROJ}.table
    • Product=${PROJ}
    • and other changes as needed to perform the desired setup actions
  • ups declare ${PROJ} v0.1 -f NULL \
    -r /grid/fermiapp/products/${PROJ}/prd/${PROJ}/v0_1/NULL \
    -m ${PROJ}.table
  • ups declare -c ${PROJ} v0.1