Revision history for IO-K8s-Deprecated

1.111     2026-10-21 18:26:25Z

    * Removed the tombstones for
      IO::K8s::Apimachinery::Pkg::Apis::Meta::V1::APIGroupList and
      IO::K8s::Apimachinery::Pkg::Apis::Meta::V1::APIResourceList. They
      were swept up with the *List classes in 1.105, but they are the
      meta.v1 discovery Kinds, not lists of resources, and IO-K8s ships
      both again as real classes since 1.106. Both distributions install
      the same file, so installing IO-K8s-Deprecated 1.105 after IO-K8s
      1.106 or later overwrote the working classes with stubs that die on
      load. This distribution now holds 78 tombstones: 74 consolidated
      *List classes and the 4 classic DRA classes.

    * If you installed IO-K8s-Deprecated 1.105 on top of IO-K8s 1.106 or
      later: upgrading this distribution does not bring the two classes
      back, an installer does not delete files a newer release no longer
      ships. Reinstall IO-K8s (cpanm --reinstall IO::K8s).

    * New test t/02-name-guard.t holds the rule behind it: no package
      shipped here may be shipped by the current IO-K8s. It compares
      against an io-k8s-p5 checkout next to this one, an installed IO::K8s
      at least as new as this distribution, or the lib directory named in
      IO_K8S_LIB, and skips when none of them is available.

1.105     2026-08-08 03:21:30Z

    First release. Permanent home for CPAN redirect ("tombstone") stub
    modules covering IO::K8s modules that were genuinely removed within the
    IO-K8s distribution's own release history (PAUSE indexes per module
    name, not per distribution, so an in-dist removal orphans the old name
    exactly the same way a cross-distribution rename does).

    * Tombstones -- consolidated into the generic IO::K8s::List (76
      classes). IO-K8s replaced every per-resource *List class (PodList,
      ServiceList, DeploymentList, etc.) with a single generic
      IO::K8s::List back in its 1.00 Moose-to-Moo rewrite; each of the 76
      only ever emitted a deprecation warning after that (never a real
      class in the 1.x series). IO-K8s 1.100 was the last CPAN release to
      ship even that warning stub -- all 76 were then dropped from the
      distribution outright. Full list: lib/IO/K8s/Deprecated.pm POD or
      t/01-tombstones.t.

    * Tombstones -- removed, no successor: classic DRA
      control-plane-controller allocation (4 classes). IO-K8s's
      resource.k8s.io/v1alpha3 shipped an alpha-only (never GA)
      WaitForFirstConsumer allocation flow coordinated via
      PodSchedulingContext (+ its Spec/Status) and
      ResourceClaimSchedulingStatus. When Dynamic Resource Allocation
      graduated to GA with an architecturally different
      structured-parameters model at resource.k8s.io/v1, that mechanism
      was dropped outright, with no 1:1 successor class. IO-K8s 1.100 was
      the last CPAN release to ship these names. Full list:
      lib/IO/K8s/Deprecated.pm POD or t/01-tombstones.t.

    * Considered but not shipped -- 8 Cilium v2alpha1 classes dropped in
      IO-K8s 1.100's Cilium v1.19.2 upgrade were drafted as tombstones
      first, then reverted: IO-K8s restored them instead, for backward
      compatibility, matching its own convention of keeping multiple API
      versions of a resource side by side (e.g. Apps
      V1beta1/V1beta2/V1). No tombstone needed once the classes are
      shipping again under their original names. A later v1.31 -> v1.36
      IO-K8s upstream sync repeated the same false start for the older
      served-but-GA'd admissionregistration.k8s.io ValidatingAdmissionPolicy
      v1alpha1/v1beta1, authentication.k8s.io SelfSubjectReview
      v1alpha1/v1beta1, and flowcontrol.apiserver.k8s.io v1beta3 tracks --
      same fix, restored rather than tombstoned. Both recorded in
      lib/IO/K8s/Deprecated.pm's POD so a future audit doesn't rediscover
      and re-tombstone the same names.

    * Mechanism
        - Every file in this dist versions normally and uniformly with
          dzil (no version_finder override), starting at 1.105 -- safely
          past IO-K8s 1.100, the last CPAN release that shipped these
          module names (as warning stubs, or in the DRA case as real
          classes) -- so PAUSE indexes this dist as canonical for the old
          names and `cpanm Old::Module::Name` installs the redirect
          instead of the stale pre-removal code.
