Issue tracking in the project

This is to start a discussion about how to track issues in the project. This is not a new topic. RedMine vs Github Issues - opinions? is already 13 years old and more recent there was Moving foreman-maintain issue tracking to Github. I think it’s a good time to rethink this.

Today we have a situation where some repositories track their issues in GitHub where some of the more core repositories use Redmine. This is largely historical where GitHub issue tracking was too limited for release management.

Recently Issue fields: Structured issue metadata is in public preview · community · Discussion #189141 · GitHub was published and this may be useful. On the other hand, recently GitHub has also been very unreliable and do we really want to further lock ourself into the platform?

Today release engineering relies on Redmine for a few things, most notably it’s used to generate the release notes and track release blockers. Nothing that can’t be rewritten.

For the release notes we can look at towncrier, which is also used by the Pulp project.

The release blockers could also be tracked on a board. There’s already Foreman Releases · GitHub so perhaps it’s already not really an issue (pun not intended)?

There are 2 outcomes I’d like to get:

  • Do we even want to use GitHub issues?
  • What do we use Redmine that GitHub can’t do (today)?
2 Likes

Not sure about moving to GitHub, but having all issues managed in the same way would be nice.

2 Likes

To add to the use of redmine in our projects, Katello uses it to track which commits need to be cherry-picked at release time. We set the target version on issues, and then tool belt compares version information in the specific version config files with what is set to that release (or older) in redmine. We have a nice process of triaging issues weekly which lets us not think about the issue versions until it’s time to cherry-pick.

I don’t think this process is tied to redmine in any way, but we’d be looking for a drop-in replacement for target version tracking.

1 Like

Foreman itself has a different policy: cherry pick ASAP. It has the challenge that in advance you can’t really set the target cherry picks (like Redmine can). Pulp uses patchback.

The short summary is it uses labels and then a GitHub app opens PRs automatically. Look at [PULP-1668] Optimize QueryExistingArtifacts queries by jobselko · Pull Request #7760 · pulp/pulpcore · GitHub as a completely random example.

There are 2 limitations that means we can’t use it in our current workflows:

1 Like

I recently contributed to an open source project, and I had a good experience with the process they used. I can show this and we can get some ideas from it. The k8s autoscaler repo[1] uses labels for many things that we would display on redmine.

When opening my PR I did not have to leave GitHub at all I would simply add the things needed in the PR description and a contributor would do a slash command that would handle whatever was needed.

Here is my PR[2] for example, it includes release notes, what kind of issue, what it fixes and etc. Compared to opening a PR and having to leave or even create an account on redmine. I enjoyed this experience much better.

Maybe we could take some ideas from this? K8s seem to use this process along all there repos.

[1] Issues · kubernetes/autoscaler · GitHub
[2] Initialize counters with zero in vpa-updater by aidenfine · Pull Request #9722 · kubernetes/autoscaler · GitHub

How would we lock ourselves with Github further? Couldn’t we migrate off of it like we can now with Redmine?

Personally I’d prefer

  1. unification across all the subprojects, using one issue tracker ease up cross repo collaboration
  2. use github because that’s where we spend our time already for code contributions, PR reviews, quality assurance and various other automation through github actions. Having issues at hand doing these activities seems a good step
  3. not introducing another tool and keeping some subprojects using github issues
2 Likes