From cb414d8bc4b701d19f141e5a7cb5af66a138f64b Mon Sep 17 00:00:00 2001 From: Wojciech Tyczynski Date: Thu, 28 May 2015 17:21:54 +0200 Subject: [PATCH 1/2] Delete generated deep-copy files before updating. --- hack/update-generated-deep-copies.sh | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/hack/update-generated-deep-copies.sh b/hack/update-generated-deep-copies.sh index 051f481444b..3b2e9a2415f 100755 --- a/hack/update-generated-deep-copies.sh +++ b/hack/update-generated-deep-copies.sh @@ -18,6 +18,15 @@ set -o errexit set -o nounset set -o pipefail +function result_file_name() { + local version=$1 + if [ "${version}" == "api" ]; then + echo "pkg/api/deep_copy_generated.go" + else + echo "pkg/api/${version}/deep_copy_generated.go" + fi +} + function generate_version() { local version=$1 local TMPFILE="/tmp/deep_copy_generated.$(date +%s).go" @@ -38,14 +47,14 @@ EOF EOF gofmt -w -s $TMPFILE - if [ "${version}" == "api" ]; then - mv $TMPFILE pkg/api/deep_copy_generated.go - else - mv $TMPFILE pkg/api/${version}/deep_copy_generated.go - fi + mv $TMPFILE `result_file_name ${version}` } VERSIONS="api v1beta3 v1" +# To avoid compile errors, remove the currently existing files. +for ver in $VERSIONS; do + rm -f `result_file_name ${ver}` +done for ver in $VERSIONS; do generate_version "${ver}" done From 49e064b2afbbf5f3f692d7cf11117a3db22dab41 Mon Sep 17 00:00:00 2001 From: Wojciech Tyczynski Date: Thu, 28 May 2015 17:41:42 +0200 Subject: [PATCH 2/2] Update instructions on conversions. --- docs/devel/api_changes.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/devel/api_changes.md b/docs/devel/api_changes.md index 4627c6dfd65..17278c6ef5e 100644 --- a/docs/devel/api_changes.md +++ b/docs/devel/api_changes.md @@ -254,6 +254,12 @@ regenerate auto-generated ones. To regenerate them: $ hack/update-generated-conversions.sh ``` +If running the above script is impossible due to compile errors, the easiest +workaround is to comment out the code causing errors and let the script to +regenerate it. If the auto-generated conversion methods are not used by the +manually-written ones, it's fine to just remove the whole file and let the +generator to create it from scratch. + Unsurprisingly, adding manually written conversion also requires you to add tests to `pkg/api//conversion_test.go`.