pcb-rnd - plugin development - when to create a new plugin

The generic structure of the pcb-rnd source code is:

Core is mainly providing startup and basic infrastructure, including basic objects, basic operations on those objects, event and action systems, configuration system, etc. Anything else, including any file format, GUI, and majority of the user features are implemented in core plugins. Thus most of the code of pcb-rnd are in the core plugins.

When a new feature is to be introduced, it should go into a plugin by default. Adding it in core should be considered only if it's a basic, central infrastructure multiple other plugins will depend on.

Whether the new feature should go in an existing core plugin or should get a new core plugin depends on how far it is from existing plugin functionality. We generally prefer to have more, smaller plugins instead of few large ones. However we also prefer to avoid code duplications.

Before creating a new plugin or adding the feature in an existing plugin, please consult the project leader. We are liberal and welcoming about new plugins; however, any new plugin must meet a few requirements: