Skip to content

Version 0.3 Beta

Compare
Choose a tag to compare
@DrewNaylor DrewNaylor released this 26 Jun 09:52
· 133 commits to master since this release

guinget Version 0.3 Beta Changelog

Released on 6/26/2021 (MM/DD/YYYY).

Almost a year after guinget moved to alpha, it finally moves to the beta stage! This update has several performance improvements, a few new features, some bug fixes, and even some removals. Here are few of those changes by name:

  • Optional KDE-style fast resizing for the package list so it doesn't slow everything down
  • Moving the cache files instead of copying them
  • Only extracting .yaml files from the manifest zip file
  • A window that makes validating manifests easier so you don't have to type commands
  • Much-faster package list loading (may still be slow sometimes, but usually it should be a lot faster)
  • Fixes involving package ID sorting and an issue where the scrollbar didn't work correctly
  • The removal of both manifest-only loading and update-manifests.bat support

Some important fixes were backported to v0.2.0.3 as I wasn't sure how long v0.3 would take, but it's ready now.

Some packages like CrystalDiskMark and LibreOffice may require administrative permissions to install, so you'll have to check the Elevate winget with UAC checkbox in the Options: Apply Changes mini-form (accessible from Apply changes window>Options... linklabel) before clicking Confirm changes. Please do not run guinget 0.1.3 or newer as an administrator; everything that requires running winget as an administrator that's available in guinget is covered now. Some Windows 10 installations seem to have issues with running winget elevated from a non-Administrator account, so it may be a good idea to run winget from within an Administrator account and elevate using the checkbox if necessary. If that doesn't work, then winget must be broken, or something. I've run into that issue and can't seem to fix winget, so I'm not sure if there really is a fix.

Please be sure to read the Readme included with this version of guinget or online as it has important info. Also refer to the System Requirements.

If you are reading this in Notepad or another text editor, it displays best in Word Wrap view. Click on Format>Word Wrap on the top bar. Notepad++ users will find it under View>Word Wrap. Word Wrap is automatically done if viewing on GitHub or on the website.

Hashes

You can use Windows PowerShell to confirm the hash of the main guinget EXE file by running
Get-FileHash .\guinget.exe -Algorithm SHA256 in the folder you extracted the archive to and comparing the output to my sums listed below. HowToGeek has a nice article on this, but the Windows section is a bit further down on the page.

The PowerShell method can be used for all files listed below, though you'll have to switch out the filenames.

SHA-256 sum for "guinget_v0.3-beta.exe", which is the installer attached to this release:
234DF3E00AD4BEECB452999022B7C34F3EA56373690558AF626D42016CE5AEF5

SHA-256 sum for "guinget_v0.3-beta-rev1.exe", which is an installer with a publisher name that doesn't have a space in my name so that it matches with the winget manifest:
70A279B755A518208264EF3C4DA8B9627ED2678AD056B151C41B8ACF54A06259

SHA-256 sum for "guinget.exe" in the archive:
FB549A86AE201AB03FE78641FCF0DD469D8286C424BAC7F1B2D3B397F45BDB2E

SHA-256 sum for "lib\libguinget.dll" in the archive:
63C8959892E2A0EC4AD0E99D9EAF082DE8AE1886E28A83E638E43DCAE30EB860

SHA-256 sum for "lib\libscrollswitchtabs.dll" in the archive:
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92

SHA-256 sum for "lib\YamlDotNet.dll" in the archive:
A52924C5065FC796B0B6E16A1FE09B34A2AAF7BAB5308BE26EE6D27AE2B127E6

The rest of the libraries in the "lib" folder are from Microsoft.Data.Sqlite and I don't want to list them all:
https://www.nuget.org/packages/Microsoft.Data.Sqlite/

