| 380 | } |
| 381 | |
| 382 | func (g *genDeprecatedDefinitions) argsFromType(_ *generator.Context, t *types.Type) (*APIDeprecation, error) { |
| 383 | _, introducedMajor, introducedMinor, err := extractIntroducedTag(t) |
| 384 | if err != nil { |
| 385 | return nil, err |
| 386 | } |
| 387 | |
| 388 | // compute based on our policy |
| 389 | deprecatedMajor := introducedMajor |
| 390 | deprecatedMinor := introducedMinor + 3 |
| 391 | // if someone intentionally override the deprecation release |
| 392 | exists, err := tagExists(deprecatedTagName, t) |
| 393 | if err != nil { |
| 394 | return nil, err |
| 395 | } |
| 396 | if exists { |
| 397 | _, deprecatedMajor, deprecatedMinor, err = extractDeprecatedTag(t) |
| 398 | if err != nil { |
| 399 | return nil, err |
| 400 | } |
| 401 | } |
| 402 | |
| 403 | // compute based on our policy |
| 404 | removedMajor := deprecatedMajor |
| 405 | removedMinor := deprecatedMinor + 3 |
| 406 | // if someone intentionally override the removed release |
| 407 | exists, err = tagExists(removedTagName, t) |
| 408 | if err != nil { |
| 409 | return nil, err |
| 410 | } |
| 411 | if exists { |
| 412 | _, removedMajor, removedMinor, err = extractRemovedTag(t) |
| 413 | if err != nil { |
| 414 | return nil, err |
| 415 | } |
| 416 | } |
| 417 | |
| 418 | replacementGroup, replacementVersion, replacementKind, hasReplacement, err := extractReplacementTag(t) |
| 419 | if err != nil { |
| 420 | return nil, err |
| 421 | } |
| 422 | |
| 423 | reg := APIDeprecation{ |
| 424 | IntroducedVersion: Version{ |
| 425 | VersionMajor: introducedMajor, |
| 426 | VersionMinor: introducedMinor, |
| 427 | }, |
| 428 | DeprecatedVersion: Version{ |
| 429 | VersionMajor: deprecatedMajor, |
| 430 | VersionMinor: deprecatedMinor, |
| 431 | }, |
| 432 | RemovedVersion: Version{ |
| 433 | VersionMajor: removedMajor, |
| 434 | VersionMinor: removedMinor, |
| 435 | }, |
| 436 | } |
| 437 | |
| 438 | if hasReplacement { |
| 439 | reg.Replacement = GroupVersionKind{ |