Skip to content

Tags: cirruslabs/tart

Tags

2.28.0

Toggle 2.28.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat: Add disk image format selection with ASIF support (#1094)

* feat: Add disk image format selection with ASIF support

* fixed goreleaser-pro

* Fix ASIF disk format compatibility issues

- Use .uncached caching mode for ASIF disks to avoid Virtualization framework compatibility issues
- Improve caching mode selection logic for better maintainability
- Fix compiler warning by changing var to let for attachment variable

This resolves VM startup failures when using ASIF disk format by ensuring proper disk attachment configuration.

* Update goreleaser installation to use tap-specific formula

Change from 'brew install --cask goreleaser-pro' to 'brew install --cask goreleaser/tap/goreleaser-pro' for proper installation from the official goreleaser tap.

* Remove VS Code configuration and add to gitignore

- Remove .vscode/launch.json from repository
- Add .vscode/ to .gitignore to prevent VS Code settings from being tracked

* Implement ASIF disk resize using diskutil

- Add support for resizing ASIF disk images using diskutil image resize
- Detect disk format from VM config and route to appropriate resize method
- Use diskutil image info to get current ASIF disk size and validate resize
- Remove restriction that prevented ASIF disk resizing in Set command
- Add FailedToResizeDisk error case for proper error handling
- Maintain backward compatibility with raw disk resizing
- Add comprehensive size validation to prevent data loss

* Update Sources/tart/Commands/Create.swift

Co-authored-by: Nikolay Edigaryev <[email protected]>

* Update Sources/tart/DiskImageFormat.swift

Co-authored-by: Nikolay Edigaryev <[email protected]>

* Update Sources/tart/DiskImageFormat.swift

Co-authored-by: Nikolay Edigaryev <[email protected]>

* Fix test naming and remove redundant test cases

- Rename testFormatArgument to testCaseInsensitivity for clarity
- Remove redundant 'raw' and 'invalid' test cases already covered in testFormatFromString
- Remove testFormatDescriptions test as it's not very useful

Addresses review comment: #1094 (comment)

* Remove canCreate property and simplify DiskImageFormat

- Remove canCreate property since it's the same as isSupported
- Remove description property entirely as it's not used
- Fix displayName for RAW format (remove UDIF reference)
- Remove checkDiskutilASIFSupport helper function

Addresses review comments:
- #1094 (comment)
- #1094 (comment)
- #1094 (comment)

* Update Create command validation and help text

- Simplify ArgumentParser help text to let it show possible values automatically
- Remove canCreate validation since property was removed
- Simplify error message for unsupported disk formats

Addresses review comment: #1094 (comment)

* Add disk format validation to Run command

- Add validation to ensure ASIF disk format is supported on current system
- Check disk format compatibility before attempting to run VM

Addresses review comment: #1094 (comment)

* Use proper namespaced constant for OCI label

- Add diskFormatLabelAnnotation constant in Manifest.swift
- Use org.cirruslabs.tart.disk.format namespace for consistency
- Use variable shadowing instead of new variable name for labels

Addresses review comment: #1094 (comment)

* Remove special ASIF caching mode

- Remove .uncached caching mode for ASIF disks
- Use default caching logic for all disk formats
- Testing shows .cached mode works fine on macOS 26.0

Addresses review comment: #1094 (comment)

* Improve code structure in VMDirectory

- Use guard let instead of nested if let for better readability
- Reduce nesting in resizeASIFDisk function
- Improve error handling flow

Addresses review comment: #1094 (comment)

* diskFormatLabel

* reverted caching mode

* Use PropertyListDecoder

---------

Co-authored-by: Nikolay Edigaryev <[email protected]>

2.27.3

Toggle 2.27.3's commit message
tart exec: do not limit RPC call duration to 1 second

2.27.2

Toggle 2.27.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Delay Sentry initialization until after we parse the CLI arguments (#…

…1085)

2.27.1

Toggle 2.27.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Update sentry (#1079)

2.27.0

Toggle 2.27.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Introduce "tart exec" command as an alternative to SSH (#1074)

* Introduce "tart exec" command as an alternative to SSH

* Simplify control socket machinery by using NIO async/await primitives

* No reason to print the "vm" object directly, just refer to it as "VM"

* Log to Apple’s Unified Logging System

2.26.1

Toggle 2.26.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix unescaped commas in generated ArgumentParser completions (#1066)

* Fix unescaped commas in generated ArgumentParser completions

* Improve completion hints

2.26.0

Toggle 2.26.0's commit message
Update docs, examples and CI to Sequoia

2.25.0

Toggle 2.25.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add `--no-trackpad` option to disable trackpad on macOS VMs (#1060)

* Add --no-trackpad option to disable trackpad on macOS VMs

* Cleanup after AI

2.24.1

Toggle 2.24.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Make tart set --random-serial no-nop for Linux VMs (#1027)

2.24.0

Toggle 2.24.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix #1004: Wrong binary path in distro (#1005)