# 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 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](https://github.com/DrewNaylor/guinget/blob/master/docs/readmes/readme-v0.2.0.2-alpha.txt) as it has important info. Also refer to the [System Requirements](https://drew-naylor.com/guinget/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](https://github.com/DrewNaylor/UXL-Launcher/issues/124), 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](https://www.howtogeek.com/67241/htg-explains-what-are-md5-sha-1-hashes-and-how-do-i-check-them/), 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:
Not ready yet...

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 the `Options` 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: https://github.com/DrewNaylor/guinget/issues/105
- `update-manifests.bat` is deprecated. Its removal will be done in stages to slowly transition to a world that no longer relies on `update-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.