Releases: oras-project/oras-go
Releases · oras-project/oras-go
v2.0.0-rc.3
New Features
- Added utility functions for content descriptors
- content.NewDescriptorFromBytes() to generate a descriptor from a byte slice
- content.Equal() to compare if two descriptors point to the same content
- Simplified API
- registry/remote/auth.StaticCredential() for easier and secure credential setting for simple scenarios
- oras.Fetch() to fetch content as a reader via a reference string from any target
- oras.FetchBytes() to fetch content as a byte slice via a reference string from any target
- oras.PushBytes() to push a byte slice to any target
- oras.TagN() to tag content with multiple tags
- oras.TagBytes() to push a byte slice to any target and tag it with a single tag
- oras.TagBytesN() to push a byte slice to any target and tag it with multiple tags
- Extracted content.Tagger interface from content.TagResolver
Deprecation
- BREAKING CHANGE Moved
content.ErrSizeExceedLimittoerrdef.ErrSizeExceedsLimit - BREAKING CHANGE Removed
registry.ReferenceTagger - BREAKING CHANGE Removed
registry/remote.Repository.TagReference()
Bug Fixes
- fix #225: Pulling from AWS ECR fails with error
empty response Docker-Content-Digest - fix #294: Pushing artifacts to Google GAR fails with error
Error PUT ... unexpected status code 400: Bad Request - fix potential security vulnerabilities: #289, #291
Other Changes
- BREAKING CHANGE Updated support window to Go
1.18and1.19 - BREAKING CHANGE Reduced interface requirements in corresponding functions of the package
orastoReadOnlyinterfaces - BREAKING CHANGE
Manifest()of registry.Repository returns a ManifestStore instead of a BlobStore - Improved error message on planform mismatch
Detailed Commits
- build: update support window to Go 1.18, 1.19 by @wangxiaoxuan273 in #270
- refactor: Small refactor of reference module and tests by @nima in #279
- fix: oras pull error
empty response Docker-Content-Digestby @nima in #237 - refactor!: add read-only interfaces by @Wwwsylvia in #283
- feat: add utility methods for creating and comparing OCI descriptors by @wangxiaoxuan273 in #281
- fix: remove
+jsonencoding from the default config media type by @Wwwsylvia in #288 - feat!: support
oras.Fetchandoras.FetchBytesby @Wwwsylvia in #282 - feat: add a utility method for specifying static credentials by @wangxiaoxuan273 in #280
- refactor: improve error message on platform mismatch in order to distinguish platform not found and manifest not found by @lizMSFT in #292
- feat: Support
oras.PushBytesandoras.TagBytesby @Wwwsylvia in #293 - fix: Revert "Upload empty blob when packing" by @Wwwsylvia in #295
- fix: Revert "fix: remove
+jsonencoding from the default config media type" by @Wwwsylvia in #297 - fix: use a default value when
Concurrencyis not specified by @Wwwsylvia in #296 - feat!: Support specifying
MaxMetadataBytesoption fororas.Resolveandoras.Copyby @Wwwsylvia in #299 - feat:
Repository.Manifest()now returns aManifestStoreby @Wwwsylvia in #300 - feat!: support
oras.TagNby @Wwwsylvia in #301 - feat: implement ReferenceParser for manifestStore by @Wwwsylvia in #305
New Contributors
Full Changelog: v2.0.0-rc.2...v2.0.0-rc.3
v1.2.1
What's Changed
- Implement
Info, which will return metadata about the content available in the OCI store by @oanatmaria in #187 - Bump
docker/distributiontov2.8.1by @mihaibuzgau in #276
New Contributors
- @oanatmaria made their first contribution in #187
- @mihaibuzgau made their first contribution in #276
Full Changelog: v1.2.0...v1.2.1
v2.0.0-rc.2
New Features
- Supports artifacts-spec v1.0.0-rc.2
- Added new API
content.ReadAll()to safely read fetched blobs content/file.Storeallows skipping unnamed blobs when pushingoras.Copy()andoras.ExtendedCopy()support platform selectionoras.ExtendedCopy()supports filtering predecessors by artifact type and / or annotations using regular expressions
Bug Fixes
- fix #236: same content with different names will be skipped when being pushing to file store
- fix #239:
oras.Copy()may skip tagging if manifest blob already exists in the destination - fix #252: pushing blobs to ECR will fail
Other Changes
- Improved documentation
- Migrated to codecov.io for code coverage reports
oras.Pack()packs empty config blob of size 0 bytes instead of{}(empty JSON object of size 2 bytes).
Detailed Commits
- Bug: oras.Copy() may skip tagging if manifest blob already exists in the destination by @m5i-work in #243
- created pull blob example by @wangxiaoxuan273 in #234
- added an example of copying artifact manifest by @wangxiaoxuan273 in #241
- moved ReadAll and related functions to package Content by @wangxiaoxuan273 in #245
- update artifact-spec to v1.0.0-rc.2 by @Wwwsylvia in #251
- Reuse post token for put when pushing blobs by @qweeah in #253
- Migrate to codecov.io by @junczhuMSFT in #247
- replaced io.ReadAll with content.ReadAll in examples by @wangxiaoxuan273 in #255
- Added an example of using ExtendedCopy by @wangxiaoxuan273 in #248
- Failed to download all the files in an artifact using oras.Copy() by @m5i-work in #256
- fix: Fix runnable examples by @lizMSFT in #257
- Allow skipping unnamed blobs when pushing to file store by @m5i-work in #254
- Upload empty blob when packing by @m5i-work in #262
- support filtering on annotation with regex by @wangxiaoxuan273 in #259
- fix: fix typo in example test by @lizMSFT in #263
- feat: Support platform selection on Copy by @lizMSFT in #244
- added filtering by artifact type with regex by @wangxiaoxuan273 in #258
- fix: added manifest parsing when annotation is not in the descriptor by @wangxiaoxuan273 in #266
New Contributors
Full Changelog: v2.0.0-rc.1...v2.0.0-rc.2
v2.0.0-rc.1
Major Changes
- Updates implementation to conform artifact-spec v1.0.0-rc.1.
- Supports the Referrer API, and is compatible with the legacy draft.1 API.
- Supports the Discovery API.
- BREAKING CHANGE registry.Repositories() and registry.Tags() support
lastparameter. - New PackArtifact() method for easier packing artifacts.
- New Tag() method to re-tag a manifest.
What's Changed
- Update godoc link to main branch by @Wwwsylvia in #198
- migrate REVIEWING.md from ORAS-go to community by @FeynmanZhou in #194
- Update Referrers API to match RC.1 by @m5i-work in #191
- Clean up unused files by @shizhMSFT in #212
- Filter referrers by artifact type by @m5i-work in #211
- examples for the auth module by @wangxiaoxuan273 in #182
- Add auth examples in README by @Wwwsylvia in #216
- Support last parameter for listing catalog and tags by @patrickzheng200 in #217
- Update artifact spec to v1.0.0-rc.1 by @Wwwsylvia in #222
- added a refresh token example by @wangxiaoxuan273 in #219
- Implement client feature for Discovery API by @m5i-work in #214
- Check ORAS-Api-Version for referrers API by @m5i-work in #227
- Add PackArtifact by @Wwwsylvia in #223
- Skip version checking for pre-RC1 endpoint by @m5i-work in #229
- Added Tag function to oras/registry.go by @patrickzheng200 in #226
- Use annotation constant from artifact-spec by @m5i-work in #231
- added one example for downloading artifact reference manifest by @wangxiaoxuan273 in #173
New Contributors
- @FeynmanZhou made their first contribution in #194
- @m5i-work made their first contribution in #191
Full Changelog: v2.0.0-alpha...v2.0.0-rc.1
v2.0.0-alpha
In version v2, ORAS Go library has been completely refreshed with:
- More unified interfaces
- Notably fewer dependencies
- Higher test coverage
- Better documentation
Besides, ORAS Go v2 is now a registry client.
Major Changes in v2
- Moves
content.FileStoreto file.Store - Moves
content.OCIStoreto oci.Store - Moves
content.MemoryStoreto memory.Store - Provides SDK to interact with OCI-compliant and Docker-compliant registries
- Supports Copy with more flexible options
- Supports Extended Copy with options (experimental)
- No longer supports
docker.Loginanddocker.Logout(removes the dependency ondocker); instead, provides authentication through auth.Client
Documentation and examples are available at pkg.go.dev.
Detailed migration guide are available at MIGRATION_GUIDE.md.
New Contributors
- @scottrigby made their first contribution in #74
- @Wwwsylvia made their first contribution in #86
- @sajayantony made their first contribution in #116
- @qweeah made their first contribution in #117
- @wangxiaoxuan273 made their first contribution in #145
- @caniszczyk made their first contribution in #105
- @patrickzheng200 made their first contribution in #186
Full Changelog: v0.5.0...v2.0.0-alpha
v1.2.0
What's Changed
- use io.ReadFull for ProviderWrapper in case of partial read by @raygecao in #142
- Bump containerd to v1.6.4 by @lucacome in #151
- Bump containerd to v1.6.6 by @lucacome in #160
- Bump cobra to v1.4.0 by @lucacome in #167
- Bump dependencies by @lucacome in #168
- Implement Delete in the oci store content implementation by @viovanov in #174
- Add a loginWithTLS function to V1 by @souleb in #171
New Contributors
- @raygecao made their first contribution in #142
- @lucacome made their first contribution in #151
- @souleb made their first contribution in #171
Full Changelog: v1.1.1...v1.2.0
v1.1.1
v1.1.0
v1.1.0-rc3
Release candidate 3 for v1.1.0
v1.1.0-rc2
Release candidate 2 for v1.1.0