diff options
| author | Tim Hockin <thockin@google.com> | 2016-06-06 22:46:24 -0700 |
|---|---|---|
| committer | Tim Hockin <thockin@google.com> | 2016-07-07 16:49:46 -0700 |
| commit | 4a69f7cd28fa45c3f34dfa1a2e89ca09bdea5294 (patch) | |
| tree | 8c91311afa8f9ce893606c5ef9d9f65b183bb944 | |
| parent | 0bc86fd69bd94f5a8437b5a2b36578ad83fe49c9 (diff) | |
Use file tags to generate deep-copies
This drives most of the logic of deep-copy generation from tags like:
// +deepcopy-gen=package
..rather than hardcoded lists of packages. This will make it possible to
subsequently generate code ONLY for packages that need it *right now*, rather
than all of them always.
Also remove pkgs that really do not need deep-copies (no symbols used
anywhere).
| -rw-r--r-- | adding-an-APIGroup.md | 8 | ||||
| -rw-r--r-- | api_changes.md | 9 |
2 files changed, 9 insertions, 8 deletions
diff --git a/adding-an-APIGroup.md b/adding-an-APIGroup.md index c2197761..6026cc2e 100644 --- a/adding-an-APIGroup.md +++ b/adding-an-APIGroup.md @@ -75,12 +75,14 @@ cmd/libs/go2idl/ tool. 1. Generate conversions and deep-copies: 1. Add your "group/" or "group/version" into - cmd/libs/go2idl/{conversion-gen, deep-copy-gen}/main.go; + cmd/libs/go2idl/conversion-gen/main.go; 2. Make sure your pkg/apis/`<group>`/`<version>` directory has a doc.go file + with the comment `// +k8s:deepcopy-gen=register`, to catch the attention + of our generation tools. + 3. Make sure your pkg/apis/`<group>`/`<version>` directory has a doc.go file with the comment `// +genconversion=true`, to catch the attention of our gen-conversion script. - 3. Run hack/update-all.sh. - + 4. Run hack/update-all.sh. 2. Generate files for Ugorji codec: diff --git a/api_changes.md b/api_changes.md index 4af0bd7c..99aba0d7 100644 --- a/api_changes.md +++ b/api_changes.md @@ -468,12 +468,11 @@ regenerate auto-generated ones. To regenerate them run: hack/update-codegen.sh ``` -update-codegen will also generate code to handle deep copy of your versioned -api objects. The deep copy code resides with each versioned API: - - `pkg/api/<version>/deep_copy_generated.go` containing auto-generated copy functions - - `pkg/apis/extensions/<version>/deep_copy_generated.go` containing auto-generated copy functions +As part of the build, kubernetes will also generate code to handle deep copy of +your versioned api objects. The deep copy code resides with each versioned API: + - `<path_to_versioned_api>/zz_generated.deep_copy.go` containing auto-generated copy functions -If running the above script is impossible due to compile errors, the easiest +If regeneration is somehow not possible 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 |
