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

Modules as downloadable plugins #1002

Open
Julusian opened this issue Feb 24, 2020 · 2 comments · May be fixed by #3062
Open

Modules as downloadable plugins #1002

Julusian opened this issue Feb 24, 2020 · 2 comments · May be fixed by #3062
Labels
Enhancement New feature or request Idea Needs beer! This needs discussion while drinking beer
Milestone

Comments

@Julusian
Copy link
Member

Julusian commented Feb 24, 2020

Something for v3

Describe the feature
Currently the only way to distribute newer versions of a module to users is for the companion team to release a new version of everything. This has not been happening as often as I would like, as shown by the many users on old versions asking for already implemented device functionality.

It would be much nicer for modules to be distributed via a modules 'store'/registry. This would essentially mean that from within companion users could search for and install or upgrade device integrations. It would allow for much quicker development of modules to being deployed to users, and reduce some of the pressure and need to do frequent releases of the core code.

  • I expect that there will still want to be the same review process that modules go through before they are available on the store.
  • This will require a more formal and documented api for the modules, perhaps with some method of versioning (base classes & typescript definitions should live as an npm package).
  • This will require some updates to every module
  • Some thought will be needed on how to make native dependencies work properly.
  • A default set of common modules will want to be included in the default install
  • A way of downloading in a browser and installing from a file would be required (for offline machines, or private modules)
  • This would negate the need for Support for modules with build step #837, as that would be contained within each module repo and done as part of the publish script
  • Being able to hot reload modules for updates would really make this great to work with
  • Some thought is needed on how to develop modules and load them into the system (I have some ideas)

Ideally I would like for the streamdeck to be done in the same way (via a different module type/api) to allow for other hardware devices to be used, and to support newly released hardware much quicker, but that could be a separate task to this.

Is this platform dependent (windows, mac, ..)?
No

Usecases
Add a couple of usecases for why this should be implemented and when/why to use it.

@josephdadams josephdadams added Enhancement New feature or request Idea Needs beer! This needs discussion while drinking beer labels Feb 24, 2020
@MeestorX
Copy link

I fully support this idea. Especially the ability for users to add/remove modules!

@Julusian
Copy link
Member Author

Julusian commented May 9, 2022

Groundwork for this has been done in https://github.com/bitfocus/companion/tree/develop
In Companion 3.0 it will be possible to both add in modules to an existing companion installation and develop modules against the release builds of companion.
However, it does require converting modules to a new module-api

More documentation will follow when we get closer to it being released. There will not be a push to update modules to the new api until we are very close to release, and it wont be required to be used until a later release of companion

In a future release we can look at how to distribute modules, to address the other points in this list

@Julusian Julusian added this to the v3.1 milestone Apr 23, 2023
@Julusian Julusian mentioned this issue Jun 22, 2023
2 tasks
@Julusian Julusian modified the milestones: v3.z, v3.develop Dec 17, 2023
@Julusian Julusian modified the milestones: v3.develop, v3.5 Oct 1, 2024
@Julusian Julusian linked a pull request Oct 10, 2024 that will close this issue
19 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request Idea Needs beer! This needs discussion while drinking beer
Projects
Status: In Progress
Status: No status
Development

Successfully merging a pull request may close this issue.

3 participants