there is a PR which heavily refactors our rendering engine, this is a long overdue. There are two weeks until branching, but due to complexity of the refactoring I would like to propose merging this. There are three plugins which I am aware of using rendering engine directly:
I will cover possible regressions in bootdisk/discovery but I would like to notify @remote_execution and @katello devs to test this PR with respective plugins and speak up if you find some troubles. The patch should be transparent as long as plugins are not monkey patching some internals.
If there are no objections until Wednesday this week, I am gonna merge the PR so we have more time to catch possible issues.
I checked rex out yesterday. It won’t work and needs changes. While I’m not familiar with the rex codebase, I think I know what needs to be changed. @leewaa and I think it’s a good learning exercise to get familiar with the new renderer. We will take a look tomorrow and provide a fix. Although I still believe we should not block merging core PRs because of plugins. We break them anyway all the time.
Katello should just require trivial changes. Userdata plugin as well. Bootdisk might be a little but more work, but should be fairly easy. Rex is by far the greatest effort.
Actually, I disagree. If core changes rails versions for example, introducing a compatibility layer would be a huge effort. It would be easier to just update the plugins. If the plugin maintainers take care of that task themselves, they get to know the new version of the framework directly. And they know their applications the best.
We’re currently planning on moving the models page to react. Let’s say I had a plugin that adds a cat picture somewhere on that page with deface, we’d break the plugin when we merge the react PR. I would not want to block that PR. Would you?
Whilst I agree, we do need to figure out better ways to communicate with plugin developers. We might hope that they are active and looking at what core is doing, but that isn’t always true. I’m doing some thinking on that, but I don’t have any firm ideas yet.
Word. Last couple of years, we were pretty good at planning merging of bigger changes after branching. It can be quite stressful for plugins authors to figure out there was a big change in core week before branching, I’ve been that several times with discovery.
I suggest that if we plan merging this pre-1.19 let’s make sure that at least PRs for all plugins listed above are pending review. I will do discovery, can’t commit to bootdisk changes as we have some days off this week in Czech Republic.
I kind of agree, but you always need some coordination. If the developer of an important plugin indicates it breaks it can be fair to hold off merging for a bit. You can’t hold it off until eternity but there’s a middleground somewhere.
I have opened a PR for bootdisk and am working on a PR for remote execution. We have found some small room for improvements in the renderer, that we’d like to add tomorrow. That will help with the rex implementation. I have created tickets for all other plugins that need changes.
I’ll try to work on a PR to discovery now. Katello should be trivial, it just needs to use the official plugin API for it’s custom macros.