sailfishos-chum / main

Documentation and issue tracker for the SailfishOS:Chum community repository
https://build.merproject.org/project/show/sailfishos:chum
MIT License
26 stars 4 forks source link

Setting up a "store" #29

Closed rinigus closed 9 months ago

rinigus commented 2 years ago

As integration with OpenRepos does not seem to be happening at any significant speed, we should consider backing up Chum repos with some kind of experience similar to app stores. This issue is made to discuss it and agree on steps forward.

Ideally, we need an app to interact with Chum on device and some kind of web presence. I'll try to write up what would such experience could be and later some implementation aspects. In principle, we should aim for something similar to Storeman and OpenRepos.

App:

Web:

Ideally same as for app, in part that makes sense:

@mentaljam can surely add to that list or comment on it.

If we start from the app and can provide all data for that, maybe it will be easier to roll out web interface later. In the current state, sailfishos-chum-gui already shows that it is possible to get list, some info on app, install and remove it.

Apps are missing icons, issues, and so on. In principle, we can add such data and provide to ChumGui via some files online. For example, each app can add at OBS some special file meta.yaml that would list app's repo, link to issues, links to discussion forums (multiple if needed), link to releases, link to icon. Unless we can specify in SPEC and make it available to ChumGui from PackageKit. Those package-specific meta.yaml datasets can be collected by a crawler and published at some github repo or in some S3 type bucket. This would allow ChumGui to refresh it as soon as needed from a single source. The crawler can just update it (if needed) once an hour, for example.

For GitHub and GitLab repos, we can also show number of stars (and forks), if some simple API is available. That would indicate the status of the app similar to currently used stars in OpenRepos. Advantage of guiding users to online issue trackers and discussion forums is a great experience for developers. In addition, it allows to merge users from different platforms for the apps that are multi-platform.

Thoughts, ideas?

cc: @mentaljam @piggz

black-sheep-dev commented 2 years ago

It would be nice to add an url to a readme (markdown) to the package:

name: Dummy App
type: desktop-application # not sure we need that
categories:
- Media
custom:
- repo: https://github.com//johndoe/harbour-dummy-app/
icon: https://raw.githubusercontent.com//johndoe/harbour-dummy-app/master/harbour-dummy-app.svg
screenshots:
- https://github.com/johndoe/harbour-dummy-app/raw/master/metadata/screenshots/screenshot1.png
- https://github.com//johndoe/harbour-dummy-app/raw/master/metadata/screenshots/screenshot2.png
- https://github.com//johndoe/harbour-dummy-app/raw/master/metadata/screenshots/screenshot3.png
url:
- donation: https://www.paypal.me/johndoe
- readme: https://github.com/johndoe/harbour-dummy-app/raw/master/README.md

This could be rendered in Chum GUI instead of the description if present.

rinigus commented 2 years ago

@black-sheep-dev: I have opened an issue at https://github.com/sailfishos-chum/sailfishos-chum-gui/issues/73 , will reply there.

Olf0 commented 1 year ago

All tasks in the original post of the first section "app" are fulfilled by the SailfishOS:Chum GUI application (hence I ticked these checkboxes), but for the section "web" the SailfishOS-OBS only provides the aspect "search" by its search field for the SailfishOS:Chum community repository.

Still I believe that is sufficient and this issue can be closed.

rinigus commented 1 year ago

Agreed, it is sufficient. Closing.

HenkKalkwater commented 9 months ago

Sorry for bumping a closed issue, but I have been working on a web interface for Chum, if you are interested. You can find its source code in this repo and the website running over here.

It is a static website generator written in Python, that runs every other day in GitHub actions and publishes the result to GitHub pages. The generated website lists all apps and packages by name and category, shows recently updated packages and has search functionality.

There are surely some improvements that could be made regarding functionality, design and others. If you have any suggestions, feel free to open an issue on the repo. Especially for the about page, since I mainly copied it from this README

