At the moment we have a situation where every time someone adds a new storage class they have to change a couple of files in daf_butler. Firstly the storage class definition and secondly the list of formatters.
daf_butler is not a good place for these and we already have a mechanism for allowing butler configurations to be merged. We have already had a situation in gen2 where everyone has to do a little patch to obs_base for each new thing and there must be a better way.
I think we can add to DAF_BUTLER_CONFIG_PATHS in the EUPS table files in the obs packages, but we should consider whether we want every package that defines a class to also define its own storage classes entry (and default formatter) rather than having a class defined in meas_algorithms but registered in obs_base. This might lead to a proliferation of paths to search and slow down butler instantiation.
What I would like to do is use package resources for accessing them like we do in daf_butler itself but I don't think EUPS table files are set up to handle that – firstly it might not like resource:// in the PATH-like environment variable and secondly if I had a DAF_BUTLER_CONFIG_RESOURCES environment variable the resource name of lsst.meas.algorithms/configs does not match PRODUCT_DIR so EUPS won't be able to unsetup.