constellation-rs / constellation

Distributed programming for Rust.
Apache License 2.0
564 stars 24 forks source link

Update k8s-openapi requirement from 0.7 to 0.12 #94

Open dependabot-preview[bot] opened 3 years ago

dependabot-preview[bot] commented 3 years ago

Updates the requirements on k8s-openapi to permit the latest version.

Release notes

Sourced from k8s-openapi's releases.

v0.12.0

k8s-openapi

  • BREAKING CHANGE: Struct fields of type Option<Vec<T>> and Option<BTreeMap<K, V>> are now of type Vec<T> and BTreeMap<K, V> respectively. When deserializing from JSON, null is deserialized to an empty collection. When serializing, an empty collection is not serialized. This was done to improve ergonomics and is not expected to create problems with any existing Kubernetes objects. If you do find a Kubernetes object that meaningfully differentiates between a null collection and an empty one, please file a bug.

  • BREAKING CHANGE: Added support for Kubernetes 1.21 under the v1_21 feature.

  • FEATURE: The Resource trait now contains two additional items. The first is an associated type Scope: ResourceScope that identifies whether a resource is cluster-scoped, namespace-scoped or a subresource. The second is an associated const URL_PATH_SEGMENT: &'static str that can be used to dynamically construct a URL for operations on the resource - for cluster- and namespace-scoped resources it is their plural name, for subresources it is the subresource name.

Corresponding Kubernetes API server versions:

  • v1.11.10
  • v1.12.10
  • v1.13.12
  • v1.14.10
  • v1.15.12
  • v1.16.15
  • v1.17.17
  • v1.18.19
  • v1.19.11
  • v1.20.7
  • v1.21.1

k8s-openapi-derive

  • BUGFIX: The generated code of #[derive(CustomResourceDefinition)] implicitly expected the crate to have added a dependency on the http, serde and serde_json crates. It has now been fixed to use the re-exports from the k8s-openapi crate instead.

k8s-openapi-codegen-common

  • BREAKING CHANGE: run now takes an impl of RunState for writing generated code and imports instead of two separate closures. This allows the impl of RunState to share state between invocations of the two functions instead of needing RefCell, etc.

  • BREAKING CHANGE: swagger20::Type::JSONSchemaPropsOrArray, swagger20::Type::JSONSchemaPropsOrBool and swagger20::Type::JSONSchemaPropsOrStringArray have been renamed to swagger20::Type::JsonSchemaPropsOrArray, swagger20::Type::JsonSchemaPropsOrArray and swagger20::Type::JsonSchemaPropsOrArray respectively to match Rust naming conventions.

Changelog

Sourced from k8s-openapi's changelog.

v0.12.0 (2021-06-15)

k8s-openapi

  • BREAKING CHANGE: Struct fields of type Option<Vec<T>> and Option<BTreeMap<K, V>> are now of type Vec<T> and BTreeMap<K, V> respectively. When deserializing from JSON, null is deserialized to an empty collection. When serializing, an empty collection is not serialized. This was done to improve ergonomics and is not expected to create problems with any existing Kubernetes objects. If you do find a Kubernetes object that meaningfully differentiates between a null collection and an empty one, please file a bug.

  • BREAKING CHANGE: Added support for Kubernetes 1.21 under the v1_21 feature.

  • FEATURE: The Resource trait now contains two additional items. The first is an associated type Scope: ResourceScope that identifies whether a resource is cluster-scoped, namespace-scoped or a subresource. The second is an associated const URL_PATH_SEGMENT: &'static str that can be used to dynamically construct a URL for operations on the resource - for cluster- and namespace-scoped resources it is their plural name, for subresources it is the subresource name.

Corresponding Kubernetes API server versions:

  • v1.11.10
  • v1.12.10
  • v1.13.12
  • v1.14.10
  • v1.15.12
  • v1.16.15
  • v1.17.17
  • v1.18.19
  • v1.19.11
  • v1.20.7
  • v1.21.1

k8s-openapi-derive

  • BUGFIX: The generated code of #[derive(CustomResourceDefinition)] implicitly expected the crate to have added a dependency on the http, serde and serde_json crates. It has now been fixed to use the re-exports from the k8s-openapi crate instead.

k8s-openapi-codegen-common

  • BREAKING CHANGE: run now takes an impl of RunState for writing generated code and imports instead of two separate closures. This allows the impl of RunState to share state between invocations of the two functions instead of needing RefCell, etc.

  • BREAKING CHANGE: swagger20::Type::JSONSchemaPropsOrArray, swagger20::Type::JSONSchemaPropsOrBool and swagger20::Type::JSONSchemaPropsOrStringArray have been renamed to swagger20::Type::JsonSchemaPropsOrArray, swagger20::Type::JsonSchemaPropsOrArray and swagger20::Type::JsonSchemaPropsOrArray respectively to match Rust naming conventions.


v0.11.0 (2021-01-23)

  • BREAKING CHANGE: This version partially reverts the change in v0.9.0 that made k8s_openapi::apimachinery::pkg::apis::meta::v1::WatchEvent<T> require T: k8s_openapi::Resource; now it only requires T: serde::Deserialize<'de> once more. This has been done to make it possible to use WatchEvent with custom user-provided resource types that do not implement k8s_openapi::Resource.

    The k8s_openapi::Resource bound in v0.9.0 was added to be able to enforce that the WatchEvent::<T>::Bookmark events contain the correct apiVersion and kind fields for the specified T during deserialization. Without the bound now, it is no longer possible to do that. So it is now possible to deserialize, say, a WatchEvent::<Pod>::Bookmark as a WatchEvent::<Node>::Bookmark without any runtime error. Take care to deserialize watch_* API responses into the right k8s_openapi::WatchResponse<T> type, such as by relying on the returned k8s_openapi::ResponseBody<T> as documented in the crate docs.

  • BREAKING CHANGE: The bytes dependency has been updated to match the tokio v1 ecosystem.

  • FEATURE: Added support for Kubernetes 1.20 under the v1_20 feature.

Corresponding Kubernetes API server versions:

  • v1.11.10
  • v1.12.10

... (truncated)

Commits
  • 3fc4435 v0.12.0
  • 4b91c93 Download kind to ~/.local/bin instead of ~/bin to be more in-line with conven...
  • d5ad632 Add URL_PATH_SEGMENT and Scope to k8s_openapi::Resource
  • a44c1c1 Use kind v0.11.1 for all versions that it supports.
  • 53b653d Evaluate ListableResource::LIST_KIND at generation-time instead of compile-time.
  • ab740f0 Add v1.21.1
  • 6cff214 Make optional array and object fields use empty Vec / BTreeMap to denote null
  • ffe6630 Make it more obvious when CI fails because generated code changes haven't bee...
  • 85f5416 Update to v1.18.19, v1.19.11, v1.20.7
  • 0a9d7e4 Make api::core::v1::ContainerImage::names optional.
  • Additional commits viewable in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)