Publishing a Plugin

Packaging Tutorial

The best way to make your plugin available for others is by publishing it to a package manager registry.

Use the Python Packaging User Guide to learn how to package and publish a package to PyPI. Specifically, the Packaging Python Projects details this process.

Configuring Entry Point

Publishing the package will make it installable by package managers, but an extra step is necessary to make the package discoverable as a plugin by Arelle.

Arelle uses setuptools to discover packages that define entry points for Arelle. Entry points can be defined in pyproject.toml as described here. For ixbrl-viewer, that looks like this:

[project.entry-points."arelle.plugin"]
ixbrl-viewer = "iXBRLViewerPlugin:load_plugin_url"

For your project, swap out ixbrl-viewer with your plugin name, and swap iXBRLViewerPlugin:load_plugin_url with a reference to a method that returns a path to the Python script that defines __pluginInfo__.

Consider including ‘arelle’ and ‘plugin’ keywords in your package to make it more discoverable!