-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Draft of Store Support #367
Conversation
author: <kevin> <larkin> <kevinlams/<[email protected]> | ||
created on: <2020-05-28> | ||
last updated: <2020-05-28> | ||
issue id: <github issue id> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing issue id
|
||
|
||
**Store Apps** | ||
The Store has multiple app types. Those that are free for download and free, but with purchase options, as well as paid apps. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me try the "free for download" apps and see how the API handles the case when user does not own the app yet
***Free Apps*** | ||
Apps that are free, will be downloaded directly when requested. | ||
|
||
***Pay apps [NOT SUPPORTED]*** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Paid apps?
<b>InstallerType</b> A new format, the WindowsStore type will be provided | ||
<b> InstallerType - Default </b> this needs to be defined, but essentially the author can specify if the user does not select anything... which URL to default to. | ||
<b>Homepage</b> The Homepage will be the URL with the bigid https://www.microsoft.com/en-us/p/app-installer/9nblggh4nns1 | ||
<B>NEW: TransactionType</b> TransactionType will be used to indicate what type of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need more explanation on TransactionType and related fields.
Also the styling around this block does not align well in rich view
<b>NEW: Terms of transaction</b> | ||
<b>License terms</b> | ||
<b>Architecture</b> The architecture will support the architectures supported by the store. neutral will most likely be the default. | ||
<b>-prelease</b> In order to support flighing, the client will need to support only showing apps with out the prerelease flag AND enabling the user override on the command line. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so is this -prerelease a cli switch dedicated to Store app? We might consider leveraging the Channel concept we already have?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nits: Remove "in order", "flighting" is spelled incorrectly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree this needs to be the same as the model we settle on for all packages.
#### MSA Credentials | ||
In order to support flighting, the Windows Package Manager would need to pass credentials to the Windows Store. This is not in scope for this release, therefore only GA apps are enabled. | ||
|
||
Developers wishing to flight store apps will need to create a different app and BigID in order to make it available for flighting. Developers will use the -preview flag in the version to restrict access to those that want prerelease builds. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: BigID should be StoreId to be consistent :)
### Store App installation experience | ||
Installing the store app will provide the MSIX installation experience. The Windows Store App will stream install. | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Somehow the image does not resolve in rich view
Developers will be able to submit their app by providing meta data that includes the store ID or URL to the store app. | ||
|
||
### Duplicate app entries | ||
With the addition of the store, we will have an increase in duplicate entries. If we have 2 manifests with the same application, we should try to eliminate the duplicate entries by default. Otherwise it will make it difficult to limit the selection to the one file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should try to eliminate the duplicate entries by default
Seems like we need to prioritize the support for multiple installer in one manifest. And enforce it in manual review/ reject the manifest in index creation?
... | ||
InstallerType: MSIX | ||
``` | ||
When the user specifies install by default the client will choose to install the version of the app that is flagged as default in the manifest. If no default is specified, then the app will default to the store as the default app. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the user specifies install by default the client will choose to install the version of the app that is flagged as default in the manifest. If no default is specified, then the app will default to the store as the default app. | |
When the user specifies install by default the client will choose to install the InstallerType of the app that is flagged as default in the manifest. If no default is specified, then the app will default to the store as the default app. |
last updated: <2020-05-28> | ||
issue id: <github issue id> | ||
--- | ||
# ===== DRAFT ====== |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you can use a "DRAFT" PR rather than committing a document with draft in the title. If you merge this, you will have to come back and change it to remove this line.
<b>REQUIRED: NEW: StoreID</b> the Store ID will be used to identify the app. example: 9nblggh4nns1 | ||
<b>InstallerType</b> A new format, the WindowsStore type will be provided | ||
<b> InstallerType - Default </b> this needs to be defined, but essentially the author can specify if the user does not select anything... which URL to default to. | ||
<b>Homepage</b> The Homepage will be the URL with the bigid https://www.microsoft.com/en-us/p/app-installer/9nblggh4nns1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to explain about the Microsoft catalog ID
To support store apps, the manifest file will need to be updated to support the new format. Most fields remain the same, but additional changes are required to support the store. | ||
|
||
### YAML Spec updates | ||
<b>URL</b> the URL used for the store is not the same as the URL users and the developers expect. Therefore this field is unnecessary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should retain the URL field and have it point to the store application https:// address
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are you suggesting it would be required? I think the URL you are suggesting would typically be the HomePage.
<b>Homepage</b> The Homepage will be the URL with the bigid https://www.microsoft.com/en-us/p/app-installer/9nblggh4nns1 | ||
<B>NEW: TransactionType</b> TransactionType will be used to indicate what type of | ||
<b>NEW: Privacy Policy</b> | ||
<b>NEW: Terms of transaction</b> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is this different from a EULA? I'd like to try and get as much value in the manifest for each attribute. I'd also like to make sure optional attributes or those that only apply in certain situations to be located in a meaningful place.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A EULA requires acceptance, a privacy policy does not. You cannot combine the two.
|
||
[comment]: # Be sure to add links to references, resources, footnotes, etc. | ||
|
||
## History |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Git keeps a history of all revisions to a document, this probably isn't necessary
<b>NEW: Terms of transaction</b> | ||
<b>License terms</b> | ||
<b>Architecture</b> The architecture will support the architectures supported by the store. neutral will most likely be the default. | ||
<b>-prelease</b> In order to support flighing, the client will need to support only showing apps with out the prerelease flag AND enabling the user override on the command line. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
flighing -> flighting
<b>REQUIRED: NEW: StoreID</b> the Store ID will be used to identify the app. example: 9nblggh4nns1 | ||
<b>InstallerType</b> A new format, the WindowsStore type will be provided | ||
<b> InstallerType - Default </b> this needs to be defined, but essentially the author can specify if the user does not select anything... which URL to default to. | ||
<b>Homepage</b> The Homepage will be the URL with the bigid https://www.microsoft.com/en-us/p/app-installer/9nblggh4nns1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bigid casing is inconsistent throughout the document.
The issue for installing things comes in two parts:
This spec seems to cover installation, but mostly glosses over discovery with the assumption that it would be the same as non-Store (aka through winget-pkgs). I think that we do need an installation spec much like this one that covers the manifest side of things. But I believe that discovery should be handled as a separate source, which will allow for the entire catalog to be available (at least, to the limits that we impose). |
Great start. Would like to see coverage/consideration of:
|
... | ||
InstallerType: MSIX | ||
``` | ||
When the user specifies install by default the client will choose to install the version of the app that is flagged as default in the manifest. If no default is specified, then the app will default to the store as the default app. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
then the app will default to the store as the default app.
Good. This is the best way to handle concerns about flaky remote servers causing download failures.
That would result in more collisions when searching for a program that has been distributed through both a standalone installer and the store. I don't think the behavior for multiple sources has been defined, so I'm not sure what that would look like. They wouldn't have the benefit of being linked by their shared presence in a single versioned manifest, and it would be impossible to determine with confidence that two hits are for the same bits, so any collision would have to prompt the user to make a decision. You can't rely on the
With a curated central repository, that's manageable. General question: is support for the Microsoft Store for Business and Education |
Indeed, we have already received feedback that we should value the curation over the full list of Store offerings. This would also enable direct linkage between things offered in multiple ways, as you state. I just want to ensure the user choice of Store vs external. It may end up being a setting to prefer one or the other. As to Store for Business, that will require more investigation. I don't think that the design will preclude it, but I don't know if additional namespacing information will be required or not. This could either be rolled into the existing value, or added as a new field. In either case, I expect that to come much later with enterprise support features, as nothing in winget-pkgs will be in SfB. |
Agreed. Having it as a separate source, if linked in some way, would allow users to just remove the source. Robust |
In addition to earlier comments, would like to also throw out there that downloading from the Store should not require initial configuration of credentials or require any authentication. I typically click through quite a few dialogs in the Store client to get our supported download-without-login experience. I'd expect winget to just work. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consideration of Store background updating behaviour
Microsoft Store often enough does not fetch apps updates, unless the user starts the Microsoft Store app, clicks on the pending downloads icon, click get updates. Store would the actively search for new GA or flighting updated also install all previous queued ones.
I've reported this several times for months now to the store team and insider team but no one feels responsible. Affected 18xx or later builds.
The problem is that the store will still update apps but based on a non transparent schedule which misses for following scenarios :
- users assigned guest role cannot use (store) apps at all, all builds
- users with users role assigned likely get no apps updates
- users with local admin roles assigned (default) will receive updates but only when the computer is on and online for an undocumented time, eventually depending on idle status like search.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Considerations for Business Store / Intune / Autopilot
The draft imho does consider Microsoft Store, yet I am missing a major usecase for business users
- Microsoft Store for Business
- in junction with app deployment via Intune over Store for Business and Autopilot
Limitations of Store support for Winget
- the team / author @KevinLaMS might want add conceptual remarks on the limitations with LTSC Client and and Servers and Server SAC which have no Store support.
In these cases users have to fall back to native winget features. Referencing planned backport of winget to LTSC versions, likely including SAC versions of Windows Server, for consistency.
This pull request has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 7 days. It will be closed if no further activity occurs within 7 days of this comment. |
@KevinLaMS is this still a thing being worked on? |
This pull request has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 7 days. It will be closed if no further activity occurs within 7 days of this comment. |
Uh guys. @KevinLaMS @JohnMcPMS @denelon |
Sorry all. We've had quite a bit of internal discussion going on about store support. The latest release has some code behind a feature toggle with a POC that we've been working on. Unfortunately, we haven't gotten as far along as we had hoped. There is other activity going on right now to look at how we can build a set of manifests for some store apps that are free, and rated e for everyone. We're thinking about building the manifests for those and putting them into a different source for the package manager. The challenges associated with commerce and other requirements we have with store Apps have been a bit more involved than originally anticipated. We may have to split #117 into smaller pieces in order to get functionality out, and to make the right subset of store apps available as we can. |
Good news @denelon my previous mentioned general issues that store app might not update automatically seemed to be fixed in Insider Dev but also outside. Needs more careful observation if is entirely fixed. |
This pull request has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 7 days. It will be closed if no further activity occurs within 7 days of this comment. |
Per issue 117, we need to add store support. This is a draft of the requirements to help drive the dev spec.
Microsoft Reviewers: Open in CodeFlow