------------------------------------------------------------------------------------------------------
Should have been a "major" release due to x2 API-BREAKs not that important.
+ FEAT(pipeline+execution): add term ``pre_callback`` to be invoked prior to computing
each operation (see ``pre_callback`` arg in :meth:`.Pipeline.compute()`).
+ FEAT(pipeline+plan): can :term:`recompute` modified solutions, partial or complete --
The ``recompute_from=<dep / list-of-deps>`` argument has been added to
:meth:`.Pipeline.compute()`, :meth:`.Pipeline.compile()` & :meth:`.Network.compile()`
methods.
+ REFACT/break(OP): replace badly-specified public attributes ``op_needs`` & ``op_provides``
with private :attr:`.FnOp._user_needs` & :attr:`.FnOp._user_provides` -- now
it must be easier to inherit :class:`.Operation` anew (but) UNTESTED :-().
+ refact: don't crash of operations lacking ``rescheduled``, ``marshalled``
etc attributes.
+ ENH(OP):``Operation.name`` and ``name`` string compare *equal* -- that is,
dictionaries of operations, such as :attr:`.Solution.executed`, can be indexed
with their names (note, they didn't equal by accident).
+ REFACT: move ``FnOp.__hash__()/__eq__()`` up, to Operation class.
+ FEAT/break(pipeline): replace ``NULL_OP`` operation a new ``compose(excludes=..)`` argument,
in order to delete existing operations when merging pipelines.
+ FIX(PLAN): compile cache was ignoring(!) the state of the :term:`eviction` flag.
+ FIX(execution): solution ``copy()`` was crashing (for 9 months till now).
+ ENH(plot): make all nodes "filled" to facilitate hovering for tooltips.
+ fix(plot): "overwrite" tooltip was written "overridden".
+ fix(plan): bug when printing a list of "unsolvable graph" error-message.
+ FIX(TEST): ``exemethod`` fixture's ``exe_method`` was always empty when interrogated
for deciding "xfail"s.
+ enh(build): pin ``black`` version, changes in format affect commits.
+ doc(parallel): Deprecate(!), but just in docs, in favor of always producing
a list of "parallelizable batches", to fed to 3rdp parallelizing executors.
+ doc(execution+fnop): Mark mark :data:`.execution.task_context` as *unstable API*,
in favor of supporting a specially-named function argument to receive the same instances.
+ doc(site+doctests): use greek letters in algebraic formulas AND dependencies.