Skip to content

Releases: kitops-ml/kitops

Release v1.10.0

07 Nov 19:06

Choose a tag to compare

Welcome to the v1.10.0 release of Kit! With this release, we're proud to announce initial support for CNCF ModelPack artifacts in the Kit CLI.

New Features

CNCF ModelPack support

We've added support for the CNCF model-spec in the Kit CLI. For most use cases, this should mean that Kit is able to work with ModelPack artifacts in the same way it handles ModelKits, allowing you to push, pull, and unpack artifacts that conform to the ModelPack specification.

To create new ModelPack artifacts, the kit pack command now supports the --use-model-pack flag. If specified, instead of creating a ModelKit OCI artifact, Kit will create an OCI artifact in the model-spec format. Once created, these artifacts should be handled by the Kit CLI transparently, with no additional changes to usage, though additional tools that rely on ModelKit media types may have issues processing ModelPack artifacts.

For more detail, see the PR that added support: #1000

Documentation updates

Bug Fixes

  • Handle missing tag in ModelKit references per command by @amisevsk in #1003

Full Changelog: v1.9.0...v1.10.0

Release v1.9.0

20 Oct 19:34

Choose a tag to compare

Welcome to the v1.9.0 release of Kit! We've added some exciting new features and improvements.

New Features

Untagging ModelKits in remote repositories

Prior to v1.9.0, using kit remove with the --remote flag would delete the remote ModelKit, removing both it and all tags that referred to it. With the changes in v1.9.0, removing remote ModelKits behaves more similarly to the local case:

  • If the remove command has a digest (e.g. kit remove --remote registry.com/repository/modelkit@sha256:<digest>), the ModelKit with that digest is deleted from the remote repository, removing it and all tags referring to it
  • If, however, the remove command uses a tag (e.g. kit remove --remote registry.com/repository/modelkit:latest), only the tag is removed; the ModelKit can still be pulled by digest or any additional tags pointing to it
    • To delete the ModelKit itself, you can use a tag and the --force flag, which will resolve the tag to a digest and then delete that digest.

For more details, see kit remove --help, or the PR: #978

Significant Changes

KitOps version check endpoint change

As of KitOps v1.9.0, the CLI will use https://kitops.ml/version to check for updates when running Kit commands. The benefits of this endpoint are twofold:

  • It's generally faster to respond than the GitHub API we were using
  • It will correctly list the latest full release, skipping draft releases and prerelease versions

With this change, Kit will now also send two pieces of additional information on version checks:

  • A user-agent string matching what KitOps sends to registries (kitops-cli/<version>)
  • An X-Command header containing the top-level Kit command used (e.g. push for kit push <destination>)

To disable automatic version checks, use the command below:

kit version --show-update-notifications=false

For more details, see the original PR: #979

New Contributors

Full Changelog: v1.8.0...v1.9.0

Release v1.8.0

17 Sep 18:28

Choose a tag to compare

Welcome to the v1.8.0 release of Kit! We've added some exciting new features and improvements.

New Features

SBOM generation for KitOps CLI releases

Thanks to @bupd, KitOps releases now include SBOM manifests in their release assets. You can find these assets published as part of the v1.8.0 release, and similar SBOMs will be included in new releases going forward.

For more details, see the PR by @bupd: #951

Support for using ModelKit references with kit dev

The kit dev command now supports supplying a ModelKit reference instead of using a local directory. This means that it's possible to start a LLM server (based on gguf-formatted model weights) without first unpacking a ModelKit. Try it out using

kit dev start jozu.ml/jozu/qwen2-7b:latest

For more information, see kit dev start --help or @gorkem's PR: #944

Dynamic shell completions

The Kit CLI now supports dynamic shell completions based on the ModelKits you have pulled locally. This means that in addition to autocompleting kit command names (e.g. "push" or "pull"), the CLI will suggest completions for ModelKits and their tags when using commands that require a ModelKit reference.

To add completions to your current terminal session, use one of the following commands, depending on your current shell

# bash
source <(kit completion bash)
# zsh
source <(kit completion zsh)
# powershell
kit completion powershell | Out-String | Invoke-Expression
# fish
kit completion fish | source

Completions should be supported for bash, zsh, fish, and powershell, though we haven't had a chance to thoroughly test all shell interpreters -- if you encounter issues with completions, please open an issue in this repository so that we can work on fixing it!

For more information, see the PR that added this feature: #963

Significant Changes

  • The Kit CLI will now default to using the latest tag when one is not provided. This behaviour mirrors what other OCI CLI's, such as docker and podman do, and avoids potentially confusing error messages when missing a tag during a command. For more information, see the PR by @mohammedahmed18: #935

Bug Fixes & Documentation Improvements

New Contributors

  • @bupd made their first contribution in #951

Full Changelog: v1.7.0...v1.8.0

Release v1.7.0

27 Jun 16:47
4147a72

Choose a tag to compare

Welcome to the v1.7.0 release of Kit! We've added some exciting new features and improvements.

New Features

GKE support in KServe container

Thanks to @tmbochenski, the KitOps KServe container now natively supports authenticating with Google Artifact Registry on GKE clusters. For documentation on setting this up, see the README.md

For more information, see the PR by @tmbochenski: #907

Docker credential store fallback for Kit CLI

Thanks to @mohammedahmed18, the Kit CLI will now use Docker's credential store as a fallback for authenticating with registries when an entry in Kit's credential store is not available. This means that if you are logged in to a registry in Docker, you no longer need to log in in the Kit CLI.

