github oras-project/oras v1.0.0

latest releases: v1.2.0, v1.2.0-rc.1, v1.2.0-beta.1...
20 months ago

ORAS CLI V1

oras is a CLI tool to manage artifacts in OCI-compliant registries and also a fully functional registry client. After a long journey of development, oras has reached a critical milestone for its first stable release v1.0.0. 🎉🎉🎉

While most features are stable, some features are labeled as preview or experimental for early accesses (#865).

  • Preview features are almost stable but subject to change
  • Experimental features are working in progress and not stable

Changes after v0.16.0 are summarized as follows.

New Features

  • Introduce OCI image layout support with the flag --oci-layout
  • BREAKING CHANGE: oras push and oras attach publish OCI image manifest by default
    • Auto manifest type selection is disabled (#782)
  • BREAKING CHANGE: oras pull pulls artifacts without referenced artifacts. Use flag --include-subject to pull all artifacts recursively.
  • BREAKING CHANGE: oras cp --recursive is re-designed to copy artifacts with attached artifacts (#826, #827)
  • oras discover supports showing annotations of the discovered artifacts via the flag -v
  • oras repo ls supports listing repositories under a certain namespace
  • oras repo tags supports showing tags associated with a particular tag or digest
  • Improve registry developer experience
    • Support temporary DNS resolving with optional port forwarding via the flag --resolve
      • Example: debug and test local registry instances: oras push --resolve prod.registry.io:443:127.0.0.1:5000 prod.registry.io/hello:v1 hi.txt
    • Support custom HTTP header via flag -H, --header
      • Example: correlate operations for specific registry providers: oras repo ls -H X-Correlation-Id=$CORRELATION_ID prod.registry.io
  • Experimental: Introduce compatibility mode for OCI image-spec and distribution-spec
  • Support HTTP client retry on read operations for registry targets
  • Support s390x architecture for releasing oras

Other Changes

  • BREAKING CHANGE: oras blob delete and oras manifest delete return success on non-existent content when the flag --force is specified
  • Improve UX
    • oras discover prints subject digest for root node in tree-view output
    • oras tag prints digest for oras tag command
  • Update dependencies to the latest versions
  • Update to golang 1.20.2
  • Improve documentation
  • Assure quality by end-to-end tests

What's Changed Since RC.2

Bug Fixes

  • Fix #883: manifest entries got removed fromindex.json when tagging an artifact in the OCI layout
  • Minor fixes

Other Changes

  • Better debug experiences by correlating debug logs for HTTP requests
  • More E2E test cases
  • Improved documentation

Detailed Commits

  • docs: Add development environment section to readme by @TerryHowe in #822
  • feat!: improve debug log readability by @wangxiaoxuan273 in #861
  • doc: add feature marks to cmd description and log by @qweeah in #865
  • test(e2e): add OCI layout e2e specs for oras cp by @qweeah in #869
  • test: add e2e tests for custom header feature by @wangxiaoxuan273 in #837
  • test(e2e): OCI layout specs for oras discover by @qweeah in #871
  • build(deps): bump oras.land/oras-go/v2 from 2.0.0-20230224055117-216f081e33ba to 2.0.1 by @dependabot in #875
  • chore: update owners by @shizhMSFT in #866
  • test: add header e2e test cases for oras cp by @wangxiaoxuan273 in #874
  • test(e2e): OCI layout specs for oras repo tags by @qweeah in #873
  • test(e2e): OCI layout e2e specs for oras push by @qweeah in #878
  • test(e2e): OCI layout specs for oras attach by @qweeah in #882
  • test(e2e): add test specs for oras pull by @qweeah in #885
  • test: add e2e specs for manifest fetch under oci-layout by @wangxiaoxuan273 in #888
  • chore: e2e test code clean by @qweeah in #886
  • test: add e2e tests for manifest fetch-config under oci-layout by @wangxiaoxuan273 in #889
  • fix: add error when using media type assertion with oci layout by @wangxiaoxuan273 in #890
  • fix: return error if content and password are both read from stdin by @qweeah in #892
  • test(e2e): layout specs for oras manifest push by @qweeah in #880
  • build(deps): bump oras.land/oras-go/v2 to 2.0.2 by @qweeah in #894
  • bump: update go and release version by @qweeah in #895

Full Changelog: v1.0.0-rc.2...v1.0.0

Notes

This release was signed with BE6F A8DD A48D 4C23 0091 A0A9 276D 8A72 4CE1 C704 (@qweeah's GPG key) which can be found here.

Don't miss a new oras release

NewReleases is sending notifications on new releases.