Repository navigation
v0.2.0
skipbuild v0.2.0
Second release — focused on build-tool integration (response files, PCH), observability, and cleaner configuration naming.
⚠️ Breaking changes
- Environment variables renamed
BUILDCACHE_*→SKIPBUILD_*(e.g.SKIPBUILD_DIR,SKIPBUILD_MAX_SIZE,SKIPBUILD_REMOTE_URL). The oldBUILDCACHE_*names still work as a fallback, butSKIPBUILD_*takes precedence. - Default paths renamed: cache dir
~/.cache/skipbuild(was.../buildcache), config.skipbuild.conf(was.buildcache.conf). Existing.buildcache.conffiles are still read.
Added
- Response file (
@file.rsp) support for compile commands (quoted/escaped args, CRLF, nested files). - Precompiled header (PCH) support — MSVC (
/Yc,/Yu,/Fp,/Y-) and GCC/Clang (-x c++-header,-include,-fpch-preprocess). REMAKE_LOGenv var for log levels:debug,info,warn,error,none(legacySKIPBUILD_DEBUG=1still works).- Visual Studio / MSBuild logging —
[skipbuild]output goes viaOutputDebugString, visible in VS Output → Debug. - ARM64 CI: Ubuntu ARM64, macOS Apple Silicon, Windows ARM64.
- MSBuild incremental behavior: caching auto-disabled when the output is newer than the source.
- Remote caching guide (S3-compatible).
Changed
- Version centralized;
skipbuild --versionnow reports0.2.0(no hardcoded versions). - Response file parser hardened: strict bounds checks, max recursion depth (10), UTF-8 BOM stripping, CRLF normalization.
- Removed orphaned
cache/remote.cpp(never compiled; duplicatedcore.cpp). - Removed redundant
release.yml; releases are built bybuild.yml.
Fixed
- Fatal
0xC0000409(stack-buffer-overrun) crash parsing response files with quoted args on Windows. - Quotes in response file tokens are now stripped (previously kept as part of the argument).
- Test-suite crashes during cleanup (stats tracker destructor ordering).
- Cache-key determinism across different build directories.
Downloads
- Windows x64:
skipbuild.exe - Linux / macOS:
skipbuild
Full diff: v0.1.0...v0.2.0