<@U051221NF>: re options fingerprinting
# development
w
@happy-kitchen-89482: re options fingerprinting
the way that options end up invalidating memoized runs of
@rules
in the engine is that currently: 1) the
OptionsBootstrapper
is a
Param
, 2) `Subsystem`s are the return values of rules and sometimes
Param
s as well
so, the entire content of the
Subsystem
(via
__eq__
and
__hash__
) defines whether something that depends on it is invalidated
but 1) is a larger factor currently… because the
OptionsBootstrapper
comes in from the outside as a
Param
, eq/hash changes to the OB change the identity of rules that depend on it, transitively
ie for two non-equal OBs, there are two subgraphs
that is a thing that i’d love to try and fix as part of https://github.com/pantsbuild/pants/issues/10360 , because the OB fingerprinting is at the same time i) very coarse grained, ii) missing things
@happy-kitchen-89482: but to answer your original question directly: marking
fingerprint=True
on a
Subsystem
option has no effect due to (2). everything is included.