Skip to content

Latest commit

History

History
142 lines (124 loc) · 5.78 KB

File metadata and controls

142 lines (124 loc) · 5.78 KB

Developer Notes

Controlling Log Levels

To control the log level of a class with a Logger, use properties. For example, use java options:

-Dorg.jlab.detector.helicity.HelicityGenerator.level=FINEST # sets HelicityGenerator level to FINEST
-D.level=FINE # sets the level of all loggers to FINE

Alternatively, make a logging .properties file, and set the level of each of your classes for which you want to use a non-default level; use the property name className.level, for example:

# my_levels.properties
org.jlab.detector.helicity.HelicityGenerator.level = FINEST
org.jlab.detector.calib.utils.RCDBProvider.level = FINER

or use .level for the global level:

# my_levels.properties
.level = FINE

To use this .properties file, run with the java option

-Djava.util.logging.config.file=my_levels.properties

Then, here are some examples for using it with recon-util:

recon-util [ARGS] -- -Djava.util.logging.config.file=my_levels.properties # use your .properties file
recon-util [ARGS] -- -D.level=ALL # set the global level to ALL (very verbose!)
recon-util [ARGS] -- -D.level=OFF # silence the loggers

From high to low, the levels are SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST (see java.util.logging.Level documentation). You may also use levels ALL or OFF, for everything or nothing, respectively.

Note

These properties may compete with the log level set by OptionParser's option -l, potentially overriding that level. For example, postprocess and decoder use OptionParser.

Bumping Version Number and Deploying

Deploying a new version requires a new version number, named $VERSION in this document.

  • the release build will have version $VERSION
  • the git repository will have version ${VERSION}-SNAPSHOT
    • note that this is not conventional, since typically -SNAPSHOT is used for upcoming releases

General Procedure

  1. be on a machine from which you have permission to deploy (see deploy-coatjava.sh's scp commands)
  2. git switch development && git pull
  3. make sure you have no local changes (git status)
  4. ./deploy-coatjava.sh -v $VERSION
  5. git push -> open PR -> review PR -> merge
  6. make git tag and release

Note

Should deploy-coatjava.sh fail midway, your git repository may no longer be in the recommended initial state; here's how to revert:

  1. git switch development to switch back to development branch
  2. libexec/version-bump.sh $ORIGINAL_VERSION and be sure to include the -SNAPSHOT; alternatively, git reset --hard
  3. git branch -D version/$VERSION to delete the created version-bump branch

Legend:

  • magenta rectangle: manual step
  • green hexagon: automated
flowchart TB
classDef manual fill:#f8f,color:black
classDef automatic fill:#8f8,color:black
subgraph deploy-coatjava.sh
deployScript[deploy-coatjava.sh -v $VERSION]:::manual
bump1{{bump version to $VERSION}}:::automatic
deployMaven{{deploy to Maven repo}}:::automatic
deployTarball{{deploy tarball to clasweb}}:::automatic
bump2{{bump version to $VERSION-SNAPSHOT}}:::automatic
gitCommit{{new git branch and commit}}:::automatic
end
gitPush[git push]:::manual
pullRequest[pull request and merge]:::manual
gitTag[git tag and release]:::manual
subgraph "Continuous Integration (CI)"
bump3{{bump version to $VERSION}}:::automatic
deployGit{{deploy git release tarball}}:::automatic
end
deployScript ==> bump1
bump1 ==> deployMaven
bump1 ==> deployTarball
bump1 ==> bump2 ==> gitCommit
gitCommit ==> gitPush ==> pullRequest ==> gitTag
gitTag ==> bump3 ==> deployGit
Loading