GithubHelp home page GithubHelp logo

steamdeckhomebrew / decky-plugin-database Goto Github PK

View Code? Open in Web Editor NEW
184.0 9.0 100.0 599 KB

Decky Plugin Database. PR your plugins to this repository to have them added to the store!

Home Page: https://beta.deckbrew.xyz

License: GNU Affero General Public License v3.0

Dockerfile 27.95% Shell 72.05%
database steam steamdeck store decky

decky-plugin-database's Introduction

Decky Plugin Database Chat

This repository exists solely for developers to submit plugins

Use the built-in Plugin Store to download and install plugins.

Submit your plugin

For plugin developers submitting their plugin for the first time, please consult the wiki page on submitting your plugin. This README provides a good resource for the simple git related and a few other items, but the wiki has the rest of the information you'll need.

To submit a plugin to Decky's plugin store, open a pull request adding your plugin as a submodule (take a look at #189 for example). Don't forget to bump your version number in package.json. If you are not sure how to make a submodule, please reference the git docs on submodules.

Once you have your submodule added, in order to update it,
change directories to plugins/your-plugin and run git submodule update --init.
This should update your plugin to the latest version.

Please make sure your plugin is compliant with the pull-request template's steps. Plugins found to be out of compliance will not be accepted. If your plugin does not meet any of the criteria for utilizing a custom backend, then it only requires testing against Stable and Beta SteamOS Update Channels.

decky-plugin-database's People

Contributors

aagaming00 avatar beebls avatar davocarli avatar dozennn avatar frogthefrog avatar gedasfx avatar heyitswaters avatar hulkrelax avatar iladis avatar isiah-lloyd avatar jessebofill avatar jurassicplayer avatar kp2048 avatar marissa999 avatar mcarlucci avatar mirobouma avatar ngnius avatar omgduke avatar outpox avatar popsulfr avatar safijari avatar saumya-banthia avatar scrumplex avatar skyleite avatar suchmememanyskill avatar thelogicmaster avatar tormak9970 avatar traindoctor avatar werwolv avatar wheaney avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

decky-plugin-database's Issues

Custom MangoHUD Needs update for decky-frontend-lib version

Custom MangoHUD Needs update to a minimum decky-frontend-lib version of 1.7.5 or greater before we make a stable release of decky-loader otherwise the addon will have to be removed from the store. @simons-public If you could join the SDH discord to discuss with the team that would be greatly appreciated.

Plugin builds regularly fail when uploading to the store and these are not marked as failed runs

Caused by an "internal server error", likely an unavoidable CDN problem.

  • Uploading plugins to store:
Run shopt -s dotglob
Processing plugin Junk-Store
  Notice: Processing plugin Junk-Store v1.0.1 (by Eben Bruyns)
  Notice: Uploading
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                   Dload  Upload   Total   Spent    Left  Speed
  
    0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  100  110k    0     0  100  110k      0  92999  0:00:01  0:00:01 --:--:-- 93072
  100  110k  100    21  100  110k      9  52697  0:00:02  0:00:02 --:--:-- 52734
  100  110k  100    21  100  110k      9  52695  0:00:02  0:00:02 --:--:-- 52734
  Notice: Internal Server Error

https://github.com/SteamDeckHomebrew/decky-plugin-database/actions/runs/9155996517/attempts/1

just need to add a check for this in the CI

Plugins using git@ form URLs causing prompts when cloning

The following plugins use unnecessary authenticated GitHub URLs, which pop up an authentication prompt five times when I run git submodule update --init:

$ grep "git@" .gitmodules 
url = [email protected]:Loidbae/SDH-KLang.git
url = [email protected]:davocarli/deck-roulette.git
url = [email protected]:OMGDuke/SDH-GameThemeMusic.git
url = [email protected]:cboiangiu/decky-dictation.git
url = [email protected]:davocarli/sharedeck-y.git

This is because I (and probably the developers of these plugins) have a local SSH config configured for key-based auth with GitHub. There is, however, no reason why plugin submission URLs should use this URL form and this could probably be tidied up?

Question about using a flatpak build of another project within plugin

For reference I asked this question originally here. https://discord.com/channels/960281551428522045/960284327445418044/1187134163950768299

Basically what I'm curious about is how to properly include a flatpak of another project in a plugin.

In the deckbrew wiki it states "Black-box" meaning binaries generated from either FOSS or proprietary source code with no link back to source code and or documentation of any changes made are not allowed.

For more context the project I want to utilize in the plugin is https://github.com/Audio4Linux/JDSP4Linux.
Also I intend to build the flatpak myself. This is because the app is capable of being built HEADLESS and such a build is not distrubuted by the author. My plan would be to prebuild a flatpak with the build manifest (which I will include in the plugin repo) using a github action and also have it upload the build to the repo. The flatpak will be built directly from the source repo (no local version will be used/ nor changes made to source code), the url of which is in the build manifest. I will probably document all this in my plugin repo's readme as well. Is this sufficient to satisfy using and documenting built binaries in a plugin?

Add CI filter to only build relevant plugins in Pull Request

Seems like the CI builds every single plugin on every single PR, making it possible for a failing plugin to block everyone else from submitting anything (from my understanding). Only building the relevant plugins in any given PR should fix this.

Avoid uploading Plugins with enabled "debug" flag

There are no measures in place to avoid a plugin being uploaded with the debug flag being enabled in plugin.json.

It should either be removed automatically before uploading or not be uploaded at all.

