python: [RFC] Major breaking changes in the upcoming release

Hi Kubernetes Python client developers, this is a request for comment issue. Please leave comments if you have any opinion/suggestion. Thanks!

What happened: A majority of the code base is generated code. This repo is switching from using swagger-codegen to using openapi-generator. For more backgrounds:

Major breaking changes were detected when we released 11.0.0a1 with openapi-generator:

The breaking changes are:

  1. [Major] kubernetes.client.apis package is renamed to kubernetes.client.api
  2. [Major] kubernetes package code now uses absolute import instead of relative import
  3. [Minor] The swagger_types attribute in all models is renamed to openapi_types

the major breaking changes come from https://github.com/swagger-api/swagger-codegen/pull/6839#discussion_r148603571, which is also in latest swagger-codegen. This repo didn’t have these changes because we were depending on a old version of swagger-codegen.

What versions are affected?:

  • All 8.0.x, 9.0.x, 10.0.x versions are not affected
  • 11.0.0a1 (corresponding to Kubernetes 1.15) is the only version that’s affected currently
  • The next release 11.0.0b1 and future releases (corresponding to Kubernetes 1.15, 1.16+) will be affected.

Impact and fix:

  • All clients that import kubernetes.client.apis must change the import to kubernetes.client.api when upgrading to 11.0.0b1+, to avoid import error.
  • Clients that use relative import and patch the kubernetes package locally may experience unexpected import error. Clients should install kubernetes package properly following the instructions in the Readme or the release page.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 3
  • Comments: 17 (10 by maintainers)

Commits related to this issue

Most upvoted comments

@roycaihw my 2 cents (appologies for being so scrooge, it’s late here): I consider this “impolite” to remove existing functionality without warnings. Maybe we can add an empty package called api which only imports everything from apis. However, when one uses stuff from api we can issue a deprecation warning. This package can stay along for 2 versions giving people enough time to update their code.

I’m willing to work a PR for this. If someone else feels the urgency to do this before me here is a reference: https://www.lesinskis.com/python_deprecation_tutorial.html

@palnabarun Nabarun is working on the 11.0.0 release and I think a PR will be created in the next two weeks.

Hi, Any news regarding 1.16 support? Or the the estimated release time?

/remove-lifecycle stale