chawyehsu / dorado

🐟 Yet Another bucket for lovely Scoop
https://chawyehsu.com/blog/talk-about-scoop-the-package-manager-for-windows-again
The Unlicense
1.06k stars 103 forks source link

How to Maintain Manifest Files Efficiently in Scoop Bucket #871

Open lingkerio opened 4 months ago

lingkerio commented 4 months ago

Hello,

I am currently trying to contribute to the maintenance of manifest files in a Scoop bucket. I have been manually updating the manifest files locally and creating pull requests (PRs) for my changes. Specifically, I have been modifying the checkver section, including the url and regex fields. However, I am unsure if my approach is correct and efficient.

Here are my main questions and concerns:

  1. Manual Updates: I have been manually changing the version field, the URLs, and the hash values in the architecture section of the manifest. This process feels cumbersome and prone to errors. Is this the intended workflow for maintaining manifest files?

  2. Automation with checkver: I understand that the checkver section helps in automatically checking for new versions. Should I be focusing only on updating the checkver section? Will the other fields like version, architecture.url, and architecture.hash be automatically updated by a workflow or automation tool once checkver is correctly configured?

  3. Best Practices: Could you please provide some guidance or best practices for maintaining manifest files in a Scoop bucket? Any tips on how to streamline the process and ensure accuracy would be greatly appreciated.

Here is an example of a manifest file I recently updated: origin

{
    "homepage": "https://im.qq.com/pcqq/index.shtml",
    "description": "An instant messaging software service developed by Tencent",
    "license": "Freeware",
    "version": "9.9.11.240606",
    "architecture": {
        "64bit": {
            "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.11_240606_x64_01.exe#/dl.7z",
            "hash": "281931793c9260c7f220b34e16517f8fb577026186e6c1c94f7eac6489861543"
        },
        "32bit": {
            "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.11_240606_x86_01.exe#/dl.7z",
            "hash": "c14106bfff6ef44a006fc5a6bf8927933e67e8f9d30502f4d54d0736c790cfd4"
        }
    },
    "extract_dir": "Files",
    "shortcuts": [
        [
            "QQ.exe",
            "QQ"
        ]
    ],
    "checkver": {
        "url": "https://im.qq.com/pcqq/index.shtml",
        "regex": "QQNT/Windows/QQ_([\\d\\.]+)_([\\d]+)_x64_01\\.exe",
        "replace": "${1}.${2}"
    },
    "autoupdate": {
        "architecture": {
            "64bit": {
                "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_$match1_$match2_x64_01.exe#/dl.7z"
            },
            "32bit": {
                "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_$match1_$match2_x86_01.exe#/dl.7z"
            }
        }
    }
}

after

{
    "homepage": "https://im.qq.com/pcqq/index.shtml",
    "description": "An instant messaging software service developed by Tencent",
    "license": "Freeware",
    "version": "9.9.12.240715",
    "architecture": {
        "64bit": {
            "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.12_240715_x64_01.exe#/dl.7z",
            "hash": "7564581911375A83487D044E94B60333D5B2118ABF4EC6829AAA4EB953855256"
        },
        "32bit": {
            "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.12_240715_x86_01.exe#/dl.7z",
            "hash": "11F16BECBB65E266C25613449052CF01328D36F547D30DAA82C71520234085C7"
        }
    },
    "extract_dir": "Files",
    "shortcuts": [
        [
            "QQ.exe",
            "QQ"
        ]
    ],
    "checkver": {
        "url": "https://im.qq.com/pcqq/index.shtml",
        "regex": "QQNT/Windows/QQ_([\\d\\.]+)_([\\d]+)_x64_01\\.exe",
        "replace": "${1}.${2}"
    },
    "autoupdate": {
        "architecture": {
            "64bit": {
                "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_$match1_$match2_x64_01.exe#/dl.7z"
            },
            "32bit": {
                "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_$match1_$match2_x86_01.exe#/dl.7z"
            }
        }
    }
}

I would greatly appreciate any advice or instructions on how to proceed effectively with maintaining the manifest files. Thank you for your assistance!

cscnk52 commented 2 months ago

Great observation!

  1. Your focus should be on ensuring the accuracy of the checkver and download links, as the updates will be handled automatically by the GitHub Action Bot, Manually update is not recommend. As you've noticed, most commits in this repository are made by the GitHub Action Bot.
  2. Check for official wiki to find guidance, and others manifest is best practices.

And you've asked a really great question!