Version 0.3.0.1 Beta
guinget Version 0.3.0.1 Beta Changelog
Released on 3/19/2022 (MM/DD/YYYY).
Didn't think v0.4 would take as long as it has, so I decided to port a few specific changes to v0.3.0.1 so people can benefit from them in the meantime. Here are some highlights:
- Important legal notices I accidentally forgot to include in previous versions
- Slight efficiency improvements for package list loading and searching/filtering, though major improvements will be in v0.4
- Database closing when we're done with it so the rare messagebox about it being opened by another program should no longer show up
- A new default Start menu folder for new installs
- Library updates
- Deprecation of the
Actioncolumn's dropdowns due to them being difficult to keep in v0.4 with its enhanced efficiency ("Thou art too slow to exist alongside me, you mere mortals", I guess) - An option to allow single-clicking in the
Actioncolumn to get used to how it works in v0.4 (if desired) is available, but it's off by default due to wonkiness related to dropdowns - guinget and libguinget now get built in the
Releaseconfiguration to reduce memory usage
You can find the full changelog below.
Important: Some packages such as the unofficial ProtonMail desktop client have a filename for their locale manifest that's too long for Windows by default, so not all manifests will be properly extracted or loaded. A workaround will be available in a future version, but for now you can right-click a package and select
Show in winget...to get package details for unloaded manifests. See issue #149 (#149)
Some packages like CrystalDiskMark and LibreOffice may require administrative permissions to install, so you'll have to check the
Elevate winget with UACcheckbox in theOptions: Apply Changesmini-form (accessible fromApply changes window>Options... linklabel) before clickingConfirm 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.0.1-beta.exe", which is the installer attached to this release:
749117DD989C23958540898D77A005364DA1AFBB04BCEC4C48C147BC1A2137D0
SHA-256 sum for "guinget.exe" in the archive:
3D83383F2929431A9E2D1D016940834BEAF5BF6B6847867218BC2372F1C25904
These SHA-256 sums are for the libraries. Figured it would be a good idea to list them all out. I got this list by running Get-ChildItem -Path .\lib -Recurse -Filter *.dll | Get-FileHash -Algorithm SHA256 in the archive's root folder. Here's how I learned to do it recursively: https://shellgeek.com/get-md5-checksum-or-sha-checksum-for-file-in-powershell/#Get-FileHash_Recursive_for_files
82C1753E30043047E8AC6EA8E2EC53188790EC1CE492AFED0E5E70F0E8AD9ADA .\lib\libguinget.dll
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92 .\lib\libscrollswitchtabs.dll
3BACEAED157174779B03D53A65F65700EB37E8C942CE1696B0A8B0EFE6BE077B .\lib\Microsoft.Data.Sqlite.dll
B70365348A01BC6F8753B6F5F39FDA30504EB585158F457613F6A3C8B7B89214 .\lib\SQLitePCLRaw.batteries_v2.dll
947B730A2DB758D062A79749D3877A8611ED9516179F16862CDDEFA556E5F467 .\lib\SQLitePCLRaw.core.dll
9982F856992E7234E77A13EA2AD200D679D5CDB3EB1706CD735AB494120D8F31 .\lib\SQLitePCLRaw.nativelibrary.dll
A0AB2C550198463C0A7EAA2071A4214793B57591C53A681634ED3E228D2F8C74 .\lib\SQLitePCLRaw.provider.dynamic_cdecl.dll
ACCCCFBE45D9F08FFEED9916E37B33E98C65BE012CFFF6E7FA7B67210CE1FEFB .\lib\System.Buffers.dll
437CEDACC15547BCC5F997B65774B9B52B1A6B5F1E00303A9B31F48711BC6594 .\lib\System.dll
8E76318E8B06692ABF7DAB1169D27D15557F7F0A34D36AF6463EFF0FE21213C7 .\lib\System.Memory.dll
1D3EF8698281E7CF7371D1554AFEF5872B39F96C26DA772210A33DA041BA1183 .\lib\System.Numerics.Vectors.dll
37768488E8EF45729BC7D9A2677633C6450042975BB96516E186DA6CB9CD0DCF .\lib\System.Runtime.CompilerServices.Unsafe.dll
F24D57A17849F58239561BA7872F2AA68BF6C80F365A0FCD6AEEF06B4440B476 .\lib\YamlDotNet.dll
618AE75967ACF2053FDE3C74B2D96C4E6C097675C3A725EBC5605521DF296FBC .\lib\runtimes\win-arm\native\e_sqlite3.dll
29029877DCE20E985487B1805733D72E0962E6A5CB72796B52A52628AED085D5 .\lib\runtimes\win-x64\native\e_sqlite3.dll
D2E0558E63AC31BD4ED01E4DB7107812808B17C0223455C00482F631C0B43339 .\lib\runtimes\win-x86\native\e_sqlite3.dll
Added
- As mentioned in the
Deprecation noticessection, there's a new checkbox in theOptionswindowPackage List + Detailstab that'll let you single-click in theActioncolumn to open the package context menu instead of having to use the dropdowns, which will be removed in v0.4 since it was difficult to keep them with significant efficiency improvements. It's off by default due to wonkiness related to slowly clicking multiple times and causing the dropdown to activate along with showing the context menu. You can turn it on by navigating toTools>Options...>Package List + Detailsand checking theShow Action column context menu when single-clicking one of the cells in that columncheckbox.
Fixed
- Sometimes the package list SQLite database wouldn't be properly closed by libguinget, so now I'm making sure everything related to the database is disposed and that the connection has its pools cleared after the datatable is filled. Before there would rarely be a messagebox that shows up asking you to close the Explorer window that's navigated to the package list cache folder. I would sometimes leave that folder open by accident, and that messagebox was meant to only show up in that situation, but sometimes the database wouldn't be properly closed and would incorrectly claim that Explorer is open to that folder. Maybe I should try to figure out if I can show what program has a handle to the database, just in case it ends up not being Explorer, which would mean that people will know what's going on more easily and I wouldn't have to open up Process Explorer to figure out what's going on during development.
- libscrollswitchtabs was using the "Apace" License due to a typo, which has been corrected as it uses the Apache License, Version 2.0.
Changed
- Both guinget and libguinget are now built using the
Releaseconfiguration. This appears to decrease memory usage significantly (at least 20 MB when loading the package list, probably more), even though I didn't think it would help much because the filesize was barely any smaller, and so I didn't use it until now. - When loading the package list, the main window's progress bar no longer gets refreshed every time a package is added to the datagridview, and it only goes up by a certain amount every so often.
- If the current row is divisible by 100 and there are 100 or more packages total, then the progress bar will go up by 100 every 100 packages.
- If the current row is divisible by 10 and there are 10 or more but fewer than 100 packages total, then the progress bar will go up by 10 every 10 packages.
- If there are fewer than 10 packages, then the progress bar will go up by 1 for every package, just like how it used to work.
- This change makes guinget a little more efficient, but it may still say "(Not responding)" in the titlebar. Further optimizations in v0.4 will make package list loading far more efficient, and will usually no longer display "(Not responding)" in the titlebar. Early testing shows that it may still display in Task Manager, though.
- Due to the way searches currently work, this change was also applied to searches and filters. This is unnecessary in v0.4, as searching is near-instant in that version thanks to the "further optimizations" mentioned previously.
- The KDE-style fast resize checkbox now has a statement that "neither guinget nor Drew Naylor are associated with KDE, and KDE is (R) KDE e.V.)". This is something I just completely forgot that I should do, which is weird considering I did that for the 7-Zip and RoboCopy options currently under the
Experimentaltab. - Licenses and legal notices have been added for all dependencies used by Microsoft.Data.Sqlite, because I realized that would be a good idea when I noticed Microsoft.Data.Sqlite was now under the MIT License. I also realized that I didn't have the license files for it and its dependencies that I'm required to include, since I just forgot even though I added the license for YamlDotNet a long time ago.
- New installations will default to the
DrewNaylorfolder in the Start menu due to the removal of the space in my name so it looks more like I'm a serious developer than just... my name going, "Hello!" like Michael Rosen when you open the Start menu. - Moved almost all About window text into Resources for easier editing.
YamlDotNethas been updated to version 11.2.1.Microsoft.Data.SqliteandMicrosoft.Data.Sqlite.Corehave been updated to version 6.0.3.SQLitePCLRaw.bundle_e_sqlite3,SQLitePCLRaw.core,SQLitePCLRaw.lib.e_sqlite3, andSQLitePCLRaw.provider.dynamic_cdeclhave been updated to version 2.0.7.System.Runtime.CompilerServices.Unsafehas been updated to version 6.0.0.- The postbuild script now has an easy way to switch between Debug and Release builds by just changing a variable.
Deprecation notices
- The dropdown boxes in the
Actioncolumn are deprecated in this version and will be removed in v0.4 since it was difficult to keep them with efficiency improvements. As a result, there's a new option in theOptionswindowPackage List + Detailstab that'll let you single-click in theActioncolumn to open the package context menu instead of having to double-click if you want to get used to how v0.4 will be. This is off by default, as it's kinda wonky with dropdown columns. Please see the related content in theAddedsection for more information. - 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.