What werf/werf shipped
Written by FoxPlug from the repository's own releases; not affiliated with Werf. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/werf/werf; Werf did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Builds now automatically include Git LFS object contents in Stapel Git mappings and Dockerfile build contexts, verifying downloaded content against the selected commit's pointers. Pull request #8042
- Werf host cleanup can now remove selected project temporary directories whose container-created files are owned by root. Pull request #8050
- Registry manifest uploads that end in EOF are reported as failures instead of successes, and registry diagnostic errors are retained when a stage lookup fails. Pull request #8047
- Werf v3.8.0 was released, adding automatic Git LFS content in images. Pull request #8048
- Werf v3.7.0 was released with back-end operation and cache outcome reporting in builds. Release
- Commands such as werf managed-images ls, werf cleanup and werf config render no longer fail with submodule not initialized after nested submodules were already checked out from local objects. Pull request #8037
- The SSH command configured for the target repository is preserved when werf initializes Git from another directory. Pull request #8021
- In dev mode werf no longer removes a user git worktree that git worktree list marks prunable when its directory is temporarily unreadable. Pull request #7999
- Kubectl plugins now run only through kubectl, so werf kubectl argo rollouts get rollout demo runs the plugin correctly and unrelated commands no longer execute plugins. Pull request #8030
- Werf no longer exits during startup when WERF_KUBE_CONTEXT or WERF_SKIP_TLS_VERIFY_REGISTRY=true is set and no kubectl plugins are installed. Pull request #8032
Why it matters
This week brought an automatic Git LFS change to builds and several fixes for cleanup, registry publication, submodules, git worktrees and kubectl handling. It also delivered minor releases across the 2 and 3 branches, so users on both lines get the fixes without waiting for a major upgrade.
Changelog entry
- Build: automatically include Git LFS content in Stapel Git mappings and Dockerfile build contexts, verifying downloaded contents against the selected commit's pointers. Pull request #8042
- Host-cleanup: remove selected project temporary directories whose container-created files are owned by root. Pull request #8050
- Build: report registry manifest upload failures that end in EOF and retain registry diagnostic errors on stage lookup failures. Pull request #8047
- Build: stop rejecting initialized nested submodules in commands such as werf managed-images ls, werf cleanup and werf config render. Pull request #8037
- Build: preserve repository-specific core.sshCommand and conditional Git includes when initializing Git from another directory. Pull request #8021
- Giterminism: in dev mode, preserve a user worktree whose directory is temporarily unreadable rather than removing its registration. Pull request #7999
- Deploy: run kubectl plugins only through kubectl and stop executing plugins while constructing the command tree. Pull request #8030
- Deploy: prevent startup failure when WERF_KUBE_CONTEXT or WERF_SKIP_TLS_VERIFY_REGISTRY=true is set and no kubectl plugins are installed. Pull request #8032
- Release: werf 3.8.0 adds automatic Git LFS content in images. Pull request #8048
- Release: werf 3.7.0 adds back-end operation and cache outcome reporting in builds. Release
- Host-cleanup: reclaim abandoned project-data directories from earlier werf releases, including names without versions. Pull request #8033
- Build: prevent intermittent Buildah initialization failures caused by concurrent native overlay probes replacing a directory during scanning. Pull request #8038
Git LFS content is now included automatically in images. Builds verify downloaded contents against the selected commit. Also shipped: host cleanup removes root-owned temporary data, registry upload failures are reported, and submodule, worktree and kubectl fixes landed. Minor rel
This week werf builds include Git LFS object contents automatically in Stapel Git mappings and Dockerfile build contexts, using the selected commit's pointers and verifying downloaded contents so host LFS checkout settings cannot leave pointer files in images. Host cleanup can now remove selected project temporary directories whose container-created files are owned by root, and registry manifest uploads that end in EOF are reported as failures instead of being treated as successful. Commands like werf managed-images ls, werf cleanup and werf config render no longer fail after nested submodules were checked out from local objects, dev mode no longer removes user worktrees that are temporarily unreadable, and kubectl-related startup and plugin handling were fixed. Minor releases shipped acro
Week of September 28, 2026
What shipped
- Werf build --check-built-images and --require-built-images flags now work correctly after being a no-op since v2.55.0, properly failing when a stage is missing from the repository instead of building and publishing it. Pull request #7996
- Docker backend now requires Docker 19.03+ and uses the Moby SDK embedded in Docker CLI for all operations instead of a compatibility adapter. Pull request #7973
- Concurrent builders now synchronize publication to prevent duplicate images for the same build inputs in werf v3. Pull request #7989
- Staged Dockerfile builds with COPY --from on Buildah no longer retain temporary source containers and pin their images. Pull request #7938
- Building multiple Dockerfile images sharing one git context no longer copies the context once per image when temp directories are on different filesystems. Pull request #7980
- Chart-only commands like werf plan, werf lint, and werf bundle publish no longer fail due to Docker daemon version or connectivity issues. Pull request #7988
- Git mapping ownership with Docker now honors owner and group settings even when another mapping populated the shared Git archive first. Pull request #7974
- Werf cleanup no longer deletes newly published final images during concurrent builds by capturing final-repository snapshot before discovering managed images. Pull request #7975
- Builds with remote Docker contexts or SSH hosts now correctly query images on the configured daemon instead of the local one. Pull request #7971
- Invalid.dockerignore patterns ending in backslash now return a descriptive error instead of panicking with syntax error. Pull request #7992
Why it matters
This week brings critical fixes to core build functionality that was broken or missing, from restoring the --check-built-images flag to preventing data loss during concurrent operations. Infrastructure reliability improves with better Docker compatibility handling, git connection reuse, and proper cleanup of temporary resources. Chart-only deployments now work without requiring Docker, expanding werf's usability in container-less CI environments.
Changelog entry
- Build: honor --check-built-images and --require-built-images flags Pull request #7996
- Build, docker: require Docker 19.03+ for Docker backend operations Pull request #7973
- Build: prevent duplicate images from concurrent builders Pull request #7989
- Build: release temporary containers after staged COPY Pull request #7938
- Build, dockerfile: stop copying the build context per image Pull request #7980
- Build, docker: keep chart-only commands independent of Docker Pull request #7988
- Build: honor git mapping ownership with Docker Pull request #7974
- Cleanup: preserve concurrently published final images Pull request #7975
- Build: respect remote Docker contexts and SSH hosts Pull request #7971
- Build: report invalid.dockerignore patterns without panicking Pull request #7992
- Build: report when ssh connection multiplexing cannot be enabled Pull request #7984
- Host-cleanup: purge every stapel container and volume werf owns Pull request #7978
Werf updates: fixed --check-built-images flag, concurrent build synchronization, Dockerfile COPY stability, and chart-only command independence from Docker. Multiple reliability improvements in cleanup, git handling, and registry operations.
This week's werf updates restore critical build features and improve reliability across the board. The --check-built-images flag now works after being a no-op for months. Concurrent builds properly synchronize to prevent duplicate images. Dockerfile staging, git mappings, and cleanup operations all received fixes that prevent data loss and resource leaks. Chart-only commands no longer require Docker, and remote Docker contexts are now properly supported.
Week of September 21, 2026
What shipped
- Werf v3.6.0 released with support for scanning several Kubernetes namespaces for used images during cleanup. Pull request #7914
- Werf v3.5.0 released with build report improvements, version tracking, and deploy resource rendering. Release
- Build preparation before workers start accelerated from 26 minutes 33 seconds to 4 minutes 58 seconds on large configurations by eliminating redundant git and checksum operations. Pull request #7928
- Content anchor resolution now runs concurrently in parallel builds instead of serially, reducing the pre-build phase from 327 seconds to seconds on configurations with thousands of anchors. Pull request #7931
- SSH connections for git requests are now reused instead of creating a new handshake for each request, reducing time spent on fixed overhead from roughly 1 second per call. Pull request #7930
- Registry tag listings are now cached and reused across stage lookups instead of fetching fresh listings for each cache miss. Pull request #7934
- Local submodule reuse now works for nested submodule names containing slashes, eliminating unnecessary re-clones during builds. Pull request #7932
- Empty and partial git stage dependencies are now honored correctly instead of being implicitly expanded to later stages. Pull request #7906
- Operations statistics now cover the entire command run including config render and giterminism initialization, with a single summary printed before exit. Pull request #7856
- V2-to-v3 migration guides published with workflow-based navigation, before/after examples, and concrete upgrade actions in English and Russian. Pull request #7899
Why it matters
Werf v3.6.0 launches with significant performance improvements for builds with many images or remote repositories. Build preparation times dropped dramatically through concurrent processing and connection reuse, while the new branch version scheme allows continued v2 maintenance alongside v3 development.
Changelog entry
- Cleanup: scan several kubernetes namespaces for used images Pull request #7914
- Build: reduce pre-worker-start phase from 26:33 to 4:58 by eliminating per-image git re-preparation and checksumming Pull request #7928
- Build: resolve content anchors concurrently in parallel builds Pull request #7931
- Build, git: reuse one ssh connection for git requests Pull request #7930
- Storage: reuse recent tags listings for stage lookups on cache misses Pull request #7934
- Git: keep local submodule reuse for nested submodule names Pull request #7932
- Build: honor empty and partial git stage dependencies Pull request #7906
- Build: collect operations statistics for the whole command run Pull request #7856
- Git: keep a healthy cached worktree on canceled builds Pull request #7935
- Build: ship missing networking helpers in official images Pull request #7925
Werf v3.6.0: Build prep now 5x faster on large configs through concurrent anchor resolution and SSH connection reuse. v2 maintenance continues on branch 2.
Werf v3.6.0 shipped with substantial performance gains: build preparation dropped from 26 minutes to under 5 minutes on large configurations by processing content anchors concurrently and reusing SSH connections for git requests. Registry tag listings are now cached across stage lookups. The project also transitions to separate v2 and v3 maintenance branches, enabling continued v2 support while advancing v3 with improved Kubernetes namespace scanning and documentation.
Week of September 14, 2026
What shipped
- Cleanup now preserves final images correctly when stages are published to both primary and final repositories. Pull request #7867
- GitLab registry cleanup uses the supported manifest-by-tag API instead of falling back to slower digest deletion. Pull request #7866
- Deploy renders included charts at the project root correctly when deploy.helmChartDir:. is configured. Pull request #7865
- ReleaseInstall now returns rendered resources from the deploy operation. Pull request #7869
- Build reports now include the werf version that produced them for easier tracking across CI runs. Pull request #7859
- Deploy prevents panics when release deletion fails. Pull request #7861
Why it matters
This week addresses cleanup correctness for dual-repository setups, improves registry performance for GitLab users, and fixes deploy rendering with included charts. Build reports are now more traceable with version information included.
Changelog entry
- Feat(deploy): return rendered resources from ReleaseInstall Pull request #7869
- Fix(deploy): render included charts at the project root Pull request #7865
- Fix(cleanup): preserve retained final images when stages are published to both repo and final-repo Pull request #7867
- Fix(cleanup): avoid slow tag deletion in GitLab registries by preferring manifest-by-tag API Pull request #7866
- Feat(build): include werf version in the build report Pull request #7859
- Fix(deploy): prevent panic when release deletion fails Pull request #7861
Werf now preserves final images correctly in cleanup, speeds up GitLab registry operations, and fixes chart rendering for includes. Build reports include version info for better traceability.
This week's werf updates focus on cleanup reliability and registry performance. Final images are now properly retained in dual-repository setups, GitLab cleanup operations are faster with the manifest-by-tag API, and Helm chart rendering works correctly with includes at the project root. Build reports now include version information for improved traceability across CI runs.