Bug #10627
Output module template art::ProvenanceDumper now forces the detail class to do parameter set validation
Description
This might not be a bug but I am not sure how else to file it.
Mu2e has an output module Analyses/src/DataProductDump_module.cc
This module predates the file dumper output module and does similar work; we are keeping it around as an example.
This module is created from an output module template:
namespace mu2e {
class DataProductDumpDetail;
typedef art::ProvenanceDumper<DataProductDumpDetail> DataProductDump;
}
class mu2e::DataProductDumpDetail {
// contents deleted.
};
DEFINE_ART_MODULE(mu2e::DataProductDump);
We jumped from art v1_15_00 to art v1_17_02. In art v1_15_00 the module compiled. In art v1_17_02 we had to add an empty definition of the struct Config in order for the module to compile:
class mu2e::DataProductDumpDetail {
public:
struct Config {};
// contents deleted.
};
I think that the reason is that the module template now does checking of its parameter set. I think that this forces the detail class to check it's parameter set. Our detail class does not use any parameters providing a correct Config class is trivial.
This should be better documented. We should also have a discussion among the stakeholders about the desired behaviour in this situation: if a module template uses the parameter set validation do we want to require that the detail class does too? What options are there? In the long run I think that forced validation is good. The question is if we need a different policy for the transition period ( it is also possible that for this very narrow question the transition period is now over ).
History
#1 Updated by Christopher Green over 5 years ago
- Subject changed from Output module template art::ProvenanceDumper now forces the detail class to do parameter set validatio to Output module template art::ProvenanceDumper now forces the detail class to do parameter set validation
- Category set to Documentation
- Status changed from New to Accepted
- Estimated time set to 2.00 h
- SSI Package art added
- SSI Package deleted (
)
The behavior and required actions will be documented as requested.
#2 Updated by Kyle Knoepfel over 5 years ago
- Description updated (diff)
#3 Updated by Kyle Knoepfel over 5 years ago
- Status changed from Accepted to Resolved
- % Done changed from 0 to 100
The requested documentation can be found here.
#4 Updated by Kyle Knoepfel over 5 years ago
- Status changed from Resolved to Closed