NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2608 most downloaded on PyPI
OCI Registry as Storage Python SDK
Last release 1 months ago
08 Aug 2026
Release timing varies
gaps range from 8 days to 5 months
Most releases are documented
notes for 48 of 56 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
56 releases · first in 2021
One column per quarter.
fix: route push completion output through logger by @tomatotomata in https://github.com/oras-project/oras-py/pull/249
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.42...0.2.43
Full Changelog: 0.2.42...0.2.43
feat: add Layout copy for pull_from_registry capability by @tarilabs in https://github.com/oras-project/oras-py/pull/238
copy for pull_from_registry capability by @tarilabs in https://github.com/oras-project/oras-py/pull/238Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.41...0.2.42
Use optional schema validation for get_manifest by @ianpittwood in https://github.com/oras-project/oras-py/pull/237
get_manifest by @ianpittwood in https://github.com/oras-project/oras-py/pull/237Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.40...0.2.41
get_manifest by @ianpittwood in #237Full Changelog: 0.2.40...0.2.41
Fix preemptive exit in auths lookup when credsStore is in use by @ianpittwood in https://github.com/oras-project/oras-py/pull/232
auths lookup when credsStore is in use by @ianpittwood in https://github.com/oras-project/oras-py/pull/232Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.39...0.2.40
auths lookup when credsStore is in use by @ianpittwood in #232Full Changelog: 0.2.39...0.2.40
fix Python 3.7+ compatibility by avoiding union syntax and rely on typing by @tarilabs in https://github.com/oras-project/oras-py/pull/213
copy from oci-layout to OCI registry by @tarilabs in https://github.com/oras-project/oras-py/pull/228Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.37...0.2.39
copy from oci-layout to OCI registry by @tarilabs in #228Full Changelog: 0.2.37...0.2.39
this change provide a new API using ORAS-py to perform copy from oci-layout (on disk) to OCI registry, re-using existing APIs.
this change provide a new API using ORAS-py to perform
copy from oci-layout (on disk) to OCI registry, re-using
existing APIs.
also tested locally with:
podman run -d -p 5000:5000 --name test-registry ghcr.io/oras-project/registry:latest
ORAS_HOST=localhost ORAS_PORT=5000 pytest oras/tests/test_layout.py -valso re-tested manually the resulting upload with:
skopeo copy --src-tls-verify=false docker://localhost:5000/dinosaur/layout-single:v1 oci:output:latest
diff -r output/ oras/tests/ocilayout_data/ocilayout1
skopeo copy --src-tls-verify=false --multi-arch all docker://localhost:5000/dinosaur/layout-multi:v1 oci:output:latest
diff -r output/ oras/tests/ocilayout_data/ocilayout2resulting in the same blobs.
Please notice:
the oci-layout test examples use Image Manifest and Index Manifest to
ensure compatibility with the expected semantic of copy, therefore the
spec use-case of moving from oci-layout on disk to OCI registry;
by adhering to the OCI spec, this includes OCI Artifact use-cases.
Signed-off-by: tarilabs matteo.mortari@gmail.com
add memo for the credentials fixture
Signed-off-by: tarilabs matteo.mortari@gmail.com
implement review: rename Dockerfile
Signed-off-by: tarilabs matteo.mortari@gmail.com
nit: oneliner and make lint
Signed-off-by: tarilabs matteo.mortari@gmail.com
nit: ignore space
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl. review: use defaults.py for const lowercase
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl. review: use read_json() where possible
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl review: use jsonschema for Index
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl review: avoid intro var where possible
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl feedback intro OCILayout class
Signed-off-by: tarilabs matteo.mortari@gmail.com
linting
Signed-off-by: tarilabs matteo.mortari@gmail.com
simplification and linting
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl review feedback, name it Layout
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl feedback, move into oras/layout/layout.py
see #228 (comment)
Signed-off-by: tarilabs matteo.mortari@gmail.com
impl feedback, add validation.py and NewLayout fn
Signed-off-by: tarilabs matteo.mortari@gmail.com
linting
Signed-off-by: tarilabs matteo.mortari@gmail.com
fix typo in oras/tests/ocilayout_data
Signed-off-by: tarilabs matteo.mortari@gmail.com
changelog and version bump
per usual oras-py workflow
Signed-off-by: tarilabs matteo.mortari@gmail.com
Use correct credsStore/credHelpers binary by @rasmusfaber in https://github.com/oras-project/oras-py/pull/212
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.36...0.2.37
Full Changelog: 0.2.36...0.2.37
Fix authentication priority: AWS-native -> docker login -> credHelpers -> credsStore by @rasmusfaber in https://github.com/oras-project/oras-py/pull/2
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.35...0.2.36
Full Changelog: 0.2.35...0.2.36
fix: auth via ECR to be an extra by @tarilabs in https://github.com/oras-project/oras-py/pull/208
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.34...0.2.35
[tributors] contributors/update-2025-05-31 by @github-actions in https://github.com/oras-project/oras-py/pull/203
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.33...0.2.34
Full Changelog: 0.2.33...0.2.34
fix: method signature to allow custom CA-Bundles by @Sojamann in https://github.com/oras-project/oras-py/pull/198
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.31...0.2.33
fix: initialize headers variable in do_request by @Sojamann in https://github.com/oras-project/oras-py/pull/192
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.30...0.2.31
token.py ensure headers is defined by @vsoch in https://github.com/oras-project/oras-py/pull/193
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.29...0.2.30
Avoid Setting Unspecified Header Fields When Pushing Manifests by @Sojamann in https://github.com/oras-project/oras-py/pull/190
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.28...0.2.29
Propagate the tls_verify parameter to the auth backends by @Meallia in https://github.com/oras-project/oras-py/pull/186
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.27...0.2.28
check for blob existence in registry before uploading by @MichaelKopfMkf in https://github.com/oras-project/oras-py/pull/171
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.25...0.2.27
Replace logger.exit(...) from the internals by @xarses in https://github.com/oras-project/oras-py/pull/155
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.2...0.2.25
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Token Auth Backend: Token request function didn`t set Authorization Header by @mariusbertram in https://github.com/oras-project/oras-py/pull/153
Full Changelog: https://github.com/oras-project/oras-py/compare/0.2.1...0.2.2
wip: separate auth into backends by @vsoch in https://github.com/oras-project/oras-py/pull/134
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.30...0.2.1
feat: simplify how subjects are created from existing manifest by @tumido in https://github.com/oras-project/oras-py/pull/131
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.29...0.1.30
Update headers in do_request method, provider.py by @my5cents in https://github.com/oras-project/oras-py/pull/129
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.28...0.1.29
[tributors] contributors/update-2024-01-29 by @github-actions in https://github.com/oras-project/oras-py/pull/124
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.27...0.1.28
update black to 24.1.0 by @vsoch in https://github.com/oras-project/oras-py/pull/122
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.26...0.1.27
Add example for pulling and following index images by @miker985 in https://github.com/oras-project/oras-py/pull/109
config_manifest is not specified in the google artifact registry by @linshokaku in https://github.com/oras-project/oras-py/pull/115Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.25...0.1.26
feature/pre commit updates by @dev-zero in https://github.com/oras-project/oras-py/pull/102
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.24...0.1.25
Add SECURITY.md file by @TerryHowe in https://github.com/oras-project/oras-py/pull/104
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.23...0.1.24
Minor fixes and support for Subject by @dev-zero in https://github.com/oras-project/oras-py/pull/89
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.22...0.1.23
Distinguish between insecure and tis-verify by @mariusbertram in https://github.com/oras-project/oras-py/pull/98
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.21...0.1.22
sanitize paths should be allowed to place something in the same pwd by @vsoch in https://github.com/oras-project/oras-py/pull/99
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.20...0.1.21
[tributors] contributors/update-2023-07-15 by @github-actions in https://github.com/oras-project/oras-py/pull/97
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.2...0.1.20
[tributors] contributors/update-2023-07-05 by @github-actions in https://github.com/oras-project/oras-py/pull/92
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.18...0.1.19
fix: fix CODEOWNERS by @shizhMSFT in https://github.com/oras-project/oras-py/pull/77
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.17...0.1.18
chore: add CODEOWNERS based on OWNERS.md by @shizhMSFT in https://github.com/oras-project/oras-py/pull/75
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.16...0.1.17
add support for delete tag and retry decorator for requests by @vsoch in https://github.com/oras-project/oras-py/pull/73
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.15...0.1.16
[tributors] contributors/update-2023-02-04 by @github-actions in https://github.com/oras-project/oras-py/pull/69
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.14...0.1.15
Fix get tags by @wolfv in https://github.com/oras-project/oras-py/pull/68
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.13...0.1.14
renaming _upload_blob to upload_blob by @vsoch in https://github.com/oras-project/oras-py/pull/66
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.12...0.1.13
ensure we strip path separators from title push/pull by @vsoch in https://github.com/oras-project/oras-py/pull/64
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.11...0.1.12
deprecating several private client functions in favor of public (see CHANGELOG).
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.1...0.1.11
Add insecure option to requests by @mariusbertram in https://github.com/oras-project/oras-py/pull/96
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.19...0.1.2
Refactor user guide with examples by @vsoch in https://github.com/oras-project/oras-py/pull/60
Full Changelog: https://github.com/oras-project/oras-py/compare/0.1.0...0.1.1
Remove Client by @vsoch in https://github.com/oras-project/oras-py/pull/59
path/to/blob.png:my.custom.mediatype.See https://github.com/oras-project/oras-py/pull/59 for detail about the reason to remove the client.
Full Changelog: https://github.com/oras-project/oras-py/compare/0.0.18...0.1.0
use vsoch/action-updater to pin versions of workflows, add pre-commit by @vsoch in https://github.com/oras-project/oras-py/pull/52
Full Changelog: https://github.com/oras-project/oras-py/compare/0.0.17...0.0.18
refactoring docs to markdown instead of rst by @vsoch in https://github.com/oras-project/oras-py/pull/41
Full Changelog: https://github.com/oras-project/oras-py/compare/0.0.13...0.0.17
Nothing published for this version
Nothing published for this version
Nothing published for this version
removing redundant getting started docs by @vsoch in https://github.com/oras-project/oras-py/pull/39
Full Changelog: https://github.com/oras-project/oras-py/compare/0.0.12...0.0.13
fixing bugs with GitHub packages push/pull and adding test
Full Changelog: https://github.com/oras-project/oras-py/compare/0.0.11...0.0.12
updating oras project site metadata and disabling contributors workflow by @vsoch in https://github.com/oras-project/oras-py/pull/19
Full Changelog: https://github.com/oras-project/oras-py/compare/0.0.1...0.0.11
Update license to MIT by @lachie83 in https://github.com/oras-project/oras-py/pull/1
Full Changelog: https://github.com/oras-project/oras-py/commits/0.0.1
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →