-
Notifications
You must be signed in to change notification settings - Fork 232
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
Document a safe unshimming algorithm [skip ci] #6555
Document a safe unshimming algorithm [skip ci] #6555
Conversation
It is a guide for developers and it should be further automated as the dist jar verification for correct placement of public classes Current validation for bitwise-identity is just an apporoximation. Signed-off-by: Gera Shegalov <gera@apache.org>
build |
Signed-off-by: Gera Shegalov <gera@apache.org>
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.
Thanks for writing up this complicated procedure. For the long-term, would it make sense to:
- Create a new Maven module that houses our public classes (ShimLoader, SQLPlugin, providers, etc,.).
- Existing sql-plugin module depends on the new module and no longer supports unshimmed classes (those must be in the new module)
Code in the new module must use ShimLoader to access any sql-plugin classes because they are parallel-world, but sql-plugin code can access the unshimmed classes. This also has the advantage of making it much clearer in the source which classes are publicly advertised and which are hidden in parallel-world.
Co-authored-by: Jason Lowe <jlowe@nvidia.com>
Co-authored-by: Jason Lowe <jlowe@nvidia.com>
Co-authored-by: Jason Lowe <jlowe@nvidia.com>
Definite +1 on having a separate module without dependencies on the rest of the project for the entry point classes. This doc will be helpful in creating this API module (#6556) . I would also suggest that we look at the sccmap strongly connected components to create more granular packages, so not everything is in the kitchen sinks like com.nvidia.spark.rapids. Furthermore, based on the tool derived from this doc, we should create another dynamic list of the unshimmed classes that is pushed into the conventional top location of the jar when the entire connected component is within |
build |
Fixes formatting bug from #6555 Signed-off-by: Gera Shegalov <gera@apache.org>
- Fixes formatting bug from #6555 - Addresses linter issues Signed-off-by: Gera Shegalov <gera@apache.org>
It is a guide for developers and it should be further automated as the dist jar verification for correct placement of public classes
Current validation for bitwise-identity is just an approximation.
Signed-off-by: Gera Shegalov gera@apache.org