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!