← 输入框|github.com|刷新
Skip to content

Allow persistence of Op history #66

Open

Description

@gselzer

To ease reproducibility, OpHistoryServices should be able to persist their histories, and from that persisted data be able to restore that history into a readable form.

Ideally, this would be accomplished using some OpHistoryService API along the lines of:

public void recordHistory(URI outputLocation);

public void restoreHistory(URI inputLocation);

(One) implementation of these methods might benefit from scijava-persist

The restoration of a history would ideally be possible independent of original OpHistoryService implementation (i.e. a FooOpHistoryService should be able to restore a BarOpHistoryService), but this might be too strict an approach. Potential problems may include:

  • Situations where aa BarOpHistoryService doesn't have all of the Ops listed in the history created by the FooOpHistoryService that recorded the history
  • Limitations on extensibility (all OpHistoryServices would have to serialize/deserialize in the same way, or at least know how to deserialize numerous types of serialized histories)

One interesting thought: upon a call to restoreHistory, should the OpHistoryService:

  • Erase/Record any previously logged history?
  • Meld its previously recorded history with the history recorded at inputLocation?

Activity

  1. added this to the unscheduled milestone on Jul 14, 2021
  2. hinerm commented on Sep 26, 2023

    @hinerm
    Member

    Two fundamental questions here:

    1. Do we want to be able to reproduce an Op execution path in a super environment of that which it ran initially (e.g. an updated Fiji with more update sites)?
    2. Do we want to have human-readable record of how a particular output was created by Ops?

    Currently, OpHistory is kind of in the middle of both of these requirements without satisfying either. To resolve this issue we need to agree which of these requirements we will adopt in Ops, if any, and then lay out an implementation plan.

  3. modified the milestones: unscheduled, 1.0.0 on Sep 26, 2023
  4. modified the milestones: 1.0.0, unscheduled on Nov 16, 2023
  5. added a commit that references this issue on May 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions