Skip to content

Rebase instructions for versions 3.11

Jay Boyd edited this page Dec 19, 2018 · 2 revisions

As of July 27, 2018 (about v0.1.28 of Service Catalog)

Use UPSTREAM-MERGE.sh to do an automated merge. Details follow.

Assumes repo configuration such as:

$ git remote -v
jboyd01 git@github.com:jboyd01/service-catalog.git (fetch)
jboyd01 git@github.com:jboyd01/service-catalog.git (push)
origin  git@github.com:openshift/service-catalog.git (fetch)
origin  git@github.com:openshift/service-catalog.git (push)
upstream        https://github.com/kubernetes-incubator/service-catalog (fetch)
upstream        https://github.com/kubernetes-incubator/service-catalog (push)
$ git checkout master
$ git fetch -q --prune --tags origin
$ git fetch -q --prune --tags upstream
$ ./UPSTREAM-MERGE.sh v0.1.27

Expect an interactive merge for any conflicts. Answer n to the changes around .scBuildImage in Makefile:

@@ -200,8 +200,8 @@ $(BINDIR):
 .scBuildImage: build/build-image/Dockerfile
        mkdir -p .cache
        mkdir -p .pkg
-       sed -i "s/GO_VERSION/$(GO_VERSION)/g" build/build-image/Dockerfile
-       docker build -t scbuildimage -f build/build-image/Dockerfile .
+       sed "s/GO_VERSION/$(GO_VERSION)/g" < build/build-image/Dockerfile | \
+         docker build -t scbuildimage -f - .
        touch $@
 
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? n

[v0.1.27-rebase 14d889e5a] Merge upstream tag v0.1.27

** Upstream merge complete! **
View the above incoming commits to verify all is well
(mirrors the commit listing the PR will show)

Now make a pull request, after it's LGTMed make the tag:
$ git checkout master
$ git pull
$ git tag <origin version>-v0.1.27
$ git push origin <origin version>-v0.1.27

At this point build the openshift/service-catalog image:

$ hack/env make build-images

You may get errors about the source image, if so you may need either of these:

$ go get -u github.com/openshift/imagebuilder/cmd/imagebuilder

$ hack/build-source-image.sh

You should be able to verify with oc cluster up.

Build SC E2E tests:

$ OS_BUILD_ENV_PRESERVE=bin/ hack/env NO_DOCKER=1 make -f Makefile.sc bin/e2e.test

Run E2E test:

$ export KUBECONFIG=/home/jaboyd/go/src/github.com/openshift/origin/.kubeconfig
$ export SERVICECATALOGCONFIG=$KUBECONFIG
$ bin/e2e.test  -v 10 -alsologtostderr

# to run specific tests:
$ bin/e2e.test  -v 10 -alsologtostderr -ginkgo.focus=ServiceBroker
$ bin/e2e.test  -v 10 -alsologtostderr -ginkgo.focus=walkthrough
$ bin/e2e.test  -v 10 -alsologtostderr -ginkgo.focus=ServiceInstance

The changes are in a commit but need to be pushed and create a PR:

$ git push jboyd01 v0.1.27-rebase-master

Create a PR, ensure the service-catalog tests run (add a /test service-catalog if necessary).

Once reviewed and merged, add the tag:

$ git checkout master
$ git pull
$ git tag v3.11.0-0.1.27
$ git push origin v3.11.0-0.1.27

Old steps applicable through v0.1.25 of Service Catalog

Example rebase for v0.1.25 into openshift/service-catalog

  1. Get latest code to merge from upstream (kubernetes-incubator)
$ git checkout -b v0.1.25-rebase
$ git fetch upstream
$ git fetch -t upstream
$ cp OWNERS OWNERS.RH
$ git merge v0.1.25

handle conflicts


  1. Update renamed Makefile
$ git reset Makefile
$ git checkout Makefile
$ git log Makefile.sc #(for noticing potential additional patches (uncommon))
$ git show tags/v0.1.25:Makefile > Makefile.sc
  1. Manually reapply build patch. There's probably a better way...
find . -name OWNERS -exec git rm -f '{}' +
mv OWNERS.RH OWNERS
  1. Bump UPSTREAM-VERSION file

  2. Make pull request

$ git commit
$ git push
$ hub pull-request -b openshift:master (make pull request)
  1. Have PR merged via /lgtm

  2. After merging, push release tag.

$ git checkout master
$ git pull
$ git tag v3.11.0-0.1.25
$ git push origin v3.11.0-0.1.25