theforeman / foreman-ansible-modules

Ansible modules for interacting with the Foreman API and various plugin APIs such as Katello
GNU General Public License v3.0
149 stars 166 forks source link

What to do with Nailgun #185

Closed sean797 closed 5 years ago

sean797 commented 6 years ago
SUMMARY

This project today is extremely reliant on Nailgun for API interactions (I actually like Nailgun, but lets not make this about +1 or -1 Nailgun) I'm finding it increasingly hard to make changes in Nailgun, SatelliteQE appear, to me at least, to be focused on their own goals, which is fine, but it leaves us (or me at least) with extremely low priority for reviewing and merging PRs.

Looking at the open PRs today I see 4 of mine and 1 from @manuelbonk all required for FAM (foreman-ansible-modules) they have been open for a significant amount of time (at least 4 weeks) most without even a review from SatelliteQE. If you look at the 2 most recently closed PRs you'll see 2 raised by SatelliteQE that were both reviewed and merged within 3 days.

Note, the above are just current examples, I've been thinking about this for a while now the first straw might have been when they asked for me to copy and paste the output from my testing as quality assurance before approving a PR :confused:

TL;DR I think SatelliteQE have done an amazing job at starting Nailgun, but today the priority that our PRs are treated with seems to be hindering innovation within FAM. Do we think SatelliteQE will be open to us take on a supporting role in maintaining Nailgun? Do we even wan to? If yes, should be suggest moving it to theforeman github org?

Fobhep commented 6 years ago

@mdellweg @akofink @ehelms @evgeni Is any of you aware of this https://github.com/SatelliteQE/airgun? It's python3 - however it looks like it could maybe be something we could look at. Update: I took a closer look and I don't think this is neither meant to replace nailgun nor is it really helpful for us. It was just being me trigger-happy :P

evgeni commented 6 years ago

Airgun is for UI only, not API, so not applicable to us I think.

ehelms commented 6 years ago

SatelliteQE is open to contributions and maintainers from within the community. Having spoken to them, their concern is ensuring that changes do not break their goals. Ultimately, we all have the same goal: a stable API wrapper. The thing I've discussed with some of their developers is two fold:

1) Changes that we can make to Nailgun to increase stability and reliance 2) Release strategy that meets the needs of both communities

Changes that we make to Nailgun to increase stability and reliance

This could use some brainstorming on how we can help achieve this. The most direct way would be adding more unit tests in a way that increases confidence that changes to Nailgun don't break Nailgun iteslf and don't break it for the valid releases a given release stream of Nailgun cares about. Valid releases being which versions of Foreman and Satellite.

Release strategy that meets the needs of both communities

Obviously, the SatelliteQE communities primary concern is ensuring Nailgun releases that match a given Satellite releases API specification. As Nailgun is heavily used by their robottelo test suite, any breaking changes to it can affect their test results and tracking. For FAM, we want to ensure that Nailgun gets feature additions as new modules are added, that Nailgun continues to work against stable Foreman and any currently supported versions.

My initial thought for a release strategy:

sean797 commented 5 years ago

Having spoken to them, their concern is ensuring that changes do not break their goals. Ultimately, we all have the same goal: a stable API wrapper.

I don't believe that is the reality, see https://github.com/SatelliteQE/nailgun/issues/553#issuecomment-435857723 SatelliteQE appear to have no interest in a stable API wrapper, their goal is a stable API wrapper for testing Satellite. Sure, those goals are very similar, but the difference is substantial

And then there are other issues:


Anyway, my experience with SatelliteQE, has been the single most unenjoyable & tiresome experience I've had on Github, I have no desire to continue to work with them. I'd like to fork Nailgun, while it would be shame to lose a larger contribuor base, I don't see any other way forward.

ehelms commented 5 years ago

Thanks for bringing this up @sean797 . I think we may have gotten ahead of ourselves bringing the two communities together without first discussing the impact, governance and concerns of each stakeholder. I'd like to first explore having constructive conversations between us to better understand where we are each coming from, possible solutions to help establish better governance and understanding and that the best path forward is. I would ask for a week or so of patience to let me gather more information and put together these conversations so we can arrive at a solution that works for all stakeholders and to clear up any mis-understandings that have arisen.

omaciel commented 5 years ago

@sean797 I'd like to invite you for a private chat about this subject. I'll call you right now but if I miss you (it is Friday evening for you, after all), I'll follow up with an email and a meeting invite.

sean797 commented 5 years ago

@omaciel and I spoke on Friday, I think we cleared up somethings and agreed to work together to make Nailgun work for both FAM and SatelliteQE. Hopefully, we can find some good solutions that work's for everyone in the coming weeks.

mdellweg commented 5 years ago

Do we have enough consensus to close this one?

akofink commented 5 years ago

:+1: from me - it seems like we have cooperation, even though people may be busy and take a while to review PRs.

Fobhep commented 5 years ago

same here :+1: