Release Notes

0.86.0

January 8, 2024

The latest release of Kurtosis is `0.86.0`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.86.0] Kurtosis now supports mounting *multiple* artifacts to the same folder in a service container. This is a breaking change because users will now need to replace the `directory.artifact_name` field key with `directory.artifact_names`. This change was shipped to fulfill a user-submitted feature request in [#1519](https://github.com/kurtosis-tech/kurtosis/issues/1519). Read more about the `Directory` constructor in our docs [here](https://docs.kurtosis.com/api-reference/starlark-reference/directory/). - [0.86.0] To ensure persistent volume claim names are deterministic, we shipped a fix to make the names completely deterministic (as opposed to the names being randomly generated). This is a breaking change because Kurtosis will now enforce [RFC-1035](https://datatracker.ietf.org/doc/html/rfc1035) name specifications to PVCs declared using the `Directory` constructor, which mean persistent directory names may need to be changed to conform to RFC-135 rules. Fixes [#1998](https://github.com/kurtosis-tech/kurtosis/issues/1998). # Features - [0.85.6] We continue to deliver updates and improvements to the Enclave Manager Cloud UI, including routing users to the Package Catalog when selecting which packages to run and adding support for YAML configuration of packages right in the UI! - [0.85.55] We've shipped a minor revamp of the look and feel for the [Kurtosis Package Catalog](https://catalog.kurtosis.com/catalog). Try it out now to run any published Kurtosis package!
0.85.54

January 2, 2024

Happy New Year! The latest release of Kurtosis is `0.85.54`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.85.52] Image building is now supported natively within Kurtosis. To build images, simply use the `ImageBuildSpec` instruction to specify the image name, Dockerfile file path, and optional target stage in the `ServiceConfig()` instruction. Note that `ImageBuildSpec` can only be used in packages and not standalone scripts as it relies on build context in package. [Check out our docs for more details on this exciting new feature](https://docs.kurtosis.com/api-reference/starlark-reference/service-config). - [0.85.51] We've added a "run counter" in the [Package Catalog](https://catalog.kurtosis.com/catalog) to showcase the number of times a particular package has been run! # Bug Fixes - [0.85.53] Fixed an issue where containers were only restarting on failure when spun up by Kurtosis on Kubernetes in Production mode. The correct behavior of *always* restarting has been implemented. - [0.85.53] Addressed a bug where the `kurtosis clean -a` command would not properly remove the reverse proxy container. Kurtosis will now print clearer error messages if there are issues removing the reverse proxy server container. - [0.85.50] We've bumped the Rust version to 1.70.0 in our SDK
0.85.49

December 18, 2023

The latest release is `0.85.49`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.85.49] We've added support for `Production Mode` on Kubernetes! This means that enclaves spun up on Kubernetes using the `--production` flag will automatically restart in case they go down. Read more about `Production Mode` [here in our docs](https://docs.kurtosis.com/run/#extra-configuration). - [0.85.49] We've added persistent volumes support for enclaves spun up on multi-node Kubernetes clusters. The storage class to be used for spinning up persistent volumes supports dynamic provisioning and can be specified in the `kurtosis.yaml` configuration file. Kurtosis supports `aws-ebs-csi-driver` on AWS and `do-block-storage` on DigitalOcean. Check out [our guide on how to use Kurtosis on Kubernetes for more details](https://docs.kurtosis.com/k8s#iii-add-your-cluster-information-to-kurtosis-configyml)! - [0.85.47] The size of a persistent directory when using Kurtosis on Kubernetes can now be specified using the `Directory` constructor in Starlark. The default size will be 1 GB and the size attribute will be ignored when using Kurtosis on Docker due to Docker limitations. Check out our docs about this new feature [here](https://docs.kurtosis.com/api-reference/starlark-reference/directory/). - [0.85.47] As part of continuous improvements to the Enclave Manager UI, we have: stripped out `https://` from the URLs used to run packages, made it easier to debug incorrect argument types using clearer error messages and popups, and polished off how the data in tables get rendered. # Bug Fixes - [0.85.49] We fixed a bug where users would hit segmentation violation errors because the function responsible for removing the logs aggregator container was missing in the `CreateEngine` flow. - [0.85.49] We patched an issue where a `kurtosis service start` or `kurtosis service stop` would not function properly because the logic took into consideration the service's status. In reality, the status of a service should not block Kurtosis' ability to start or stop a service. - [0.85.47] The enclave name now properly gets printed in the error message when an error occurs with creating an enclave. - [0.85.47] We fixed a broken link to the Kurtosis Cloud in our Github README

0.85.43

December 11, 2023

The latest release is `0.85.43`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.85.43] Container ports for services running in enclaves can now be accessed using the Enclave Manager UI. This means a user can use the Enclave Manager UI to open local ports that are automatically mapped from the container port in their enclave (whether it be locally or in the Cloud). - [0.85.43] The Enclave Manager UI now enables users to download the full stream of logs from a service! Note that download speeds will be dictated by many factors, including internet bandwidth. This feature works for enclaves in Kurtosis Cloud or for enclaves spun up locally. - [0.85.41] Another round of Enclave Manager UI improvements were delivered! The Package Catalog will now pick up images from Github and several color schemes/designs were polished in this release. - [0.85.41] To match functionality with the CLI, the Kurtosis Cloud Enclave Manager UI now fully supports using `yaml` and `json` in the code editor input boxes. # Bug Fixes - [0.85.42] We shipped a fix to address broken embedded links in the Enclave Manager UI.
0.85.40

December 4, 2023

The latest release is `0.85.40`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Update on our licensing As many know, [Kurtosis is source-available and free under Business Source License (BSL) 1.1](https://www.kurtosis.com/blog/kurtosis-is-now-free-and-source-available-under-bsl1-1). We have updated the type of license that Kurtosis will convert to after Nov 30, 2027 from AGPLv3 to **Apache 2.0 License**. To read more about the current and future license details, go [here](https://github.com/kurtosis-tech/kurtosis/blob/main/LICENSE.md). # Features - [0.85.39] We have added a new Package Details page in the Enclave Manager UI. To see it, simply click on any package and the detailed instructions and information about a specific package from the package author will be displayed. - [0.85.37] A new Package Catalog Overview poage has been added to the Enclave Manager UI for users to see and run any public Kurtosis package they want on Kurtosis Cloud. # Improvements - [0.85.39] The error message for service name collisions has been improved to make debugging easier and more straight forward. # Bug Fixes - [0.85.40] Fixed a bug where logging in to Kurtosis Cloud with 2 different credentials will cache the instance configuration of both instances, resulting in users being able to access multiple Cloud accounts (which is not expected). - [0.85.38] Shipped a fix to address missing service logs for Enclaves running over Kubernetes.
0.85.36

November 28, 2023

The latest release is `0.85.36`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our docs. # Features - [0.85.33] We have added a search bar to the service logs window in the Enclave Manager UI. Closes [#1791](https://github.com/kurtosis-tech/kurtosis/issues/1791). - [0.85.32] We have added back the `Connect` button to the Enclave Manager UI home page. - [0.85.25] Kurtosis alerts in the Enclave Manager UI now have a max height and scrollable contents. - [0.85.13] We've enabled ANSI coloring for log lines. - [0.85.12] Kurtosis will now automatically attempt to reconnect service logs when connection fails - [0.85.12] Add a link in the CLI that takes a user to the Enclave Manager UI (when running in the Cloud context from the CLI) - [0.85.11] We added the ability to download files artifacts from the Enclave Manager UI. - [0.85.10] Shipped a new embedded editor in the Enclave Manager UI for users to edit JSONs for enclave configuration. - [0.85.10] We added new logging capabilities in the Enclave Manager UI. - [0.85.7] Added the `Cancel Payment Subscription` protobuf. - [0.85.7] Dark mode is now the only color theme available in the Enclave Manager UI. - [0.85.5] A new Service Overview page has been implemented for the Enclave Manager UI. See it now at - [0.85.4] Added tab complete for the `kurtosis cluster set` CLI command. - [0.85.4] A simple message that reads: "Made with Kurtosis" now gets printed at the end of each run. # Improvements - [0.85.36] We've made significant improvements to the Enclave Manager UI, including updated app layouts and a view for files artifacts. - [0.85.36] Kurtosis will now automatically remove containers used for running one-off tasks. Fixes [#1846](https://github.com/kurtosis-tech/kurtosis/issues/1846). - [0.85.31] New, minor tweaks and improvements to the Enclave Manager UI were made, including new tooltips and various formatting fixes and polish. - [0.85.26] Various polish and improvements were shipped to the Enclave Manager UI. Highlights include: fixing autoscroll bugs, filling in fields with default placeholders for enclave configueration, and implementation of a ports summary table for a new enclave. More details [here](https://github.com/kurtosis-tech/kurtosis/pull/1808). - [0.85.21] We've improved the error message a user gets when running a Kurtosis CLI command with a missing argument. - [0.85.19] The `kurtosis enclave inspect` CLI command will now print the enclave's flag metadata. Fixes [#1363](https://github.com/kurtosis-tech/kurtosis/issues/1363) - [0.85.19] We've made the Enclave Manager UI experience smoother by loading data live as it becomes available by using optimistic data loading patterns. - [0.85.18] We removed the `connect` button from the Enclave Manager UI to reduce cognitive overload - a user on Cloud need only concern himself/herself with interacting with Cloud enclaves. - [0.85.17] Increased the width of the log line window to make the viewing experience more pleasurable. - [0.85.13] Log messages have been made clearer in the Enclave Manager UI. - [0.85.13] Shipped various Enclave Manager UI polish and fixes, including: adding public port links for local usage, addressing bugs relating to enclave names being required (they aren't), and fixes various scrolling behaviors. More details [here](https://github.com/kurtosis-tech/kurtosis/pull/1749). - [0.85.6] Various logs, links, and font improvements were made to the Enclave Manager UI. - [0.85.5] We're now collecting Cloud user IDs and instance IDs for Cloud users to better enable our teams to diagnose and debug issues that arise on Cloud for our users. - [0.85.4] Package configuration can now be accessed from anywhere in the Enclave Manager UI. # Bug Fixes - [0.85.36] We've addressed a bug where the `run_python()` Starlark instruction created an additional, unnecessary files artifact. - [0.85.36] We fixed a bug where a banner for incompatible architectures was being printed when running Kurtosis on Kubernetes. Fixes [#1780](https://github.com/kurtosis-tech/kurtosis/issues/1780). - [0.85.35] We have made the restart policy for the logs aggregator service more robust to prevent issues where the logs aggregator was not being started up properly, preventing use of Kurtosis. Addresses [#1832](https://github.com/kurtosis-tech/kurtosis/issues/1832) and [#1311](https://github.com/kurtosis-tech/kurtosis/issues/1311) - [0.85.34] Fixed an issue where `kurtosis clean -a` errors would display the incorrect number of services. - [0.85.30] We removed the monaco max height limit to address issues where the content of an editor would overflow its container in the enclave manager UI. - [0.85.29] Fixed an issue where the Enclave Configuration form would error out when a required record was empty. We now check if the record is empty before trying to process it further. - [0.85.23] Fixed an issue where custom arguments passed in to a package run from the Enclave Manager UI were not being positioned correctly, resulting in failed runs. Fixes [#1789](https://github.com/kurtosis-tech/kurtosis/issues/1789) - [0.85.14] We addressed an issue where log lines were being printed 3 times in the Enclave Manager UI. - [0.85.9] Fixed a bug where Docker was required for connecting the Kurtosis CLI to a Cloud instance. Docker is now no longer requirecd for this specific flow. - [0.85.8] Addressed an issue where `kurtosis enclave stop {enclave-dentifier}` would fail to unregsiter the user services in the service registration repository. - [0.85.4] Fixed an issue where Kurtosis would consider every non-existent path to be a URL and fails with an unclear error message. Kurtosis now does a check and prints a cleaner error message when this occurs. - [0.85.4] We fixed an issue where as cryptic error was printed whenever invalid YAML was passed in at runtime. - [0.85.4] Addressed an issue where the user and instance IDs were incorrectly flipped in `kurtosis context add`
0.85.3

November 6, 2023

The latest release is `0.85.3`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.85.3] We've added timestamps to all Kurtosis log lines at the time they were received by the centralized logging infrastructure. - [0.85.3] Minor polish to the Kurtosis Enclave Manager UI were shipped - [0.85.3] We've updated all examples in our documentation for passing in package parameters to use `YAML` instead of `JSON`. Shout out to Barnabas for this contribution! - [0.85.1] We shipped the V0 redesign for our new Enclave Manager UI! Further polish and improvements to come! - [0.85.1] A new message now gets printed whenever users are running a package that uses container images that are incompatible with the target architecture type. # Improvements - [0.85.3] We've improved the language of the `--image-download` flag in both the CLI and the docs to better explain the behavior of this particular flag. - [0.85.3] We added language to the message printed by `kurtosis run --help` to mention support for arbitrary `JSON` or `YAML` URLs. Previously, this was missing as per [#1651](https://github.com/kurtosis-tech/kurtosis/issues/1651) - [0.85.3] When using container images that are incompatible with the target architecture, Kurtosis will now print a `WARNING:` message in the CLI. # Bug Fixes - [0.85.3] We fixed an issue where services were not being restarted despite the `--production` flag being set for a given Kurtosis run. Fixes [#1684](https://github.com/kurtosis-tech/kurtosis/issues/1684). - [0.85.2] We fixed a bug where local absolute locators were still being allowed despite their deprecation in 0.84.0. Fixes [#1637](https://github.com/kurtosis-tech/kurtosis/issues/1637). - [0.85.2] We patched an issue where using `kurtosis lint` with older versions of Docker resulted in ambiguous errors relating to volume names that were too short.
0.85.0

