Repository navigation
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, andx/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-runinputs),sow create, and managed
ingestion. - Bound decompressed
.debcontrol tar streams and compressed APT/RPM metadata
streams against header and decompression expansion bombs, and broaden Linux
renameat2unsupported-filesystem error recognition (ENOSYS,EINVAL,
ENOTSUP) while preserving the fallback implementation on other platforms. - Fix crash recovery for legacy v1
dist.new/dist.initoperations with nil
effective signing. Move unprovenc2-to-single-v1migration stage leftovers
intact toabandoned/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-leafwhen 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 insow add. - Ensure multi-statement SQLite reads run inside read-only transactions, batch
ListPackageObjectsDist membership filters below SQLite's bind limit, and
normalize legacyRFC3339Nanorepository time-witness seeds while bounding
observed years to1..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.