Template options

Defined options

The defined configuration values are defined into the cookiecutter.json file in the repository, with the default values:

{
  "plugin_name": "My Awesome Plugin",
  "plugin_name_slug": "{{ cookiecutter.plugin_name | slugify | replace('-', '_') }}",
  "plugin_name_class": "{{ cookiecutter.plugin_name_slug.title() | replace('_', '') }}",
  "plugin_category": [
    "Database",
    "Filter",
    "Raster",
    "Vector",
    "Web",
    "None"
  ],
  "plugin_processing": false,
  "plugin_description_short": "This plugin is a revolution!",
  "plugin_description_long": "Extends QGIS with revolutionary features that every single GIS end-users was expected (or not)!",
  "plugin_tags": "topic1,topic2",
  "plugin_icon": "path_to_an_image_or_leave_blank_to_use_default_icon",
  "author_name": "Firstname LASTNAME",
  "author_org": "Company",
  "author_email": "qgis@company.com",
  "qgis_version_min": "3.28",
  "qgis_version_max": "3.99",
  "repository_url_base": "https://gitlab.com/{{ cookiecutter.author_org }}/{{ cookiecutter.plugin_name_slug }}/",
  "repository_default_branch": "main",
  "open_source_license": [
    "GPLv2+",
    "GPLv3",
    "MIT",
    "None"
  ],
  "linter_py": [
    "Flake8",
    "PyLint",
    "both",
    "None"
  ],
  "ci_cd_tool": [
    "GitHub",
    "GitLab",
    "None"
  ],
  "ide": [
    "VSCode",
    "None"
  ],
  "post_install_venv": false,
  "post_git_init": false,
  "debug": false,
  "__prompts__": {
    "plugin_name": "\nName of the plugin. Used as value for `name` in the plugin `metadata.txt`.",
    "plugin_name_slug": "\nSlugified name of the plugin. Used to name the folder where the source code will be stored. Default value is deduced from the plugin name:",
    "plugin_name_class": "\nName of the main plugin class in Python code. By default, it's the camelcase version of the plugin name:",
    "plugin_category": {
      "__prompt__": "\nCategory of the plugin. Used as value for `category` in the plugin `metadata.txt` and to define in which menu the plugin will be installed:",
      "Database": "Database",
      "Filter": "Locator Filter",
      "Raster": "Raster",
      "Vector": "Vector",
      "Web": "Web",
      "None": "Generic (multi categories)"
    },
    "plugin_processing": "\nSet `hasProcessingProvider=True` in `metadata.txt` and add a boilerplate structure for processing algorithms.",
    "plugin_description_short": "\nThe punchline introducing the plugin. Used as value for `about` in the plugin `metadata.txt`:",
    "plugin_description_long": "\nThe long story describing the plugin. Used as value for `description` in the plugin `metadata.txt`:",
    "plugin_tags": "\nComma separated list, spaces are allowed inside individual tags. Used as value for `tags` in the plugin `metadata.txt`:",
    "plugin_icon": "\nLocal path to an image file to be used as plugin icon. If not provided, the templater icon is used.:",
    "author_name": "\nPlugin creator. Used as value for `author` in the plugin `metadata.txt`:",
    "author_org": "\nOrganization of the author. Also used as for `author` in the plugin `metadata.txt`:",
    "author_email": "\nContact email to ask about the plugin. Used as value for `email` in the plugin `metadata.txt`:",
    "qgis_version_min": "\nQGIS minimum version. Used as value for `qgisMinimumVersion` in the plugin `metadata.txt`.",
    "qgis_version_max": "\nQGIS maximum version. Used as value for `qgisMaximumVersion` in the plugin `metadata.txt`.",
    "repository_url_base": "\nURL to the public repository.",
    "repository_default_branch": "\nDefault git branch name. Defaults to `main`.",
    "open_source_license": "\nLicense of your plugin. Please consider that you should pick up the `GPLv2+`to comply with Qt and QGIS licenses.",
    "linter_py": "\nWhich Python linter to use in IDE and CI.",
    "ci_cd_tool": "\nWhich continous integration and deployment suite to use.",
    "ide": "\nWhich IDE software to use.",
    "post_install_venv": "\nCreate a virtual environment after project creation. Default to: no.",
    "post_git_init": "\nRun git init after project creation and add `repository_url_base` as remote origin. Default to: no.",
    "debug": "\nDebug/verbose mode. Default to: no."
  }
}

Options detailed

Option name

Description

plugin_name

Name of the plugin. Used as value for name in the plugin metadata.txt.

plugin_name_slug

Slugified name of the plugin. Used to name the folder where the source code will be stored.

plugin_name_class

Name of the main plugin class in Python code. By default, it’s the camelcase version of the plugin name.

plugin_category

Category of the plugin. Used as value for category in the plugin metadata.txt and to define in which menu the plugin will be installed.

plugin_description_short

The punchline introducing the plugin. Used as value for about in the plugin metadata.txt.

plugin_description_long

The long story describing the plugin. Used as value for description in the plugin metadata.txt.

plugin_tags

Comma separated list, spaces are allowed inside individual tags. Used as value for tags in the plugin metadata.txt.

plugin_icon

Path to an image file to be used as plugin icon. If not provided, the default icon is used.

plugin_processing

Set hasProcessingProvider=True in metadata.txt and add a boilerplate structure for processing algorithms. Default to: “no”.

author_name

Plugin creator. Used as value for author in the plugin metadata.txt.

author_org

Organization of the author. Also used as for author in the plugin metadata.txt.

author_email

Contact email to ask about the plugin. Used as value for email in the plugin metadata.txt.

qgis_version_min

QGIS minimum version. Used as value for qgisMinimumVersion in the plugin metadata.txt.

qgis_version_max

QGIS maximum version. Used as value for qgisMaximumVersion in the plugin metadata.txt.

repository_url_base

URL to the public repository.

repository_default_branch

Default git branch name. Defaults to main.

open_source_license

License of your plugin. Please consider that you should pick up the GPLv2+to comply with Qt and QGIS licenses.

linter_py

Which Python linter to use in IDE and CI.

ci_cd_tool

Which continous integration and deployment suite to use.

ide

Which IDE software to use.

post_install_venv

Create a virtual environment after project creation. Default to: no.

post_git_init

Run git init after project creation and add repository_url_base as remote origin. Default to: no.

debug

Debug/verbose mode. Default to: no.