Skip to content
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

GitHub issues for core components #390

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions jep/0000/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ There will be reviewed during the LTS backporting window and the release lead wi

After a backport pull request is created the `lts-candidate` label will be removed, unless it was rejected but still eligible in a future backport.

Issues may be labelled as `lts-candidate` to signify it's a bug that should be backported into an LTS version but it hasn't been fixed yet.

link:https://github.com/jenkins-infra/backend-commit-history-parser/tree/master/bin[LTS tooling] uses GitHub queries instead of Jira queries.

=== Documentation

Contributing guides in Jenkins core and jenkins.io document that Jenkins core components use GitHub issues.
Expand Down Expand Up @@ -133,6 +137,9 @@ A developer is already in GitHub and doesn't have to load another system. Jira i
- released in
The data quality in Jira is lower than in GitHub due to it not getting as updated as often as GitHub.

Using GitHub means there is no relying on Jenkins project infrastructure like the account app.
People are more likely to already have a GitHub account and if not GitHub has a better sign-up flow and account recovery solutions that don't rely on our volunteers.

=== Jira server end of life February 2024

Atlassian announced the link:https://www.atlassian.com/migration/assess/journey-to-cloud[end of life of Jira server] in February of 2021.
Expand Down Expand Up @@ -252,6 +259,36 @@ If that project doesn't use GitHub issues then either:
- A tracking issue can be created that links to a Jira epic or query
- A repo is created for tracking individual issues and those issues link to an issue in the plugins issue tracker

It is expected that all repositories will transition from Jira to GitHub before Jira is likely decommissioned in 2024 due to end of life of the Jira server product.
This will alleviate the temporary issues as all issues will now be in one place.

The runbook and experience developed in the core components migration will ease future migrations. The migration scripts are based off of the successful INFRA project migration and have been greatly enhanced since then.

==== Anyone can triage issues in Jira

Jira permissions are very open and anyone with an account is able to update any issue including labelling.
With GitHub by default users need the `triage` permission to label and open / close issues.

For Jenkins core issues we make use of ChatOps to allow people without privileges to do some triage themselves.

A person can add labels with:

[source,shell]
----
/label bug
----

Removing labels can be done with:
[source,shell]
----
/remove-label bug
----

See below for the implementation details:
- link:https://github.com/timja/jenkins-gh-issues-poc/blob/master/.github/workflows/slash-commands.yml[slash-commands.yml]
- link:https://github.com/timja/jenkins-gh-issues-poc/blob/master/.github/workflows/label-command.yml[label-command.yml]
- link:https://github.com/timja/jenkins-gh-issues-poc/blob/master/.github/workflows/remove-label-command.yml[remove-label-command.yml]

=== Missing matching capability from Jira

==== Can't move issues without write access on both sides
Expand All @@ -277,6 +314,39 @@ The Kubernetes link:https://www.kubernetes.dev/docs/guide/issue-triage/#abandone
Jira allows explicit relationships to be set on links.
GitHub requires you to type 'Caused by' and 'Depends on' yourself.
Copy link
Member

@lemeurherve lemeurherve Jun 27, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a GHA for this: https://github.com/marketplace/actions/dependent-issues
Still need "caused by" or "depends on" though.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh cool, could be useful


==== Cannot search by caused by or depending on another GitHub issue

Jira maintains by-directional links between issues when a relationship is created and you can see all issues caused by a bug.

In GitHub there are three different ways to achieve this:

1. Look at the any issue references that show in the issue view
2. Use a GitHub search e.g. `state:open is:issue Caused by "https://github.com/timja/jenkins-gh-issues-poc/issues/1994"`. This will allow searching across repositories.
3. Use a GitHub issue filter in the repository. `is:issue is:open Caused by "https://github.com/timja/jenkins-gh-issues-poc/issues/1994"`

Example searches:
- link:https://github.com/search?q=state%3Aopen+is%3Aissue+Caused+by+%22https%3A%2F%2Fgithub.com%2Ftimja%2Fjenkins-gh-issues-poc%2Fissues%2F1994%22[GitHub search]
- link:https://github.com/timja/jenkins-gh-issues-poc/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+Caused+by%3A+https%3A%2F%2Fgithub.com%2Ftimja%2Fjenkins-gh-issues-poc%2Fissues%2F1994+[GitHub repository filter]

===== Custom fields and statuses

Jira has project level configuration on what fields a project has.
GitHub has the same feature with it's Project feature.

Below is the view from an issue:

image:custom-fields-issue-view.png[Image showing custom project fields in the issue view]

Below is the view from a project and shows search for issues released in a specific version:

image:custom-fields-project-view.png[Image showing custom project fields in the project view]

It is also common to have a bot that comments on an issue when it has been released in a version.

e.g. "This has been released in 2.355".

The benefit of that is it will give a notification to subscribed users that it has been released.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like something that might get built into GitHub in the future. The web UI already displays tags & releases including a commit, and it knows that a PR or commit closed an issue.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW, the "refined github" browser extension shows the corresponding release link on each pull request.


== Backwards Compatibility

There are no backwards compatibility concerns related to this proposal.
Expand Down
Binary file added jep/0000/custom-fields-issue-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added jep/0000/custom-fields-project-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.