Repository navigation
Releases: awslabs/ocilot
Releases · awslabs/ocilot
Release list
v0.3.0
v0.2.4
Fixed
- (layer) implicitly call flush and shutdown on layer completion
Other
- (deps) update dependencies
v0.2.3
Fixed
- (image) stamp new manifests with the Manifest media type, not Config
- (client) set Content-Type header on manifest PUT
- (layer) verify blob digests using the actual algorithm, not always sha256
- address review findings in registry client and models
Other
- bump dependencies
- (deps) bump dependencies
- (deps) update dependencies and fix keyring to 4.1
v0.2.2
Fixed
- (registry) ensure we use the keyring::v1 Entry
v0.2.1
Fixed
- (manifest) dispatch on mediaType when fetching manifests
v0.2.0
Other
- (deps) migrate keyring v3 to v4
- address review feedback for soundness, correctness, and API hygiene
Fixed (review-driven)
- #1 Replaced all
unsafe impl Send/Sync(RegistryClient,Registry,Decompress,Reader) with sound trait-bound types backed byArc<dyn ... + Send + Sync>andPin<Box<dyn AsyncRead + Send + Sync>>. - #2 Introduced
Digestnewtype (src/digest.rs) that validatesalgo:hex; replaced every digestunwrap()/strip_prefix("sha256:").unwrap()withDigest::parse(...)?. - #3
Token::parseand ECR base64 decoding now return typedInvalidAutherrors instead of panicking on malformed config. - #4 Replaced
join_allwithtry_join_allinImage::to_tarball,Index::to_oci, and CLIcopy/pushso the first error aborts the operation. - #5/#19 Chunked-upload
Locationhandling:start_blob_uploadparses and resolves the upload URL;upload_partandfinish_blob_uploadPATCH/PUT against the URL returned by the previous response (preserving any pre-existing query string) instead of reformatting/v2/{repo}/blobs/uploads/{upload}. - #6 Removed all
_progressAPI duplication:Layer::create,Layer::open,Image::filesystem,Image::to_tarball, andIndex::to_ocinow takeOption<&dyn ProgressReporter>(orSharedProgresswhere spawning is required). - #7 Compression:
lz4now returnsError::Unsupportedinstead of misusing the LZMA decoder.Decompress::newis fallible;DockerImageRootfs(None)passes through uncompressed. - #8 Writer rewritten as an explicit state machine (
Initial → Starting → Idle ↔ Uploading → Finishing → Done) with nowake_by_ref. Hash and offset advance only after the registry confirms each part.Donerejects further writes;poll_shutdowndrains. - #9 Auth precedence enforced:
.finch→.docker→ keyring; loop breaks on the first hit and never overwrites a resolved token withNone. - #10 Layer copy now advances by
read_size, notchunk_size(was a real bug forsize < MIN_CHUNK_SIZE); covered bycopy_handles_short_readstest. - #11 Spawned
JoinErrors now map to a typedError::Joinvariant rather than being context-shifted into a generic error. - #12
Reader::poll_readticks progress byafter - beforeper poll instead of only at EOF. - #13 Reader validates streamed size and digest against expected values at EOF and returns
LayerSizeMismatch/DigestMismatch. - #14
RegistryClientupload methods now take&self. - #15
Ctxexposes a single Arc-backedSharedProgressinstead of leaking aMultiProgress; spawned tasks clone theArcrather than relying onunsafelifetime extension.
v0.1.0
Fixed
- Improve doc comment formatting and remove review artifacts
- Update documentation and styling
- ECR repository names for both private and public
- Public ECR list tags operation
Changed
- Update dependencies, fix edition and migrate to bon
Other
- Initial open source release
v0.1.0-beta.2
Other
- enable github release in release-plz