-
-
Notifications
You must be signed in to change notification settings - Fork 98
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
base: master
Are you sure you want to change the base?
Changes from 1 commit
4bbe85e
37bc504
432a96b
c1ac9da
4f54fc2
c9fa6ae
48c0106
c8ce3da
06eb366
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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. | ||
|
@@ -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. | ||
|
@@ -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 | ||
|
@@ -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. | ||
|
||
==== 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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. | ||
|
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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