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
OME element implements OMEModel #17
Conversation
Have started reviewing the impact of the changes on the Java side via a devspace propagating this PR from the model up to OMERO via Bio-Formats:
Given the nature of the proposed changes, this compile error is fully expected as new methods are added to the public As we are waiting for Bio-Formats 5.3.0 to derive a branch, I will look into integrating the Bio-Formats branch mentioned above into the Java build for Monday. Given that this branch should provide access to the underlying model object via the API, how can this API be tested? Are there concrete filesets/code samples which would highlight the new functionalities associated with exposing the OME Model object? |
@sbesson I think that updating the job to do a whitespace diff would be useful (as an additional set of files--the full diff is still nice to have). Regarding OMEROMetadataStoreClient, that's annoying. If there's a particular branch I can use, I'll be happy to open a PR for Monday. (This is one place Java 8 would have been useful--we could have added a no-op default implementation to the interface, saving this from needing any work in OMERO, and no compatibility issues.) Regarding the C++ whitespace changes, I did have a try at doing this already, but didn't get it working. I'll see what I can do. |
@rleigh-codelibre for OMERO, I would think the easiest for now would be to create a branch similar to the Bio-Formats one mentioned in the description with the corresponding changes. We can include this branch into the build for now and then we can spin up new integration branches for this work. |
I've gone through the code changes here for both the Java and C++ and the changes seem sensible and there was nothing that concerned me too much. The generated sources for both look to be correct also from going through diffs. From a Bio-Formats point of view everything builds correctly and the unit tests run successfully. Ive also done some brief sanity tests with the Bio-Formats artefacts and everything seems fine on that front. From a C++ perspective I would like to do some extra sanity tests over the weekend to ensure everything is also fine on that front. I haven't yet had a chance to look at OMEROMetadataStoreClient either. |
I will try to have a closer look at this set of PRs on Monday. The revision of the inheritance between model and root classes was discussed in November as the basis for extending and registering custom annotations in the model. One immediate API question arising from my reading of the diff in ome/bioformats#2712 and this PR. I understand the addition of |
Reviewed this PR and the related ones (mostly from the Java side):
A couple of API and implementation questions:
|
@sbesson To answer your questions: ome/bioformats#2712 is not a requirement. It's there to verify that all the Java changes in this PR are functional, and that compiling and tests all pass at the bioformats level using this functionality. It's meant to be merged, but it's also deliberately open in parallel for testing this PR. I've tested that this PR works standalone locally, but you could exclude it (and the openmicroscopy PR) if you wanted to test it standalone as well. I just merged this PR into The relationship between Renaming of |
With and without ome/bioformats#2712, all Bio-Formats and OMERO server integration tests are passing. As discussed earlier, I am still not fully convinced by the I don't think the doubts expressed above should hold this PR being merged. Once we have a first working version of our model supporting custom annotations and as part of the roadmap towards the next major release of ome-model, let us take the time to collectively review and agree all the design choices made and codify their intent and rationale using the API and/or Sphinx documentation. |
@sbesson I created https://trello.com/c/Co2hkfMJ/454-split-ome-model as a followup. I can understand not being 100% happy with the |
This is part 1 of the proposed refactoring in https://docs.google.com/document/d/1bzczgG2QyujCsCvR2kSAGl5hj-NJuIikgFAC3fDkqvs/edit# and https://trello.com/c/hnpxmvhe/52-extended-annotation-support-pt-i
Testing:
The latter two points check that there is no API break when building without the branch, and that the new API additions work when building with the branch,