binarynonsense / comic-book-reader

ACBR - A comic book reader and converter for CBZ, CBR, CB7, EPUB and PDF files (Windows & Linux)
BSD 2-Clause "Simplified" License
184 stars 8 forks source link

Scoop app manifest #129

Closed ahmed-0011 closed 5 months ago

ahmed-0011 commented 5 months ago

Hi @binarynonsense,

I am looking to add ACBR to the scoop package manager repository. in the extras bucket since ACBR doesn't fit the main bucket criteria.

Using scoop on Windows, advanced users can install ACBR with only two commands:

> scoop bucket add extras (If you haven't already added the extras bucket) > scoop install acbr-comic-book-reader

Here's the app manifest I created for ACBR. So, in this issue, I want to discuss the properties of this manifest before publishing it to the scoop repository.

acbr-comic-book-reader.json

{
    "version": "3.4.1",
    "description": " ACBR - A comic book reader and converter for CBZ, CBR, CB7, EPUB and PDF files (Windows & Linux) ",
    "homepage": "https://github.com/binarynonsense/comic-book-reader",
    "license": "BSD-2-Clause",
    "url": "https://github.com/binarynonsense/comic-book-reader/releases/download/v3.4.1/ACBR_Windows.zip",
    "hash": "f986c142e02a5c230b858d5bf242754bc123d2f3dd9429176d4cbbdd2191cff5",
    "extract_dir": "ACBR_Windows",
    "bin": "acbr-comic-book-reader.exe",
    "shortcuts": [["acbr-comic-book-reader.exe", "acbr-comic-book-reader"]],
    "checkver": "github",
    "autoupdate": {
        "url": "https://github.com/binarynonsense/comic-book-reader/releases/download/v$version/ACBR_Windows.zip"
    }
}

Since the name of the app manifest defines the name of the package, and currently the name of the manifest is acbr-comic-book-reader.json, then to install ACBR, the command will look like this: scoop install acbr-comic-book-reader. But I'm thinking that maybe we can use a different name. For example, both acbr and comic-book-reader are available, so what do you think?

Scoop repository will handle any new releases of ACBR by automatically updating the manifest properties, such as the hash and url, using github actions.

Here's the guide to the scoop app manifest: https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests You can also check the other packages in the extras repository.

When you have the time, please let me know if you think that there is something I should add to or modify in the manifest.


If you have access to a Windows machine, you can install ACBR using the manifest directly: scoop install acbr-comic-book-reader.json

binarynonsense commented 5 months ago

Nice, thanks for doing it. I don't know much about Scoop or plan to use it myself but the more ways people can access ACBR the better :) I'll leave the final decisions and implementation to you but here are my thoughts:

I'd say "acbr" as it's sorter, but "acbr-comic-book-reader" seems fine too. I don't like "comic-book-reader" as it's too generic.

If you choose just "acbr" for the manifest name (and probably for the longer version too), for the description, as it says "Don’t include the name of the program, if it’s the same as the app’s filename", maybe you should delete the "ACBR - " part and start it directly with "A comic book reader and ..."

One doubt, in the autoupdater config, would "https://github.com/binarynonsense/comic-book-reader/releases/download/v$version/ACBR_Windows.zip" also include the betas?... that may be something most users wouldn't like. But maybe it doesn't, I just took a quick look at the autoupdate part of the wiki so I'm not sure exactly how it works and if it discards the ones that match more than v$version or you need to use $preReleaseVersion (or something else, that one just seemed related to the issue) somehow to do it.

ahmed-0011 commented 5 months ago

Thanks for the feedback. I think I will settle on acbr as the name of the manifest.

It seems that scoop only considers final releases if "checkver": "github" is used. And if you want to also include beta releases, you have to write some regex that will be used to extract the version number from the first matched release, so it can be substituted in the url.

I think I just have to make the changes you mentioned, and the manifest will be ready.

binarynonsense commented 5 months ago

Great.

Makes sense the default is to ignores betas / pre-releases.

binarynonsense commented 5 months ago

I'm going to close the issue, as the original question has been answered and it seems like you have everything you needed. But you can continue the conversation at any point if you want to add anything or have more questions related to this.