Project

General

Profile

Feature #10099

Extended --print-available/--print-description facility

Added by Kyle Knoepfel about 4 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Application
Target version:
Start date:
09/10/2015
Due date:
% Done:

100%

Estimated time:
16.00 h
Spent time:
Scope:
Internal
Experiment:
-
SSI Package:
art
Duration:

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 about 4 years ago

  • Category set to Application
  • Estimated time set to 16.00 h

#2 Updated by Christopher Green about 4 years ago

  • Status changed from New to Accepted

#3 Updated by Kyle Knoepfel almost 4 years ago

  • Status changed from Accepted to Assigned
  • Assignee set to Kyle Knoepfel
  • % Done changed from 0 to 40

#4 Updated by Kyle Knoepfel almost 4 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 almost 4 years ago

  • Target version changed from 2.01.00 to 1.17.05

#6 Updated by Kyle Knoepfel over 3 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF