forked from opendatahub-io/kserve
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
caea0d6
commit e9c073a
Showing
2 changed files
with
47 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |