Creating a Plugin#
An Origen plugin is simply an Origen application like any other, no special setup is required in order to make an existing application function as a plugin to another parent application.
Create a plugin workspace from the global environment:
$ origen new plugin protocol_common --desc "Shared protocol models"
$ cd protocol_common
$ origen env setup
$ origen exec pytest
The generated package can contain blocks, commands, interfaces, templates, patterns, flows, and documentation. Export only supported entry points and keep test-only helpers out of the public namespace.
Design Guidelines#
Keep reusable models independent of a specific parent DUT path.
Accept instance configuration through block options instead of globals.
Namespace commands and resources to avoid collisions.
Declare compatible Origen versions in
pyproject.toml.Test the plugin alone and inside at least one representative parent app.
Document configuration, targets, generated resources, and breaking changes.
To distribute an application, it must be packaged up by running the following command:
origen app package
This creates a Python wheel archive of the application
in the dist/ directory.
Releasing a Plugin#
To release a plugin, build a wheel and publish it to the Python package index used by consuming applications:
$ origen app package
The command creates a wheel below dist/. Validate that wheel in a clean
environment before upload. Publishing credentials and repository URLs are
organization-specific; use the package server’s supported secure upload flow.
Use semantic versioning for the plugin’s public API. A model or template change that alters generated output may require a release note even when Python call signatures remain compatible.