[BUG] PRs Changing CI Causes All Plugins to Be Re-Uploaded to Testing

When CI is run from and CI has been modified, the current and desired logic will rebuild all plugins. This is great in theory for merges to main to verify all plugins will build properly, but it can and actively does cause issues on submissions/updates of plugins (this is sometimes requested, sometimes required) involving reuploading tons of plugins to the testing store when this was not intended. The CI needs to be modified while work on the CLI interface is continued to account for this occurrence and to prevent the re-uploading of plugins when mass rebuilds are desired but not their uploading.

Detecting Global DFL

Since all plugins are supposed to be compiled as IIFEs, you can test if they are using the global DFL or not by analyzing the output binary.

A cheap but good enough way of doing so if the following:

tail -n1 dist/index.js | grep -Eq '\(([^)]+,\s*)?((globalThis|window)\.)?DFL(,[^)]+)?\)+;?$'

This verifies that the last line of the script self-executes itself by passing in DFL. An exit status of 0 means that global DFL is used, 1 means it isn't.

It should account for different ways of writing IIFEs (not just rollup's).

Build process should use a whitelist instead of a blacklist

https://github.com/SteamDeckHomebrew/decky-plugin-database/blob/main/builder/entrypoint.sh currently has a blacklist of things to exclude but this will let files/folders slip in that shouldn't be..

We should instead whitelist files/folders. At a minimum, my understanding is there needs to be a dist folder with index.js and then a plugin.json file. Others may have a python file (not sure if that has to be main.py or not). Honestly it kind of sounds a bit too complicated. Might be just easier to have this process pull in a tagged release from the devs that has everything already built. My repo has a build pipeline that pushes out a zip file of exactly what is needed to install my plugin and it creates a release for it (see https://github.com/hulkrelax/deckfaqs/releases/tag/v1.0.0). Might be something to consider.

SteamGridDB Issues

Over the past couple of days I have tested the SteamGridDB plugin extensively on stable and beta. For the most part this it's worked absolutely fine, with one of the earliest bugs I found resulting in a "hiding" option to change artwork when this is accessed through library view. I believe the bug has occurred in the latest version of the plugin, so in my experience it isn't fully patched out yet.

That's not the main issue. One that I'm now facing is that the plugin can't always keep up with the user if assets are being changed at a fairly fast rate. (Let's say spending thirty seconds or so on each game, changing various asset types before moving onto the next.) The asset loading will occasionally bug out if you're working at this sort of speed or faster. Subsequently, when you try to change the artwork on a game it may load the assets from the previous game you edited, or maybe a few before that. It is confusing to see assets from a different game appear. However, the issue isn't major as it can easily be resolved by exiting out of the artwork changer and trying again.

SteamOS 3.3.3, build 20221213.1, kernel 5.13.0-valve21.3-1-neptune
Decky 2.4.6-pre5
SteamGridDB latest (1.0.0?)

This bug report was requested by the plugin author. Is anybody else able to reproduce this issue or found any others?

Plugins are not sorted by latest version on the Testing Store

Currently, the Decky Loader's store front end does not recommend the latest version of plugins for all plugins.

At the moment, the following plugin is affected, with a screenshot:

  • Emuchievements by Witherking25 (1.0.1.-7bcf1db currently recommended, while several 2.0.0. versions are available.)
    image
    image

In the past, several other plugins have been affected as well (notably Controller Tools), but these plugins have been passed to the regular store. The default store is not affected by this bug, as it sorts properly by the semantic version number.

A personal recommendation would be to sort a version by date, rather than alphabetical order. This would also out rule any sorting errors caused by duplicate semantic version numbers but with different commit IDs.

Not working Docked mode

Crashes if docked to a TV when trying to record using decky recorder.
It's either crashed or not working not recording.

To fix this on my end, I'll have to restart and record when handheld.
It wont work while docked.

Also additional, Steam + Y button disconnects bluetooth controller which is also the new replay mode.

Thank you for your work

Check for missing or incorrect URLs in plugin.json

CI currently does not check if there is a missing or incorrect URL for the image tag in plugin.json, which leads to seemingly successful deployments where the plugin does not actually get uploaded to the testing store.

[CI] Allow a setup.sh step that generates files required for build

This is specifically for custom build toolchains support; In the Kotlin/Multiplatform implementation I'm working on, the package.json and related metadata files are generated by the toolchain, rather than being provided directly. Having a separate entrypoint to run e.g. ./gradlew generateMetadataFiles would be very helpful here.

Builder - Error Checking

This bash script should check if a plugin build errors out, and skip rsync'ing it over and any further steps. It should show this error clearly in the build log (maybe red ANSI colored text?), but continue building other plugins instead of just failing the entire run.

It would also be nice to have a summary of which plugins failed and succeeded to build in this run after all plugins finish building,

Plugins in Need of Bump to DFL >= 3.19.1

I havr gotten responses from everyone but @0xD34D, @Loidbae. Currently, plugins that have not been updated to DFL >= 3.19.1.

Once the current SteamOS beta release comes to stable, the relevant plugins that have not been updated will no longer work on any branch properly. At that point broken plugins will be hidden from the store until they are patched.

Thanks.

Decky Recorder does not show up

Hey there I just noticed after resting my Steam Deck and doing a fresh install of Decky Loader that Decky Recorder does not show up in the plugin search any more.

Update channel: Stable
Marked place: Stable

But also I was not able to find Decky Recorder on Testing Update or testing marketplace.
Got the plugin delisted?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.