October 30, 2023

The latest release is `0.85.0`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.85.0] We’ve changed a few of our protobuf definitions for a more idiomatic SDK that may cause breaks for Rust SDK users. # Features - [0.85.0] We've added a new flag to the `kurtosis run` CLI command called `--image-download` where users can configure how Kurtosis downloads images for a given run. The default argument, `missing`, will download images if and only if there are no images locally cached, regardless of the tag. When set to `always`, Kurtosis will always fetch the latest image tag. See more about this new flag [here in our docs](https://docs.kurtosis.com/run/#extra-configuration) - [0.84.13] Docker container labels and Kubernetes pod labels can now be customized using `ServiceConfig`. See these [docs for more details](https://docs.kurtosis.com/starlark-reference/service-config/) on how to do so. - [0.84.12] The `--args-file` flag for the `kurtosis run` command now supports passing in arguments via a URL. For example, the following command is now supported: `kurtosis run main.star --args-file "https://www.devnet.com/params.json" given that both the URL and the JSON are valid. Read more about how to use it [here](https://docs.kurtosis.com/run/#extra-configuration). - [0.84.11] Files artifacts generated from `run_sh` and `run_python` can now be named. - [0.84.11] By default, Kurtosis Cloud will spin up services in "production mode", meaning that services will auto-restart if they go down. - [0.84.11] To improve the debugging experience, we've disabled smooth scrolling when viewing logs in the Enclave Manager UI. # Bug Fixes - [0.85.0] We fixed a bug where the `plan.run_sh()` instruction would incorrectly remove new lines from an input. For example, the previous (incorrect) behavior would mean `cat foo.txt | tr -d '\n'` would not work since it was being improperly interpreted as: `cat foo.txt | tr -d ' '`. - [0.84.13] We've made the name of the Python script used in the `plan.run_python()` more obvious so as to not confuse users with other files artifacts in their enclaves. The name of these ephemerally generated Python scripts now contain `*-python-script` in their name. - [0.84.12] We added a debug log line to help users debug issues encountered when using the `kurtosis lint` command. - [0.84.12] We fixed a bug in the Enclave Manager UI where the status spinner would hang and not update properly when a given Starlark script finished running. - [0.84.11] We fixed a bug in the Enclave Manager UI where the status of the container was being shown, rather than the status of the service.
0.84.10

October 23, 2023

