Context
Dependabot PR #9 bumps SharpCompress from 0.38.0 to 0.47.3, but the build fails because SharpCompress 0.45.0+ replaced its synchronous API with async-only methods.
What breaks
OvfMetadata.cs (ExtractOvfFromTar method, lines 89-99) uses three APIs that no longer exist:
ReaderFactory.Open(stream) → now returns ValueTask<IReader> (must be awaited)
reader.MoveToNextEntry() → replaced by MoveToNextEntryAsync()
reader.OpenEntryStream() → replaced by OpenEntryStreamAsync()
Scope
SharpCompress is used in exactly one file: src/PSProxmoxVE.Core/Models/Vms/OvfMetadata.cs for extracting OVF metadata from OVA archives (used by Import-PveOva).
Fix
Convert ExtractOvfFromTar() and FromOva() to async, then call with .GetAwaiter().GetResult() at the cmdlet level (consistent with the project's sync-over-async pattern per DECISIONS.md F048/D001).
Estimated effort: ~30 minutes, 2-3 methods to change.
References
Context
Dependabot PR #9 bumps SharpCompress from 0.38.0 to 0.47.3, but the build fails because SharpCompress 0.45.0+ replaced its synchronous API with async-only methods.
What breaks
OvfMetadata.cs(ExtractOvfFromTarmethod, lines 89-99) uses three APIs that no longer exist:ReaderFactory.Open(stream)→ now returnsValueTask<IReader>(must be awaited)reader.MoveToNextEntry()→ replaced byMoveToNextEntryAsync()reader.OpenEntryStream()→ replaced byOpenEntryStreamAsync()Scope
SharpCompress is used in exactly one file:
src/PSProxmoxVE.Core/Models/Vms/OvfMetadata.csfor extracting OVF metadata from OVA archives (used byImport-PveOva).Fix
Convert
ExtractOvfFromTar()andFromOva()to async, then call with.GetAwaiter().GetResult()at the cmdlet level (consistent with the project's sync-over-async pattern per DECISIONS.md F048/D001).Estimated effort: ~30 minutes, 2-3 methods to change.
References