Plugins may depend on other plugins, and on Postulo's modules #884

Closed
opened 2026-10-10 16:11:43 +00:00 by tiagoagueda · 1 comment
Owner

A level-0 plugin may depend on other level-0 plugins, as well as on Postulo and on Postulo's modules and sub-modules.

What exists today

  • A release says which Postulo it is for (requires_postulo, held at install, #186). No plugin declares a dependency on another: no requires anywhere in the plugin code.
  • Python dependencies come from the wheel's metadata and are installed from PyPI at install time.

What would change

  • Manifest.requires (plugin and module names, with version specifiers for plugins) and the same in the catalogue's Release.
  • Install refuses, naming what is missing, or offers to install the missing plugin from the same catalogue; a plugin whose dependency is switched off is off and its switch disabled, with the reason beside it (the cascade rule of #873).
  • Removing a plugin others depend on is refused, naming them.

Decisions

  • Auto-install a dependency. Recommended: offer it, never do it silently — installing runs code (#94).

Checked against main at 8c3d03570. From the maintainer's improvements list of 2026-10-07 (plugins).

A level-0 plugin may depend on other level-0 plugins, as well as on Postulo and on Postulo's modules and sub-modules. ## What exists today - A release says which Postulo it is for (`requires_postulo`, held at install, #186). **No plugin declares a dependency on another**: no `requires` anywhere in the plugin code. - Python dependencies come from the wheel's metadata and are installed from PyPI at install time. ## What would change - `Manifest.requires` (plugin and module names, with version specifiers for plugins) and the same in the catalogue's `Release`. - Install refuses, naming what is missing, or offers to install the missing plugin from the same catalogue; a plugin whose dependency is switched off is off and its switch disabled, with the reason beside it (the cascade rule of #873). - Removing a plugin others depend on is refused, naming them. ## Decisions - **Auto-install a dependency.** Recommended: offer it, never do it silently — installing runs code (#94). Checked against `main` at `8c3d03570`. From the maintainer's improvements list of 2026-10-07 (plugins).
tiagoagueda added this to the 1.0.0 milestone 2026-10-10 16:11:43 +00:00
Author
Owner

Fixed in 3c56b6db7 on main.

Fixed in 3c56b6db7 on main.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#884
No description provided.