Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Major release] Spicetify v3 #3038

Open
Delusoire opened this issue May 21, 2024 · 0 comments
Open

[Major release] Spicetify v3 #3038

Delusoire opened this issue May 21, 2024 · 0 comments

Comments

@Delusoire
Copy link
Contributor

Delusoire commented May 21, 2024

V3 comes with a major architectural shift, with goals of correctness and robustness.

📝 Provide a description of the new feature

V3 splits the project into a CLI/TUI, hooks, and modules:

  • The CLI will have built-in support for installing modules from GitHub URLs, a URI handler, and a daemon service. The CLI will only be responsible for extracting xpui.spa, setting up symlinks from xpui to spicetify's config folder, and patching index.html to load the hooks. The CLI is as minimally intrusive as possible.

  • The hooks are the first javascript that runs on the client, they mainly patch the webpack loading mechanism to allow runtime injections and transformations on the source files. They're also responsible for loading the modules after ensuring that all their versioned dependencies are met and have been loaded.

The CLI and the hooks are assumed to be universal, they should work on all Spotify versions.

  • Modules are the generalization of jsWrappers, extensions, themes, custom apps, and snippets. Every module has a metadata.json, containing information about the module and entry points for js, css, and mixins. Modules are identified by a string, and can "depend" on (version ranges of) other modules.

Modules can also "depend" on specific version ranges of Spotify itself.
Modules (including custom apps) have a lifecycle and can be loaded and unloaded without refreshing the page.

@Delusoire Delusoire changed the title Temporary title [Major release] Spicetify v3 May 21, 2024
@Delusoire Delusoire moved this to In Progress in Spicetify v3 - bespoke May 21, 2024
@Delusoire Delusoire moved this from In Progress to Triage in Spicetify v3 - bespoke Jun 26, 2024
@Delusoire Delusoire moved this from Triage to Backlog in Spicetify v3 - bespoke Jun 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

1 participant