New Features
- Upgrade to
image-spec v1.1.1anddistribution-spec v1.1.1 - Support context cancellation in
file.Store.Add() - Introduce
credentials.NewMemoryStoreFromDockerConfigto load Docker config bytes into an in-memory credentials store - Add
PreservePermissionsoption to file store to retain original permissions when extracting tar archives - Introduce
oras.CopyErrorto identify error sources in copy operations
Bug Fixes
- Fix #640: Unclear error message from
oci.NewFromTar - Fix #865: Symbolic links are not automatically overwritten when extracted from tar archive to File store
- Fix #851: Dot‑prefixed paths in tar archives were not recognized by
ReadOnlyOCIStore - Fix #880: The
index.jsongenerated by the OCI store lacked amediaTypefield - Fix #895: The
Docker-Content-Digestheader was not verified inRepository.Blobs().Fetch() - Fix #916: Incorrect use of
atomic.Valuein thesyncutil.Goutility function causes panics - Fix #923: Pushing descriptors with invalid digests to memory or file store caused panics
- Other minor bug fixes
Documentation
- Add documentation for artifact modeling
- Add documentation for targets and content store
- Add quickstart tutorial
- Improve examples
- Other minor improvements
Other Changes
- Upgrade the Go support window to
[1.23, 1.24] - Increase test coverage to 80%
- Update dependencies
- Minor optimization
Detailed Commits
- fix: cancel goroutine before the next one is created by @wangxiaoxuan273 in #739
- build(deps): bump apache/skywalking-eyes from 0.5.0 to 0.6.0 by @dependabot in #740
- bump(ci): update codecov to v4 by @wangxiaoxuan273 in #741
- docs: update migration guide and copy doc by @Wwwsylvia in #752
- test: fix file closing issue on windows by @shizhMSFT in #764
- docs: document PackManifestOptions to make PackManifest reproducible by @wangxiaoxuan273 in #749
- build: enforce diff code coverage of 80% by @Wwwsylvia in #769
- fix: add missing operation to fs path error by @qweeah in #799
- build(deps): bump golang.org/x/sync from 0.7.0 to 0.8.0 by @dependabot in #801
- feat: support context cancellation in file store by @lucasrod16 in #803
- build(go): shift Go support window to [1.22, 1.23] by @Wwwsylvia in #820
- refactor: fix seed for retry policy by @Wwwsylvia in #821
- fix: check close error in
oci/storage.goduring ingestion by @Wwwsylvia in #830 - chore(workflow): add stale bot by @Wwwsylvia in #837
- docs: update doc for ReferrerListPageSize by @Wwwsylvia in #842
- build(deps): bump golang.org/x/sync from 0.8.0 to 0.9.0 by @dependabot in #844
- build(deps): bump codecov/codecov-action from 4 to 5 by @dependabot in #847
- build(deps): bump golang.org/x/sync from 0.9.0 to 0.10.0 by @dependabot in #854
- test: fix test cases in content/file/utils_test.go by @Wwwsylvia in #869
- fix: overwrite symlinks when extracting tarballs by @Wwwsylvia in #867
- feat: introduce
credentials.NewMemoryStoreFromDockerConfigby @programmer04 in #850 - fix: handle dot-prefixed path for tarfs by @Wwwsylvia in #875
- test: increase unit test coverage to 80% by @Wwwsylvia in #876
- build(deps): bump golang.org/x/sync from 0.10.0 to 0.11.0 by @dependabot in #885
- build(deps): bump apache/skywalking-eyes from 0.6.0 to 0.7.0 by @dependabot in #887
- build(go): shift Go support window to [1.23, 1.24] by @Wwwsylvia in #893
- fix: add media type in the generated index.json file by @Wwwsylvia in #894
- fix: check the
Docker-Content-Digestheader inRepository.Blobs().Fetch()by @Wwwsylvia in #897 - feat: option to have File store preserve permissions when extracting by @sammy-da in #891
- build(deps): bump github.com/opencontainers/image-spec from 1.1.0 to 1.1.1 by @dependabot in #906
- chore: update to
image-spec v1.1.1by @Wwwsylvia in #909 - docs: add concepts of modeling artifacts by @Wwwsylvia in #912
- docs: add concepts of targets by @Wwwsylvia in #917
- build(deps): bump golang.org/x/sync from 0.11.0 to 0.12.0 by @Wwwsylvia in #919
- fix: fix concurrency bugs causing panics and race conditions in
internal/syncutilby @Wwwsylvia in #921 - fix: fix panics caused by bad digests by @Wwwsylvia in #926
- docs: update example tests by @wangxiaoxuan273 in #932
- build(deps): bump golang.org/x/sync from 0.12.0 to 0.13.0 by @dependabot in #937
- feat: introduce
CopyErrorto identify error source in copy operations by @Wwwsylvia in #933 - docs: improve docs for OCI store by @Wwwsylvia in #941
- docs: add more practical examples by @wangxiaoxuan273 in #940
- test: add unit tests for validateMediaType by @Wwwsylvia in #946
- docs: add quick start for oras-go by @wangxiaoxuan273 in #939
- docs: updated broken links by @wangxiaoxuan273 in #951
- docs: improve README.md by @Wwwsylvia in #950
- build(deps): bump golang.org/x/sync from 0.13.0 to 0.14.0 by @dependabot in #955
New Contributors
- @lucasrod16 made their first contribution in #803
- @programmer04 made their first contribution in #850
- @sammy-da made their first contribution in #891
Full Changelog: v2.5.0...v2.6.0