Releases: DrewNaylor/guinget
Version 0.3.0.2 Beta
guinget Version 0.3.0.2 Beta Changelog
Released on 5/12/2022 (MM/DD/YYYY).
Had to fix a few things that broke near the release of v0.3.0.1 (manifests with too-long file paths) or will probably break soon (winget database URL), so that's why this version exists.
You can find the full changelog below.
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 theOptions: Apply Changes
mini-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.2-beta.exe", which is the installer attached to this release:
0A8B2DF0E4CA1D2353D68C806CFDDF72A3027056D5CBCA56E6D03DA0F4A7EA4A
SHA-256 sum for "guinget.exe":
ABD75F6409113A734F304B3C1CB03FDEDE69F0A246DB2CD9E090796F0D6F6718
SHA-256 sum for "EnableLongPathsEnabled.reg":
20CBDA1EEFE7C24FB3A432CAE07A4D3C4B66449DB4B333AE007FE8BC1D4DACFC
SHA-256 sum for "DisableLongPathsEnabled.reg":
D732F552C8F9D0B9E4EF85F7BD422CB6136434994F9E5267C4F94F9139A55D32
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
2311160E10FEE44C66C2F46AEA6C70CAC4F36B1A0AA4CCB9F69BADEF381B9D01 .\lib\libguinget.dll
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92 .\lib\libscrollswitchtabs.dll
FC681DC1FD170A4F27487BD6D91103093A16F526D47F07EFF363EB85362A18B7 .\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
Fixed
- Some packages have manifests that result in a file path that's too long for Windows. On Windows 10 version 1607 and higher, the
LongPathsEnabled
Registry key allows you to remove the 260-character path limit (259 characters with aNUL
at the end). Applications have to change their manifest to support this, and this version of guinget has done such. If you still have issues, you can open theEnableLongPathsEnabled.reg
file using an elevated (Administrator) Command Prompt or PowerShell. As with any.reg
file, it's wise to check it in Notepad first. You can also turn this feature off by openingDisableLongPathsEnabled.reg
in another elevated prompt. You may need to restart your computer for these changes to take effect. A future version will make this easier. See also: #149
Changed
- The database URL that we pull from has been updated to be https://cdn.winget.microsoft.com/cache/source.msix from https://winget.azureedge.net/cache/source.msix as winget will probably soon have a new version that uses this URL. Currently things don't appear broken, but they might soon. See also for my issue in my repo: #150 and also the winget PR that changed the URL: microsoft/winget-cli#2026 and see this for the winget preview version it's part of: https://github.com/microsoft/winget-cli/releases/tag/v1.3.1251-preview
- Updated Microsoft.Data.Sqlite and Microsoft.Data.Sqlite.Core to 6.0.5 from 6.0.3.
Deprecation notices
- The dropdown boxes in the
Action
column 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 theOptions
windowPackage List + Details
tab that'll let you single-click in theAction
column 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 theAdded
section 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.
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
Action
column'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
Action
column 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
Release
configuration 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 UAC
checkbox in theOptions: Apply Changes
mini-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 notices
section, there's a new checkbox in theOptions
windowPackage List + Details
tab that'll let you single-click in theAction
column 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 + Details
and checking theShow Action column context menu when single-clicking one of the cells in that column
checkbox.
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
Release
configuration. 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
Experimental
tab. - 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...
Version 0.3 Beta
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 theOptions: Apply Changes
mini-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-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 underTools>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
, andRight 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, theConfirm changes
andClose
buttons have switched places to match theOptions
window. As a result, the sizes of both buttons may be slightly different. (issue #127) - The
Package Details
tab in theOptions
window is nowPackage List + Details
to accommodate the fast resizing feature's checkbox without having to add more tabs that would...
Version 0.2.0.3 Alpha
guinget Version 0.2.0.3 Alpha Changelog
Released on 6/21/2021 (MM/DD/YYYY).
While developing v0.3 Beta, I found some major bugs and decided to backport fixes as it may be a while until v0.3 is ready. Those fixes include a major issue where the package list won't show all the packages unless you click a package or move controls around, then scroll back to the bottom of the list. The other fixes include a performance fix so that loading the package list doesn't take forever (hopefully; it may still be kinda slow sometimes, so v0.3's changes may be necessary to make it reasonable) as well as a fix for lowercase package IDs showing up below the rest. I wasn't planning on backporting fixes, but that first bug was big enough that I decided to do so while working on the next version.
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 theOptions: Apply Changes
mini-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
MD5 checksums/hashes are not used for guinget as they are weaker than SHA-256. More details, though they're not as relevant to guinget.
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.2.0.3-alpha.exe", which is the installer attached to this release:
D3A6E8C28CE684643AC8B511B853DBC721BBC88162479B80368BE908B7BB99BA
SHA-256 sum for "guinget.exe" in the archive:
5FED21F6C4BCC7A3E5BAE7B10A7C58666882F19FB5361BD4A852FEEB39074000
SHA-256 sum for "lib\libguinget.dll" in the archive:
74B0DFE8D24CE5700D367B7D278DA747E821C7BB6DF029BC4696435DD34AAAC4
SHA-256 sum for "lib\libscrollswitchtabs.dll" in the archive:
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92
SHA-256 sum for "update-manifests.bat" in the archive:
522392D92BC5E6AEE85DADCBB2D4A3F6A84BD3163A42DC72B7ABDCC7CA37CDE6
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
- Nothing in this version.
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)
- 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 might still be pretty slow, though. Further optimizations in v0.3 should help a lot with this. (part of pr #110 but manually backported)
Changed
- 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. This is something else that's backported from v0.3.
- YamlDotNet has been updated to version 11.2.0.
- Microsoft.Data.Sqlite has been updated to version 5.0.7.
Removed
- Nothing in this version.
Deprecation notices
- Please be aware that loading manifests directly is deprecated and UI configuration for the feature was removed in guinget v0.2.0.2. A future version will fully remove it. More details: #105
update-manifests.bat
is deprecated. Its removal will be done in stages to slowly transition to a world that no longer relies onupdate-manifests.bat
for any scenario:- For now it'll stay in the package, but be unused by default. <-- You Are Here
- Eventually the version in the package will be changed to be a simple script that tells you where to download the main script.
- After a while it'll be fully removed from the package.
- A while after that support for it will be fully removed from guinget. It's expected that support will be fully removed by the time guinget (and winget, but it may take longer for guinget to gain that feature) supports multiple sources, if not in the same version.
- It may be possible that it'll go from being supported in a way that requires it to be enabled manually to being removed from the package, or having support be removed completely, all at once.
- 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.
Version 0.2.0.2 Alpha
guinget Version 0.2.0.2 Alpha Changelog
Released on 4/06/2021 (MM/DD/YYYY).
Recently winget added support for multi-file manifests, so this version adds support for them. There's also a fix for a potential performance regression involving loading package descriptions. Besides those two changes, database-loading is automatically enforced (since directly loading manifests is deprecated) if you're using the installer and upgrading from a previous version.
Please note: Import and export aren't fully tested, so they may need to be fixed in a future version once they're both implemented in winget. I haven't tested import yet even though it's in the latest version of winget itself.
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 theOptions: Apply Changes
mini-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
MD5 checksums/hashes are not used for guinget as they are weaker than SHA-256. More details, though they're not as relevant to guinget.
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.2.0.2-alpha.exe", which is the installer attached to this release:
0FDE801D3CD2038750DC03D6549010EE8EC1572C17CEC232AAC8650499D38782
SHA-256 sum for "guinget.exe" in the archive:
8740D634FE31B026F592D4AFE8170A48BFF87F30D5AE9DFDCC312606EACE078F
SHA-256 sum for "lib\libguinget.dll" in the archive:
EBD9CFC10B81185E47100FD53BCE9724C08543E038BDDB8B936E871A84ED99B4
SHA-256 sum for "lib\libscrollswitchtabs.dll" in the archive:
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92
SHA-256 sum for "update-manifests.bat" in the archive:
522392D92BC5E6AEE85DADCBB2D4A3F6A84BD3163A42DC72B7ABDCC7CA37CDE6
SHA-256 sum for "lib\YamlDotNet.dll" in the archive:
8AC0C1165E3857DD2685A2A1146F24597218AE2DF90BA5F15EA3BA76D0605A4B
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
- Initial support for multi-file manifests.
- Requires loading from the database, which is now automatically set to on when upgrading to this version using the installer.
- Directly loading manifests by modifying the config file will result in a bunch of extra entries showing up because I didn't implement a version of multi-file manifest support for it as it's deprecated.
Fixed
- There's a potential performance regression relating to loading package descriptions that should be fixed or at least mitigated now.
- If a single-file manifest can't be found when selecting its package in the package list, the package details textbox will now display "(Couldn't find manifest)" instead of continuing to show the previously-selected package's manifest.
- Spacing has been added between the labels in the download progress window so they don't clip into each other at some DPI settings.
Changed
- Single-file manifests now have a header that says "Manifest" above them in the package details textbox for consistency with the multi-file manifest section headers.
- As mentioned previously, database-loading is now enforced on upgrading using the installer. If things aren't displaying properly, you can use the
Defaults
button in theOptions
window to check the database-loading checkbox, then click OK. - There are some wording updates in the Options window relating to database-loading.
- YamlDotNet has been updated to version 11.0.1.
- Microsoft.Data.Sqlite has been updated to version 5.0.5.
Removed
- Does hiding the database-loading checkbox and deleting its description label count?
Deprecation notices
- Please be aware that loading manifests directly is deprecated and UI configuration for the feature was removed in guinget v0.2.0.2. A future version will fully remove it. More details: #105
update-manifests.bat
is deprecated. Its removal will be done in stages to slowly transition to a world that no longer relies onupdate-manifests.bat
for any scenario:- For now it'll stay in the package, but be unused by default. <-- You Are Here
- Eventually the version in the package will be changed to be a simple script that tells you where to download the main script.
- After a while it'll be fully removed from the package.
- A while after that support for it will be fully removed from guinget. It's expected that support will be fully removed by the time guinget (and winget, but it may take longer for guinget to gain that feature) supports multiple sources, if not in the same version.
- It may be possible that it'll go from being supported in a way that requires it to be enabled manually to being removed from the package, or having support be removed completely, all at once.
- 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.
Version 0.2.0.1 Alpha
guinget Version 0.2.0.1 Alpha Changelog
Released on 3/30/2021 (MM/DD/YYYY).
This is just a basic patch to add support for the new v1.0 singleton manifests and their file paths. More details about what that involves are available below. You can read the v0.2 changelog here if you wish: https://github.com/DrewNaylor/guinget/releases/tag/v0.2-alpha
Since nothing changed that would warrant an update to the usage guide, I'm just using the one from v0.2.
Please note: Import and export aren't fully tested, so they may need to be fixed in a future version once they're both implemented in winget. I haven't tested import yet even though it's in the latest version of winget itself.
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
MD5 checksums/hashes are not used for guinget as they are weaker than SHA-256. More details, though they're not as relevant to guinget.
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.2.0.1-alpha.exe", which is the installer attached to this release:
370C4B4EC99FEC59FCBFB369F9D1B9FDDBD3BB97FEC5B0224F7000DCCC04BDDB
SHA-256 sum for "guinget.exe" in the archive:
569289A5D1331F26FC25E1144BAEE08BBD4AAA16A4EDCF0B522A74BB8CEA6E2A
SHA-256 sum for "lib\libguinget.dll" in the archive:
7B1AEB599F2432C06CD6DB0D863782C3729FED5E552D7DF0B2DC0E95C4897AB4
SHA-256 sum for "lib\libscrollswitchtabs.dll" in the archive:
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92
SHA-256 sum for "update-manifests.bat" in the archive:
522392D92BC5E6AEE85DADCBB2D4A3F6A84BD3163A42DC72B7ABDCC7CA37CDE6
SHA-256 sum for "lib\YamlDotNet.dll" in the archive:
0EF4F8AB2EE8C446B68FD97ACBBC70B1A1407944B5B1BD0D2FC145AE2C90F946
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
- Support for the new v1.0 singleton manifests and their file paths.
- Multi-file manifests will have initial support in guinget v0.2.0.2, with better support in a future version.
- Since
ShortDescription
s are now supported in the manifests and some migrated packages have the ID as theirShortDescription
, the regularDescription
is shown instead if the package ID matches theShortDescription
.
Fixed
- The code for replacing only the first period in an ID was corrected so it actually works now instead of always using the fallback like it used to.
Changed
- YamlDotNet has been updated to version 10.0.0.
Removed
- Because support for v1.0 manifests was added, support for v0.1 manifests was dropped. Shouldn't be a problem since the main repo was migrated.
Deprecation notices
- Please be aware that loading manifests directly is deprecated and UI configuration for the feature will be removed in guinget v0.2.0.2. More details: #105
update-manifests.bat
is deprecated. Its removal will be done in stages to slowly transition to a world that no longer relies onupdate-manifests.bat
for any scenario:- For now it'll stay in the package, but be unused by default. <-- You Are Here
- Eventually the version in the package will be changed to be a simple script that tells you where to download the main script.
- After a while it'll be fully removed from the package.
- A while after that support for it will be fully removed from guinget. It's expected that support will be fully removed by the time guinget (and winget, but it may take longer for guinget to gain that feature) supports multiple sources, if not in the same version.
- It may be possible that it'll go from being supported in a way that requires it to be enabled manually to being removed from the package, or having support be removed completely, all at once.
- 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.
Version 0.2 Alpha
guinget Version 0.2 Alpha Changelog
Released on 3/10/2021 (MM/DD/YYYY).
There are so many changes in this version that make guinget far more capable than it had ever been before (partially thanks to winget itself), so much so that I decided it deserved to get a +0.1 version bump. Changes that were meant for v0.2 have been delayed to v0.3, but it shouldn't be that big of a problem since a lot of these changes were desperately needed.
Please note: Import and export aren't fully tested, so they may need to be fixed in a future version once they're both implemented in winget. I haven't tested import yet even though it's in the latest version of winget itself. This version won't be pushed to winget since it lacks support for the new manifest format, which must be fixed immediately and would be a waste of time to have it go through the steps.
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
MD5 checksums/hashes are not used for guinget as they are weaker than SHA-256. More details, though they're not as relevant to guinget.
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.2-alpha.exe", which is the installer attached to this release:
680ABC803E0D41ED45245AF723AAA92314B57B7065733C7C7B45BF823E5BF810
SHA-256 sum for "guinget.exe" in the archive:
24398F2E496AAD578881C1362D35F9BDC19FE58794FE348E5BD832A7DC58B8CE
SHA-256 sum for "lib\libguinget.dll" in the archive:
46A29795596A87FB6799E427149EC770A29B9C227796B3747DCEA717F69738EF
SHA-256 sum for "lib\libscrollswitchtabs.dll" in the archive:
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92
SHA-256 sum for "update-manifests.bat" in the archive:
522392D92BC5E6AEE85DADCBB2D4A3F6A84BD3163A42DC72B7ABDCC7CA37CDE6
SHA-256 sum for "lib\YamlDotNet.dll" in the archive:
23710F6413E488866B37E82C61943B1381126FBE52340B827B53D68C2B33112C
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
- Support for uninstall and upgrade
Uninstall
andUpgrade
are available in the package context menu,Selected packages
menu, and theAction
column dropdowns.- Both may require experimental winget features to be available and on for them to work.
- You can use
Ctrl+U
to mark a package for uninstallation andCtrl+P
to mark a package for upgrade. - Unfortunately, there were no other characters that fit better for the accelerator than
p
inupgrade
.
- Filtering the
Action
columnAction
column filters are available from the sidebar dropdown by changing it fromSearch terms
toAction
.- Double-clicking or pressing
Enter
on any of them works almost like theSearch terms
list, except nothing gets sent to the search box. - Unlike the
Search terms
list, you can't clear this listbox. - From PR #93: Now you can filter packages based on how they're marked, like Synaptic. You get to the
Action
filters by opening the sidebar dropdown and choosingAction
. From there you can double-click or pressEnter
on the items in the listbox to filter as desired, or useAll
for an unfiltered list. As these filters use the same code as the search box, it says "Searching for (filter)..." in the statusbar even though it's looking in theAction
column. Additionally, if it's set to search after a cache update, a regular search will be performed if there's text in the search box. This regular search will override any other filter since it uses the same core code.
- Importing and exporting packages
- These features rely on
winget import
andwinget export
and require the relevant experimental features to be on. - You can use them from
File>Import packages...
andFile>Export packages...
, respectively. - Keyboard shortcuts are available for both.
Import packages...
:Ctrl+O
Export packages...
:Ctrl+S
- Keyboard shortcuts are subject to change if better ones are suggested.
JSON
is the main file type in the browse dialogs, but you can show all files if you need to.- Choosing a file in the import dialog will run
winget import (your-filepath-here)
, and saving a file in the export dialog will runwinget export (your-filepath-here)
. - The next version will add options to choose which (if any) import and export flags will be sent to winget.
- Had a tough time figuring out what accelerators to set, so if anyone suggests better ones than
m
forImport
ando
forExport
, they might be changed as long as they don't conflict with any other items in theFile
menu.
- These features rely on
- Viewing available upgrades
View>Available upgrades...
will open a CMD window and runwinget upgrade
to display a list. Eventually something better than CMD may be used so text doesn't disappear if it's long.- Requires the relevant experimental features to be available and on in winget.
- Viewing installed packages
View>Installed packages...
will open theApps & features
page in theSettings
app by default.- If the
Settings
app can't be run, we'll try to runPrograms and Features
inControl Panel
instead. - You can change what opens from this menuitem by going to
Tools>Options...>Apps and UIs
, and selecting something in the dropdown. Available choices:Settings app: Apps & features (default)
CMD: winget list
Control Panel: Programs and Features
- Using
winget list
requires the relevant experimental feature to be on in winget, if it's not already considered stable.
- Deleting temp files after cache update
- This is what
update-manifests.bat
offered the user, and now it's available in guinget by default. - You can turn it off by unchecking
Delete temp files after cache update
fromTools>Options...>Refresh Cache
, and clickingOK
. - If you're an app developer who's using libguinget, simply set
PackageListTools.DeleteTempDirsAfterCacheUpdate = True
before running the cache update to use this. - Temporary files are always deleted before refreshing the cache.
- This is what
- Specify version number when installing, upgrading, and uninstalling
- By default, version numbers are passed to winget when installing, but not when upgrading or uninstalling.
- For uninstallation, this is to ensure something doesn't get messed up when the "wrong" version is uninstalled.
- It's expected that you'll want to upgrade to the latest version, so it's also not passed to winget on upgrade.
- You can change these from
Tools>Options...>Apply Changes
and the mini-form in theApply changes
window accessible from theOptions...
linklabel in the bottom-left corner as mentioned below. - From the
Options
window: Not specifying a version number will just use the latest version according to winget. You may want to use this when installing, but maybe not when upgrading or uninstalling as that may cause issues.
- Reset package status in the
Apply changes
window- Right-click on a package and choose
Reset status for selected package
to change itsCurrent status
back toReady
if you have trouble with winget and need to change your settings but don't want to close and reopen theApply changes
window. - You can also reset the status for all packages using
Reset status for all packages
.
- Right-click on a package and choose
- Skip certain packages
- In case there's a package you don't want to have it try to install/uninstall/upgrade again after resetting status or forgot to unmark before opening the
Apply changes
window with other packages marked, you can useSkip selected package
to set a selected package'sCurrent status
toSkip
so you can use theConfirm changes
button instead of having to go one-by-one. - Any packages with their
Current status
set toSkip
will be ignored until resetting that package's status or closing and re-opening theApply changes
window.
- In case there's a package you don't want to have it try to install/uninstall/upgrade again after resetting status or forgot to unmark before opening the
- Mini-form for
Apply changes
-related options
...
Version 0.1.3 Alpha
guinget Version 0.1.3 Alpha Changelog
Released on 12/1/2020 (MM/DD/YYYY).
Took a half a year, but you can now bulk-install packages! Considering the previous update was three months ago, there are quite a few changes in this version. Here are some highlights:
- [SECURITY]: An extra
\
is added to the end of the extraction path for security reasons when extracting sources. This also applies toupdate-manifests.bat
version 2020.10-1. Shouldn't be a concern right now, but it could be when third-party sources are used. - You can now do things like update winget's sources (if it doesn't do it automatically) and edit winget's settings without typing anything into a command-line. Editing winget's settings for the administrator account you use when elevating winget is also available.
- A new checkbox in the
Apply changes
window you can use to have winget run elevated when installing packages, something rather important in case winget doesn't automatically elevate the installer like it's supposed to. - Now you can quickly get back to the package list after a search by pressing
Ctrl+F
again while the search box is in focus. - Package
Actions
are no longer in a submenu, thus making them quicker to use. - You can show a package in winget using the
Show in winget
button, available in the package context menu and theSelected packages
menu. This takes into account the version you're looking at right then, but maybe it would be helpful to add an option to show the latest version according to winget. - Any of the options that can be set anywhere in the UI can also be set in the
Options
window, now accessible fromTools>Options...
in addition to thePackage list>Search options...
shortcut. - Fixed winget not knowing which source to use when installing a package available in multiple sources. This was only an issue when the Store source was on, and it affected Windows Terminal, as one example. If the source name ever changes, it can be changed in the
Experimental options
as described in the main part of the changelog. - Documentation has been greatly improved, and the website is now a lot closer to being a recommended documentation source.
Now that the highlights are done, here's the rest of the notes:
Some packages like CrystalDiskMark and LibreOffice may require administrative permissions to install, so you'll have to check the Elevate winget (UAC)
checkbox in the Apply changes
window 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 in this version. Windows 10 version 2004 seems to have issues with running winget elevated, so it may be a good idea to just rely on winget automatically elevating installers if the checkbox doesn't work. 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, though I haven't tried resetting App Installer.
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
MD5 checksums/hashes are not used for guinget as they are weaker than SHA-256. More details, though they're not as relevant to guinget.
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.1.3-alpha.exe", which is the installer attached to this release:
A741EAD690CB2C8EF28B9A5640F7DED6FDB1EC9FB4F6D4BBAB519CBBE4BD484A
SHA-256 sum for "guinget.exe" in the archive:
51C15C3CDC76FB34804CE5BBE24DA471530EA4655A968922ADE42DA1E26CA860
SHA-256 sum for "lib\libguinget.dll" in the archive:
E30396C6CE3D84F1746F9C54E72CAD3DAE5B03C63842E7922922680AD6208210
SHA-256 sum for "lib\libscrollswitchtabs.dll" in the archive:
3F2741B885A3BDD03422E0346542BF4D13384A5287FD3BAF94D05C964ABECB92
SHA-256 sum for "update-manifests.bat" in the archive:
633D1BCDB8663C26EE122A3FFB3E3DDC7356775D2F96EF3AF993AA87ED55E2F7
SHA-256 sum for "lib\YamlDotNet.dll" in the archive:
D71FD1DBB96AD0BB78EB40F79228B2A4D1DF045C33FA7A5F9FDE93D433FD700A
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
- Bulk package installs
- For now, they're all passed to winget all at once, but eventually there may be a graphical progress indicator.
- You can still install one package at a time by double-clicking or pressing
Enter
on the one you want to install. - Only packages marked as "Ready" will be bulk-installed, in case there were others that were installed solo in the current session.
- To make it easier to bulk-install packages,
Confirm changes
is now focused when opening theApply changes
window. - Tip: If you run into an issue with winget, you can close and reopen the
Apply changes
window to reset package status and try again.
- New keyboard shortcuts
Ctrl+I
to mark packages for installation (not the best since it looks like a lowercase "L", but there isn't really anything else that would make sense).Ctrl+D
to mark packages to be ignored (Do nothing
).Ctrl+H
to open theApply changes
window.
- Pressing
Ctrl+F
when the search box is focused will send focus back to the package list. - Update winget sources
- If winget doesn't automatically update its sources, you can now use the
Package list>Update winget sources
menu item to have it update its sources without having to typewinget source update
manually. - For some reason as mentioned in a few other places in this changelog, winget doesn't properly update its sources if it's running elevated. As a result, please don't run guinget version 0.1.3 and above as an administrator; elevating winget is handled automatically via an option described below and as a separate menu item if you want to edit winget settings as an administrator, also described below.
- An elevated winget session does pick up the source updates done from a non-elevated user account if you have a standard/limited account you usually use and a separate one for administrative activity, so it should work fine if you use that menu item then install a package with winget elevated by guinget.
- If winget doesn't automatically update its sources, you can now use the
- Edit winget settings
- Instead of having to type
winget settings
every time you want to edit its settings, you can just useTools>Edit winget settings
. - In case you wish to edit the settings used by an administrator account you elevate winget with, use
Tools>Edit winget settings as admin (UAC)
. - If the default JSON file type editor differs between your limited account and the administrator account, the settings file will open in different programs. Changing the default when logged into the other account will change it in this situation as well.
- Instead of having to type
- Elevate winget
- Sometimes winget won't automatically elevate package installers, but now you can force it to with the
Elevate winget (UAC)
checkbox in theApply changes
window. - MSIX packages like Windows Terminal might not install properly if your account used for administrative actions is logged out at the moment.
- Windows 10 version 2004 might have issues with running winget elevated, so hopefully winget will elevate the installer itself. If it doesn't, then it's broken and there's not really anything you can do based on my experience.
- The account used for administrative actions must have winget installed, so what you'll probably have to do is this:
- Log into your administrator account.
- Download and install winget in your administrator account.
- Log back into your regular account.
- Download and install winget in your regular account (if you don't, it won't be able to run for some reason).
- Make sure winget still runs in both an elevated and non-elevated CMD window (just
winget
should be enough). - Update winget's sources, perhaps using
Package list>Update winget sources
, or manually type it in CMD. For some reason, winget doesn't update its sources if it's running elevated from a non-administrator account. - Now you can use the
Elevate winget (UAC)
checkbox.
- Edited excerpt from the usage guide: Please don't run guinget as administrator in version 0.1.3 or higher, as winget seems to have an issue updating its sources when running elevated (which is what guinget does if guinget itself is elevated). If you need to install a package with winget elevated, please use the
Elevate winget (UAC)
checkbox in theApply changes
window as described above. Be sure to use thePackage list>Update winget sources
menu item described below if winget complains that it can't find that package/package version, then try installing that package again.
- Sometimes winget won't automatically elevate package installers, but now you can force it to with the
- When one package is selected, you...
Version 0.1.2 Alpha
guinget Version 0.1.2 Alpha Changelog
Released on 9/7/2020 (MM/DD/YYYY).
There may be times when you want to retain search terms for later use in the same session, so this update introduces the sidebar. In the future, this sidebar may include other lists just like Synaptic, but it's just search terms for now. Double-clicking or pressing Enter
on a search term in this list will start a search with it. You can clear search terms by right-clicking in the list and choosing either Clear selected search term
or Clear all search terms
.
Please be aware that it may take several more times of pressing Tab
to get back to the package list from the search bar when the sidebar is showing.
If you want to close the sidebar, you can click the X
button in its top-right corner; uncheck View>Sidebar
; or uncheck the Show sidebar
checkbox in the Options
window, which you can get to from Package list>Search options...
, then click OK
.
This update also fixes the bug where the package context menu doesn't show up where expected the first time it's opened every session.
Some packages like CrystalDiskMark and LibreOffice may require administrative permissions to install, so you'll have to run guinget as an administrator.
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
MD5 checksums/hashes are not used for guinget as they are weaker than SHA-256. More details, though they're not as relevant to guinget:
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.1.2-alpha.exe", which is the installer attached to this release:
459C86F3FBC1C17BF8C0138A496875B580315258EF90742027F420480825691F
SHA-256 sum for "guinget.exe" in the archive:
6D1317FB0227D8D803684664DE20A7B2A052C7A165703B411E0ADD7630C85466
SHA-256 sum for "lib\libguinget.dll" in the archive:
19BF60E59EC5183529D5857C39D53F864C200C85CB861B9ADA721B9160788D16
SHA-256 sum for "update-manifests.bat" in the archive:
AFA421669D4856FB9136656B97CD2098478B1FE67AD5CB2326DA5A8BDA4BD36A
SHA-256 sum for "lib\YamlDotNet.dll" in the archive:
8838A6EC1F2DED411D7C72CAA5DA2F524CFF08145850D2496A758F072FC96F67
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
- Search sidebar
- Displays all search terms from the current session, like Synaptic
- Double-clicking or pressing
Enter
on one of these terms (aside fromAll
, at the top) will start a search for it - Double-clicking or pressing
Enter
onAll
at the top of the list will take you back to an unfiltered list - The list can be cleared with the items in its context menu
Clear selected search term
clears whatever is currently selected in the listClear all search terms
clears everything- Both options leave the
All
entry
- If you don't want to use the sidebar, you can hide it in three ways:
- Clicking the
X
button in the top-right corner next to the page dropdown - Unchecking
View>Sidebar
- Unchecking the
Show sidebar
checkbox in theOptions
window underPackage list>Search options...
, and clickingOK
.
- Clicking the
- Resizable using the splitter line between it and the package list area, although the size doesn't persist between sessions. May be a good idea to allow this at some point.
- Please be aware that it may take several more times of pressing
Tab
to get back to the package list from the search bar when the sidebar is showing.
Escape
/Esc
key clears the search box when focused- An
Options
window has been added.- For now, this only has search-related options, but more stuff will be here in a future version. You can get to this window from
Package list>Search options...
or fromSearch options...
in theSearch
button dropdown on the toolbar. - You can reset the values to default using the
Defaults
button in the bottom-left corner of the window. These settings won't be applied until clickingOK
.
- For now, this only has search-related options, but more stuff will be here in a future version. You can get to this window from
- Search for all packages containing a specific ID using
Search for last-selected ID
in the package context menu or from theSelected packages
menu - Searches are automatically re-run after a cache update if there's something in the search box. This can be turned off by opening
Package list>Search options...
, uncheckingRe-run search after cache update
, then clickingOK
. - The setting for
Install interactively (-i)
is automatically migrated if using the installer version, as migrating settings relies on being installed to the same folder as the previous version. - Some experimental features have been added, and you can use them by changing the config file
Use7zipForExtraction
: Boolean; defaults toFalse
- Package manifest ZIP files will be extracted using 7-Zip instead of the built-in .NET extractor. This may be a lot faster, although it's neither fully tested nor is it as complete as the code using the .NET extractor.
- If 7-Zip can't be found in what's set in
PathTo7zip
, extraction will fail.
PathTo7zip
: String; defaults to"C:\Program Files\7-Zip\7z.exe"
- Specifies the path of the 7-Zip CLI binary for use when using 7-Zip for extraction.
UseRobocopyForCopying
: Boolean; defaults toFalse
- Robocopy will be used for copying manifests into the proper folder instead of the built-in .NET file copy method. This may be a lot faster, although it's neither fully implemented nor is it fully tested.
- During testing on my laptop, using 7-Zip and Robocopy reduced the cache updating time from 1 minute 40 seconds to about 1 minute 4 seconds.
- Closing guinget before the cache update is completed if using Robocopy and/or 7-Zip will leave those programs open and you'll have to close them manually. This should be changed in a future version to automatically close them when closing guinget.
LoadFromSqliteDb
: Boolean; defaults toFalse
- More details
- The package list will be loaded using the same SQLite database as
winget
uses by default, located at https://winget.azureedge.net/cache/source.msix. This still relies on the manifests to get the package descriptions as those aren't directly available in the database, though. - The goal is to allow the database URL to be changed, but it's hardcoded for now. May be a good idea to allow the manifest location to be changed eventually, too.
- Each package version is listed as a separate entry even when loading from the database, though using the database will make sure only packages
winget
can display right now are shown. - Some packages may be in a different order compared to loading all the manifests at once, but this shouldn't be much of an issue, and clicking the
Package
column header should sort them as expected. - Loading the descriptions may still take a bit as we have to take the package ID and version number and figure out where its manifest is, instead of just grabbing all the manifests and loading from them. In case we can't find a package's manifest, we'll just look through all the manifests until we find the right one.
- Figuring out where each package's manifest is stored is done in three ways:
- If replacing all instances of "." in the package ID and appending the package version to the end of the path along with ".yaml" finds a file that exists, then that's great and we'll use that file. This is the fastest method.
- If that doesn't work, then we only replace the first instance of the "." in the ID and try again with the version thing. This should be fast, too.
- If neither of those work, then we fall back to looking for manifests with the package's version number in their filename, opening each file match we find, checking the package ID in the file, and if it's a match, we use it. Otherwise we keep going until finding the manifest. At the moment, this doesn't check to make sure that a file exists, so it may crash if it can't find a matching manifest. The Visual Studio profiler says there's a lot of garbage collection going on as well, so this will probably need to be changed to something like Using to keep automatic garbage collection to a minimum.
- Figuring out where each package's manifest is stored is done in three ways:
- Both the zip file and installer for version 0.1.2 will be larger than version 0.1.1 due to the extra libraries that are used when reading the SQLite database.
- You may need to manually delete the package list cache located in
%AppData%\winget-frontends\source
before using the database as it may get confused if the manifest directory (winget-pkgs
) exists but the database one (winget-db
) doesn't. This'll be changed when loading from the database is officially supported.
Fixed
- Sometimes the package context menu isn't shown where...
Version 0.1.1 Alpha
guinget Version 0.1.1 Alpha Changelog
Released on 8/3/2020 (MM/DD/YYYY).
Sometimes I want to install a package interactively as I don't like the defaults, as is the case with LibreOffice, so this update introduces that functionality. To use it, simply check the Install interactively (-i)
checkbox in the Apply changes
window. This will persist across closing the window and restarting the application.
There are also some fixes and changes related to the Apply changes
window, including one where double-clicking on the column header used to install the currently-selected package.
Some packages like CrystalDiskMark and LibreOffice may require administrative permissions to install, so you'll have to run guinget as an administrator.
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
MD5 checksums/hashes are not used for guinget as they are weaker than SHA-256. More details, though they're not as relevant to guinget:
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.1.1-alpha-quieter.exe", which is a quieter installer without the startup message:
EE7EE57E21BC999F68CFF63DF1DCCA6B9C6A22E2443AAC7406E9028298EA45A4
SHA-256 sum for "guinget_v0.1.1-alpha.exe", which is the main installer attached to this release:
924A4378503550E1D3061A6DA1D47970056BBDADC8D19131CDA43A6662979BCD
SHA-256 sum for "guinget.exe" in the archive:
77BE11957E22E4A3341F0D671E510981E7E7D45794FA89B861133EA71241A170
SHA-256 sum for "libguinget.dll" in the archive:
BE071A6B17AE209E0242777A7385250BD549E697B69F5B73425FDF597C6D971D
SHA-256 sum for "update-manifests.bat" in the archive:
AFA421669D4856FB9136656B97CD2098478B1FE67AD5CB2326DA5A8BDA4BD36A
SHA-256 sum for "YamlDotNet.dll" in the archive:
632E1C37E67E5BE46766FFC9ED7790C22D1FE75A5B83AAB9EC4C0678414E5B82
Added
- Interactive installation option
- Usable by checking the
Install interactively (-i)
checkbox in theApply changes
window - Setting persists across closing the window and restarting the application
- Passes
-i
to winget along with the rest of the install command
- Usable by checking the
Fixed
- Double-clicking the column header in the
Apply changes
window would start installing the selected package, but now we make sure this doesn't happen. - Column headers in the
Apply changes
window were sometimes too tall, but now they're closer to the height they should be.
Changed
- Multi-select has been turned off in the
Apply changes
window as there's no code to handle that situation and it could be confusing.
Deprecation notices
update-manifests.bat
is deprecated. Its removal will be done in stages to slowly transition to a world that no longer relies onupdate-manifests.bat
for any scenario:- For now it'll stay in the package, but be unused by default. <-- You Are Here
- Eventually the version in the package will be changed to be a simple script that tells you where to download the main script.
- After a while it'll be fully removed from the package.
- A while after that support for it will be fully removed from guinget. It's expected that support will be fully removed by the time guinget (and winget, but it may take longer for guinget to gain that feature) supports multiple sources, if not in the same version.
- It may be possible that it'll go from being supported in a way that requires it to be enabled manually to being removed from the package, or having support be removed completely, all at once.
- 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.