Experimental Features
- Introduce portable backup and restore of OCI artifacts, images, and repositories
oras backup
: New command to back up artifacts from remote registries into local OCI image layouts, either as directories or tar archives.oras restore
: New command to restore artifacts from local OCI image layouts (directories or tar archives) back to remote registries.
- Add
--format
flag support for theoras repo ls
andoras repo tags
commands withtext
,json
, andgo-template
output options - Add
--artifact-type
flag support fororas manifest index create
andoras manifest index update
commands to set the artifact type of an OCI image index - Enhance multi-repository OCI image layout support for
oras repo tags
to list tags under a specified repository
Bug Fixes
- Fix #1728:
oras cp
now correctly copies root index when the index has no referrers - Fix #1715:
oras discover --format json
now properly showsreferrers
field when no referrer is found
Other Changes
- Add support for the
loong64
architecture - Improve UX with clearer error messages
- Improve code quality and performance
- Upgrade to Go
1.24.5
- Update dependencies
Detailed Commits
- bump: tag and release ORAS CLI v1.3.0-beta.3 by @Wwwsylvia in #1705
- build: use alpine 3.21.3 by @Wwwsylvia in #1709
- Add test coverage for discover handler by @TerryHowe in #1712
- build(deps): bump golang.org/x/sync from 0.13.0 to 0.14.0 by @dependabot[bot] in #1720
- build(deps): bump golang.org/x/term from 0.31.0 to 0.32.0 by @dependabot[bot] in #1721
- fix: packer decode json lint failure by @TerryHowe in #1688
- build(deps): bump oras.land/oras-go/v2 from 2.5.0 to 2.6.0 in /test/e2e by @dependabot[bot] in #1724
- build(deps): bump oras.land/oras-go/v2 from 2.5.1-0.20250417082913-f7a6126986d9 to 2.6.0 by @dependabot[bot] in #1725
- fix: discover handler errors for lint by @TerryHowe in #1677
- fix: calls to close in tests unchecked for lint by @TerryHowe in #1678
- refactor: move different targets to different files by @TerryHowe in #1722
- fix: Change receiver name for Remote by @TerryHowe in #1727
- refactor(perf): optimize cases with no child referrers in recursiveCopy by @qweeah in #1729
- fix: lint explicitly ignore various close errors by @TerryHowe in #1684
- fix: rename interfaces file by @TerryHowe in #1730
- refactor: rename Target AnnotatedReference method by @TerryHowe in #1726
- fix(docs): remove a discover example with -v by @Wwwsylvia in #1742
- fix(lint): ignore returns from test defer calls by @TerryHowe in #1734
- fix: discover json format should show referrers field when no referrer is found by @wangxiaoxuan273 in #1731
- build(deps): bump github.com/containerd/console from 1.0.4 to 1.0.5 by @dependabot[bot] in #1743
- fix: replace slave var for child by @TerryHowe in #1736
- fix: rename slave to child for cp test by @TerryHowe in #1738
- docs(spec): artifactType in multi-platform index manifests by @apparentlymart in #1696
- docs: add examples for oci-layout-path by @wangxiaoxuan273 in #1746
- build(deps): bump golang.org/x/sync from 0.14.0 to 0.15.0 by @dependabot[bot] in #1750
- feat: oras manifest index: artifactType for index and child manifest descriptors by @apparentlymart in #1700
- feat: support
--format
fororas repo tags
by @Wwwsylvia in #1756 - fix: resolve golangci-lint issues with unchecked error returns and embedded field access by @Copilot in #1755
- build(deps): bump golangci/golangci-lint-action from 6 to 8 by @dependabot[bot] in #1717
- ci: add dependabot support for Dockerfile by @tanyabhatnagar in #1761
- build(deps): bump library/golang from 1.24.2-alpine to 1.24.4-alpine by @dependabot[bot] in #1764
- build(deps): bump library/alpine from 3.21.3 to 3.22.0 by @dependabot[bot] in #1765
- docs: backup and restore specification by @TerryHowe in #1610
- docs(spec): define output formats for oras repo commands by @Wwwsylvia in #1763
- feat: support
--format
fororas repo ls
by @Wwwsylvia in #1758 - fix(tests): fix packer test that failed on Windows by @Wwwsylvia in #1774
- docs: backup and restore to single OCI layout by @TerryHowe in #1775
- test: exclude incompatible test Go OSes by @TerryHowe in #1779
- refactor: ApplyFlags with prefix for Remote and Target by @TerryHowe in #1733
- build(deps): bump golang.org/x/sync from 0.15.0 to 0.16.0 by @dependabot[bot] in #1781
- build(deps): bump golang.org/x/term from 0.32.0 to 0.33.0 by @dependabot[bot] in #1780
- feat: show repo tags with
--oci-layout-path
inrepo tags
command by @wangxiaoxuan273 in #1759 - chore(ux): improve copy error message by @Wwwsylvia in #1773
- build(deps): bump library/golang from 1.24.4-alpine to 1.24.5-alpine by @dependabot[bot] in #1782
- fix: oras cp should copy root index when the index has no referrers by @wangxiaoxuan273 in #1749
- build(deps): bump github.com/spf13/pflag from 1.0.6 to 1.0.7 by @dependabot[bot] in #1785
- build(deps): bump library/alpine from 3.22.0 to 3.22.1 by @dependabot[bot] in #1786
- build: release loong64 by @amazingfate in #1787
- docs: add scenario doc for Backup and Restore of OCI Artifacts and Images by @FeynmanZhou in #1778
- docs: enrich the CLI design of oras backup and oras restore by @FeynmanZhou in #1767
- feat:
oras backup
to backup artifacts to a directory or a tar by @Wwwsylvia in #1790 - build(deps): bump github.com/onsi/gomega from 1.37.0 to 1.38.0 in /test/e2e by @dependabot[bot] in #1789
- feat: add
oras restore
command by @Wwwsylvia in #1792 - build(go): upgrade go version and dependencies by @Wwwsylvia in #1796
New Contributors
- @apparentlymart made their first contribution in #1696
- @Copilot made their first contribution in #1755
- @tanyabhatnagar made their first contribution in #1761
- @amazingfate made their first contribution in #1787
Full Changelog: v1.3.0-beta.3...v1.3.0-beta.4
Notes
This release was signed with 73C7 F42E 8F0B 4493 115A BED6 4F72 3223 E9DF 0185
(@shizhMSFT's GPG key) which can be found here.