- create "sync-3.0.2" branch on top of upstream v3.0.2 tag (git checkout -b sync-3.0.2 v3.0.2), push to codefresh-io/argocd
- create branch "make-cf-changes" on current release (sync-2.14.9 HEAD)
- rebase onto sync-3.0.2 ("git rebase --onto sync-3.0.2 v2.14.9 make-cf-changes)
- make a pr from "make-cf-changes" into "sync-3.0.2".
- the pr will trigger dev image builds, e2e runs, etc (quay.io/codefresh/dev/argocd)
- fix conflicts, test, fixes, whatever (by instuction in following section)
- merge pr
- merge will create official image of fork (quay.io/codefresh/argocd)
- manually create tag "v3.0.2-YYYY-MM-DD-SHA"
- THERE IS NOT GITHUB RELEASE
This docs include info about places where codefresh made it's customizations:
- All files that're deleted in our branches - we can keep deleted (accept ours).
- all
xxx.pb.go- apply theirs and after resolving conflicts re-generate.
.github/workflows- accept ours (yours).applicationset- accept theirsassets / swagger- accept ours. Later run codegen and commit new versioncmd / argocd- accept ours if files deleted.cmd / argocd-application-controller- no custom thing from our side, so just resolve conflicts.cmd / notifications- no custom thing from our side, so just accept theirs.cmd / argocd-repo-server- includes our changes with codefresh related parameters.cmd / common- includes our changes with codefresh related constants (event-reporter)cmd / controller / application.go- includes our changes to resource node (to return labels and annotations getResourceTree method)cmd / controller / state.go- includes our changes (GetRepoObjs method)cmd / controller / state_test.go - includes our changes. Replace manifest values with our structapiclient.Manifest`docs- apply theirsexamples- apply theirshack- apply theirsmanifests- accept theirsnotification_controller- apply theirspkg/apis/application/v1alpha- generatedXXX - apply theirs (than re-generate). types.go - merge (includes our changes with ForceNamespace).server / application.go- merge (includes our v1 event-reporter.)ui- accept theirs.util / kustomize- merge, as it includes ours changes.mkdocs.yaml- apply theirs.go.mod- merge direct dependencies. go.sum accept theirs. Run go mod tidy. Checkreplacesection, perform cleanup if needed.reposerver / sepository.go- merge, includes: cf appVersion logic; type manifest struct (with path to file, rawManifest);
- run
go mod tidy - run
go mod download - run
go mod vendor - run
make install-tools-local - run
make lint-local - run
make protogen-fast- because sometimes gogen won't work if types from protogen used - run
make codegen - run
make test-local
- Revert cherry picks before merges - as they cause issues later if in upstream decided to slightly move some parts of such changes. In this case no conflicts will occur during merge as they on different lines but then you need cleanup them manually.