Comments (4)
For this the implementation details can be:
Query all manifests of a given PackageIdentifier:
If the immediate previous manifest contains DisplayVersion:
- Verify that the new manifest also contains DisplayVersion
- Verify that DisplayVersion != PackageVersion field in the manifest
If the immediate previous manifest does not include DisplayVersion:
- Verify the newer manifest does NOT include it
Throw a warning if inconsistencies are found i.e., some manifests include DisplayVersion and some don't
Oh yes,, these checks should also be performed. Maybe during manifest validation, which happens earlier in the process, before the package install into a VM.
Currently, a reduced form of this check (only checking against 1 previous manifest) is performed during validation. Shifting this check forward in the process would be beneficial. For best user experience, all errors should be presented at once and early in the process, allowing them all to be fixed in one remediation cycle.
- Right now, users can encounter a manifest error, an installer error, and a validation error, and have to come back and fix their PR 3 times or more. Moving this check forward in the pipeline process will help reduce that number closer to 1.
This check (sanity check DisplayVersion against previous manifest versions) couples nicely to the other check (verify installed DisplayVersion matches manifest DisplayVersion) to help ensure matching.
from winget-pkgs.
This is essential for matching, which drives upgrades.
Implementation thoughts:
Since the validation pipeline performs a package install, this data should be available in validation VM just afterwards, then become emitted in the logs as a pipeline message or warning - maybe DisplayVersion Mismatch - the DisplayVersion from the manifest does not match data in Windows Registry
or similar. And have a PR label attached. From there, various PR automation could transport the error into the PR comments.
Ideally, this message wouldn't block the rest of the validation pipeline process - similar to the "needs manual review" type of output, this would emit into logs, and our existing PR automation would add the appropriate label.
from winget-pkgs.
Since the validation pipeline performs a package install, this data should be available in validation VM just afterwards, then become emitted in the logs as a pipeline message or warning - maybe
DisplayVersion Mismatch - the DisplayVersion from the manifest does not match data in Windows Registry
or similar. And have a PR label attached. From there, various PR automation could transport the error into the PR comments.
I think the implementation detail above is relevant to issues like:
This issue focuses more on checking the state of previous manifests in a given PackageIdentifier and determining whether including / excluding AppsAndFeaturesEntries: DisplayVersion
would cause version range issues or not. Even if the DisplayVersion correctly matches whatever is written to ARP, including it in the manifest may not always be a good idea. There are many cases where having a valid PackageVersion
field that matches ARP suffices; using DisplayVersion
in these cases causes unnecessary version mapping, and leads to the "infinite upgrade" scenario.
from winget-pkgs.
For this the implementation details can be:
Query all manifests of a given PackageIdentifier:
-
If the immediate previous manifest contains DisplayVersion:
- Verify that the new manifest also contains DisplayVersion
- Verify that DisplayVersion != PackageVersion field in the manifest
-
If the immediate previous manifest does not include DisplayVersion:
- Verify the newer manifest does NOT include it
-
Throw a warning if inconsistencies are found i.e., some manifests include DisplayVersion and some don't
from winget-pkgs.
Related Issues (20)
- [Update Request]: Skrepysh.mineSquid HOT 2
- [Package Request]: UniExtract2 HOT 1
- [Package Request]: FLAC (RareWares Builds) HOT 2
- [Package Issue]: JRSoftware.InnoSetup HOT 2
- [Package Issue]: Microsoft.VisualStudio.2022.Enterprise fails with "0x8000ffff : Catastrophic failure" HOT 3
- [Update Request]: update miniserve to 0.27.1
- [Package Request]: proXSign HOT 1
- [Package Request]: WinCDEmu HOT 3
- [Package Request]: Hourglass HOT 1
- [Package Request]: UrbanVPN HOT 1
- [Package Request]: Noesis HOT 1
- [Package Request]: Dragon UnPACKer
- [Package Request]: Modboy HOT 1
- [Package Request]: Unlocker
- [Package Request]: Plazma Burst 2 official launcher HOT 1
- [Package Request]: Add BORICA B-TRUST egov sign application HOT 5
- [Package Request]: Anim8or HOT 1
- [Update Request]: New version: Foxit.PhantomPDF version 13.1.2.22442
- [Package Request]: run-hidden
- [Update Request]: Process Explorer v17.06 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from winget-pkgs.