For more details, see the PR by @mohammedahmed18: #910

Format flag for kit list command

The kit list command now supports the --format flag, allowing you to list ModelKits in JSON or Go-templated formats. This is useful for automation and tooling, which might prefer a machine-parseable output instead of the normal table that Kit prints by default.

You can now specify kit list --format=json to output the list as JSON, or use a template to print only the information you need. See kit list --help for more information.

For more details, see @gorkem's PR: #906

Bug Fixes

  • Fix HF import to handle files that do not have Content-Length header by @amisevsk in #911

New Contributors

Full Changelog: v1.6.1...v1.7.0

Release v1.6.1

17 Jun 18:15

Choose a tag to compare

Welcome to the v1.6.1 release of Kit! This commit addresses a storage requirements issue when running Kit pack in an otherwise uninitialized system (e.g. in CI/CD pipelines)

Bug Fixes

In v1.6.0, we found that in some of our continuous intergration (CI) jobs that make use of the Kit CLI, we were seeing errors around running out of free disk space. As we carefully size storage space to ensure we can process ModelKits in CI, this pointed to a bug in how KitOps was handling initialization of its internal, on-disk storage. In particular, if local storage was not initialized, Kit was falling back to a copy (rather than rename) flow when saving blobs to its internal registry. This led to a higher peak storage requirement during pack and could, in some cases, cause CI jobs to fail due to lack of disk space.

For more information, see PR #901

Full Changelog: v1.6.0...v1.6.1

Release v1.6.0

21 May 01:02

Choose a tag to compare

Welcome to the v1.6.0 release of Kit! We've added some exciting new features and improvements.

New Features

Ignore existing files when using kit unpack

Previously, kit unpack worked in one of two ways: either it would fail if unpacking would require overwriting a file, or it would overwrite the file (via the --overwrite flag). With v1.6.0, we've added a third option, --ignore-existing (or -i for short), which lets kit unpack succeed without overwriting existing files.

This was implemented to support the "init contianer" use case (see issue #874), as an init container might commonly unpack a model into a persistent volume (where the files already exist).

For more information, see issue #874 and PR #882

Significant Changes

  • Add --ignore-existing|-i flag to kit unpack by @amisevsk in #882

Bug Fixes

  • kit dev: if model path is a directory search for a gguf file for dev by @amisevsk in #881

Documentation improvements

Full Changelog: v1.5.1...v1.6.0

Release v1.5.1

25 Apr 19:00

Choose a tag to compare

Welcome to the v1.5.1 release of Kit! This release fixes a couple of bugs with ModelKit unpacking and the KServe container image

Bug Fixes

Fixes to unpacking ModelKits with references

Due to a bug in how ModelKit references were being handled, attempting to use filters when unpacking a ModelKit that references another ModelKit would result in the entire referenced ModelKit being unpacked. This was fixed in #842

Fixes to the release version of the KitOps KServe container

The KitOps KServe image did not include bash for release-tagged versions, which led to the entrypoint script failing to execute. This did not affect the next tag for the container, as the next image had a slightly different set of packages installed. PR #852 made sure that both release and rolling images use the same base packages.

In addition, PR #852 moved installing the AWS CLI (which is needed for AWS IRSA support in KServe) to the KServe container, reducing the size of the base KitOps container by around 200MB.

Full Changelog: v1.5.0...v1.5.1

Release v1.5.0

21 Apr 16:15
5931e59

Choose a tag to compare

Welcome to the v1.5.0 release of Kit! This release adds support for logging in to private registries when using the KitOps KServe container

New Features

Private registry support for KServe container

When using the KServe container, you can now access private registries by setting the KIT_USER and KIT_PASSWORD environment variables. See the KServe README.md for more information.

Additionally, thanks to @dpnoworyta, the KServe container now also supports AWS IRSA for authentication, simplifying access on AWS clusters. For more information, see PR #825.

New Contributors

Full Changelog: v1.4.0...v1.5.0

Release v1.4.0

11 Apr 15:33

Choose a tag to compare

Welcome to the v1.4.0 release of Kit! This release improves kit import and fixes one bug around pushing ModelKits to Amazon ECR.

New Features

Import specific versions using kit import

We've added a flag to kit import to allow specifying a tag, branch, or SHA digest when importing a model from Huggingface. To import a specific version, use the --ref flag:

kit import myorg/myrepo --ref v1.0.0

For more information, see issue #823 or PR #824

Introducing regular builds of the kitops-kserve container image

We're now including the ghcr.io/kitops-ml/kitops-kserve:next in our regular builds, allowing you to use ModelKits with KServe on Kubernetes. For details on KServe, see the image's readme.

For more information, see issue #817 or PR #820

Bug Fixes

  • Use monolithic PUT to upload large layers to Amazon ECR by @amisevsk in #822

Full Changelog: v1.3.0...v1.4.0

Release v1.3.0

01 Apr 11:21

Choose a tag to compare

Welcome to the v1.3.0 release of Kit! This is our first release as part of the CNCF! This release mostly contains changes relevant to our new organization (kitops-ml):

Significant Changes

  • Change module path in go.mod and update internal imports by @gorkem in #805
  • Update repository to kitops-ml org instead of jozu-ai by @amisevsk in #810
  • Print update notification messages to stderr instead of stdout by @amisevsk in #809

Bug Fixes

New Contributors

Full Changelog: v1.2.2...v1.3.0