github.com/kubernetes/utils@v0.0.0-20190308190857-21c4ce38f2a7/HOWTOMOVE.md (about) 1 # How to move a utility pkg from other kubernetes repos 2 3 It has 2 steps to move a pkg from other Kubernetes repos to `k8s.io/utils` repo: 4 - copy the pkg to `k8s.io/utils` repo 5 - update the import paths and `vendor/` in the repos that refer this pkg 6 7 ## Copy the pkg to `k8s.io/utils` repo 8 9 Copying should preserve all the git history associated with it. 10 [Here](http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/) is a working approach. 11 Note: You may need to use `--allow-unrelated-histories` if you get error when running `git pull` following the post above. 12 13 Then, you may need to restructure the package to make sure it has the following structure. 14 15 . 16 ├── doc.go # Description for this package 17 ├── <utilname1>.go # utility go file 18 ├── <utilname>_test.go # go unit tests 19 └── testing # All the testing framework 20 └── fake_<utilname>.go # Testing framework go file 21 22 [#5](https://github.com/kubernetes/utils/pull/5) is an example for this step. 23 24 ## Update the repos that refer the pkg 25 26 You should update the import paths. 27 Then follow [this doc](https://github.com/kubernetes/community/blob/master/contributors/devel/godep.md) to update `vendor/` and `Godeps/`. 28 29 You may want to run `make bazel-test` to make sure all new references work. 30 31 [kubernetes/kubernetes#49234](https://github.com/kubernetes/kubernetes/pull/49234) is an example for this step.