From 24934bb5e6f4a2ab636e0d893d056276ce2fd3dd Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2026 04:53:19 +0000 Subject: [PATCH 1/3] feat: Integrate vendor VFIO vGPUs into the instance lifecycle Stainless-Generated-From: 5c23aa338b3131721f25174807fe8ae9270f7851 --- src/hypeman/types/gpu_profile.py | 6 +++++- src/hypeman/types/instance.py | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/hypeman/types/gpu_profile.py b/src/hypeman/types/gpu_profile.py index 109beb3..1db84cb 100644 --- a/src/hypeman/types/gpu_profile.py +++ b/src/hypeman/types/gpu_profile.py @@ -9,7 +9,11 @@ class GPUProfile(BaseModel): """Available vGPU profile""" available: int - """Number of instances that can be created with this profile""" + """Number of virtual functions currently able to create this profile. + + Best-effort: creating an instance may reduce availability on sibling functions + sharing GPU framebuffer. + """ framebuffer_mb: int """Frame buffer size in MB""" diff --git a/src/hypeman/types/instance.py b/src/hypeman/types/instance.py index 254db1b..fc5d857 100644 --- a/src/hypeman/types/instance.py +++ b/src/hypeman/types/instance.py @@ -19,8 +19,11 @@ class GPU(BaseModel): """GPU information attached to the instance""" + device_path: Optional[str] = None + """sysfs path of the assigned vGPU device""" + mdev_uuid: Optional[str] = None - """mdev device UUID""" + """mdev device UUID (mdev hosts only)""" profile: Optional[str] = None """vGPU profile name""" From 5c037b9f9c5926025ba9e5852bea964b4e1ace7c Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2026 14:31:44 +0000 Subject: [PATCH 2/3] feat: Add Windows hypervisor primitives Stainless-Generated-From: c38367434bc605f6a8baeb3c55826ba983ab235b --- src/hypeman/resources/instances/instances.py | 4 ++-- src/hypeman/types/instance_logs_params.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hypeman/resources/instances/instances.py b/src/hypeman/resources/instances/instances.py index 513e422..de7bdb1 100644 --- a/src/hypeman/resources/instances/instances.py +++ b/src/hypeman/resources/instances/instances.py @@ -536,7 +536,7 @@ def logs( id: str, *, follow: bool | Omit = omit, - source: Literal["app", "vmm", "hypeman"] | Omit = omit, + source: Literal["app", "vmm", "hypeman", "swtpm"] | Omit = omit, tail: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -1358,7 +1358,7 @@ async def logs( id: str, *, follow: bool | Omit = omit, - source: Literal["app", "vmm", "hypeman"] | Omit = omit, + source: Literal["app", "vmm", "hypeman", "swtpm"] | Omit = omit, tail: int | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. diff --git a/src/hypeman/types/instance_logs_params.py b/src/hypeman/types/instance_logs_params.py index a56923f..e016411 100644 --- a/src/hypeman/types/instance_logs_params.py +++ b/src/hypeman/types/instance_logs_params.py @@ -11,7 +11,7 @@ class InstanceLogsParams(TypedDict, total=False): follow: bool """Continue streaming new lines after initial output""" - source: Literal["app", "vmm", "hypeman"] + source: Literal["app", "vmm", "hypeman", "swtpm"] """Log source to stream: - app: Guest application logs (serial console output) From 35341f8d6ec188f5c350e2aa0f2fb5ee5fef58ce Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Wed, 2 Sep 2026 14:34:56 +0000 Subject: [PATCH 3/3] release: 0.29.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/hypeman/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8935e93..b8dda9b 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.28.0" + ".": "0.29.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ed65ca..d3b0f3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [0.29.0](https://github.com/kernel/hypeman-python/compare/v0.28.0...v0.29.0) (2026-09-02) + + +### Features + +* Add Windows hypervisor primitives ([5c037b9](https://github.com/kernel/hypeman-python/commit/5c037b9f9c5926025ba9e5852bea964b4e1ace7c)) +* Integrate vendor VFIO vGPUs into the instance lifecycle ([24934bb](https://github.com/kernel/hypeman-python/commit/24934bb5e6f4a2ab636e0d893d056276ce2fd3dd)) + ## [0.28.0](https://github.com/kernel/hypeman-python/compare/v0.27.0...v0.28.0) (2026-09-01) diff --git a/pyproject.toml b/pyproject.toml index 510aa2f..5eca9c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "hypeman" -version = "0.28.0" +version = "0.29.0" description = "The official Python library for the hypeman API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/hypeman/_version.py b/src/hypeman/_version.py index 8b63c5a..2605750 100644 --- a/src/hypeman/_version.py +++ b/src/hypeman/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "hypeman" -__version__ = "0.28.0" # x-release-please-version +__version__ = "0.29.0" # x-release-please-version