I'd be interested in transferring it to the SailfishOS:Chum organisation if that's okay, so that the site can be published under the sailfishos-chum.github.io domain and so that the notice at the top of the site can be removed.

poetaster commented 9 months ago

It is a static website generator written in Python, that runs every other day in GitHub actions and publishes the result to GitHub pages. The generated website lists all apps and packages by name and category, shows recently updated packages and has search functionality.

Neato! No hosting required :)

I'd be interested in transferring it to the SailfishOS:Chum organisation if that's okay, so that the site can be published under the sailfishos-chum.github.io domain and so that the notice at the top of the site can be removed.

I think this is a great idea.

piggz commented 9 months ago

I too think this is a great idea. How are you determining recent updates? Can you order by update? Could you also provide an API for the native app to order by update date?

HenkKalkwater commented 9 months ago

I too think this is a great idea. How are you determining recent updates? Can you order by update? Could you also provide an API for the native app to order by update date?

In the primary.xml.gz file of the repository, I use the time in the file attribute of the time element in the package element. I assume this timestamp represents when the source to build the package was updated, but since I can't find any formal documentation of the format, it is just a guess. The best documentation I found was https://en.opensuse.org/openSUSE:Standards_Rpm_Metadata.

<metadata xmlns="http://linux.duke.edu/metadata/common" xmlns:suse="http://novell.com/package/metadata/suse/common" xmlns:rpm="http://linux.duke.edu/metadata/rpm" packages="1331">
    <package type="rpm">
        <!-- most properties omitted -->
        <time file="1694576425" build="1694576388"/>
    </package>
    <!-- Packages omitted -->
</metadata>

This seems to work well enough for now, but I suspect whenever a new repository is set up for a new Sailfish OS version, the time for all packages will be set to a little while after the new repository has been created.

Edit: I plotted the file time in a box plot (at least, it is supposed to be one), seems like my suspicion seems true: almost all packages are created around 12-14 September and most of the dates are outliers. Those outliers are probably whenever a package is updated. afbeelding

rinigus commented 9 months ago

@HenkKalkwater, great job! Indeed, it would be great to have it under this ORG. We will just make you an owner of that repository and you could continue your work on it without any problems. Reopening an issue, as it seems to be still closed

HenkKalkwater commented 9 months ago

@rinigus I need to transfer the repository to someone who was the permission to create public repositories in the sailfishos-chum organisation. Can I transfer it to you, so you can transfer it to the organisation and add me back as collaborator?

rinigus commented 9 months ago

Hmm, I think you can transfer directly. Try and we can see if it works

HenkKalkwater commented 9 months ago

I get an error that I don’t have the permission to create public repositories on sailfishos-chum

rinigus commented 9 months ago

Then we will make it easier - I'll import it :). One sec

rinigus commented 9 months ago

Its currently as chum-web. When ready, we should rename it to something that goes into URL proposed by you. @HenkKalkwater, you should get an invite from Github for that repo

HenkKalkwater commented 9 months ago

Okay, I got it deployed on https://sailfishos-chum.github.io/ and I have removed the notice at the top!

rinigus commented 9 months ago

Congratulations! Closing here again and please announce it on the forum :)

HenkKalkwater commented 9 months ago

Post on the formum: https://forum.sailfishos.org/t/announcing-chum-web/17593?u=ahappyhuman

Op Donderdag 14 december 2023 schreef rinigus:

Congratulations! Closing here again and please announce it on the forum :)

-- Reply to this email directly or view it on GitHub: https://github.com/sailfishos-chum/main/issues/29#issuecomment-1856536781 You are receiving this because you were mentioned.

Message ID: @.***

HenkKalkwater commented 9 months ago

@piggz

I too think this is a great idea. How are you determining recent updates? Can you order by update? Could you also provide an API for the native app to order by update date?

If the information is accessible from within the library you within chum-gui, I suppose that would have preference. Alternatively, I can provide either a RSS feed with the latest updates as an user requested or something like the package.json file that is currently generated to power the search results, but then sorted by update time.

What would have your preference?