Skip to content

Breaking API changes in minor releases #5682

@ppkarwasz

Description

@ppkarwasz

Describe the bug

As reported by one of our users in apache/logging-log4j2#2151, the kubernetes-model-core and kubernetes-client contain some breaking API changes in versions 6.2.0 and 6.5.0:

  • in version 6.2.0 the public method io.fabric8.kubernetes.api.model.ObjectMeta#getClusterName was removed,
  • in version 6.5.0 the methods io.fabric8.kubernetes.client.Config#getRollingTimeout and io.fabric8.kubernetes.client.ConfigBuilder#withRollingTimeout were removed.

As a result log4j-kubernetes compiles and works with version 6.1.1 of kubernetes-client, but stop working with version 6.2.0.

Fabric8 Kubernetes Client version

6.2.0

Steps to reproduce

  • Checkout https://github.com/apache/logging-log4j2;
  • Run
    ./mvnw verify -pl log4j-kubernetes -Dkubernetes-client.version=6.9.2

Expected behavior

We would expect kubernetes-client to follow semantic versioning, where public methods can be deprecated in a minor release, but they are only removed in the next major release.

At Log4j we use bnd-baseline-maven-plugin to automatically check for major API changes, but plenty of other tools can also be used.

Runtime

other (please specify in additional context)

Kubernetes API Server version

other (please specify in additional context)

Environment

Windows, Linux, macOS

Fabric8 Kubernetes Client Logs

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions