Releases: russellbanks/Komac
v2.2.1
What's Changed
The FreeBSD and Linux arm and arm64 builds have been dropped as they are difficult to build currently. This may change in the future.
- Fixed Linux builds linking against OpenSSL v1 - #558
- Fixed incorrect matches between zip installers where there is only one installer inside the zip
- Add GPC header to HTTP requests
Full Changelog: v2.2.0...v2.2.1
v2.2.0
What's Changed
OpenSSL is now used on Linux rather than rustls as it was causing some issues for Linux users. These binaries will now be noticably smaller, but will require OpenSSL to be installed.
Features
- Added a show command, similar to WinGet's show command. This outputs the previous manifests for a package identifier, with an optional version parameter:
komac show Package.Identifier
- HTTP URLs now get upgraded to HTTPS if their HTTPS equivalent can be successfully reached - #356
- Get install scope (ALLUSERS) from MSIs
- Added
--created-with
and--created-with-url
as arguments for external tools that use Komac - #481 - Added
--open-pr
to automatically open the created pull request in the default browser
Fixes
- Fixed some incorrect installer matches
- Fixed attempting to download file when the URL responds with an unsuccessful status code
- Fixed partial installer switches at both root and installer level being omitted - #541
- Relative file paths are now updated when the directory name inside the zip changes from the previous release - #479 & #537
- SHA1's are now removed from release notes
- Fixed some burn installers not being detected as burn - #514
- Fixed crash if not all packages in an MSIX Bundle have an architecture - #497
- Fixed crash if a zip had multiple executables
- Fixed all but one nested installer files being ommitted
- Fixed
Full Changelog:
in release notes missing URL - Fixed Release Notes URL not being updated in non-default locale manifests
- Lots of internal code improvements to improve file parsing and prevent potential issues
Pull requests
- Add link to run-komac action by @michidk in #462
- Prepare for
cargo install
by @vedantmgoyal9 in #492
New Contributors
Full Changelog: v2.1.0...v2.2.0
v2.1.0
What's Changed
Komac will now create 1.6.0 manifests by default.
- Support 1.6.0 manifests - #469
- Fixed crash if installer URL does not have a file name in its URL and redirects to another URL - #468
- Fixed crash if last character of a line in release notes were non-US-ASCII - #470
- Improved nested bullet points in release notes - #463
- Changed pull request body resolves syntax to ensure the associated issue gets marked correctly - #467
- Fixed some uncommon metadata serializing as null rather than being ommitted
- Detect Arm64 and Arm architectures from MSI by @vedantmgoyal2009 in #473
- Automatically publish to winget & homebrew tap by @vedantmgoyal2009 in #441
Full Changelog: v2.0.4...v2.1.0
v2.0.4
What's Changed
- Added an indeterminite progress bar to show while creating a pull request on the remove version command
- Added a prompt if there is a pre-existing pull-request with the same package identifier and version in the title of the pull request
- Added a check for if the filename in the Content Disposition header is empty - #450
- Added a
--resolves
parameter to commands - #449 - Added
x86-64
to architectures array - Remove mimalloc as it was causing issues on macOS - #444
- Fixed files not being written to directory when using the
--output
parameter - #453 - Removed
read_org
token requirement - Added a check for whether the token is valid when updating the stored token with
komac token update
- Fixed previous portable installer types changing to
exe
- #464 - Publish SHA256 checksums of assets while releasing by @ste93cry in #320
- Remove version from release artifacts to ease usage in scripts by @vedantmgoyal2009 in #439
New Contributors
Full Changelog: v2.0.3...v2.0.4
v2.0.3
What's Changed
- Trim 'v' in version in release artifacts by @vedantmgoyal2009 in #418
- Topics from the package's GitHub repository are now used for locale manifest tags - 36f1554
- Added
arm64ec
as an architecture to look for in URLs - #417 (comment) - Fixed crash when previous product code was not a UUID. Product codes are now serialized as Strings instead - #424
- Fixed an issue where the package version was not being updated in non-default locale manifests - dc228fc
- Added
-v
as a valid alias for the version command - #409 & #428 - Fixed a specific case of release notes serializing escaped - 7686ce4
- Fixed crash if exe didn't contain an
RT_VERSION
resource - #421 - Fixed crash when parsing a zip as architectures weren't being retrieved from inside an exe - #422
- There is a known issue where updating an zip with multiple possible files inside crashes. This will be fixed in the next release - #429
This release contains a bunch of fixes from issues that people have made so thank you all for creating those :)
Full Changelog: v2.0.2...v2.0.3
v2.0.2
What's Changed
- Fixed list inputs being split incorrectly - #410, #412
- Install Microsoft Visual C++ Redistributable if it's not already installed when installing Komac with the Windows installer - #411
Full Changelog: v2.0.1...v2.0.2
v2.0.1
What's changed
- Fixed releases being created as nightly rather than with a version number - #408
Full Changelog: v2.0.0...v2.0.1
v2.0.0
What's Changed
Komac has been fully rewritten in Rust! Because of this, Komac v2 is incompatible with Komac v1. If you have Komac v1 installed, please uninstall it before installing Komac v2.
Please open an issue if you experience any issues or inconsistencies. While Komac has worked really well for me, it's difficult to test all the many edge cases with how many different applications and manifests there can be.
Cross-platform
Komac is 100% cross-platform. Unlike other tools, Komac works perfectly on Windows, Linux and macOS. This is especially helpful for GitHub release workflows as ubuntu-latest
can be used.
Despite WinGet being a Windows tool, Komac means that anyone using any operating system can contribute a package or version update to it.
Standalone
Komac is now fully standalone! As of this release, the uncompressed x64 portable binary stands at just ~7.5mb and doesn't require runtimes like the JVM. The Windows installers add Komac to path (allowing you to just run komac
in a terminal) and stand at less than 3.5mb.
Memory usage
Komac uses a very small amount amount of memory and has been heavily optimised to minimise memory usage (especially heap allocations). Updating Android Studio (a 1GB+ binary) on my machine consistently took just ~3.5mb memory.
Disk usage
Komac only writes the downloaded file to the system's temporary directory and deletes it as soon as it's no longer needed. Even if Komac were to crash or if CTRL+C is pressed, the file will still get deleted as the deletion is managed by the operating system rather than Komac.
Komac also makes use of file-backed memory maps when reading the binary in order so that embedded data doesn't need to be unpacked, extracted or wholly read into memory.
Inno installers
Komac now has a significantly more accurate way of checking if an installer was created with Inno setup instead of just checking for some magic bytes.
Nullsoft installers
As with Inno installers, Komac now has a much more accurate way of checking if an installer was created with NSIS.
Usage changes:
URLs are now delimited by a space rather than a comma when updating manifests:
komac update -i Package.Identifier -v 1.2.3 --urls https://www.firstUrl.com https://www.secondUrl.com
Full Changelog: v1.11.0...v2.0.0
v1.11.0
What's Changed
- Check internet connection at start by @russellbanks in #287
- Use HTTP 2
- Fix progress bar showing as
?
on Windows - Fix downloading file not being closed and deleted when using Ctrl+C
- Remove versions manifests in a single commit when using the remove command
- Comprehensively check for Wix property in MSI
- Update Kotlin to 1.9.10
Full Changelog: v1.10.1...v1.11.0
v1.10.1
What's Changed
- Fix values sometimes being at root and local level when creating a new package
- Add skip button to Scope prompt
- Fix scope prompt showing for portable exe's within zip files
- Encode spaces within URLs as %20
- Add winx64 and winx86 as architectures to look for in URLs
- Update dependency gradle to v8.3 by @renovate in #286
Full Changelog: v1.10.0...v1.10.1