ansible-community / collection_bot

Fork of Ansibullbot for collections
GNU General Public License v3.0
4 stars 11 forks source link

Improve collaboration between ansibullbot and collection_bot #26

Open mkrizek opened 3 years ago

mkrizek commented 3 years ago

This is also a possible path forward to solve https://github.com/ansible-community/collection_bot/issues/14.

The collection_bot is based off ansible/ansibullbot, unfortunately since the last rebase which was around August 2020 there have been many changes in ansibullbot most notably various refactorings and code cleanups that would make rebasing at this point difficult. Even if we did that future rebases and cherry-picks would still end up being difficult due to the way how collection_bot is built on top of ansibullbot (effectively not separating collection specific functionality). So to make sharing of changes that could both projects benefit from (using changes from ansibullbot in collection_bot and vice versa) possible I propose the following:

  1. Start with a fresh fork of ansibullbot (💥 #14 can be closed now).
  2. Create a new triager class, probably by subclassing AnsibleTriage from ansibullbot/triagers/ansible.py, that would only implement changes specific to collections that were made in https://github.com/ansible-community/collection_bot/commits/main - not all changes are needed anymore though.
  3. Optionally, collection specific changes in plugins could be made into separate plugins.
  4. Create an entry point similar to ansible_triage.py for the new triager.

The obvious downside is that the collection_bot would have to be "re-implemented".

This would allow for easier sharing changes made in the code common for both projects and avoiding a need to create the same PR for both projects like https://github.com/ansible-community/collection_bot/pull/24 and https://github.com/ansible/ansibullbot/pull/1497 - and possibly diverging both code bases even more by forgetting to submit changes to one of the projects.

Does that sound sensible?

gundalow commented 3 years ago

@mkrizek Thank you for the detailed steps

Reviewing https://github.com/ansible-community/collection_bot/pull/5 which contained most of the work needed There are other PRs, though #5 was where most of the work was done

work in progress list of what needs doing

List of functionality that may need adding to ansibullbot

Priority

Later on

Checked items imply this functionality is available in ansibullbot

List of use-cases to test

Based on the above list we need to check the following to ensure this still work

Code changes

Notes