Releases: oras-project/oras
v0.16.0
🚀 ORAS CLI v0.16.0 is available! You can install it by following this guide.
New Features
- BREAKING CHANGE: Migrate to OCI Artifact from ORAS Artifact
- Upgrade to image-spec v1.0.0-rc.2
- Upgrade to oras-go v2.0.0-rc.4
- Auto fallback
oras push
andoras attach
to OCI Image manifest if OCI Artifact manifest is not supported by the remote registry - Add
--exclude-digest-tags
tooras repo tags
to exclude tags generated by the Referrers Tag Schema
- Support
--platform
inoras discover
Bug Fixes
- Cherry pick all bug fixes from https://github.com/oras-project/oras/releases/tag/v0.15.1
Other Changes
- Update dependencies to latest versions
- Improve UX
- Shorten command names (#667)
oras repository
-->oras repo
.oras repository
is demoted to an aliasoras repo list
-->oras repo ls
.oras repo list
is demoted to an aliasoras repo show-tags
-->oras repo tags
.oras repo show-tags
is demoted to an aliasoras copy
-->oras cp
.oras copy
is demoted to an alias
- Add aliases to existing commands
oras manifest get-config
is an alias oforas manifest fetch-config
oras manifest rm
is an alias oforas manifest delete
oras blob rm
is an alias oforas blob delete
- BREAKING CHANGE: Update the flag name
-y, --yes
to-f, --force
fororas manifest delete
andoras blob delete
oras attach
prints digest of the subject instead of the input reference
- Shorten command names (#667)
Detailed Commits
- fix: logout specified credential config file if provided by @qweeah in #626
- fix: fix the error handling in manifest push by @yuehaoliang-microsoft in #629
- fix: annotates manifest for attach command by @qweeah in #632
- test(e2e): add E2E test infra by @qweeah in #561
- docs: add issue templates by @FeynmanZhou in #633
- fix: change to use repo instead of repo.manifest because it needs to fetch a blob by @yuehaoliang-microsoft in #637
- build(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.0 by @dependabot in #642
- ci: run all check CIs against patch PR by @qweeah in #641
- build(deps): bump github.com/docker/cli from 20.10.18+incompatible to 20.10.19+incompatible by @dependabot in #644
- feat!: support oci artifacts by @qweeah in #653
- bump: upgrade golang to 1.19.2 by @qweeah in #657
- build(deps): bump github.com/docker/cli from 20.10.19+incompatible to 20.10.20+incompatible by @dependabot in #648
- fix: use optional plural form by @qweeah in #659
- build(deps): bump github.com/docker/cli from 20.10.20+incompatible to 20.10.21+incompatible by @dependabot in #663
- build(deps): bump github.com/spf13/cobra from 1.6.0 to 1.6.1 by @dependabot in #661
- feat: support discovering with platform selection by @qweeah in #669
- feat!: support OCI image fallback for
oras push
andoras attach
by @qweeah in #665 - feat: support excluding digest tags by @qweeah in #668
- chore: use short names for repository commands by @qweeah in #670
- fix: only fallback to OCI image when current media type is OCI artifact by @qweeah in #673
- chore: add subject reference into attach output by @qweeah in #671
- feat: add alias for fetch-config by @qweeah in #676
- feat!: alias
remove
todelete
and rename confirmation flag toforce
by @qweeah in #677 - bump: release 0.16 by @qweeah in #678
Full Changelog: v0.15.0...v0.16.0
Notes
This release was signed with 95BB 6CD4 6CA3 0D2B 9CAE E56C 9F2C D437 A97D CB8F
(@shizhMSFT's GPG key) which can be found here.
v0.15.1
Bug Fixes
- fix:
oras logout
not working for non-default auth config #625 - fix: error is not well handled in
oras manifest push
#627 - fix: manifest level annotations not being pushed when there is no blob in attach command #630
- fix:
manifest fetch
fails when confirming the platform of a manifest #636
Detailed Commits
- fix: patch bug fixes to release-0.15 by @qweeah in #643
- fix: logout specified credential config file if provided by @qweeah in #626
- fix: fix the error handling in manifest push by @yuehaoliang-microsoft in #629
- fix: annotates manifest for attach command by @qweeah in #632
- fix: change to use repo instead of repo.manifest because it needs to fetch a blob by @yuehaoliang-microsoft in #637
- ci: run all check CIs against patch PR by @qweeah in #641
- bump: update version for 0.15 release by @qweeah in #645
Full Changelog: v0.15.0...v0.15.1
Notes
This release was signed with 95BB 6CD4 6CA3 0D2B 9CAE E56C 9F2C D437 A97D CB8F
(@shizhMSFT's GPG key) which can be found here.
v0.15.0
🚀 ORAS CLI v0.15.0 is available! You can install it by following this guide.
New Features
oras
has evolved into a fully functional registry client.
- New command sets in preview
oras blob
: Blob operationsoras blob fetch
: Fetch a blob from a remote registryoras blob push
: Push a blob to a remote registryoras blob delete
: Delete a blob from a remote registry
oras manifest
: Manifest operationsoras manifest fetch-config
: Fetch the config of a manifest from a remote registryoras manifest push
: Push a manifest to remote registryoras manifest delete
: Delete a manifest from remote registry
oras tag
: Tag a manifest in the remote registryoras repository
: Repository operationsoras repository list
: List the repositories under the registryoras repository show-tags
: Show tags of the target repository
- New options for existing commands
- Added
--output
tooras manifest fetch
for writing the fetched manifest to specified file path.-
for printing outstdout
- Support pulling / copying artifact of specified platform in
oras pull
andoras copy
by the option--platform
- Support tuning concurrency level for
oras pull
,oras push
,oras attach
, andoras copy
by the option--concurrency
- Added
- Support multi-tagging for
oras push
andoras copy
as requested by #355
Bug Fixes
- fix: incorrect credential access for
docker.io
#542
Other Changes
- Improved documentation
- Improved UX
- Updated
oras-go
to the commit 3f9653f based on v2.0.0-rc.3
Detailed Commits
- feat: command to show tags in a repository by @junczhu in #526
- feat: enable tagging manifests by @wju-MSFT in #519
- feat: command to list repositories in a remote registry by @junczhu in #525
- chore: upgrade oras-go by @lizMSFT in #537
- feat: add Descriptor and Pretty options for ORAS command by @lizMSFT in #536
- refactor: use read only target to replace oras.Target for the target storage with caching by @lizMSFT in #538
- fix: handle push error for internal cache by @qweeah in #544
- fix: add missing license headers by @jasminetMSFT in #545
- chore: upgrade oras-go to v2.0.0-rc.3 by @lizMSFT in #546
- build: license header check in workflows by @jasminetMSFT in #534
- feat: support fetch a blob from a remote registry by @lizMSFT in #520
- feat: support push a blob to a remote registry by @lizMSFT in #489
- fix: add get alias for oras blob fetch command by @lizMSFT in #558
- fix: provide function to support hostname mapping by @junczhu in #549
- build(deps): bump github.com/docker/cli from 20.10.17+incompatible to 20.10.18+incompatible by @dependabot in #551
- feat: support deleting a manifest from a remote registry by @yuehaoliang-microsoft in #506
- feat: support delete a blob from a remote registry by @lizMSFT in #493
- feat: support pushing a manifest to a remote registry by @yuehaoliang-microsoft in #494
- fix: correct help doc description for attach by @qweeah in #572
- fix: missing status for pull by @wangxiaoxuan273 in #539
- feat: enhance manifest fetch by @yuehaoliang-microsoft in #541
- feat: Make
repo
alias torepository
by @junczhu in #579 - feat: add manifest fetch-config by @yuehaoliang-microsoft in #540
- feat: platform support for oras pull and oras copy by @jasminetMSFT in #569
- chore: improve text prompt for deletion by @qweeah in #583
- doc: make flags before arguments in examples by @junczhu in #580
- feat: support tagging multiple tags at once to a remote registry by @wju-MSFT in #574
- fix: use VerifyReader to verify read content after oras.Fetch by @wangxiaoxuan273 in #589
- doc: fix description typos by @junczhu in #591
- feat: alias
show-tags=tags
fororas repository
by @junczhu in #595 - fix: update help doc for blob fetch command by @qweeah in #605
- fix: improve the behavior of user confirmation by @yuehaoliang-microsoft in #607
- fix: update usage doc for all oras commands by @qweeah in #596
- fix: make attach required via cobra by @qweeah in #612
- fix: fix flag name parsing error for oras blob push by @lizMSFT in #614
- feat: support tagging multiple tags at once for oras manifest push by @wju-MSFT in #604
- fix: update argument description for platform by @qweeah in #606
- build: bump oras-go version by @qweeah in #615
- feat: support tagging multiple tags at once for oras push by @wju-MSFT in #616
- fix: reorder status logs for
oras pull
by @qweeah in #610 - feat: add concurrency flag for oras pull by @wju-MSFT in #621
- feat: support tagging multiple tags at once for oras copy by @wju-MSFT in #617
- doc: refine CLI help doc by @FeynmanZhou in #619
- bump: update version to 0.15.0 by @qweeah in #622
- fix: capitalize the short and log doc for tag command by @qweeah in #623
- feat: support concurrency tuning for oras attach by @qweeah in #624
New Contributors
- @wju-MSFT made their first contribution in #519
- @FeynmanZhou made their first contribution in #619
Full Changelog: v0.14.0...v0.15.0
Notes
This release was signed with 95BB 6CD4 6CA3 0D2B 9CAE E56C 9F2C D437 A97D CB8F
(@shizhMSFT's GPG key) which can be found here.
v0.14.1
Bug Fixes
- fix: fail to
oras pull
from Aazon ECR: empty response Docker-Content-Digest oras-project/oras-go#225 - fix: fail to
oras push
to Google GAR: unexpected status code 400: Bad Request #532
Full Changelog: v0.14.0...v0.14.1
Notes
This release was signed with 95BB 6CD4 6CA3 0D2B 9CAE E56C 9F2C D437 A97D CB8F
(@shizhMSFT's GPG key) which can be found here.
v0.14.0
🚀 ORAS CLI v0.14.0 is available! You can install it by following this guide.
New Features
- New command sets
oras attach
: [Preview] Attach files to an existing artifactoras discover
: [Preview] Discover referrers of a manifest in the remote registryoras copy
: [Preview] Copy artifacts from one target to anotheroras manifest fetch
: [Preview] Fetch manifest of the target artifact
- New options for
oras push
- Add ability to export manifest after pushing artifacts by
--export-manifest <path>
- Add
--artifact-type
to set the media type of the manifest config for OCI manifests - Add
--annotation <key>=<value>
option for easier specifying manifest annotations
- Add ability to export manifest after pushing artifacts by
- New options for
oras pull
- Support pulling arbitrary manifest config
Bug Fixes
- fix:
oras
doesn't push a file with 2 tags #447 - fix: push error for ECR: PUT request body is not rewindable #456
- fix: can't pull behind proxy on version 0.13.0 #513
Breaking Changes
- Renamed option
--manifest-annotations
to--annotation-file
for all applicable commands - Renamed option
--manifest-config
to--config
while--config
is renamed to--registry-config
for all commands
Other Changes
- Improved documentation
- Updated
oras-go
to v2.0.0-rc.2oras push
uploads empty config blob of size 0 bytes instead of{}
(empty JSON object of size 2 bytes)
- Migrated to
codecov.io
for code coverage reports - Improved performance for
oras pull
whenORAS_CACHE
is set - Bumped golang version to
1.19
- Improved UX output
Detailed Commits
- Merging
artifacts
Branch: Add exporting manifest option for push by @qweeah in #425 - Update ghcr package action yaml by @qweeah in #422
- Merging
artifacts
Branch: Add discover comand by @qweeah in #419 - fix: update help msg description about pullCmd() by @junczhuMSFT in #438
- If no tag or digest specified when pulling, return error by @qweeah in #440
- feat: add copyCmd() by @junczhuMSFT in #432
- Add empty reference checking for discover cmd by @qweeah in #442
- Add attach command by @qweeah in #433
- Fix retagging failure with updated oras-go by @qweeah in #452
- Bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 by @dependabot in #451
- Migrate to codecov.io by @junczhuMSFT in #450
- Fix push error for ECR by @qweeah in #462
- feat: use --artifact-type to change the media type of the config blob by @yuehaoliang-microsoft in #482
- Adding support for windows-arm64 by @koushdey in #457
- perf: add FetchReference support in the caching proxy by @qweeah in #464
- fix(lang): update misspelling in copy.go by @junczhuMSFT in #487
- Bump to golang 1.19 by @sajayantony in #488
- fix: refill missing status for
push
copy
andattach
by @qweeah in #481 - feat!: pass annotations as a string by @junczhuMSFT in #468
- feat: Support pulling arbitrary manifest config by @lizMSFT in #480
- refactor: move error to cmd internal packages by @qweeah in #496
- feat: add
fetch
command to get manifest of an artifact by @qweeah in #449 - fix: add new line to prettify manifest fetch result by @qweeah in #499
- refactor: improve error message on platform mismatch by @lizMSFT in #500
- fix: add empty check on blobs and manifest annotation by @jasminetMSFT in #490
- refactor!: rename the --manifest-config to --config by @lizMSFT in #504
- fix: fix the lookup check for registry-config option by @lizMSFT in #505
- refactor: add pre-defined annotation keys into option.Packer by @junczhuMSFT in #502
- refactor: reuse print status func by @qweeah in #507
- docs: add doc comments for the loop of successors by @wangxiaoxuan273 in #508
- fix: check if configPath is empty before writing to Annotations by @wangxiaoxuan273 in #509
- feat: print digest and media type when content is skipped using sync.Map by @wangxiaoxuan273 in #510
- fix: print post-copy logs for unnamed content in verbose mode by @wangxiaoxuan273 in #511
- fix: enable proxy in auth by @qweeah in #514
- doc: fix typo in long description by @qweeah in #516
- bump: update version to release 0.14.0 by @qweeah in #515
- fix!: rename the --manifest-config to --config for push command by @lizMSFT in #517
- doc: update example doc by @qweeah in #518
New Contributors
- @junczhuMSFT made their first contribution in #438
- @yuehaoliang-microsoft made their first contribution in #482
- @koushdey made their first contribution in #457
- @lizMSFT made their first contribution in #480
- @jasminetMSFT made their first contribution in #490
- @wangxiaoxuan273 made their first contribution in #508
Full Changelog: v0.13.0...v0.14.0
Notes
This release was signed with 95BB 6CD4 6CA3 0D2B 9CAE E56C 9F2C D437 A97D CB8F
(@shizhMSFT's GPG key) which can be found here.
v0.13.0
Major Changes
- Upgrades
oras-go
fromv0.1.0
tov2.0.0-alpha
- Supports docker and oras manifest
- Releases multi-arch package, including Linux armv7
- Has less dependencies and smaller binary size
- Supports custom root CA certs for remote servers per operation
What's Changed
- Upgrade to oras-go v0.4.0 by @jdolitsky in #281
- Add jzelinskie and vbatts to emeritus by @jdolitsky in #282
- Bump github.com/spf13/cobra from 1.1.3 to 1.2.0 by @dependabot in #284
- Remove docs, point to website by @jdolitsky in #285
- Bump github.com/spf13/cobra from 1.2.0 to 1.2.1 by @dependabot in #286
- Bump github.com/containerd/containerd from 1.5.2 to 1.5.3 by @dependabot in #289
- Bump github.com/containerd/containerd from 1.5.3 to 1.5.4 by @dependabot in #290
- Update owners format by @SteveLasker in #291
- Update LICENSE to Apache v2 by @lachie83 in #292
- Bump github.com/containerd/containerd from 1.5.4 to 1.5.5 by @dependabot in #293
- Bump github.com/containerd/containerd from 1.5.5 to 1.5.7 by @dependabot in #324
- Bump github.com/containerd/containerd from 1.5.7 to 1.5.9 by @dependabot in #345
- Bump github.com/spf13/cobra from 1.2.1 to 1.3.0 by @dependabot in #344
- release zip for windows by @nathana1 in #351
- Bump github.com/spf13/cobra from 1.3.0 to 1.4.0 by @dependabot in #358
- Bump github.com/containerd/containerd from 1.5.9 to 1.6.2 by @dependabot in #360
- Clean up dependency by @shizhMSFT in #368
- Upgrade login&logout commands to oras-go v2 by @qweeah in #367
- Upgrade go to 1.18.1 by @qweeah in #375
- Bump github.com/docker/cli from 20.10.14+incompatible to 20.10.15+incompatible by @dependabot in #374
- Bump github.com/containerd/containerd from 1.6.2 to 1.6.4 by @dependabot in #372
- Add unit tests for internal packages by @qweeah in #376
- Support certificate authority configuration by @qweeah in #380
- Release Refine by @qweeah in #384
- Remove media type options for pull operation by @qweeah in #387
- Bump github.com/docker/cli from 20.10.15+incompatible to 20.10.16+incompatible by @dependabot in #383
- Move reusable options to a dedicated package by @qweeah in #386
- Use caching for auth client by @qweeah in #390
- Refactor push command by @qweeah in #394
- Merge build workflows and update badges by @qweeah in #399
- Run unit tests in the git actions by @qweeah in #398
- Use copy options in push and pull commands by @qweeah in #400
- Normalize logging by @qweeah in #411
- Bump github.com/spf13/cobra from 1.4.0 to 1.5.0 by @dependabot in #408
- Bump github.com/docker/cli from 20.10.16+incompatible to 20.10.17+incompatible by @dependabot in #403
- Add manifest config support by @qweeah in #412
- Add CodeQL Security Scanning by @shizhMSFT in #405
- Upgrades to oras-go v2.0.0-alpha by @qweeah in #417
- Add Shiwei's key by @shizhMSFT in #418
- Prepare for v0.13.0 by @qweeah in #420
- Update artifact tarball names in makefile by @qweeah in #423
New Contributors
Full Changelog: v0.12.0...v0.13.0
Notes
This release was signed with 95BB 6CD4 6CA3 0D2B 9CAE E56C 9F2C D437 A97D CB8F
(@shizhMSFT's GPG key) which can be found here.
v0.2.1-alpha.1
Instructions for downloading builds for linux/amd64
curl -LO https://github.com/oras-project/oras/releases/download/v0.2.1-alpha.1/oras_0.2.1-alpha.1_linux_amd64.tar.gz
mkdir oras
tar -xvf ./oras_0.2.1-alpha.1_linux_amd64.tar.gz -C ./oras/
cp ./oras/oras ~/bin/oras
Documentation 📘
- Quick Start for usage scenarios of the oras artifacts specification
Changelog
v0.2.0-alpha.1
Instructions for downloading builds for linux/amd64
curl -LO https://github.com/oras-project/oras/releases/download/v0.2.0-alpha.1/oras_0.2.0-alpha.1_linux_amd64.tar.gz
mkdir oras
tar -xvf ./oras_0.2.0-alpha.1_linux_amd64.tar.gz -C ./oras/
cp ./oras/oras ~/bin/oras
Documentation 📘
- Quick Start for usage scenarios of the oras artifacts specification
Changelog
- Updated oras-project/containerd with artifact filtering (#313) f01d975 (Sajay Antony)
- Add support for pre-release e427ad8 (Sajay Antony)
- Remove mediatype from artifact manifest abd6366 (Sajay Antony)
- Set containerd/api path explicitely to avoid inconsistent replace d3246ca (Esteban Rey)
- pretty print tree (#306) 246bc2e (Shiwei Zhang)
- go mod clean up a50a6d7 (Shiwei Zhang)
- Updated oras to use updated containerd with artifacts-spec v1 (#305) 888591e (Sajay Antony)
- Oras discover with output tree format (#297) 01bc2b4 (mnltejaswini)
- update dependency 8627d45 (Shiwei Zhang)
- print in table (#258) e522a27 (Shiwei Zhang)
- update containerd references 8690807 (Shiwei Zhang)
- update references fd3aaf3 (Shiwei Zhang)
- Fix copy/paste error for SBoM/Signature and SBoM explination c1133fe (Steve Lasker)
- Fix doc reference for experimental branch 804f046 (Steve Lasker)
- Fix doc reference for experimental branch 1cc4b24 (Steve Lasker)
- Add building of the experimental branch 61426db (Steve Lasker)
- Update OCI Artifact Manifest doc support 6977a42 (Steve Lasker)
- removes check on the artifact type filter 60b9dab (Shiwei Zhang)
- reflect json output of oras discover db537ea (Shiwei Zhang)
- allow pulling with empty name f0920ba (Shiwei Zhang)
- no dummy resolver applied to reference resolver 0e3fc18 (Shiwei Zhang)
- enhanced output of discover 321d79c (Shiwei Zhang)
- update to the latest spec 1d4a86e (Shiwei Zhang)
- update doc for pushing and artifacts 76586ec (Shiwei Zhang)
- update containerd dependency 7aeec78 (Shiwei Zhang)
- support dry run bfde944 (Shiwei Zhang)
- export manifest on push 0e3c1f4 (Shiwei Zhang)
- support artifact discovery for oras cli 8d49927 (Shiwei Zhang)
- support artifact discovery for oras lib 55d1abe (Shiwei Zhang)
- update to latest artifact spec 350dae6 (Shiwei Zhang)
- new artifact spec support f56d806 (Shiwei Zhang)
v0.12.0
Changelog
- maint: replace github org references 1e6a64e (Josh Dolitsky)
- Add code of conduct (#278) 2df178d (Josh Dolitsky)
- Bump github.com/containerd/containerd from 1.5.1 to 1.5.2 (#277) 7be4945 (dependabot[bot])
- Bump github.com/containerd/containerd from 1.5.0 to 1.5.1 (#273) 33a30cd (dependabot[bot])
- Bump github.com/docker/docker (#268) a7daebd (dependabot[bot])
- Enable CLI to Pull Config (#274) d400de2 (Shiwei Zhang)
- fixing broken links in readme (#270) c46d3e3 (Vanessasaurus)
- fix makefile (#272) 7ecdb44 (Shiwei Zhang)
- consistent default media type (#271) e85f6b7 (Shiwei Zhang)
- Migrate to oras-go library (#265) c9d1b33 (Josh Dolitsky)
- Add documentation for cache usage (#266) a7e985d (Lucian Buzzo)
- Bump github.com/containerd/containerd from 1.5.0-rc.2 to 1.5.0-rc.3 (#262) 1ec0c36 (dependabot[bot])
- Bump github.com/docker/cli (#259) b76d6d9 (dependabot[bot])
- Updates to containerd 1.5 (#261) 235ef92 (Crypt Keeper)
Notes
This release was signed with E97F 9DA5 AE2E 39CF 48A1 42B7 852A 7470 A39F B81D
(@jdolitsky's GPG key) which can be found here and here.
v0.11.1
Changelog
- maint: prep for 0.11.1 release 5bfe0ab (Josh Dolitsky)
- Fix regression in v0.11.0 (#250) 2798290 (Josh Dolitsky)
- Build & release arm64 binaries (#248) 23f76e8 (Will Medlar)
Notes
This release was signed with E97F 9DA5 AE2E 39CF 48A1 42B7 852A 7470 A39F B81D
(@jdolitsky's GPG key) which can be found here.