Description
pantry publish:commit '.' fails with error.BufferTooSmall when publishing the ts-watches package from stacksjs/ts-watches.
Steps to Reproduce
- Push to
mainonstacksjs/ts-watches - CI runs
pantry publish:commit '.' - Pantry finds the package, scans ignore files, then fails
Error Output
Publishing ts-watches...
Scanning for ignore files in: /home/runner/work/ts-watches/ts-watches/.
Checking: /home/runner/work/ts-watches/ts-watches/./.pantryignore
Using .pantryignore for exclusions (347 bytes)
+ exclude: packages/ts-watches/bin/watch
+ exclude: .cache
...
✗ Failed: error.BufferTooSmallContext
- The package has
"files": ["README.md", "dist"]inpackage.json, so it should use the explicit files path (not rsync/default) - The
distdirectory is only 516K with 41 files - All file paths are under 60 characters
- Previously failed with
Tarball exceeds maximum size of 50MB(before adding.pantryignoreto exclude a 58MB compiled binary), then started failing with this different error after the size issue was resolved
Likely Source
Based on reading the Zig source, the error.BufferTooSmall likely comes from either:
- The
redirect_buf: [8192]u8inuploadCommitViaHttp()during HTTP redirect handling - The multipart body buffer construction in
uploadCommitViaHttp()if the pre-allocated buffer size calculation is off - Possibly
std.http.Client.fetch()internals when processing the server response
Environment
- GitHub Actions (ubuntu-latest)
- Pantry Action:
home-lang/pantry/packages/action@main - Package:
ts-watchesv0.1.0