Skip to content

Conversation

@gselzer
Copy link
Member

@gselzer gselzer commented Nov 15, 2021

Revisions requested by @ctrueden for #35

@gselzer gselzer force-pushed the scijava/scijava-ops-engine/data-provenance-revisions branch from 875e29a to 4965e52 Compare November 16, 2021 19:15
This commit also adds a BasicHints class, which I would like to use to
replace all of the implementations of Hints that we currently have (with
the possible exception of ImmutableHints)
It's a static final String, should have been capitalized :)
Looks much nicer that way :)
This method should be used by the implementations, when they know what
they're doing. The setHint method can then be exposed to users of the
implementations, and the implementations can override this method with
their own restrictions (for example, if an implementation wants to
forbid a particular type of hint)
We can just assume that simplification, adaptation are allowed when no
hint is provided
There isn't much of an argument for it, considering that the OpService
can support an OpHistory with minimal effort
@ctrueden ctrueden force-pushed the scijava/scijava-ops-engine/data-provenance-revisions branch from 4965e52 to 13b6eae Compare November 20, 2021 02:52
This package is designed to house utilities that pertain to
implementations of the Ops API classes. It is regrettable that these
implementations cannot be left within SciJava Ops Engine (or whatever
other module), and we might want to eventually put this package within
its own module.
They are really performing two behaviors, so we should name them
differently
It is now clearer which generates a new UUID
It is now more robust, changing any character that is not a valid java
identifier. There still exists the problem that different types clash,
  but I think this is unlikely
By passing it through to the constructor, we only have to determine the
version once for all Ops in an OpCollection
This differentiates it from the other op() signature, which does
something somewhat different. More work on this front to come...
The most important change here is the change to the javassist portion of
OpMethodInfo. The current framework cannot cache the Op returned if
called via signature, as we do not have enough to cache a
MatchingConditions, but this commit avoids the matching if we have
alreaady created the class. This commit should be viewed with scrutiny.
That's a mouthful :)

Plus:
* Test Adaptation recovery with dependencies
* substituteTypeVars: add GenericArrayType support
* InfoChainGenerator determinism

Signed-off-by: Curtis Rueden <ctrueden@wisc.edu>
We can use the OpHistory for this!
This cleans up OpEnvironment methods
It seemed backwards that one of the public API methods of
DefaultOpEnvironment made a RichOp from an OpInstance, just to grab its
InfoChain. We can just skip the RichOp creation
@ctrueden ctrueden force-pushed the scijava/scijava-ops-engine/data-provenance-revisions branch from 13b6eae to 5424aca Compare November 20, 2021 04:29
@ctrueden
Copy link
Member

I cleaned up the history so it's based on the latest main branch, squashed the failing commits, and removed WIP labels. Review will need to wait till next week, though.

@ctrueden ctrueden self-requested a review November 20, 2021 04:30
@ctrueden ctrueden self-assigned this Nov 20, 2021
Copy link
Member

@ctrueden ctrueden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whew! That one took a while. There were a lot of intermediate commits with subsequent changes later down the chain. I also reviewed commits out of order because GitHub defaults to date order rather than commit order in the commit view. 😾

I filed an issue for the most major issue: the naming of "op"/OpInfo/OpInstance/InfoChain/RichOp. For the rest, I'll do one more quick scan and file issues as appropriate any followup action items.

@ctrueden
Copy link
Member

ctrueden commented Dec 6, 2021

OK, everything significant from the review has been filed as issues on the project board. Merge time! 🏎️💨

@ctrueden ctrueden merged commit 66d08ad into main Dec 6, 2021
@ctrueden ctrueden deleted the scijava/scijava-ops-engine/data-provenance-revisions branch December 6, 2021 20:53
@ctrueden ctrueden removed their assignment Dec 6, 2021
@gselzer
Copy link
Member Author

gselzer commented Jan 7, 2022

I was able to resolve a good amount of these comments on the scijava/scijava-ops-engine/data-provenance-revisions-revisions branch! What a mouthful.

I'll continue with the revisions next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects

Development

Successfully merging this pull request may close these issues.

3 participants