-
Notifications
You must be signed in to change notification settings - Fork 89
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
I cannot update the package built using inno setup #486
Comments
WingetCreate uses the architecture field (along with others if present) to find a suitable installer match for update from the previous manifest. When it cannot determine the architecture of the new installer from the URL (it looks for specific keywords like x64, x86, 32-bit etc), it tries to scan the installer binary to determine its arch. It's known that Inno is an x86 application, so inno installers are usually x86 irrespective of the architecture of the application it installs. What's happening here is that since the previous / base manifest contains a single installer node of x64 arch, WingetCreate tries to find a new URL from the command you've written that can match this installer node in the update. It cannot determine the arch from URL, so falls back to using binary architecture which happens to be x86 and due to this arch mismatch, WingetCreate fails to update the package. An easy fix here is you can override this behavior and explicitly tell WingetCreate what architecture you would like to target by appending it at the end of the URL. You can use this command to update your package:
|
This indeed works. The manifest files have been successfully downloaded and updated. Thank you for your assistance. I hesitated to open issues for something as straightforward as this, but the winget docs lack clear examples or documentation for such issues. They also do not specify the correct way to write commands. There's one more thing: I submitted pull requests to winget three days ago or more, and they haven't been approved yet. Is this normal? |
Thanks for calling this out, we need to work on updating the docs to make it more clear on what the best course of action is if these errors are encountered. Regarding your PR, it should have been checked in or at least reviewed. It takes a couple hours to go through our validation pipeline and a couple days for one of our moderators to approve it (Maybe a bit more given the timing of the holidays 🦃 ). Any errors that appear or feedback from our moderators need to be address before your manifests get checked in. |
ChatGPT were immediately approved. Meanwhile, my program, launched three days ago, has yet to receive approval: What mechanism is being relied upon in this process?" |
It was accepted 2 hours ago.... |
"Yes, my program was approved immediately after being mentioned here." |
@MesterPerfect; The community moderators over at winget-pkgs are all volunteers. Often times we, like the MSFT engineers, get busy with family or friends on the weekends, or have limited amout of time throughout the day to do reviews - sometimes its 20 minutes here, 30 minutes there, 15 minutes between other things going on, its not always an hour or two of concentrated time. A common practice is to start with the "easy" reviews or the PRs related to well-known packages and then work through the ones that remain. This is why some packages take only a few hours to be reviewed (Chrome, Firefox, and Git, for example, all make it past my email filter) and others take longer. Add onto that the fact that some packages need a MSFT employee to look at them and add a waiver, it all adds up quickly. Specific to your PR, I see a few reasons why it took 3 days to be reviewed -
|
Brief description of your issue
I added my software to winget but I can't update it to the new version
microsoft/winget-pkgs#113722
I tried all the commands available via wingetcreate docs but none of them worked
https://github.com/microsoft/winget-create/blob/main/doc/update.md
They all give me the same error message
Each new installer URL must have a single match to an existing installer based on architecture, installer type and scope. The following installers failed to match an existing installer:
Multiple matches found for X86 Inno installer detected from the url: https://github.com/tecwindow/SoundTranscriber/releases/download/V1.2.0/SoundTranscriberV1.2.0.exe
Try using the architecture and/or scope overrides to uniquely match new URLs to existing installer nodes in the manifest.
Steps to reproduce
Update the package using winget create commands
wingetcreate.exe update --submit --token xxxxxx --urls https://github.com/tecwindow/SoundTranscriber/releases/download/V1.3.0/SoundTranscriberV1.3.0.exe --version 1.3.0 tecwindow.SoundTranscriber
Expected behavior
Update the software to the new version
Actual behavior
Expected behaviorRetrieving latest manifest for tecwindow.SoundTranscriber
Downloading and parsing: https://github.com/tecwindow/SoundTranscriber/releases/download/V1.2.0/SoundTranscriberV1.2.0.exe...
Each new installer URL must have a single match to an existing installer based on architecture, installer type and scope. The following installers failed to match an existing installer:
Multiple matches found for X86 Inno installer detected from the url: https://github.com/tecwindow/SoundTranscriber/releases/download/V1.2.0/SoundTranscriberV1.2.0.exe
Try using the architecture and/or scope overrides to uniquely match new URLs to existing installer nodes in the manifest.
Environment
The text was updated successfully, but these errors were encountered: