Release Notes

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)