From ee69c699b1d10fa7f9dacc5129914d7009891ba6 Mon Sep 17 00:00:00 2001 From: Clint Branham Date: Fri, 22 May 2026 15:47:36 -0500 Subject: [PATCH] chore: release 0.2.0 Minor bump: this release adds features (New-PveVm disk controller/IO options and Get-PveVmConfig key surfacing, #65) alongside two bug fixes (#64 semicolon form-encoding, #68 guest-exec argv). Updates the three release artifacts in lockstep: psd1 ModuleVersion, psd1 ReleaseNotes, and CHANGELOG ([0.2.0] cut from [Unreleased]). Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 12 ++++++++++++ src/PSProxmoxVE/PSProxmoxVE.psd1 | 23 +++++++++++++---------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30d0ce0..8a8b0f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ and this project adheres to [Conventional Commits](https://www.conventionalcommi ## [Unreleased] +## [0.2.0] - 2026-05-22 + +### Added + +- `New-PveVm` disk controller / IO options: `-DiskBus` (virtio/scsi/sata/ide), `-ScsiHardware` (scsihw), `-DiskIoThread`, `-DiskAio`, `-DiskSsd`, `-DiskDiscard`, `-DiskCache`. Invalid combinations (e.g. `ssd` on virtio, `iothread` on sata/ide or scsi without `virtio-scsi-single`) are rejected up front with a clear error. (#65) +- `Get-PveVmConfig` now surfaces `scsihw`, `efidisk0`, and `tpmstate0` as typed properties, plus an `AdditionalProperties` dictionary capturing any other config key (e.g. `hostpci0`) as native .NET values instead of silently dropping it. (#65) + +### Fixed + +- Form values containing `;` were split into bogus fields by PVE's parser, so a multi-device boot order set via `Set-PveVmConfig -AdditionalConfig @{ boot = 'order=scsi0;ide2' }` failed with `unable to parse drive options`. Semicolons are now percent-encoded. (#64) +- `Invoke-PveVmGuestExec -Args` were delivered to the guest as JSON on STDIN instead of as argv, so commands ran with no/garbage arguments. Arguments are now sent as the PVE `command` array (repeated keys), reaching the process as real argv. (#68) + ## [0.1.3] - 2026-05-20 ### Added diff --git a/src/PSProxmoxVE/PSProxmoxVE.psd1 b/src/PSProxmoxVE/PSProxmoxVE.psd1 index e8d9720..1ff935a 100644 --- a/src/PSProxmoxVE/PSProxmoxVE.psd1 +++ b/src/PSProxmoxVE/PSProxmoxVE.psd1 @@ -10,7 +10,7 @@ RootModule = 'PSProxmoxVE.dll' # Version number of this module. - ModuleVersion = '0.1.3' + ModuleVersion = '0.2.0' # Supported PSEditions CompatiblePSEditions = @('Desktop', 'Core') @@ -372,17 +372,20 @@ # Release notes for this version ReleaseNotes = @' -## 0.1.3 +## 0.2.0 + +Added: +- New-PveVm disk controller / IO options: -DiskBus (virtio/scsi/sata/ide), + -ScsiHardware, -DiskIoThread, -DiskAio, -DiskSsd, -DiskDiscard, -DiskCache, + with up-front validation of invalid combinations (#65). +- Get-PveVmConfig now surfaces scsihw/efidisk0/tpmstate0 plus an + AdditionalProperties dictionary for any other config key (#65). Fixed: -- New-PveVm -DiskSize / New-PveContainer -RootFsSize normalize unit suffixes - (32G, 1T, etc.) to bare GiB before sending to PVE so the documented call - shape works on LVM/LVM-thin storages (#58). -- HttpClient timeouts are now configurable via -TimeoutSeconds on - Connect-PveServer (session default), Send-PveFile, and - Invoke-PveStorageDownload (per-call, 30-minute implicit default). - Timeouts surface as PveApiException(RequestTimeout) instead of a raw - TaskCanceledException (#59). +- Form values containing ';' were split into bogus fields, breaking a + multi-device boot order via Set-PveVmConfig; semicolons are now encoded (#64). +- Invoke-PveVmGuestExec -Args reached the guest as JSON on STDIN instead of + argv; arguments are now sent as the PVE command array (#68). Full changelog: https://github.com/goodolclint/PSProxmoxVE/blob/main/CHANGELOG.md '@