Feature #10099
Extended --print-available/--print-description facility
Description
The --print-available-modules
and --print-available-services
options should be made more general to allow for other types of plugins. We suggest the following options:
--print-available=(plugin|module|service|source) --print-available-modules # retains current behavior --print-available-services # ""
In addition, we should consider abstracting the description-printing facilities so that users do not need to separately specify --module-description
and --service-description
, but just 'art --print-description module1 service1 ...'
.
History
#1 Updated by Christopher Green over 5 years ago
- Category set to Application
- Estimated time set to 16.00 h
#2 Updated by Christopher Green over 5 years ago
- Status changed from New to Accepted
#3 Updated by Kyle Knoepfel over 5 years ago
- Status changed from Accepted to Assigned
- Assignee set to Kyle Knoepfel
- % Done changed from 0 to 40
#4 Updated by Kyle Knoepfel over 5 years ago
- Status changed from Assigned to Resolved
- Target version set to 2.01.00
- % Done changed from 40 to 100
- SSI Package art added
- SSI Package deleted (
)
Description of feature¶
This has been resolved according to the description above. The one exception is that art --print-available-modules
no longer includes the sources in its list. To see the sources, one must type art --print-available=source
. The relevant portion of the art --help
printout is:
--print-available arg List all available plugins with the provided suffix. Choose from: 'module' 'plugin' 'service' 'source' --print-available-modules List all available modules that can be invoked in a FHiCL file. --print-available-services List all available services that can be invoked in a FHiCL file. --print-description arg Print description of specified module, service, source, or other plugin (multiple OK).
Notice that the --module-description
and --service-description
options are gone. One can now specify multiple plugin types for the same --print-description
incantation:
[> art --print-description message EmptyEvent RPTest "test/Integration/IntProducer" ==================================================================================================== service : message provider: art source : [ See https://cdcvs.fnal.gov/redmine/projects/art/wiki/Messagefacility ] library : [ none ] Allowed configuration --------------------- [ provided in future release ] ==================================================================================================== module_type: EmptyEvent (or "art/Framework/Modules/EmptyEvent") provider: art source : /home/knoepfel/art/art/Framework/Modules/EmptyEvent_source.cc library : /home/knoepfel/scratch/build-art-prof/lib/libart_Framework_Modules_EmptyEvent_source.so Allowed configuration --------------------- [ provided in future release ] ==================================================================================================== plugin_type: RPTest (or "test/Integration/RPTest") provider: user type : ResultsProducer source : /home/knoepfel/art/test/Integration/RPTest_plugin.cc library : /home/knoepfel/scratch/build-art-prof/lib/libtest_Integration_RPTest_plugin.so Allowed configuration --------------------- [ None provided ] ==================================================================================================== module_type : IntProducer (or "test/Integration/IntProducer") provider: user type : producer source : /home/knoepfel/art/test/Integration/IntProducer_module.cc library : /home/knoepfel/scratch/build-art-prof/lib/libtest_Integration_IntProducer_module.so Allowed configuration --------------------- module_label : { module_type : IntProducer errorOnFailureToPut : true # default ivalue : <int> branchType : 0 # default } ====================================================================================================
Implemented with art:commit:21d1665.
Potentially breaking behavior¶
The DEFINE_ART_EMPTYEVENTTIMESTAMP_PLUGIN
and DEFINE_ART_FILECATALOGMETADATA_PLUGIN
macros now also call PROVIDE_FILE_PATH
, which depends on boost::filesystem
, etc., just as in DEFINE_ART_MODULE
. New library dependencies are thus required when building these specialized plugins. These can be provided in BuildPlugins.cmake
. For users who do not use cetbuildtools
, they will need to link against (e.g.):
boost/v1_57_0a/Linux64bit+2.6-2.12-e9-prof/lib/libboost_filesystem.so boost/v1_57_0a/Linux64bit+2.6-2.12-e9-prof/lib/libboost_system.so
#5 Updated by Kyle Knoepfel about 5 years ago
- Target version changed from 2.01.00 to 1.17.05
#6 Updated by Kyle Knoepfel about 5 years ago
- Status changed from Resolved to Closed