The latest release is `0.84.10`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.84.9] A URL link can now be used to take users directly to a pre-selected package. For example, `https://cloud.kurtosis.com/enclave-manager/?package=github.com%2Fkurtosis-tech%2Fethereum-package` would take you to the Enclave Manager UI for users to configure and deploy, removing the need to navigate and search for the specific package you wish to run. - [0.84.8] We added a new CLI command called `kurtosis package init` that will convert your working directory into a Kurtosis package by automatically generating a `kurtosis.yml` file. Then, to make your package fully runnable by others, simply push it to a public Github repository and run it using `kurtosis run github.com/your-repo/package-name`. Read more about this new command [here](https://docs.kurtosis.com/cli-reference/package-init/). # Bug Fixes - [0.84.8] We fixed a broken link in our documentation for upgrading Kurtosis - [0.84.8] We added a fix to print a more accurate error when there are no nodes on a Kubernetes cluster. Fixes [#1507](https://github.com/kurtosis-tech/kurtosis/issues/1507).
0.84.7

October 16, 2023

The latest release is `0.84.7`. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.84.6] The [`kurtosis clean`](https://docs.kurtosis.com/clean/) now removes unused and old Kurtosis engine and core images. Fixes [#1523](https://github.com/kurtosis-tech/kurtosis/issues/1523) - [0.84.5] The [`kurtosis cluster ls` command](https://docs.kurtosis.com/cluster-ls/) now prints an asterisk `*` beside the backend you're currently using, matching the behavior of `kurtosis context ls` when using Kurtosis Cloud. - [0.84.5] The `replace` primitive in the `kurtosis.yml` file now supports local file paths, meaning a user can replace any imported parts of their package with a local version. See the [docs](https://docs.kurtosis.com/concepts-reference/kurtosis-yml/#local-paths) for more details. # Improvements - [0.84.7] We've added new "create enclave" utilities to our Golang SDK as part of our efforts to continuously improve the Kurtosis SDK. - [0.84.7] The Kurtosis Cloud UI now provides more granular details on the progress for a given package run. - [0.84.7] We've renamed the command to change Kurtosis contexts from `switch` to `set`. We're currently in the process of cleaning up the way we want developers to interface with Kurtosis Cloud, so stay tuned for more holistic docs! - [0.84.5] Kurtosis now prints the result of a given run (e.g. processing, success, or failure) in the Cloud UI. - [0.84.4] For `kurtosis clean`, the algorithm for Kurtosis images has been updated to always keep development versions, the latest released versions, and all images that are used by at least one container. Addresses [#1457](https://github.com/kurtosis-tech/kurtosis/issues/1457) # Bug Fixes - [0.84.7] We fixed an issue where the Kurtosis was displaying the container status instead of the service status when using the `kurtosis enclave inspect` command. This was an issue in cases where a service was no longer running but its status would still show as `RUNNING" which is incorrect. Closes [#1351](https://github.com/kurtosis-tech/kurtosis/issues/1351). - [0.84.5] We fixed various bugs relating to the use, and parsing of, `JSON` objects in the configuration UI on Kurtosis Cloud. Addresses [#1501](https://github.com/kurtosis-tech/kurtosis/issues/1501) and [#1479](https://github.com/kurtosis-tech/kurtosis/issues/1479). - [0.84.4] We shipped a bug fix to address an issue where the `kurtosis clean -a` CLI command would fail to remove logs. Addressed [#1505](https://github.com/kurtosis-tech/kurtosis/issues/1505). - [0.84.4] Fixed an issue where a less-than-useful error message was printed when running `kurtosis lint . --format` when the Docker engine was not up. Now, Kurtosis will check whether or not the Docker engine is up *before* executing lint commands to make it more obvious to a user what the error might be. Addresses [#1375](https://github.com/kurtosis-tech/kurtosis/issues/1375). - [0.84.4] Fixed an issue where Kurtosis Cloud would not use the default parallelism of 4 when adding services. This change brings the Cloud behavior in line with what CLI users expect and know.
0.84.3

October 10, 2023

The latest release is `0.84.3`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Change - [0.84.0] As of 0.84.0, users can no longer use absolute locators with local imports. Users are instead encouraged to use relative imports instead for local package dependencies. Read more about how Kurtosis imports work [here](https://docs.kurtosis.com/explanations/how-do-kurtosis-imports-work/). # Features - [0.84.3] We've shipped parts of a new "replace" functionality for Kurtosis packages to improve the package author experience when it comes to developing and testing on top of existing packages (via forks, etc). This is similar to Golang's [`replace`](https://go.dev/doc/modules/gomod-ref#replace) primitive whereby a package author can opt to replace certain package dependencies via configuration in single spot. For Kurtosis, this is configured in the `kurtosis.yml` file for each package (which also contains the package's [locator](https://docs.kurtosis.com/concepts-reference/locators/). This release only supports the replacement of remote package dependencies. Read more about this new functionality in our documentation [here](https://docs.kurtosis.com/concepts-reference/kurtosis-yml/#replace). - [0.84.2] Users can now use the Enclave Manager UI to edit a running enclave (i.e. the enclave's configuration). Once a change has been made, a user need only re-run the package and Kurtosis will automatically apply the differences using [idempotent runs](https://docs.kurtosis.com/concepts-reference/idempotent-runs/). - [0.84.2] We've added a new endpoint for retrieving metadata on the most recent Starlark run, called [`getStarlarkRun`](https://docs.kurtosis.com/engine-apic-reference/#getstarlarkrun---getstarlarkrunresponse-getstarlarkresponse-error-error). - [0.83.16] A new `--args-file` flag now exists for the [`kurtosis run`](https://docs.kurtosis.com/run/#extra-configuration) CLI command. This flag makes it easier for users to pass in configuration files as an argument to a Kurtosis package. # Improvements - [0.84.1] Simplified the scroll logic to improve the user experience of the auto-scroll functionality when viewing the logs in the Enclave Manager UI. - [0.84.0] A home button has been added to the Enclave Manager to help users navigate back to the home page at any time, from any page. - [0.84.0] Metrics for Kurtosis Run have been moved to the APIC, ensuring we can capture metrics for Cloud usage and SDK usage. # Bug Fixes - [0.84.3] We've fixed an issue where `kurtosis enclave rm` and `kurtosis clean -a` would *not* remove service and engine container logs. The previous behavior resulted in data creep and unintentional memory bloat as reported in [#1394](https://github.com/kurtosis-tech/kurtosis/issues/1394) and [#1459](https://github.com/kurtosis-tech/kurtosis/issues/1459). - [0.84.3] We've fixed a bug where new line breaks were not being respected by the Kurtosis CLI and the Kurtosis Enclave Manager UI. Addresses [#1417](https://github.com/kurtosis-tech/kurtosis/issues/1417) and [#1042](https://github.com/kurtosis-tech/kurtosis/issues/1042). - [0.84.3] Improved the logic that we use for invalidating the use of absolute imports when the dependency is available locally. - [0.84.3] We've addressed an issue where the `kurtosis web` command does not take you to `cloud.kurtosis.com` when on a remote context. Addresses [#1428](https://github.com/kurtosis-tech/kurtosis/issues/1428). - [0.84.3] We've shipped a fix to address an edge case where logs went missing due to how Kurtosis' logs aggregator was interpreting ISO time formats for weeks. - [0.83.16] We've addressed an issue where the current font used in the Enclave Manager was not being recognized by MacOS by adding support for more fonts. - [0.83.16] We fixed a bug where scrolling gets disabled when mousing over certain code blocks in the Enclave Manager UI, specifically when inspecting a service.
0.83.15

October 2, 2023

The latest release is `0.83.15`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.83.10] The `GetEnclaves` API now returns a new field for production enclaves, making it easier to interact with and use production enclaves on the Cloud. - [0.83.10] Added scrollbars to the Enclave Manager UI when content overflows vertically. Addresses [#1389](https://github.com/kurtosis-tech/kurtosis/issues/1389) and [#1390](https://github.com/kurtosis-tech/kurtosis/issues/1390). # Improvements - [0.83.15] Added additional options to our [Github issues bug report template](https://github.com/kurtosis-tech/kurtosis/issues/new?assignees=&labels=bug&projects=&template=bug-report.yml) to more accurately represent the new parts of the product. Previously, all bug reports were assumed to be for the CLI. Today, users may have bug reports or feature requests relating to the CLI, Frontend (Cloud), or SDK. - [0.83.15] Added a new tool tip in the Cloud UI to show users that new logs are present. - [0.83.13] Added an extra verification step and pop-up window when users are trying to delete production enclaves on Kurtosis Cloud to prevent unintended deletion of production enclaves. - [0.83.10] Improved how `JSON` files get displayed in the Enclave Manager UI with improved coloring and padding above and to the right of the `JSON` text. - [0.83.7] Shipped logging UX improvements for the Enclave Manager UI. This includes autonmatically appending new logs at the bottom, adding copy and download functionality, and improving the scrolling UX too. # Bug Fixes - [0.83.15] We fixed a bug where relative paths for locators were being ignored for the `read_file()` and `upload_files()` instrucitons. Fixes [#1412](https://github.com/kurtosis-tech/kurtosis/issues/1412). - [0.83.14] We've addressed UX issues with scroll tracking in the Enclave Manager UI. - [0.83.13] Fixed an issue where service logs were not loading due to missing variable in a protobuf binding. Fixes [#1425](https://github.com/kurtosis-tech/kurtosis/issues/1425) - [0.83.12] Fixed an issue where the `entrypoint` field in the Enclave Manager UI was not being refreshed properly when switching between services. Fixes [#1393](https://github.com/kurtosis-tech/kurtosis/issues/1393). - [0.83.11] Fixed a bug where `kurtosis lint` was unable to lint specific files when given a filepath. Fixes [#1377](https://github.com/kurtosis-tech/kurtosis/issues/1377). - [0.83.10] Made some small improvements and bug fixes to the alignment of text fields in the Enclave Manager UI. - [0.83.9] The Kurtosis log aggregator container is now automatically restarted everytime it exist s with a non-zero exit code. Partially addresses [#1311](https://github.com/kurtosis-tech/kurtosis/issues/1311) while we continue to root-cause the issue. - [0.83.8] Fixed a bug where the Enclave Manager UI would be unable to handle undefined argument types in Kurtosis packages, preventing those packages from running properly in Cloud. - [0.83.8] Fixed an issue where relative imports would break for non-main branches. Fixes [#1361](https://github.com/kurtosis-tech/kurtosis/issues/1361).

0.83.6

September 25, 2023

The latest release is `0.83.6`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.83.6] We've added 2 new flags to the [`kurtosis service logs`](https://docs.kurtosis.com/service-logs/) command. The `-a` flag returns all the logs for the specified service. Meanwhile, the `-n X` flag returns `X` number of log lines. These flags can be used in any combination with one another, including the `-f` flag. As a reminder, the default behavior of the `kurtosis service logs` will be to print the first 200 lines. - [0.83.5] Service details are now rendered in the Enclave Manager UI properly. Some examples include: service status, its UUID, environment variables, etc. - [0.83.5] We've added a new CLI command called [`kurtosis lint`](https://docs.kurtosis.com/lint/) that should be used to lint one or multiple Starlark files in a package. - [0.83.3] We've added a new CLI command called [`kurtosis service inspect`](https://docs.kurtosis.com/service-inspect/) that users should use to print detailed information about their service, includnig its status and various attributes. - [0.83.2] The [`kurtosis service start`](https://docs.kurtosis.com/service-start/) and [`kurtosis service stop`](https://docs.kurtosis.com/service-stop/) commands now support starting and stopping multiple services within an enclave. For example, to stop 3 services within `my-enclave`, simply run: `kurtosis service stop my-enclave service_name_1 service_name_2 service_name_3`. # Improvements - [0.83.5] Arguments can now be passed in at runtime using `YAML` instead of `JSON` for both the CLI and SDK. For example: `kurtosis run github.com/my-org/my-package 'num_services: 2'. - [0.83.4] The [`kurtosis port print`](https://docs.kurtosis.com/port-print/) command now supports a `--format` flag for users to specify the format with which port metadata gets printed. The default will be to print out the protocol, IP, and number (e.g. http://127.0.0.0:1200/) while `--format ip` would print out `127.0.0.1` and `--format number` would print out `1200`. - [0.83.2] When users download files artifacts, Kurtosis will now disable line numbers by default and use the name of the file inside the files artifact as it's default name. - [0.83.1] We've improved the UX of the package mangaer in Kurtosis Cloud. # Bug Fixes - [0.83.6] Fixed a bug in the enclave manager UI where the wrong type fields were being picked up. - [0.83.6] Fixed a bug where the absence of `/var/run/docker.sock` prevented Kurtosis for working. Specifically, Kurtosis will now manually locate the Docker daemon socket each time ebfore falling back to Docker's default behavior. More details on this issue can be found [here](https://github.com/kurtosis-tech/kurtosis/issues/1140). - [0.83.5] Fixed a bug where `kurtosis service logs -f` would incorrectly tail the logs from the beginning rather than from the end of the log file. - [0.83.5] Fixed a big where an occasional race condition would manifest between the `LogsAggregator` and `kurtosis service logs`, resulting in parsing errors to occur when logs were being streamed and read from at the same time. Kurtosis will now log a `WARN` and continue to read the log file. - [0.83.4] Fixed a bug where if logs were not generated in the past week (for enclaves in Kurtosis Cloud), Kurtosis would inform a user that no logs exists when in fact logs do exist beyond the 1 week time period.
0.83.0

September 18, 2023

The latest release is `0.83.0`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Announcement Based on feedback, we're introducing a new release cadence for breaking changes. Effective immediately, breaking changes will only be released **every 2 (two) weeks on Mondays**. # Breaking Changes - [0.83.0] We've renamed the `plan.assert` Starlark instruction to [`plan.verify`](https://docs.kurtosis.com/starlark-reference/plan#verify). The functionality of this instruction remains the same but this is a breaking change for Starlark packages that use `plan.assert()`. Package owners are encouraged to swap `plan.assert()` with `plan.verify()`. - [0.83.0] Kurtosis will now print and persist a summary of downloaded container images on each run. This summary will contain the exact image tag used and its source (i.e. whether the iamge is locally cached or remotely downloaded). This change was made to standardize the user experience of each run where a stream of logs would be printed to show the user what is happening at each step of the plan. Previously, the CLI would print a maximum of 4 lines when the images were being downloaded and those log lines would disappear after a short while. Addresses [#1292](https://github.com/kurtosis-tech/kurtosis/issues/1292). # Features - [0.83.0] The [`kurtosis clean -a`](https://docs.kurtosis.com/clean/) CLI command will now remove all unused or dev Kurtosis container images (engine, APIC, etc). Addresses [#1131](https://github.com/kurtosis-tech/kurtosis/issues/1131). - [0.82.23] We've added the ability for users to delete enclaves from the Kurtosis frontend locally (http://localhost:9711/) or on [Kurtosis Cloud](https://cloud.kurtosis.com). # Improvements - [0.82.24] Based on feedback from users, we've reverted the the change we shipped in 0.82.22 where Kurtosis would always pull the latest image by default before checking if the image was locally cached. This change was reverted to address slowness experienced by users while we design a more robust solution to enable Kurtosis to always pull the latest tag for a given Docker container image. # Bug Fixes - [0.82.24] We've fixed a bug where the error messages from failed image pulls were not properly being printed for the user, making it more difficult and confusing to debug when this happened. - [0.82.23] We've fixed a bug where `kurtosis service logs $ENCLAVE_IDENTIFIER $SERVICE_IDENTIFIER -f` would not properly follow the logs. Reported in [#1293](https://github.com/kurtosis-tech/kurtosis/issues/1293).

0.82.22

September 11, 2023

The latest release is `0.82.22`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.82.22] Kurtosis now pulls the latest image tag from an external registry (e.g. Dockerhub) by default for each `kurtosis run`. If fetching the image fails and the image exists locally, Kurtosis will use the locally cached image instead. - [0.82.22] We've added the ability for a user to disable port forwarding between their remote enclaves and their local machine. This is helpful and addresses issues when it comes to performance and speed when working against a remote enclave with many services. Users can use the [`--no-connect` flag in the CLI](https://docs.kurtosis.com/run#extra-configuration) or the [`NO_CONNECT` argument in the SDK when using the run classes](https://docs.kurtosis.com/SDK). - [0.82.22] Kurtosis will now retain logs for up to 4 weeks for stopped or running enclaves and their services. # Improvements - [0.82.22] Based on feedback, we've made the upgrade warning 1 line long, instead of 2 before. This warning arises when Kurtosis detects that a user is using an old version of Kurtosis and is printed at most 1 per hour.
0.82.19

September 4, 2023

The latest release is `0.82.19`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Features: - [0.82.17] To make debugging enclaves easier and smoother, users can now retrieve logs from services residing in stopped enclaves. Previously, logs could only be retrieved from running enclaves. - [0.82.16] In [Kurtosis Cloud](https://cloud.kurtosis.com), we've added a UI where users can manually create enclaves on remote infrastructure. - [0.82.10] We've added `Production Mode` for enclaves! Services within Enclaves spun up in `Production Mode` will automatically restart upon failure. To create `Production Mode` enclaves, users can use the `--production` flag in the [`kurtosis enclave add` CLI command](https://docs.kurtosis.com/next/enclave-add/) or the [`kurtosis run` CLI command](https://docs.kurtosis.com/next/run/). Additionally, users can use the UI in [Kurtosis Cloud](https://cloud.kurtosis.com) or the [`createProductionEnclave`](https://docs.kurtosis.com/next/SDK/#createproductionenclavestring-enclavename---enclavecontextenclavecontext-enclavecontext) call in the Kurtosis SDK. - [0.82.9] We've added a UI in Kurtosis Cloud for users to browse runnable packages. This means any Kurtosis package published to a public Github repository can be ran using the UI on Kurtosis Cloud! # Improvements - [0.82.19] We have disabled the `time.now()` function (which comes from the [standard Starlark library](https://github.com/google/starlark-go/blob/master/lib/time/time.go#L18-L52)) as this function introduced non-determinism in some Starlark packages. We encourage users to perform this function using Python instead via the [`plan.run_python()`](https://docs.kurtosis.com/starlark-reference/plan/#run_python) instruction. An example of this can be found [here](https://github.com/kurtosis-tech/eth-network-package/blob/main/src/participant_network.star#L293-L306). Fixes [#1120](https://github.com/kurtosis-tech/kurtosis/issues/1120). - [0.82.16] We have reduced the number of calls Kurtosis makes to a Kubernetes cluster to improve the efficiency of our port forwarding logic for enclaves running on remote Kubernetes clusters. = [0.82.16] The `kurtosis version` CLI command now only returns the version of the CLI. Previously, it would return versions of both the CLI and the engine. This change was made because having this command (`kurtosis version`) rely on the engine would sometimes result in Kurtosis hanging for ~7 seconds or longer since it would require a call down to the engine. - [0.82.15] We've added validation logic to enforce the [RFC-1035 Domain Names Specification](https://www.rfc-editor.org/info/rfc1035) for enclave names. # Bug Fixes - [0.82.19] Fixed an issue where memory leaks would occur because idle enclaves (created when using the [enclave pool feature](https://docs.kurtosis.com/next/k8s/#v-optional-activate-the-enclave-pool-to-accelerate-the-enclave-creation-time) on Kubernetes) that would be left idle after the engine server was stopped. Now, idle enclaves are automatically stopped when the engine server gets stopped. - [0.82.15] Fixed a bug where `kurtosis cluster set` would set to an empty string upon engine restart - [0.82.15] Fixed a bug where a `kurtosis engine stop && kurtosis engine start` does not remediate a context switch failure. Now, a user is prompted to use `kurtosis engine restart` everytime there is a version mis-match between the engine and CLI when switching contexts. - [0.82.12] The [Kurtosis Cloud UI](https://cloud.kurtosis.com) now displays error logs properly on the enclave creation page (it previously did not). - [0.82.12] Fixed an issue where tailing service logs from an enclave name would fail if the last line is not a complete `JSON` file. - [0.82.8] Fixed a broken Discord server invite link in the `kurtosis discord` CLI command.
0.82.7

August 28, 2023

The latest release is `0.82.7`. This release note serves as brief summary of user-facing changes in the Kurtosis product. The cadence for these release notes are weekly. For a more detailed changelog (which includes more granular changes to non-user-facing parts of the product), visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes: - [0.82.0] As part of the investments we're making for our managed cloud offering, [Kurtosis Cloud](https://cloud.kurtosis.com/), we've made some changes to how the CLI and the remote context communicate resulting in a break for users who use the CLI to interact with existing Kurtosis Cloud instances. Users who are using Kurtosis Cloud need to upgrade their instances or launch a brand new instance. Please reach out to us over [Discord](https://discord.gg/jJFG7XBqcY) if you need assistance. These changes are described in greater detail on [#1124](https://github.com/kurtosis-tech/kurtosis/pull/1124), [#44](https://github.com/kurtosis-tech/kurtosis-portal/pull/44), and [#46](https://github.com/kurtosis-tech/kurtosis-portal/pull/46). # Improvements - [0.82.4] A client to the portal client daemon is now only created when a user is using a remote context. This translates into faster CLI responses and operations when a user is using a local context. - [0.82.2] We've improved how Kurtosis fetches individual services while running on Kubernetes, resulting in efficiency and speed gains for the end-user. Previously, Kurtosis would inadvertently trigger the Kubernetes client rate limiter when commands or instructions involving a large number of services get called due to how Kurtosis would fetch individual services. Fixes [#1074](https://github.com/kurtosis-tech/kurtosis/issues/1074). - [0.82.1] We've added new documentation for our managed cloud offering, [Kurtosis Cloud](https://cloud.kurtosis.com/). Read the documentation [here](https://docs.kurtosis.com/cloud). # Bug Fixes - [0.82.5] We've fixed an issue where [`kurtosis service logs -f`](https://docs.kurtosis.com/service-logs) was not properly following the logs.
0.81.6

August 14, 2023

The latest release is `0.81.6`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Announcements: We've published a brand new [guide on how to use Kurtosis to build your own private Ethereum testnet](https://docs.kurtosis.com/how-to-compose-your-own-testnet). This guide will walk you through how to compose your own testnet definition using modular Kurtosis packages from [`eth-kurtosis`](https://github.com/kurtosis-tech/eth-kurtosis) and will support all major EL and CL clients. If you're instead searching for a full-feature Ethereum testnet definition that you can just pick up & use for your testing & development needs, look no further than the [`eth2-package`](https://github.com/kurtosis-tech/eth2-package), which will include alerting tools (Grafana + Prometheus), validator health monitoring, and the suite of services to support Flashbot's implementation of Proposer Builder Seperation (PBS). # Features - [0.81.6] Enclave names will now be generated deterministically and will be used to derive both the namespace name (in k8s) and Docker network name. Namespace names and Docker network names will follow the naming convention: `kt-$ENCLAVE_NAME` where `$ENCLAVE_NAME` is the name of the enclave. This change will now enable users to use Chaos Mesh with Kurtosis enclaves. Addresses [#934](https://github.com/kurtosis-tech/kurtosis/issues/934). - [0.81.6] The Kurtosis portal will now automatically start when a user switches from a local to a remote context and will also stop when the context gets switched from remote to local. Addresses [#970](https://github.com/kurtosis-tech/kurtosis/issues/970) - [0.81.6] Whenever a [files artifact](https://docs.kurtosis.com/next/concepts-reference/files-artifacts/) is created via Starlark (using the commands [`upload_files`](https://docs.kurtosis.com/next/starlark-reference/plan/#upload_files), [`render_template`](https://docs.kurtosis.com/next/starlark-reference/plan/#render_templates), or [`store_service_files`](https://docs.kurtosis.com/next/starlark-reference/plan/#store_service_files) with a name that matches a files artifact that already exists within an enclave, Kurtosis will check the equality of the files based on their hash and will automatically update the artifact contents if they are different (i.e. replace old content with new content). Read more about how Kurtosis idempotent runs work [here](https://docs.kurtosis.com/next/concepts-reference/idempotent-runs). # Improvements - [0.81.6] We've fixed a small typo in our CLI reference docs where the command: [`kurtosis service rm`](https://docs.kurtosis.com/next/service-rm/) was incorrectly titled as `kurtosis service delete`. This change was made because `kurtosis service delete` is not a valid CLI command. - [0.81.5] The [`kurtosis enclave inspect` command](https://docs.kurtosis.com/enclave-inspect/) has been updated to retrieve a services' information from the APIC alone, rather than from both the APIC and backend. The previous architecture was implemented in order to display a service's details even when the enclave (APIC) is stopped, but based on user feedback, this workflow (i.e. workflow of inspecting a stopped enclave) turned out to not be as common as we initially thought.
0.81.4

August 7, 2023

The latest release is `0.81.4`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.81.0] We have removed the network partitioning features from Kurtosis. This is a breaking change because all Kurtosis packages that were previously written to use this feature will need to be updated. We made this decision because sub-networking is an operation performed on a test environment, rather than an operation inherent to the definition and instantiation of a dev/test environment. Let us know if you have questions about this change - we're more than happy to chat! # Features - [0.80.24] We've shipped the V0 features required for persisting directories used by services in an enclave with the addition of a new [`Directory` Starlark constructor](https://docs.kurtosis.com/next/starlark-reference/directory/). This means a service's directory (or directories) and its state will persist even when the service itself gets restarted or updated. Stay tuned for more details on this exciting feature and our journey to enable more workflows for longer-lived test environments. # Improvements - [0.81.1] When using `kurtosis import` to import a Docker Compose file, the execution steps now get printed. # Bug Fixes - [0.81.4] We fixed a bug where tab-complete for [`kurtosis service logs`](https://docs.kurtosis.com/service-logs/) would return the names of deleted services and deleted enclaves. Now, tab-completion will only return the names of services and enclaves that have not been deleted. - [0.81.1] We fixed a bug where the local Kurtosis engine would *not* stop running when switching contexts. Now, when switching contexts, the local Kurtosis engine will stop to reduce the chances of port conflicts when forwarding requests to the cloud.
0.80.23

July 31, 2023

The latest release is `0.80.23`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Important Metrics Announcement As of Kurtosis `0.80.23`, Starlark package names will no longer be obfuscated in the metrics we collect by default from our users. The Starlark package name is defined in the [`kurtosis.yml`](https://docs.kurtosis.com/concepts-reference/kurtosis-yml/). This change will enable our team to better understand how and where Kurtosis is being used so that we can productively engage and improve Kurtosis for our users. The decision behind this change was not made lightly as we still firmly stand by our promise to: never give away or sell user data, keep user IDs anonymous, and obfuscate potentially sensitive parameters (aside from Starlark package names now), as stated in our [Metrics Philosophy](https://docs.kurtosis.com/explanations/metrics-philosophy). Users can, at any time, opt-out of metrics collection by switching off analytics using [`kurtosis analytics disable`](https://docs.kurtosis.com/analytics-disable/). # Features - [0.80.23] We've added the `kurtosis cloud add` CLI command, which enables users to create new cloud instances in our managed cloud infrastructure from the terminal. A `KURTOSIS_CLOUD_API_KEY` is required. Note that the preferred way fkr using Kurtosis Kloud is through our web-app. - [0.80.22] We've added the `kurtosis import` CLI command, which enables a user to start up an enclave with an existing `docker-compose.yml` file. Currently, this command supports the following keys from docker-compose: `environment:`, volume bind mounts, ports, image, entrypoint/command, and `reservations: cpu`. - [0.80.20] We've added a new CLI command: `kurtosis cloud load $INSTANCE_ID` which enables a user to load the necessary cloud configuration files from the cloud and automatically switches the context for self-service usage of Kurtosis Kloud. Note that the preferred way for using Kurtosis Kloud is through our web-app. - [0.80.20] Users will now be prompted to share their emails with our team upon their first start up of Kurtosis. This is entirely optional, but gives our team a way to communicate product updates, gather feedback, and otherwise engage productively with our community. Note that this prompt will only appear on interactive terminals. - [0.80.16] Users can now view files artifacts and their contents in the Kurtosis frontend. The current iteration of the Kurtosis frontend only supports local Kurtosis (i.e. over Docker locally). - [0.80.14] Users can now create enclaves in the Kurtosis frontend. The current iteration of the Kurtosis frontend only supports local Kurtosis (i.e. over Docker locally). - [0.80.14] We've added support for the updating of running services in live enclaves, as part of our investments in [idempotent runs](https://docs.kurtosis.com/explanations/how-do-idempotent-runs-work/). Tactically, this means a user can re-run a Starlark package with modifications to the `ServiceConfig` object and Kurtosis will update both the service(s) and any dependent instructions (e.g. `exec`, `wait` instructions) without having to re-instantiate an entirely new enclave and its services from scratch. # Improvements - [0.80.21] Kurtosis will now print a messaging asking the user to stop the local engine if one is found to be running before switching to a remote context. Additionally, port forwarding now starts after the remote engine is started instead of when the context gets switched. Both of these changes were made to reduce the likelihood of engine port forwarding port conflicts between a user and a remote Kurtosis engine. - [0.80.21] Resource fetching over our Docker backend is now a parallelized operation, meaning users will find out when they have resource issues far quicker than before (e.g. required resources exceed available resources). This change is meant to increase the feedback loop speed for users running large enclaves locally. - [0.80.20] Kurtosis will now start a remote engine with the remote backend configuration file whenever the context is set to be remote. This change was made to improve the user experience for developers who are interacting with remote enclaves in their own cloud infrastructure. - [0.80.20] Kurtosis will now validate that the minimum CPU and memory required are well under what is available. This validation only happens on the Docker backend. - [0.80.18] Users can now remove an arbitrary number of enclaves with `kurtosis enclave rm`. For example, given 3 enclaves named `enclave-a`, `enclave-b`, and `enclave-c`, a user can simply run `kurtosis enclave rm enclave-a enclave-c` to remove `enclave-a` and `enclave-c` only, leaving `enclave-b` untouched. # Bug Fixes - [0.80.21] We fixed a bug in Kubernetes where [`kurtosis engine logs`](https://docs.kurtosis.com/engine-logs/) would fail to output the engine logs. - [0.80.14] We fixed an issue where the APIC would log `successfully executed Starlark instruction` despite an instruction failing.
0.80.13

July 24, 2023

The latest release is `0.80.13`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.80.12] Kurtosis enclaves can now support up to 1024 services over a Docker backend! This was accomplished by increasing the range of private IPs available per Docker sub-network. Flagged in [#912](https://github.com/kurtosis-tech/kurtosis/issues/912) and fixed in [#919](https://github.com/kurtosis-tech/kurtosis/pull/919). - [0.80.11] We've added a new instruction: [`run_python`](https://docs.kurtosis.com/next/starlark-reference/plan/#run_python)! With this instruction, Kurtosis can be used to run arbitrary Python scripts from within the package instructions. A user can write their Python script inside the Starlark plan, specify the args, any dependent packages, any file path for files to be mounted, and the file paths for where to store the outputs. [#913](https://github.com/kurtosis-tech/kurtosis/pull/913). - [0.80.11] We've added a new `files inspect` command. When requested for a given artifact identifier and its file path within the specified enclave, Kurtosis will return the file tree, metadata and a preview, where avaliable. [#905](https://github.com/kurtosis-tech/kurtosis/pull/905) and [#885](https://github.com/kurtosis-tech/kurtosis/pull/885). # Improvements - [0.80.13] We've tab-completion for the file path in the `kurtosis files inspect` command. [#947](https://github.com/kurtosis-tech/kurtosis/pull/947). - [0.80.13] The Kurtosis frontend now has a navigation bar for users to easilt navigate between pages (enclaves, services, etc). [#940](https://github.com/kurtosis-tech/kurtosis/pull/940) - [0.80.13] We've added more details and improved the formatting of errors that occur from the `exec` instruction when running a Kurtosis package. [#936](https://github.com/kurtosis-tech/kurtosis/pull/936). # Bug Fixes - [0.80.13] We've fixed an issue where [`plan.upload_files`](https://docs.kurtosis.com/starlark-reference/plan/#upload_files) would error out when it encounteres symlinks. Flagged in [#846](https://github.com/kurtosis-tech/kurtosis/issues/846) and fixed in [#944](https://github.com/kurtosis-tech/kurtosis/pull/944). - [0.80.12] The [`files upload`](https://docs.kurtosis.com/files-upload/) command now supports [relative locators](https://docs.kurtosis.com/next/concepts-reference/locators/#relative-locators). [#930](https://github.com/kurtosis-tech/kurtosis/pull/930). - [0.80.12] We've addressed a bug whereby service names in Kubernetes did not conform to [RFC-1035 standards](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names). Services names must now contain a maximum of 63 characters, contain only lowercase alphanumeric characters or `-`, start with an alphabetic chracter, and end with an alphabetic character. Flagged by a user in [#928](https://github.com/kurtosis-tech/kurtosis/issues/928) and fixed in [#929](https://github.com/kurtosis-tech/kurtosis/pull/929).
0.80.10

July 17, 2023

The latest release is `0.80.10`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.80.10] Kurtosis now has the ability to create a user-specified number of "warm and idle" enclaves for use in Kubernetes upon engine start as a way to reduce the time it takes for a Kurtosis package to run on Kubernetes. To use this feature, simply use the `--enclave-pool-size` flag with the `kurtosis engine start` or `kurtosis engine restart` CLI command while connected to a cloud cluster. Note that this flag only works on Kubernetes. More docs on how to use this flag with `kurtosis engine start` can be found [here](https://docs.kurtosis.com/engine-start) and our guide on running Kurtosis in Kubernetes is [here](https://docs.kurtosis.com/k8s/) - [0.80.9][0.80.8] We're excited to share that Kurtosis now has a frontend, as of 0.80.8 - meaning all enclaves created *on or after* 0.80.8 can be viewed and interacted with in the browser (served locally). To navigate to the frontend, simply run `kurtosis web` in the CLI or go to `localhost:9711` to display all running enclaves and their services. Please note that this is an Alpha release, so please file an issue in our [Github](https://github.com/kurtosis-tech/kurtosis/issues/new/choose) if you have a Bug Report or a Feature Request for us! We'll be adding new features and docs on this exciting feature shortly! [#833](https://github.com/kurtosis-tech/kurtosis/issues/833). - [0.80.9] When composing packages together using Starlark, locators within a package can now be referenced relatively. So when writing a Starlark package while working within a specific file path or directory that contains your dependent packages, a user can now simply use: `dependent_package = import_module("./example.star")` instead of: `dependent_package = import_module("github.com/author/repo-name/example.star")`. More details on how this works can be found [here in our docs](https://docs.kurtosis.com/concepts-reference/locators). Addresses [#877](https://github.com/kurtosis-tech/kurtosis/issues/877). - [0.80.9] Running `kurtosis run github.com/path/to/package '{"_kurtosis_parser": "struct", "arg1": "val1", "arg2": "val2", ...}'` will now parse the arguments as a Starlark struct, rather than a simple dictionary. More details [here in #884](https://github.com/kurtosis-tech/kurtosis/pull/884). # Improvements - [0.80.9] We've updated and pinned our Golang API SDK from Go 1.18 to Go 1.19.10 in [#908](https://github.com/kurtosis-tech/kurtosis/pull/908). - [0.80.8] When parameterizing Kurtosis packages, `run` no longer restricts users to pass in arguments as a dictionary, meaning you can now simply do: `def run(plan, arg1 = 'first_name')`. More details on how this works can be found [here](https://docs.kurtosis.com/concepts-reference/args). [#859](https://github.com/kurtosis-tech/kurtosis/pull/859) # Bug Fixes - [0.80.9] In the frontend, we've fixed a bug where the files artifact for a given enclave were not being displayed properly. - [0.80.9] When using `kurtosis files download`, tab-complete now works with the files artifact. Fixes [#766](https://github.com/kurtosis-tech/kurtosis/issues/766) - [0.80.8] We've fixed a bug with the `kurtosis port print` CLI command so that it will now properly print the URL of the local port for a specified service in a specified enclave. [#816](https://github.com/kurtosis-tech/kurtosis/pull/816)
0.80.5

July 3, 2023

The latest release is `0.80.5`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.80.4] We have enabled Docker networks to be attachable (more info on Docker networks can be found [here](https://docs.docker.com/engine/reference/commandline/network_connect/) and on attaching services [here](https://blog.oddbit.com/post/2018-03-12-using-docker-macvlan-networks/)), enabling the connection of local services to the enclave's services. This allows containers within the enclave to seamlessly communicate with and access the local services outside the restricted environment. [#788](https://github.com/kurtosis-tech/kurtosis/pull/788) # Bug Fixes - [0.80.5] The `--dry-run` feature has been updated to accurately reflect the expected result, resolving prior discrepancies. This fix, ensures a reliable alignment of `--dry-run` with the desired outcome. [#795](https://github.com/kurtosis-tech/kurtosis/pull/795)
0.80.3

June 26, 2023

The latest release is `0.80.3`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.80.0] As a result of [`RFC-123`](https://datatracker.ietf.org/doc/html/rfc1123) standard adoption, we have made changes to the naming convention for services to ensure compatibility when deploying services on Kubernetes. This update is a follow-up to issue [#713](https://github.com/kurtosis-tech/kurtosis/pull/713). The primary modification involves applying the [`RFC-123`](https://datatracker.ietf.org/doc/html/rfc1123)standard to service names. By conforming to this standard, we ensure compatibility and proper functioning when launching services on Kubernetes. We have implemented this change across all packages in `awesome-kurtosis` as well as the packages referenced within it. Additionally, we have addressed the noncompliant naming standards in a few packages. [#749](https://github.com/kurtosis-tech/kurtosis/pull/749) - [0.79.0] We made several changes regarding the `workdir` parameter in the `run_sh` command and addressed related typos in our documentation. Now, the shell command executed will either run from the root directory or from the `workdir` set in the image. Consequently, file artifacts can only be accessed using absolute paths instead of relative paths. Previously, the result of `plan.run_sh(...)` would return `result.file_artifacts`, but we have rectified the typo for consistency, and it now returns `result.files_artifacts`, providing a way to access the file artifacts from the task. Users should update their Starlark package to ensure compatibility with the latest version of Kurtosis and remove any references to the `workdir` parameter, as it has been removed. The command executed by [`run_sh`](https://docs.kurtosistech.com/starlark-reference/plan/#run_sh) will now utilize the default working directory. [#739](https://github.com/kurtosis-tech/kurtosis/pull/739) # Features - [0.80.3] The APIC (Application Programming Interface Controller) has been enhanced to include limited functionality for feature flags. This improvement introduces an `--experimental` flag to the `kurtosis run` command, providing the ability to selectively enable experimental features while executing a Starlark package. [#775](https://github.com/kurtosis-tech/kurtosis/pull/775) - [0.80.3] Added a new feature to the command-line interface (CLI) that allows users to easily retrieve information about a specific port. The command `kurtosis port print enclave-id service-id port-id` can be used to access details such as the port's accessibility. This functionality provides users with a convenient way to quickly check how to access a specific port. [#778](https://github.com/kurtosis-tech/kurtosis/pull/778) - [0.80.3] We have introduced a new feature called "idempotent run v0" that helps improve the execution of tasks in a simpler way. This feature saves the current status of a particular process after each execution and optimizes subsequent runs by only performing the steps that have changed since the last run. In this initial version, the optimization is done in an "append-only" manner, which means that any changes made will only affect the instructions added at the end of the task list. This helps make the execution faster and more efficient, ultimately improving the overall experience. [#769](https://github.com/kurtosis-tech/kurtosis/pull/769) - [0.80.3] The CLI now includes support for stopping and starting services, providing a convenient way to manage service execution. Previously, it was only possible to stop and start services using the Starlark instructions `plan.stop_service` and `plan.start_service`. With this update, users can utilize the `service stop` and `service start` commands in the command-line interface (CLI). These commands require inputs such as the enclave identifier and service identifier, similar to the existing `service logs` and `service rm` commands. Additionally, the CLI documentation section has been updated to reflect these changes, and two basic CLI tests have been added to the continuous integration (CI) process. [#767](https://github.com/kurtosis-tech/kurtosis/pull/767) - [0.80.2] We've added a new Rust SDK, which includes a generated protobuf for seamless interaction with AWS services. The Rust SDK is compiled as part of the build process, and any changes made to the protobufs can be easily incorporated by running the `./api/scripts/regenerate-protobuf-bindings.sh` command and committing the updated files to git. This eliminates the need to write additional Rust code, allowing you to focus on your application's core business logic and simplifying the process of working with AWS services. [#765](https://github.com/kurtosis-tech/kurtosis/pull/765) - [0.80.1] An enhancement has been made to the system by adding a new field called "wait" to the run_sh task. This new field serves the purpose of allowing users to specify a time-out period. If the command specified in the [run_sh](https://docs.kurtosistech.com/starlark-reference/plan/#run_sh) task exceeds the defined time-out period, it will be treated as a failure. In addition, this update includes a bug fix related to the wait and ready-condition functionality within the exec-recipe when operating in a Kubernetes (k8s) environment. [#750](https://github.com/kurtosis-tech/kurtosis/pull/750) - [0.80.1] The Starlark executor now maintains a record of all instructions executed within a given enclave, thereby adding an important layer of traceability and accountability. This can significantly aid debugging, issue resolution, and procedural compliance. However, it's worth noting that this tracking system does not account for manual modifications such as manual file uploads done via the command-line interface (CLI). [#757](https://github.com/kurtosis-tech/kurtosis/pull/757) - [0.80.0] We've added the ability to stop and start services using Starlark for Kubernetes (k8s) [#756](https://github.com/kurtosis-tech/kurtosis/pull/756). Most of the work for the Kubernetes (k8s) backend was done as part of [#694](https://github.com/kurtosis-tech/kurtosis/pull/694). In addition, the port forwarder reconnect feature reduced the amount of work we had to finish. Here are the changes made: * We keep the K8S service untouched when we stop the user service so it can be restarted easily by creating a new pod. This change does not impact the remove service expected behavior. * We don't try to create a port forwarder connection if the service is stopped. - [0.79.0] Users can now easily open a [Shell](https://docs.kurtosis.com/service-shell/) on a container running in Kubernetes (k8s) using a single Kurtosis command. This functionality was previously exclusive to Docker, but now it is available on both platforms. Open a Shell - `sh` into the container running the service refers to opening an interactive command-line interface inside the container. It grants direct access and control over the service's environment for troubleshooting and executing commands. [#748](https://github.com/kurtosis-tech/kurtosis/pull/748) # Bug Fixes - [0.79.0] We've added reconnect logic to the gateway port forwarder. This means that the system will attempt to reestablish the connection automatically in case of network interruptions. The reconnection attempts will stop when a service is removed either through the [removeservice](https://docs.kurtosis.com/starlark-reference/plan/#remove_service) command or via a Starlark script. This improvement aims to provide a more robust and seamless experience by handling network disruptions without requiring manual intervention or restarting the Gateway. [#736](https://github.com/kurtosis-tech/kurtosis/pull/736)
0.78.5

June 19, 2023

The latest release is `0.78.5`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.78.3] We've removed the `--exec` flag on the `kurtosis service shell` CLI command and replaced it with a new command, `kurtosis service exec` that was released in `0.77.3`. This will break all Kurtosis packages in CI that use `kurtosis service shell --exec` and will require updates to use the new `kurtosis service exec` command. [#712](https://github.com/kurtosis-tech/kurtosis/pull/712) # Features - [0.78.5] When executing shell commands using the `plan.run_sh` method, users can now save the output as a files artifact within the enclave and use it for other workflows, like mounting it on another service container. See [#723](https://github.com/kurtosis-tech/kurtosis/pull/723) for more details. - [0.78.4] We've added a new `run_sh` instruction, enabling users to run one-time shell commands via `'sh -c "$COMMAND"'`. Read more about how to use this instruction [here](https://docs.kurtosis.com/starlark-reference/plan#run_sh). - [0.78.1] We've added the ability to use Starlark to define the min/max CPU and memory a container uses in Kubernetes. These limits can be configured using the `ServiceConfig` constructor object - see the examples [here in our docs](https://docs.kurtosis.com/starlark-reference/service-config). # Improvements - [0.78.5] When using [`kurtosis run`](https://docs.kurtosis.com/run-starlark), the `plan` object is now automatically injected if the first argument of the main function is `plan`. [#716](https://github.com/kurtosis-tech/kurtosis/pull/716) - [0.78.5] We've added support for the `plan.run_sh` method in our Visual Studio Code plugin in [#738](https://github.com/kurtosis-tech/kurtosis/pull/738). - [0.78.1] We now use the Kurtosis service name in Kubernetes instead of the randomly assigned names generated using the previous template (i.e. `user-service-`). More details can be found here in [#713](https://github.com/kurtosis-tech/kurtosis/pull/713) # Bug Fixes - [0.78.5] The Kurtosis engine no longer requires a restart before switching clusters. Read more about configuring and switching clusters [here](https://docs.kurtosis.com/k8s). - [0.78.2] We've fixed a bug where Kurtosis would break if a user passed `run` as the main function name when running remote packages.
0.78.0

June 12, 2023

The latest release is `0.78.0`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.78.0] We've added two new flags to the `kurtosis run` CLI command: the `--main-file` flag and the `--main-function-name` flag. The former flag will allow users to explicitly specify the `.star` file they wish to use for a given run, while the latter lets you specify the function that you wish to use for a given run. Updates to the SDK were also made to enable this, meaning calls using the `RunStarlarkScript`, `RunStarlarkPackage`, and `RunStarlarkRemotePackage` SDK methods will need to be updated to avoid a break. Both flags are optional and will default to `main.star` and `run` when a flag is not passed in at runtime, respectively. Read more about this command [here](https://docs.kurtosis.com/next/run-starlark). # Features - [0.78.0] There are now two new Starlark instructions: `plan.start_service` and `plan.stop_service` to enable the stopping and re-starting of services for the Docker backend. Read more about these new function calls [here](https://docs.kurtosis.com/starlark-reference/plan#start_service) and [here](https://docs.kurtosis.com/starlark-reference/plan#stop_service). Partially addresses [#673](https://github.com/kurtosis-tech/kurtosis/issues/673) - [0.77.3] We've added a new CLI command: `kurtosis service exec`, enabling users to run arbitrary shell commands from inside the designated user service. Addresses [#688](https://github.com/kurtosis-tech/kurtosis/issues/688). - [0.77.2] To address a customer need, we've added the ability to specify the minimum resource contraints for services being spun up using Kurtosis within Kubernetes. # Improvements - [0.77.2] The Kurtosis engine will now auto-restart when a cluster is updated, saving the end user an additional step that often would lead to port conflicts and operational errors. Addresses [#646](https://github.com/kurtosis-tech/kurtosis/issues/646) - [0.77.2] The service name is now printed in the CLI whenever `exec` is used, making it easier for users to follow along and see what is happening following a `kurtosis run` ([#682](https://github.com/kurtosis-tech/kurtosis/pull/682)). # Bug Fixes - [0.77.4] We've addressed an issue where the behavior of [`kurtosis files storeservice`](https://docs.kurtosis.com/files-storeservice) in Kubernetes does not match its behavior in Docker, specifically because k8s preserves nesting while Docker does not. For more details, check out [#695](https://github.com/kurtosis-tech/kurtosis/pull/695) - [0.77.2] We've made Kurtosis engine restart error messages clearer and more concise to improve the "k8s context switch" workflow. ([#658](https://github.com/kurtosis-tech/kurtosis/pull/658)). - [0.77.2] Addressed a bug in Kubernetes where `kurtosis service logs` would fail to call the `logs` command on a service running in an k8s cluster. ([#678](https://github.com/kurtosis-tech/kurtosis/pull/688)). - [0.77.2] Fixed a bug where the `wait` instruction and `PostHttpsRequestRecipe` recipe would not function as intended when a user passed in the `--dry-run` flag for `kurtosis run`. ([#679](https://github.com/kurtosis-tech/kurtosis/pull/679)).
0.77.1

June 5, 2023

The latest release is `0.77.1`. Below is a collection of user-facing changes we've shipped since last week. Visit our [docs](https://docs.kurtosis.com/changelog) for a more detailed changelog of all changes. # Features - [0.77.1] We've implemented the `PortSpec wait` functionality on the Kubernetes backend, ensuring feature parity with our Docker backend. More details in [#640](https://github.com/kurtosis-tech/kurtosis/pull/640) # Improvements - [0.77.1] As part of our work to open-source Kurtosis' Kubernetes backend, we've added a Golang testsuite against k8s in our CI to increase reliability and helps ensure a smooth user experience. Addressess [#654](https://github.com/kurtosis-tech/kurtosis/issues/654)
0.77.0

May 29, 2023

The latest release is `0.77.0`. Below is a collection of user-facing changes we've shipped since last week. Visit our [docs](https://docs.kurtosis.com/changelog) for a more detailed changelog of all changes. # Features - [0.77.0] We've open-sourced our Kubernetes backend with [#638](https://github.com/kurtosis-tech/kurtosis/pull/638)! Users can now run their environments on a k8s cluster. Read [this guide](https://docs.kurtosis.com/next/k8s) to learn more on how to get started and sign up for early access to [Kurtosis Kloud](https://mp2k8nqxxgj.typeform.com/to/U1HcXT1H) if you're looking for a stress-free Kurtosis on remote k8s setup. In the coming weeks, we plan to invest heavily in usability and product improvements, so please don't hesitate to reach out if you need support. # Improvements - [0.76.8] We've standardized the errors returned when Starlark is run via the SDK to simply `err == nil`. More details in [#634](https://github.com/kurtosis-tech/kurtosis/pull/634). # Bug Fixes - [0.76.9] We have fixed a bug where the Kurtosis engine fails frequently when `kurtosis engine restart` is called. More details in [#635](https://github.com/kurtosis-tech/kurtosis/pull/635). - [0.76.8] Kurtosis will now roll back to use the previously-set k8s cluster when `kurtosis cluster set` fails.
0.76.6

May 15, 2023

The latest release is `0.76.6`. Below is a collection of user-facing changes we've shipped since last week. Visit our [docs](https://docs.kurtosis.com/changelog) for a more detailed changelog of all changes. # Features - [0.76.4] Kurtosis now natively supports Windows for Kurtosis versions starting from 0.75.5! While we still encourage users to use [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/), the option to download a native executable is now available [here](https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/tags). To see the full install instructions, go [here](https://docs.kurtosis.com/install#ii-install-the-cli). - [0.76.4] We've added a [sign-up form for users who wish to get early access for Kurtosis Kloud](https://mp2k8nqxxgj.typeform.com/to/U1HcXT1H). If you're looking to test and develop on a distributed system in the cloud, look no further! - [0.76.4] The Kurtosis CLI now supports the ability to print `WARN` logs when a user calls or uses a deprecated or soon-to-be deprecated instruction, type, or field. The intent behind this new feature is to reduce the likelihood of a user running into breaking changes and to help users stay up to speed with the latest and greatest versions of the product. # Improvements - [0.76.5] We've added tab completion support for file paths (from your current working directory) for the below CLI commands. Addresses [#601](https://github.com/kurtosis-tech/kurtosis/issues/601) and [#254](https://github.com/kurtosis-tech/kurtosis/issues/254)

* kurtosis dump
* kurtosis enclave dump
* kurtosis engine logs
* kurtosis files download
* kurtosis files rendertemplates
* kurtosis files upload
* kurtosis context add

0.76.3

May 1, 2023

The latest release is `0.76.3`. For a more detailed changelog, including non-user facing changes, please visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.76.0] We've added automatic port waiting for all TCP and UDP ports by default. This means upon service startup, Kurtosis will automatically check to confirm that the service's ports are open and ready to receive traffic. This behavior can be disabled or its timeout changed, depending on your use case, with the [`PortSpec` constructor](https://docs.kurtosis.com/starlark-reference/port-spec/). This is a breaking change as the default timeout (15 seconds) may not be enough for your service(s). # Bug Fixes - [0.76.1] Fixed an issue where the CLI would print an ambiguous `WARN` line when a user runs `kurtosis` without any arguments, flags, or commands. Running `kurtosis` without any arguments, flags, or commands will now instead be interpreted as if you ran `kurtosis --help` which will print out all valid arguments and flags you can use.
0.75.9

April 24, 2023

The latest release is `0.75.9`. Below is a collection of user-facing changes we've shipped since last week. Visit our [docs](https://docs.kurtosis.com/changelog) for a more detailed changelog of all changes. # Features - [0.75.9] Users can now run a starting bash command with the `--exec` flag upon accessing a service container's shell with the [`kurtosis service shell`](https://docs.kurtosis.com/service-shell) command. - [0.75.5] We've added an `extract` dictionary field for the [`ExecRecipe`](https://docs.kurtosis.com/starlark-reference/exec-recipe) that can be used to extract specific parts from a response body using [jquery](https://devdocs.io/jq/). Fixes [#503](https://github.com/kurtosis-tech/kurtosis/issues/503). # Improvements - [0.75.9] Replaced runtime values in outputs of future references with real values. See our docs on [future references](https://docs.kurtosis.com/concepts-reference/future-references) for more details. - [0.75.9] We've raised the file size limit to 100 MB when using the [`kurtosis files download`](https://docs.kurtosis.com/files-download) and [`kurtosis files upload`](https://docs.kurtosis.com/files-upload) CLI commands. - [0.75.7] Historical versions of our docs will now only display the latest patch releases for each minor version in the past. Fixes: [#487](https://github.com/kurtosis-tech/kurtosis/issues/487) - [0.75.6] Improved the formatting of error messages in the recipe extraction logic to help with debugging - [0.75.2] Renamed all code and docs mentions of "network partitioning" to "subnetworking". Fixes [#443](https://github.com/kurtosis-tech/kurtosis/issues/443). # Bug Fixes - [0.75.4] Fixed a bug where [`ReadyCondition`](https://docs.kurtosis.com/starlark-reference/ready-condition) did not properly support the [`ExecRecipe`](https://docs.kurtosis.com/starlark-reference/exec-recipe). - [0.75.2] Fixed a bug where the `wait` command would continue past the specified timeout threshold. Addressed [#477](https://github.com/kurtosis-tech/kurtosis/issues/477).
0.75.1

April 17, 2023

The latest release is `0.75.1`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog#0751-2023-04-11). # Bug Fixes: - [0.75.1] The `kurtosis files download` CLI command now properly considers `--enclave` as an arg instead of a flag. Previously, specifying the enclave to download files from was required but that was not explicit since it was incorrectly labelled as a flag. Fixes: [#460](https://github.com/kurtosis-tech/kurtosis/issues/460).
0.75.0

April 10, 2023

The latest release is `0.75.0`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog#0750-2023-04-10) # Breaking Changes - [0.75.0] We've removed the `kurtosis config init` CLI command as the Kurtosis configuration file is now automatically initialized upon engine startup. Fixes [#435](https://github.com/kurtosis-tech/kurtosis/issues/435)
0.74.0

April 3, 2023

The latest release is `0.74.0`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.74.0] We've renamed the [`ReadyCondition` Starlark instruction](https://docs.kurtosis.com/starlark-reference/ready-condition/), from `ReadyConditions`, to better clarify that each time this custom type is used, it is explicitly defining a single condition for Kurtosis to use as the readiness check after a service is started. Users using this Starlark instruction will need to update it syntactically. - [0.73.0] The service_name argument is now the first argument in the [`exec`](https://docs.kurtosis.com/starlark-reference/plan#exec), [`request`](https://docs.kurtosis.com/starlark-reference/plan#request), and [`wait`](https://docs.kurtosis.com/starlark-reference/plan#wait) Starlark instructions, compared to before when it was the `recipe` argument. Kurtosis packages that use these Starlark instructions may need to be updated to pass in the `service_name` first now before other positional arguments. This is not a breaking change for users who use named arguments in their custom Starlark types. - [0.72.0] The `args` object is now parsed as a dictionary instead of as a struct and is empty by default. Users may need to update Starlark scripts that use arguments to avoid a breaking change. - [0.71.0] We’ve renamed the service_name argument to name for the [`update_service`](https://docs.kurtosis.com/next/starlark-reference/plan#update_service), [`add_service`](https://docs.kurtosis.com/next/starlark-reference/plan/#add_service), and [`remove_service`](https://docs.kurtosis.com/next/starlark-reference/plan#remove_service) Starlark instructions. Users may need to update Kurtosis packages that use these instructions with the updated argument name. # Features - [0.73.0] We’ve reduced the verbosity and length of Starlark output errors to make them easier to reason about and understand. The full stack trace paths can still be viewed when a user passes in the [`--cli-log-level debug` flag](https://docs.kurtosis.com/cli#cli-log-level). - [0.71.1] Tab completion support for Enclave names has been added to kurtosis services logs. - [0.70.6] We’ve added [Search functionality on our documentation](https://docs.kurtosis.com/search/), with support for older versions of our docs. # Improvements - [0.74.0] Error messages from all CLI commands are now colored red, making it easier to spot and debug errors. - [0.73.1] Reduced the verbosity and language in our Github issue templates for easier readability. - [0.72.1] We’ve clarified the help text printed when using `kurtosis files download` to make it easier for users to understand how to use the command to export files artifacts from their enclaves. - [0.71.1] A timestamp suffix is now appended to the name of the default output directory when no output directory is specified while using `kurtosis dump`, making it easier to locate and use the log outputs. - [0.71.1] Shortened the taglines and removed the title prefixes for all our Github issues templates. - [0.70.6] We’ve shortened the number of log lines that gets printed when an error is encountered executing a Starlark script. The level of detail in the logs for any command can be configured using the [`--cli-log-level flag`](https://docs.kurtosis.com/cli#cli-log-level). Read more about configuring the log level of details here. - [0.70.5] The Kurtosis CLI and Engine version are now both printed for `kurtosis version`, making it more obvious easier to reason about upgrades in cases where a user has upgraded the CLI, but have yet to restart the Engine to apply the change. - [0.70.4] We’ve added additional words that will be used for auto-name generation of artifacts, in line with the theme we currently use. # Bug Fixes - [0.73.2] Update various links in our documentation. - [0.73.1] Re-organize the sidebar in the documentation to split out reference content into [CLI](https://docs.kurtosis.com/cli), [Starlark](https://docs.kurtosis.com/starlark-reference), and various Concepts. - [0.73.1] Fix various outdated internal links and typos in our documentation. - [0.71.0] Fix a typo in our quickstart code snippet. - [0.70.6] Fix a reindex bug with the Search feature on our doc.
0.70.3

March 28, 2023

The latest release is `0.70.3`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Features - [0.70.1] To make it easier to debug issues with the Kurtosis engine, we’ve added a new CLI command, called `kurtosis engine logs`, that can be used to export both running and stopped Kurtosis engine container logs to an optionally specified output directory on a user’s local machine. These logs are incredibly helpful for our team when troubleshooting bugs or issues. Read more about this command [here](https://docs.kurtosis.com/engine-logs). # Improvements - [0.70.1] Added an example to clarify the correct syntax needed for installing an earlier version of Kurtosis. For example, installing version 0.68.6 with Homebrew:

brew install kurtosis-tech/tap/kurtosis-cli@0.68.6

- [0.70.1] Reformatted the dependencies section in our [Github readme](https://github.com/kurtosis-tech/kurtosis) to make it easier to follow and get started with Kurtosis using the Github readme - [0.70.1] The service object returned by both the `add_service` and `add_services` Starlark instruction now returns the name field. - [0.70.3] We’ve made Github the default feedback path for the `kurtosis feedback` CLI command and have also added new flags to this command as well to support being able to bring the user directly to the bug report, feature request and docs issue Github issues templates, straight from the CLI. Read more about the new flags for this command [here](https://docs.kurtosis.com/feedback#using-kurtosis-feedback).‍ - [0.70.3] Kurtosis will now check that the `service_name` value contains allowed characters and we’ve made the error logs cleaner to reason about when this happens for smoother debugging/troubleshooting. # Fixes - [0.70.1] Fixed a bug where running `kurtosis engine start` would log an ambiguous line about the engine starting with a blank or unknown image. Now, `kurtosis engine start` will be more specific about the exact container image and version being used to start that particular instance of the Kurtosis engine. - [0.70.1] Fixed a bug in our [Quickstart](https://docs.kurtosis.com/quickstart) where some parts of the code snippets were invalid Starlark code because not all of the arguments were named.
0.70.0

March 23, 2023

The latest release is `0.70.0`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.70.0] We have removed the service_namefields from the following Starlark types: [`ExecRecipe`](https://docs.kurtosis.com/starlark-reference/exec-recipe), [`GetHttpRequestRecipe`](https://docs.kurtosis.com/starlark-reference/get-http-request-recipe), and [`PostHttpRequestRecipe`](https://docs.kurtosis.com/starlark-reference/post-http-request-recipe). The `service_name` must instead be declared in the [`exec`](https://docs.kurtosis.com/starlark-reference/plan#exec), [`request`](https://docs.kurtosis.com/starlark-reference/plan#request), and [`wait`](https://docs.kurtosis.com/starlark-reference/plan#wait) Starlark instructions, where this field is now mandatory. - [0.70.0] Users who previously specified the `service_name` in the [`ExecRecipe`](https://docs.kurtosis.com/starlark-reference/exec-recipe), [`GetHttpRequestRecipe`](https://docs.kurtosis.com/starlark-reference/get-http-request-recipe), and [`PostHttpRequestRecipe`](https://docs.kurtosis.com/starlark-reference/post-http-request-recipe) types must migrate the `service_name` declaration to the [`exec`](https://docs.kurtosis.com/starlark-reference/plan#exec), [`request`](https://docs.kurtosis.com/starlark-reference/plan#request), and [`wait`](https://docs.kurtosis.com/starlark-reference/plan#wait) Starlark instructions. # Features - [0.70.0] Service readiness can now be checked after a service is started to confirm that it is ready to receive connections and traffic. The specific conditions to be checked can be defined using the new [`ReadyConditionsrecipe` ](https://docs.kurtosis.com/starlark-reference/ready-condition). These conditions are passed into the [`ServiceConfig.ReadyConditions`](https://docs.kurtosis.com/starlark-reference/service-config) field which can be used when adding services using the `add_service` or `add_services` instruction.
0.69.0

March 21, 2023

The latest release is `0.69.0`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Breaking Changes - [0.69.0] We’ve renamed all references of `--enclave-identifier` and `--service-identifier` to simply `--enclave` and `--service`, respectively, and have also removed all references to `enclave-id`. This will break any scripts or CI configurations that depend on those old references. This renaming impacts the following CLI commands:

- enclave inspect
- enclave rm
- enclave rm
- enclave stop
- enclave dump
- files download
- files rendertemplate
- files storeservice
- files storeweb
- files upload
- service add
- service rm
- service logs
- service shell
- run

- [0.69.0] The default timeout for the wait instruction has been reduced to 10 seconds, from 15 minutes. This can be a breaking change for packages that were authored to rely on the previous behavior (i.e. waiting for 15 minutes). More info about this instruction can be found [here](https://docs.kurtosis.com/starlark-reference/plan#wait). - [0.69.0] When using the `exec` and `request` instructions, you may now use a new `acceptable_codes` field to specify the specific acceptable response codes needed for the instruction to pass and as well as a new `skip_code_check` field to enforce response code checks. The default values for `acceptable_codes` are 2XX codes and the default value for `skip_code_check` is `false`. Read more about using these instructions [here](https://docs.kurtosis.com/starlark-reference/plan#exec) and [here](https://docs.kurtosis.com/starlark-reference/plan#request). # Features - [0.69.0] The [@KurtosisTech Twitter](https://twitter.com/KurtosisTech) page can be opened directly from the CLI by running: [`kurtosis twitter`](https://docs.kurtosis.com/twitter). Folks can follow to stay apprised of important announcements and exciting updates we share through Twitter. - [0.69.0] Running `kurtosis enclave inspect` will now print any files artifacts registered within that enclave, in addition to the services that are running within the enclave and the enclave’s status. Read more about enclave inspect [here](https://docs.kurtosis.com/enclave-inspect). - [0.68.9] We’ve added a simple [Pull Request (PR) template](https://github.com/kurtosis-tech/kurtosis/blob/main/.github/pull_request_template.md) to encourage contributors to add more details and context for their PRs to the Kurtosis codebase. Read more about contributing to Kurtosis [here](https://github.com/kurtosis-tech/kurtosis/blob/main/CONTRIBUTING.md). - [0.68.9] After running a Kurtosis package using `kurtosis run`, the CLI will now automatically print the state and contents of the enclave used for the package (essentially performing an enclave inspect command on the enclave in the context of the run command). Read more about the run command [here](https://docs.kurtosis.com/run-starlark/). - [0.68.9] Enclaves can now be added with subnetworking enabled using a new `--with-subnetworking` flag for the `kurtosis enclave add` CLI command. The flag is set to `false` by default, but can be enabled when running a package that requires [subnetworking capabilities](https://docs.kurtosis.com/concepts-reference/subnetworks), like [simulating a network failure in your system](https://docs.kurtosis.com/guides/simulating-networking-failure). # Improvements - [0.69.0] It is now much easier to know when to [upgrade Kurtosis](https://docs.kurtosis.com/upgrade) and to understand the versions of both the Kurtosis CLI and engine you are running on, because Kurtosis will now: emit a `WARN` log line whenever the Kurtosis engine version exceeds the CLI version and, emit an `ERROR` log line whenever the CLI version exceeds the engine version. - [0.69.0] We’ve fixed some typos and simplified the language in our documentation about the: [`GetHttpRequestRecipe`](https://docs.kurtosis.com/starlark-reference/get-http-request-recipe), [`PostHttpRequestRecipe`](https://docs.kurtosis.com/starlark-reference/post-http-request-recipe), [`request`](https://docs.kurtosis.com/starlark-reference/plan#request) instruction to help users better understand when this instruction could be valuable for their workflows. - [0.69.0] To make it easier to send feedback to our team, we’ve added [additional documentation](https://docs.kurtosis.com/feedback) about the various flags and args that can be used with the kurtosis feedback command! - [0.69.0] We’ve improved the look of the Calendly banner in our docs page to be more visible and easier to use when grabbing time with our team to get help or ask questions. - [0.69.0][0.68.13] We’ve made some usability improvements to our [Github Issue templates](https://github.com/kurtosis-tech/kurtosis/issues/new/choose) to make filing Bug Reports and Feature Requests smoother and easier to use. - [0.69.0] The body of the request used in the `PostHttpRequestRecipe` is now optional and is empty by default. Read more about this recipe type [here](https://docs.kurtosis.com/starlark-reference/post-http-request-recipe). - [0.68.13] The content type field for the `PostHttpRequestRecipe` Starlark instruction is now optional, with application/json being the default if this field is not set. Read more about how to make HTTP POST requests within your Kurtosis package [here](https://docs.kurtosis.com/starlark-reference/post-http-request-recipe). - [0.68.13] We’ve revamped our [Quickstart](https://docs.kurtosis.com/quickstart) guide to more accurately reflect the current capabilities of Kurtosis, which includes the many new features and improvements we’ve made since the previous version of the Quickstart was published. We encourage users, both new and existing, to try it out and let us know how it goes! - [0.68.13] We’ve changed how often Kurtosis checks for, and warns the user about, version discrepancies between the CLI and the Kurtosis engine. Before, the versions were checked every time a command was run with the CLI, but now the versions are checked on an hourly basis instead. This change reduces the number of repeated `WARN` lines a user previously saw when using Kurtosis with a version discrepancy. - [0.68.11] Both the `RUNNING` and `STOPPED` statuses of enclaves, their API containers, and services within those enclaves are now color-coded to make it easier to understand the state of your enclaves and the services within/on them. - [0.68.11] To improve readability and confusion, only the status of the API Container (and not the API Container Host GRPC port & proxy port) will get printed when running enclave inspect for an enclave. - [0.68.9] [Command-line completion](https://docs.kurtosis.com/guides/adding-tab-completion/) with Kurtosis will now only suggest the names of enclaves and services, instead of both the names and UUIDs, improving the readability and usability of command-line completion. - [0.68.8] We’ve re-ordered the sidebar in our CLI docs for the guides on how to install the CLI and how to install historical versions of the CLI. # Fixes - [0.68.12] The [`wait` Starlark instruction](https://docs.kurtosis.com/starlark-reference/plan#wait) on a given plan will now throw a validation error if a `service_name` is not specified. The CLI would previously hang forever when a service_name was not specified. - [0.68.8] Fixed a bug where running `kurtosis clean` after a kurtosis engine restart would only print the UUIDs, but not the names, of removed artifacts for enclaves and services created on the previous instance of a Kurtosis engine. Enclave names and artifacts are now persisted through engine restarts.
0.80.7

The latest release is `0.80.7`. For a more detailed changelog, visit our [docs](https://docs.kurtosis.com/changelog). # Bug Fixes - [0.80.6] We have introduced fallback functionality to utilize the **amd64** image as an alternative if the **arm64** image is not found, ensuring seamless compatibility for M1 Macs that operate on the **arm64** architecture. This allows M1 Mac users to access and run the software even if the specific version for their architecture is not readily available. [#814](https://github.com/kurtosis-tech/kurtosis/pull/814) - [0.80.7] To address the issue of failed execution when running `kurtosis run --enclave github.com/path/to/package` twice - a solution was implemented to remove the existing package directory if it already exists in the APIC (Application Package Installation Container). This ensures that the package can be moved to its designated folder without any conflicts, allowing for successful execution even on subsequent runs.[#818](https://github.com/kurtosis-tech/kurtosis/pull/818)