microsoft / winget-pkgs

The Microsoft community Windows Package Manager manifest repository
MIT License
8.66k stars 4.51k forks source link

[Package Request]: Firebird #119010

Closed uzzle1987 closed 1 year ago

uzzle1987 commented 1 year ago

How can we help?

I would like someone else to build the manifest.

Please read and ensure the following

Please provide the following information

Download Page Url: https://firebirdsql.org/en/firebird-3-0/ Publisher: FirebirdSQL Package Name: ??? Description: "Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, MacOS and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981.

The Firebird Project is a commercially independent project of C/C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corporation on 25 July, 2000." Package Version: 3.0.11.33703 Installer URL: https://github.com/FirebirdSQL/firebird/releases/download/v3.0.11/Firebird-3.0.11.33703_0_x64.exe https://github.com/FirebirdSQL/firebird/releases/download/v3.0.11/Firebird-3.0.11.33703_0_Win32.exe

Github Repository: https://github.com/FirebirdSQL/firebird

There are also other Firebird Versions like 2.5 and 4.0. They are not compatible across the versions. If a database was created with 3.0 it will not run/open under 4.0. If there is a new version it make sense that it is only updated within a version 3.0.11 --> 3.0.12 and NOT 3.0.11 --> 4.0.3. I am not sure if this should be reflected by the "Package Name" already. Could be splitted with different IDs like Firebird_3_0 / Firebird_4_0 / Firebird_2_5, but there might be a better way to guarantee the compatibiltiy with future updates and new major versions.

uzzle1987 commented 1 year ago

@Dragon1573 Thank you for the initial Firebird 4 commit. Can you also assist with the initial commit for Firebird 3? I tried it locally with wingetcreate, but the resulting files lookes quite different from yours for Firebird 4.

Dragon1573 commented 1 year ago

@uzzle1987 Okay, but I have several PRs for other packages. All of them is requesting changes by moderators. I have to fix them first.

I have some tips for you:

  1. Download installers to your local device, and provide them for wingetcreate.exe locally with a Web Server (such as gohttpserver.exe and python -m http.server). You can use this URL for local testing. After test passed, change back to the official online URL. wingetcreate.exe DOES have a cache mechanism but winget.exe haven't.
  2. Create an extremely simple manifest for Firebird 3 with wingetcreate.exe, it will "download" the installer and inspect the file type automatically.
  3. Copy & paste my manifests for Firebird 4, modify properties to match Firebird 3.
  4. Test your manifests locally with Tools/SandboxTest.ps1, make sure properties are correct.
uzzle1987 commented 1 year ago

@Dragon1573

I've tried it so far and used your files as a template. The validation says "ok", BUT I still have a question

I ran the "winget upgrade" command in the Sandbox after the installation and it seems that winget wants to upgrade to Firebird 4.0. This should not happen! How to fix that? Does the "Package Name" in the locale file be different? Or is this only a local issue, because there is no "FirebirdProject.Firebird.3" manifest online at the moment?

image

Dragon1573 commented 1 year ago

I ran the "winget upgrade" command in the Sandbox after the installation and it seems that winget wants to upgrade to Firebird 4.0.

@uzzle1987 I dont' know about this situation either ...

  1. I think this is caused by the same PackageName between yours and mine?
  2. In https://github.com/microsoft/winget-pkgs/pull/122155#discussion_r1349760189 , @mdanish-kh request changes and mentioned "Fuzzy matching" about the package name. At the moment, there's only FirebirdProject.Firebird.4 available in winget source and "fuzzy matching" is automatically enabled.
  3. After you manifests are submitted, "fuzzy matching" will disabled. FirebirdProject.Firebird.3 and Firebird.4 are different packages, and winget.exe should tell them apart.
Dragon1573 commented 1 year ago

Fell free to open issue for new package request, and submit manifests for the issue on your own. Moderators are willing to help you (well, I'm not a moderator 'cause I have no authority).

Tips

After submitting your manifests with wingetcreate submit, you can associate your PR with any issue as I did. Edit the first comment of your PR, and add "Resolve \<id of your issue>".