Added

  • KDE-style fast resize (issue #71; pr #125)
    • While resizing the window, the package list is replaced with a screenshot of itself that's then stretched until resizing is finished.
    • One side-effect of this is that the package list will flicker after moving the window because moving a window counts as resizing it. Not sure how to make it only use the fast resizing during an actual resize and not a move.
    • Any windows above the package list will show up in the screenshot while resizing it. Not sure how to prevent that from happening, but it's not really that big of an issue.
    • This is on by default, and can be turned off by unchecking the Use KDE-style fast resize for the package list so that resizing the window is smooth when there are a lot of packages listed checkbox under Tools>Options...>Package List + Details. Doing so will return to the previous resizing behavior.
  • "Validate Manifest" window (issue #28)
    • Tools>Validate manifest... displays a window that allows you to enter or browse for a manifest to validate.
    • By default, it uses a folder browse window for use with multi-file manifests, but you can check the Browse for singleton manifest checkbox below the textbox to use a file open dialog, which will let you select a single-file manifest.
    • When you're ready for validation, simply click the Validate button at the bottom-right and the manifest will be passed to winget with output displayed in CMD.
    • "In Soviet Russia, manifest validates you."
  • Per-user installation options are now available in the manifest. Personally I highly recommend not using per-user installation for security reasons, but I think winget requires or at least highly recommends making it available for people.

Fixed

  • All the packages now display as expected when you scroll to the bottom before clicking the package list or moving controls around. (issue #117)
  • Packages with lowercase IDs will now be sorted properly rather than being shown after the rest of the packages. (issue #111)
  • The currently-selected package now displays its details once the cache update is complete. Usually this will be the first item in the package list. This has been a regression since database-loading became the default.
  • The Import and Export menu items weren't blocked while refreshing the cache. (issue #109)

Changed

  • Way faster cache updates and package list loading (pr #110)
    • Loading the package list isn't (usually) painfully slow anymore as the statusbar isn't being manually updated every time a row in the package list is updated. Sometimes it can still be slow, though.
    • Something else that may help increase the speed of package list loading would be that the list of manifests is now put together with Async stuff.
    • Updating the cache is now a lot faster. Most of the changes involve extracting only .yaml files and moving the folders instead of copying them. As a result of the speed improvements, we now show each file as it's being extracted and the extraction progress bar displays as you'd expect, where it increases for each file.
    • Canceling the zip file extraction will now immediately stop the cache update without you having to wait if you cancel it during the manifest zip file extraction as the cancel update flag is checked before each file is extracted. The database extraction still doesn't extract per-file, so it may take a bit to cancel, but it shouldn't be necessary as it was fast before. (issue #124)
    • If it's still slow for you, opening guinget, letting it run for a bit, and closing it a few times should get .NET Framework's JIT to compile it to machine code for better performance.
    • RoboCopy is still used if not using the built-in .NET Framework stuff and will probably be replaced with a move command in a future version for consistency.
  • Instead of being a regular TextBox, the package details textbox is now a RichTextBox. This means you can click links in manifests without having to copy and paste them. There's still a context menu, though with only Copy, Select All, and Right to left Reading order as the rest weren't really important or didn't seem to do anything.
  • Searches and package-marking may also be a bit faster as they're also not constantly updating the statusbar. Searches are still a little slow at the moment due to the DataGridView control being slow at hiding rows.
  • Closing the cache update window now sets the cancel update flag just like if you clicked the "Cancel" button. This has been a problem since v0.1 alpha, but it's now addressed. There's no way to stop it during the moving phase, so it'll just continue in the background if the window is closed. (issue #129)
  • Canceling the cache update while downloading the manifest zip file will cancel the rest of the update.
  • The 7-Zip and RoboCopy cache update code is now Async so that the progress bars update while running the commands and the windows remain interactive. (pr #116)
  • In the Apply Changes window, the Confirm changes and Close buttons have switched places to match the Options window. As a result, the sizes of both buttons may be slightly different. (issue #127)
  • The Package Details tab in the Options window is now Package List + Details to accommodate the fast resizing feature's checkbox without having to add more tabs that would be redundant. Additionally, the checkboxes on that tab have their own groupboxes to keep them visually separate. (pr #125))
  • Showing or hiding the sidebar is now done after changing HiDPI sizes if done through the Options window. This means it may take a bit for things to catch up, but it should also look less broken.
  • The uninstaller in Add & Remove Programs/Programs and Features/Apps & features now only displays "guinget" as the name rather than also showing the version number.
  • YamlDotNet has been updated to version 11.2.0.
  • Microsoft.Data.Sqlite has been updated to version 5.0.7.
  • The installer has been compiled with Inno Setup Compiler 6.2.0. The most noticeable effect of this is that there are new icons in the installer and in Apps & features.
  • Documentation has been updated.
  • An unused class has been commented out.

Removed

  • update-manifests.bat support has been completely removed and the script was moved to the deprecated folder in case anyone wants to see what it was. Updating to guinget v0.3 beta will delete the update-manifests.bat file in the installation directory. (pr #116)
  • Support for directly loading manifests has been completely removed along with its associated text in the Options window. (pr #116)

Deprecation notices

  • Since the code to get details from winget is deprecated, it was commented out in version 0.1 alpha. This code may continue to exist in this state as an example for how to get info from winget.