Modern package workflow
Ruoom plugins are installed into the same Python environment as Core. Do not clone a modern plugin into Core’splugins directory and do not add it manually to INSTALLED_APPS.
- Download the wheel supplied by Ruoom Code Lab or the plugin’s authorized GitHub release.
- Activate the virtual environment used by Core.
-
Install the wheel from its local path.
-
Set
RUOOM_PLUGINSin.envto a comma-separated list of installed plugin identifiers. -
Apply migrations, collect production static assets, and run Django checks.
-
Restart the application process after changing installed packages or
RUOOM_PLUGINS.
ruoom/settings.py for a normal installation.
Available package identifiers
Install dependencies before dependents. For example:
Upgrade or remove a plugin
Install a newer wheel with--upgrade, then run migrations and checks:
RUOOM_PLUGINS, restart the application, and then uninstall its distribution. Removing a package does not reverse or delete its database migrations.
Booking 1.2.2 exception
Booking 1.2.2 is distributed asbooking-plugin-1.2.2-customer.zip, not as a wheel. It retains the legacy flat source layout, so the no-copy package workflow above does not apply yet. Follow the Booking quickstart and do not attempt to install its customer ZIP with pip.
Troubleshooting
Unknown Ruoom plugin: use an identifier listed in Core’s plugin registry.- Plugin is absent from the UI: confirm the wheel is installed in the same interpreter used by
manage.py, its identifier is inRUOOM_PLUGINS, and the process was restarted. ModuleNotFoundError: reinstall the correct wheel and checkpython -m pip show <distribution-name>.- Migration errors: install and enable required plugins first, then run the unqualified
python manage.py migrateso Django orders dependencies.
