Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge microsoft/winget-cli changes. #1

Merged
merged 51 commits into from
Mar 22, 2021

Conversation

sreadingMSFT
Copy link
Owner

No description provided.

palenshus and others added 30 commits November 25, 2020 17:27
…tring value (#662)

Move to RegGetValue which normalizes null characters at the end of registry strings
Added an UninstallCommand as an experimental feature, and workflow and E2E tests for it. For uninstalling MSIX/MSStore apps this uses the package name, for MSI it uses the product code, and for everything else the uninstall string. This uses already existing information form manifests/ARP.

Co-authored-by: Josh Soref <[email protected]>
## Issue
When paths with non-ASCII characters are used, logging them is resulting in an exception due to not being able to convert them to ASCII (the default behavior when forced to convert to a narrow char).

## Change
To better handle all situations of output of a path, both the logging and reporting infrastructure have been enlightened to force the use of `u8String()` when they see one.
git-subtree-dir: src/Valijson/valijson
git-subtree-split: 7a52fc88cdffd6678c009ca2fad700151f7363c6
This change adds code for creating normalized strings from package names and publishers. It is not actually used anywhere yet, but it is intended for use in correlating locally installed packages with remote ones, as well correlating one version to the next. I also plan to use the values to create "nicer" Ids for locally installed packages that are not found in a remote source.
The minimal example didn't appear to follow the documentation.  I updated it to align with the spec.
…767)

## Change
This change adds the normalized name and publisher to the index, as well as leveraging this to collect telemetry on how well this normalization strategy is doing to correlate a manifest with the ARP entry on the machine.

The normalized name and publisher tables are added to the index as 1:N entries due to the introduction of full localization of name and publisher into the new manifest schema.  These tables don't have any link between them, which would allow a combination of name and publisher from any localization to work.  This tradeoff of precision seems worthwhile over writing more complex code to handle two values at a time, and it also allows the potential for one of the fields to change while the other remains constant and consume less space overall.

Searching is done by sending in the observed values for name and publisher, and the normalization is done by the source before comparing with its internal store.  In this way any type of normalization can occur internal to the source without the workflow logic needing to be aware.

In order to collect telemetry, we first snapshot the set of packages in ARP before executing the install.  Afterward, we compare the set with the snapshot to determine which ones are net new.  We also search the source using the manifest used to install to determine if there are any matches.  Finally, we intersect these two sets of packages.

The telemetry contains information about the package that was being installed `{source, id, version, channel}`, information about the number of packages in each state above `{changed, matching, intersection}`, and information from the ARP entry (if any) that we have decided is the one that represents the main package `{name, version, publisher, language}`.  We will be able to leverage this telemetry to improve both our normalization code and the manifests in winget-pkgs to improve our ability to correlate installed packages with remote ones.
* Add back Channel Not Supported check

* Make PackageLocale in singleton manifest required

* Add previous missing export
* Make Component Governance task required again

* disable for pr build
JohnMcPMS and others added 21 commits March 5, 2021 13:07
git-subtree-dir: src/cpprestsdk/cpprestsdk
git-subtree-split: 122d09549201da5383321d870bed45ecb9e168c5
* Adding empty project

* creating proj

* Updating with other files and ppd

* working with debug|x64

* works for debug x86

* works for release x86 and x64

* arm32 and arm64

* activating arm build

* cleaning up experimental changes

* cleaning up

* cleanup

* activating arm for cpprestsdk debug

* adding line eof and updated allow words list

* remove git ignore path

* Removing includes from other projects

* Formatting cpprestsdk proj file and adding winhttp

* removed duplicate change

* remove fuzzing from solution file

* Apply config changes
* Adding rest changes

* Fix spelling errors

* Basic search functionality

* Adding cpprest

* Adding cpprest nuget package

* Adding necessary interfaces

* Adding http helper

* adding constants

* changes

* Added experimental feature

* minor changes

* Rest changes

* remove unused methods

* Changes 2

* Moving rest files to dir

* Changes

* changes 2

* remove tabs

* new line

* CR Comments

* Add experimental rest source flag check while getting sources from settings

* git

* CR comments

* Removed cpprestsdk nuget package

* consuming cpprestsdk in appinstaller repository core

* spell check

* Minor changes

* PR Comments. Adding info to settings file

* adding rest source to settings schema

* PR comments

* PR Comments

* Comments

* comments

* todo comment
Optimized search and json deserialization of Rest Api responses
@sreadingMSFT sreadingMSFT merged commit 32ccafc into sreadingMSFT:master Mar 22, 2021
sreadingMSFT pushed a commit that referenced this pull request Sep 22, 2021
* Remove old Manifest schema spec

* Update index.md

* Remove old reference to preview-note

* Update validate.md

* Delete upgrade.png

* Update upgrade.md

* Update uninstall.md

* Add files via upload

* Add files via upload

* Add files via upload

* Update source.md

* Delete source.png

* Add files via upload

* Delete source.png

* Add files via upload

* Update show.md

* Update settings.md

* Update search.md

* Update list.md

* Update install.md

* Update index.md

* Update help.md

* Images #1

* Create source.png

* Update list.md

* Update features.md

* Update export.md

* images #2

* Create hash.png

* Update hash.md

* Update import.md

* Images #3

* Update Labels

* Update repository.md

* Update manifest.md

* Update index.md

* docs upgrade/uninstall

* images added

* Update uninstall-multiple.png

* Update repository.md

* Update manifest.md

* Update validate.md

* Update upgrade.md

* Update uninstall.md

* Update validate.md

* Update upgrade.md

* Update source.md

* Update show.md

* Update settings.md

* Update search.md

* Update list.md

* Update install.md

* Delete help.png

* Add files via upload

* Update index.md

* Update index.md

* Update import.md

* Update hash.md

* Update upgrade.md

* Update uninstall.md

* Update list.md

* Update export.md

* final commit

* Update patterns.txt

* Update expect.txt

* Update ManifestSpecv1.0.md

* Update manifest.md

* Update manifest.md

* allow words

* @jedieaston's suggestion

* expect.txt alphabetical order
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants