.. _reference:

Reference
=========

References describe the structure and function of the individual components in
Charmcraft.


Command-line reference
----------------------

The following pages document all of Charmcraft's commands, including their usage,
options, and arguments:

- :ref:`reference-lifecycle-commands`
- :ref:`reference-store-commands`
- :ref:`reference-account-commands`
- :ref:`reference-charm-commands`
- :ref:`reference-library-commands`
- :ref:`reference-extension-commands`
- :ref:`reference-other-commands`


Files
-----

In the context of Charmcraft, a *file* refers to any file in a project that can be
initialized or packed. The files are documented in the following pages:

- :ref:`actions-yaml-file`
- :ref:`charmcraft-yaml-file`
- :ref:`config-yaml-file`
- :ref:`contributing-md-file`
- :ref:`dispatch-file`
- :ref:`icon-svg-file`
- :ref:`libname-py-file`
- :ref:`license-file`
- :ref:`lxd-profile-yaml-file`
- :ref:`manifest-yaml-file`
- :ref:`metadata-yaml-file`
- :ref:`pyproject-toml-file`
- :ref:`readme-md-file`
- :ref:`requirements-txt-file`
- :ref:`src-charm-py-file`
- :ref:`src-workload-py-file`
- :ref:`tests-integration-test-charm-py-file`
- :ref:`tests-unit-test-charm-py-file`
- :ref:`tox-ini-file`
- :ref:`uv-lock-file`


Plugins and extensions
----------------------

Extensions help initialize your project with template YAML and Ops-powered Python to
remove the boilerplate steps of crafting charms for Django, FastAPI, Flask, and Go
applications.

- :ref:`profile`
- :ref:`extensions`
- :ref:`plugins`


.. toctree::
    :hidden:

    analyzers-and-linters
    commands/index
    extensions/index
    files/index
    parts/index
    platforms
    profile
    changelog
