-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[ntuple] fix auto schema evolution of base classes #20041
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
Conversation
58eddf8 to
379249b
Compare
Test Results 21 files 21 suites 3d 14h 57m 32s ⏱️ Results for commit 22e3fe8. ♻️ This comment has been updated with latest results. |
379249b to
9a948c2
Compare
Forbid changing the number of base classes except for adding base classes where there were previously none and for removing all of the base classes.
9a948c2 to
22e3fe8
Compare
|
😦 Unfortunately this change is breaking our working model in ATLAS. 😦 Some of our transient classes look a little different in our full offline software versus our analysis software. For instance see: Here We will absolutely need help with this, as writing and then reading files with slightly different types is very deep in our analysis model. 🤔 |
|
@krasznaa Should we move this to a separate issue? It seems that a quick fix would be to define an empty dummy class in the analysis software, so that you can continue inheriting from it. This would make the situation clear for the ROOT automatic schema evolution. We removed the arbitrary removal and addition of base classes because, in general, it may not be clear what the schema evolution should do. Unlike with regular class members where we take the member name as a key, the type name of base classes is itself subject to change due to schema evolution (e.g., a base class |
|
Hi Jakob, Interesting idea. 🤔 Let me give it a try. We already define separate versions of some classes for our "standalone" builds and the full ones. It would be fairly on brand with us to define a dummy version of As long as that doesn't end up causing other issues (I don't suppose it should...), that could be an acceptable solution for us. |
|
Hi Jakob, I believe we won't need to change this new behaviour after all. It seems to just force us into cleaning up our code a bit finally. See: https://gitlab.cern.ch/atlas/athena/-/merge_requests/83702 |
Forbid changing the number of base classes except for adding base classes where there were previously none and for removing all of the base classes.