46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
|
# Migration Guide
|
||
|
|
||
|
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.FileStore` to [file.Store](https://pkg.go.dev/oras.land/oras-go/v2/content/file#Store)
|
||
|
- Moves `content.OCIStore` to [oci.Store](https://pkg.go.dev/oras.land/oras-go/v2/content/oci#Store)
|
||
|
- Moves `content.MemoryStore` to [memory.Store](https://pkg.go.dev/oras.land/oras-go/v2/content/memory#Store)
|
||
|
- Provides [SDK](https://pkg.go.dev/oras.land/oras-go/v2/registry/remote) to interact with OCI-compliant and Docker-compliant registries
|
||
|
- Supports [Copy](https://pkg.go.dev/oras.land/oras-go/v2#Copy) with more flexible options
|
||
|
- Supports [Extended Copy](https://pkg.go.dev/oras.land/oras-go/v2#ExtendedCopy) with options *(experimental)*
|
||
|
- No longer supports `docker.Login` and `docker.Logout` (removes the dependency on `docker`); instead, provides authentication through [auth.Client](https://pkg.go.dev/oras.land/oras-go/v2/registry/remote/auth#Client)
|
||
|
|
||
|
Documentation and examples are available at [pkg.go.dev](https://pkg.go.dev/oras.land/oras-go/v2).
|
||
|
|
||
|
## Migrating from `v1` to `v2`
|
||
|
|
||
|
1. Get the `v2` package
|
||
|
|
||
|
```sh
|
||
|
go get oras.land/oras-go/v2
|
||
|
```
|
||
|
|
||
|
2. Import and use the `v2` package
|
||
|
|
||
|
```go
|
||
|
import "oras.land/oras-go/v2"
|
||
|
```
|
||
|
|
||
|
3. Run
|
||
|
|
||
|
```sh
|
||
|
go mod tidy
|
||
|
```
|
||
|
|
||
|
Since breaking changes are introduced in `v2`, code refactoring is required for migrating from `v1` to `v2`.
|
||
|
The migration can be done in an iterative fashion, as `v1` and `v2` can be imported and used at the same time.
|