Skip to content

SOW v0.7.1

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Nov 14:28

SOW 0.7.1 upgrades to Go 1.27.4, refreshes dependencies, and fixes repository recovery, input validation, RPM export, and S3/R2 handling.

Changes

  • Require Go 1.27.4 and refresh runtime and test dependencies to their latest
    available versions. Update the AWS SDK core to v1.48.0, S3 to v1.114.10,
    Smithy to v1.28.9, compression to v1.20.4, libc to v1.81.0, and x/sys
    to v0.50.0, along with AWS internals, pprof, x/mod, x/sync, and modernc
    compiler dependencies.
  • S3/R2 requests inherit the AWS SDK's updated default retry policy, including
    retries for bodyless HTTP 429 responses. Cover successful throttling retries
    and preservation of the HTTP error after retry exhaustion.
  • Harden S3/R2 error status extraction across joined errors, treat HTTP 404 on
    multipart upload abort as already cleaned up, and bound non-2xx list and
    multipart XML responses.
  • Reject RPM v6 packages consistently across sow prune (including single-version,
    --protect, superseded, and --dry-run inputs), sow create, and managed
    ingestion.
  • Bound decompressed .deb control tar streams and compressed APT/RPM metadata
    streams against header and decompression expansion bombs, and broaden Linux
    renameat2 unsupported-filesystem error recognition (ENOSYS, EINVAL,
    ENOTSUP) while preserving the fallback implementation on other platforms.
  • Fix crash recovery for legacy v1 dist.new/dist.init operations with nil
    effective signing. Move unproven c2-to-single-v1 migration stage leftovers
    intact to abandoned/ and report their location so local GC is not blocked.
    Reopen rooted directory cursors per batch when unlinking large directories on
    macOS APFS and BSD.
  • Fix export rpm-leaf when an unrelated peer filesystem target is unmounted,
    record the Dist's built Generation timestamp rather than the repository head
    timestamp, and accept duplicate file inputs when combining explicit files with
    parent directories in sow add.
  • Ensure multi-statement SQLite reads run inside read-only transactions, batch
    ListPackageObjects Dist membership filters below SQLite's bind limit, and
    normalize legacy RFC3339Nano repository time-witness seeds while bounding
    observed years to 1..9999.
  • Update GoReleaser to v2.20.1 in CI and release workflows, and regenerate
    third-party notices for the Go 1.27.4 release builds.

This release keeps schema v13 and the existing CLI and public repository layout.
Workspaces already on v0.5.0 through v0.7.0 do not require a schema migration.

Upgrade

Stop workspace writers and back up the complete workspace with hard links preserved. Install 0.7.1, then run sow build and sow check for each configured Repository. Workspaces from 0.3 or 0.4 still need sow repo migrate first; Plain repositories have no database migration.

Downloads and documentation

Assets include Linux and macOS archives for amd64/arm64, Linux RPM and DEB packages, and SHA256SUMS. Check the digest before installing.