From e9c073ac5dac4f260c0917df4cb2e4d54b1b43b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Hern=C3=A1ndez?= Date: Tue, 19 Sep 2023 18:38:25 -0600 Subject: [PATCH] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/upstream-sync.md | 46 +++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/upstream-sync.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9e096b591fd..07d8f01f2eb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -2,7 +2,7 @@ name: Bug report about: Tell us about a problem you are experiencing title: '' -labels: kind/bug +labels: '' assignees: '' --- diff --git a/.github/ISSUE_TEMPLATE/upstream-sync.md b/.github/ISSUE_TEMPLATE/upstream-sync.md new file mode 100644 index 00000000000..559e27e29a3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/upstream-sync.md @@ -0,0 +1,46 @@ +--- +name: Upstream sync +about: Outlines the process to synchonize ODH fork with upstream KServe repositories +title: Synchronization with upstream repositories +labels: '' +assignees: '' + +--- + +This repository is configured with a GitHub App that automatically creates pull requests to incorporate upstream changes into ODH's fork. Because of adaptations to enhance UX with OpenShift, changes need to be reviewed carefully. The most notable points of conflict are: + +* ODH fork removes `ClusterServingRuntime` CRD. If new upstream development includes changes that involve this CRD, the code needs to be adapted. +* ODH fork uses OpenShift's Serving Certificates, instead of relying on cert-manager. If new upstream development includes changes that involve cert-manager, the code needs to be adapted. +* Files related to GitHub Actions have some changes because of ODH tooling. + +It is important to note that the synchronization should be done both for the `master` branch, and also for `release-*` branches (this ticket should be used to cover both). At the time of writing, only `release-v0.11` was an active release branch. + +To synchronize ODH's KServe fork with upstream, do the following steps: + +1. Search for automatic synchronization pull requests. You can use [this link](https://github.com/opendatahub-io/kserve/pulls/app%2Fpull). + 1. If there are no PRs, no synchronization should be needed. +1. Open the pull request. Go to the bottom of the page, where the "Merge pull request" button is located. If you see the "This branch has conflicts that must be resolved" message, you will need to do the synchronization manually (skip to the following set of steps). +1. Verify is there is any failing check. You may need to approve running checks. Trigger re-tests if needed. + 1. If some check is giving a true positive, you will need to do a manual sync (as that typically needs code changes/adaptations). +1. Carefully review the new changes, to make sure that no unwanted logic is included (typically, it would be around `ClusterServingRuntimes` and cert-manager stuff). + 1. If there are unwanted changes, you will need to do a manual sync (as that typically needs code changes/adaptations). +1. If everything is good. Approve the PR and let openshift-ci to merge it. + 1. You can either use GitHub's review/approval feature, or you can leave a comment with both `/approve` and `/lgtm` commands. + +If you need to syncrhonize manually, do the following steps: + +1. If you haven't done so, create your own fork of ODH's KServe: https://github.com/opendatahub-io/kserve/fork +1. If you haven't done so, checkout your fork of KServe: `git clone git@github.com:{$YOUR_GITHUB_USER}/kserve.git` + 1. If you already forked ODH's KServe, make sure you fetch the latest code from ODH repositories. Fetch the relevant branch you want to synchronize. +1. Checkout to the branch you want to synchronize. + 1. e.g. If you want to synchronize `release-v0.11`, do `git branch release-v0.11-sync origin/release-v0.11 && git checkout release-v0.11-sync`. +1. If you haven't done so, add upstream as a remote: `git remote add kserve git@github.com:kserve/kserve.git` +1. Fetch latest code from upstream KServe: `git fetch kserve` +1. Do the sync as a merge. + 1. e.g. If you want to synchronize `release-v0.11`, do `git merge kserve/release-0.11`. +1. If there are any conflicts, or there are any adaptations that need to be done, do them now. +1. Commit any changes to your local branch. +1. Push the local branch to your fork: `git push origin release-v0.11-sync`. +1. Open a pull request. +1. You will need help from one of your peers. Ask somebody to carefully review your synchronization PR and approve it. +1. Once your PR is merged, you can close the automatic PR that the GitHub App created.