Packaging And Install¶
Plugin discovery uses standard Python entry points.
Current groups:
codira.analyzerscodira.backends
Install model:
codiracore stays installable on its own- third-party plugins are separate distributions
- official first-party plugins also use separate distributions under
packages/ - plugins are discovered from the current Python environment
codira pluginsreportsorigin=core,origin=first_party, ororigin=third_partyto clarify ownership
Typical local workflow:
source .venv/bin/activate
python ../codira/scripts/install_first_party_packages.py \
--python "$VIRTUAL_ENV/bin/python" \
--include-core
pip install -e /path/to/codira-demo-analyzer
codira plugins
Copyable example distributions live under:
examples/plugins/codira_demo_analyzerexamples/plugins/codira_demo_backend
Repository-owned first-party distributions now live under:
packages/codira-analyzer-pythonpackages/codira-analyzer-jsonpackages/codira-analyzer-cpackages/codira-analyzer-bashpackages/codira-backend-sqlitepackages/codira-bundle-official
The authoritative repository-local editable install set for those packages is defined by:
python scripts/install_first_party_packages.py
The accepted published umbrella install name for the curated official set is
codira[bundle-official]. During the current monorepo phase, that umbrella
name is not a source-tree shortcut; repository contributors still install the
extracted packages from packages/ through the helper above.
For optional dependencies inside a plugin package, declare them in the plugin's
own pyproject.toml. The core package should not need to know about them.
If a plugin fails to load, codira plugins reports the failure without
requiring you to inspect internal registry code.