Releases: kitops-ml/kitops
Release v1.10.0
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
Full Changelog: v1.9.0...v1.10.0
Release v1.9.0
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
--forceflag, which will resolve the tag to a digest and then delete that digest.
- To delete the ModelKit itself, you can use a tag and the
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-Commandheader containing the top-level Kit command used (e.g.pushforkit 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
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:latestFor 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 | sourceCompletions 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
latesttag 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
- Overhaul the README by @bmicklea in #918
- Huge docs update by @bmicklea in #922
- Add KServe Google Artifact Registry instructions by @gorkem in #962
New Contributors
Full Changelog: v1.7.0...v1.8.0
Release v1.7.0
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
New Contributors
- @mohammedahmed18 made their first contribution in #910
- @tmbochenski made their first contribution in #907
Full Changelog: v1.6.1...v1.7.0
Release v1.6.1
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
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
Bug Fixes
Documentation improvements
- Add documentation for initContainer deployment by @gorkem in #873
- Fix 404's in the docs by @javisperez in #860
- Fix broken SVG image by @javisperez in #864
- Generate llm.txt at build time by @javisperez in #865
Full Changelog: v1.5.1...v1.6.0
Release v1.5.1
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
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
- @dpnoworyta made their first contribution in #825
Full Changelog: v1.4.0...v1.5.0
Release v1.4.0
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.0For 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
Full Changelog: v1.3.0...v1.4.0
Release v1.3.0
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
- Call networkOptions.complete in login command by @amisevsk in #806
- Fix init container reference in docs by @gorkem in #800
- Fix ldflags in build to use new module name by @amisevsk in #811
- Fix typo in flags for MacOS goreleaser build by @amisevsk in #812
- Update numbering in hf-import.md by @nodroghsu in #808
New Contributors
- @nodroghsu made their first contribution in #808
Full Changelog: v1.2.2...v1.3.0