-
Notifications
You must be signed in to change notification settings - Fork 6
Data Provenance Revisions #46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Data Provenance Revisions #46
Conversation
875e29a to
4965e52
Compare
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
4965e52 to
13b6eae
Compare
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
They don't do anything
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
13b6eae to
5424aca
Compare
|
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
left a comment
There was a problem hiding this 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.
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/impl/DefaultOpEnvironment.java
Show resolved
Hide resolved
scijava/scijava-ops-api/src/main/java/org/scijava/ops/api/Hints.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/hint/AbstractHints.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/hint/AdaptationHints.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/BaseOpHints.java
Outdated
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/test/java/org/scijava/ops/engine/impl/ProvenanceTest.java
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/test/java/org/scijava/ops/engine/impl/ProvenanceTest.java
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/test/java/org/scijava/ops/engine/hints/AdaptationHintTest.java
Show resolved
Hide resolved
scijava/scijava-ops-api/src/main/java/org/scijava/ops/api/features/OpMatchingException.java
Show resolved
Hide resolved
scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/simplify/SimplifiedOpInfo.java
Show resolved
Hide resolved
|
OK, everything significant from the review has been filed as issues on the project board. Merge time! 🏎️💨 |
|
I was able to resolve a good amount of these comments on the I'll continue with the revisions next week. |
Revisions requested by @ctrueden for #35