qgis-plugin-ci


Nameqgis-plugin-ci JSON
Version 2.8.8 PyPI version JSON
download
home_page
SummaryLet qgis-plugin-ci package and release your QGIS plugins for you. Have a tea or go hiking meanwhile. Contains scripts to perform automated testing and deployment for QGIS plugins. These scripts are written for and tested on GitHub Actions, GitLab CI, Travis-CI, and Transifex.
upload_time2024-02-23 14:59:58
maintainer
docs_urlNone
author
requires_python>=3.8
licenseGPLv3
keywords qgis ci changelog plugin
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # QGIS Plugin CI

[![PyPi version badge](https://badgen.net/pypi/v/qgis-plugin-ci)](https://pypi.org/project/qgis-plugin-ci/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/qgis-plugin-ci)](https://pypi.org/project/qgis-plugin-ci/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qgis-plugin-ci)](https://pypi.org/project/qgis-plugin-ci/)

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/opengisch/qgis-plugin-ci/master.svg)](https://results.pre-commit.ci/latest/github/opengisch/qgis-plugin-ci/master)

Contains scripts to perform automated testing and deployment for QGIS plugins.
These scripts are written for and tested on GitHub, Travis-CI, github workflows and Transifex.

- Deploy plugin releases on QGIS official plugin repository
- Publish plugin in Github releases, option to deploy a custom repository
- Easily integrated in Travis-CI or github workflows
- Completely handle translations with Transifex:
  - create the project and the languages
  - pull and push translations
  - all TS/QM files can be managed on the CI, the `i18n` folder can be omitted from the Git repository
- `changelog` section in the metadata.txt can be populated if the CHANGELOG.md is present
- set the `experimental` flag according to the tag if needed

:book: For further information, see [the documentation](https://opengisch.github.io/qgis-plugin-ci/).

QGIS-Plugin-CI is best served if you use these two conventions :

- [Semantic versioning](https://semver.org/)
- [Keep A Changelog](https://keepachangelog.com)

## Command line

```commandline
usage: qgis-plugin-ci [-h] [-v]
                      {package,changelog,release,pull-translation,push-translation}
                      ...

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         print the version and exit

commands:
  qgis-plugin-ci command

  {package,changelog,release,pull-translation,push-translation}
    package             creates an archive of the plugin
    changelog           gets the changelog content
    release             release the plugin
    pull-translation    pull translations from Transifex
    push-translation    update strings and push translations
```

## Requirements

- The code is under a **git** repository (`git archive` is used to bundle the plugin).
- There is no uncommitted changes when doing a package/release (althought there is an option to bypass this requirement).
- A configuration at the top directory either in `.qgis-plugin-ci` or in `setup.cfg` or `pyproject.toml` with a `[qgis-plugin-ci]` section (see `docs/configuration/options.md` for details).
- The source files of the plugin are within a sub-directory  with a `metadata.txt` file with the following fields:
    - description
    - qgisMinimumVersion
    - repository
	- tracker

See `parameters.py` for more parameters and details. Notice that the name of this directory will be used for the zip file.

## QRC and UI files

- Any .qrc file in the source top directory (plugin_path) will be compiled and output as filename_rc.py. You can then import it using `import plugin_path.resources_rc`
- Currently, qgis-plugin-ci does not compile any .ui file.

## Publishing plugins

When releasing, you can publish the plugin :

1. In the official QGIS plugin repository. You need to provide user name and password for your Osgeo account.
2. As a custom repository in Github releases and which can be added later in QGIS. The address will be: https://github.com/__ORG__/__REPO__/releases/latest/download/plugins.xml

Both can be achieved in the same process.

## Pre-release and experimental

In the case of a pre-release (either from the tag name according to [Semantic Versioning](https://semver.org/) or from the GitHub release), the plugin will be flagged as experimental.

The tool will recognise any label use as a suffix to flag it as pre-release :

- `10.1.0-beta1`
- `3.4.0-rc.2`

## Debug

In any Python module, you can have a global variable as `DEBUG = True`, which will be changed to `False` when packaging the plugin.

## Other tools

### QGIS-Plugin-Repo

QGIS-Plugin-CI can generate the `plugins.xml` file, per plugin.
If you want to merge many XML files into one to have a single QGIS plugin repository providing many plugins,
you should check [QGIS-Plugin-Repo](https://github.com/3liz/qgis-plugin-repo).
It's designed to run on CI after QGIS-Plugin-CI.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "qgis-plugin-ci",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "QGIS,CI,changelog,plugin",
    "author": "",
    "author_email": "Denis Rouzaud <denis@opengis.ch>, Etienne Trimaille <etienne.trimaille@gmail.com>, Julien Moura <dev@ingeoveritas.com>",
    "download_url": "https://files.pythonhosted.org/packages/20/37/8a056bcc9d281aa9780c94ac77f9566dcf4f682ac588a62c1503ab8befe8/qgis-plugin-ci-2.8.8.tar.gz",
    "platform": null,
    "description": "# QGIS Plugin CI\n\n[![PyPi version badge](https://badgen.net/pypi/v/qgis-plugin-ci)](https://pypi.org/project/qgis-plugin-ci/)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/qgis-plugin-ci)](https://pypi.org/project/qgis-plugin-ci/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qgis-plugin-ci)](https://pypi.org/project/qgis-plugin-ci/)\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/opengisch/qgis-plugin-ci/master.svg)](https://results.pre-commit.ci/latest/github/opengisch/qgis-plugin-ci/master)\n\nContains scripts to perform automated testing and deployment for QGIS plugins.\nThese scripts are written for and tested on GitHub, Travis-CI, github workflows and Transifex.\n\n- Deploy plugin releases on QGIS official plugin repository\n- Publish plugin in Github releases, option to deploy a custom repository\n- Easily integrated in Travis-CI or github workflows\n- Completely handle translations with Transifex:\n  - create the project and the languages\n  - pull and push translations\n  - all TS/QM files can be managed on the CI, the `i18n` folder can be omitted from the Git repository\n- `changelog` section in the metadata.txt can be populated if the CHANGELOG.md is present\n- set the `experimental` flag according to the tag if needed\n\n:book: For further information, see [the documentation](https://opengisch.github.io/qgis-plugin-ci/).\n\nQGIS-Plugin-CI is best served if you use these two conventions :\n\n- [Semantic versioning](https://semver.org/)\n- [Keep A Changelog](https://keepachangelog.com)\n\n## Command line\n\n```commandline\nusage: qgis-plugin-ci [-h] [-v]\n                      {package,changelog,release,pull-translation,push-translation}\n                      ...\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -v, --version         print the version and exit\n\ncommands:\n  qgis-plugin-ci command\n\n  {package,changelog,release,pull-translation,push-translation}\n    package             creates an archive of the plugin\n    changelog           gets the changelog content\n    release             release the plugin\n    pull-translation    pull translations from Transifex\n    push-translation    update strings and push translations\n```\n\n## Requirements\n\n- The code is under a **git** repository (`git archive` is used to bundle the plugin).\n- There is no uncommitted changes when doing a package/release (althought there is an option to bypass this requirement).\n- A configuration at the top directory either in `.qgis-plugin-ci` or in `setup.cfg` or `pyproject.toml` with a `[qgis-plugin-ci]` section (see `docs/configuration/options.md` for details).\n- The source files of the plugin are within a sub-directory  with a `metadata.txt` file with the following fields:\n    - description\n    - qgisMinimumVersion\n    - repository\n\t- tracker\n\nSee `parameters.py` for more parameters and details. Notice that the name of this directory will be used for the zip file.\n\n## QRC and UI files\n\n- Any .qrc file in the source top directory (plugin_path) will be compiled and output as filename_rc.py. You can then import it using `import plugin_path.resources_rc`\n- Currently, qgis-plugin-ci does not compile any .ui file.\n\n## Publishing plugins\n\nWhen releasing, you can publish the plugin :\n\n1. In the official QGIS plugin repository. You need to provide user name and password for your Osgeo account.\n2. As a custom repository in Github releases and which can be added later in QGIS. The address will be: https://github.com/__ORG__/__REPO__/releases/latest/download/plugins.xml\n\nBoth can be achieved in the same process.\n\n## Pre-release and experimental\n\nIn the case of a pre-release (either from the tag name according to [Semantic Versioning](https://semver.org/) or from the GitHub release), the plugin will be flagged as experimental.\n\nThe tool will recognise any label use as a suffix to flag it as pre-release :\n\n- `10.1.0-beta1`\n- `3.4.0-rc.2`\n\n## Debug\n\nIn any Python module, you can have a global variable as `DEBUG = True`, which will be changed to `False` when packaging the plugin.\n\n## Other tools\n\n### QGIS-Plugin-Repo\n\nQGIS-Plugin-CI can generate the `plugins.xml` file, per plugin.\nIf you want to merge many XML files into one to have a single QGIS plugin repository providing many plugins,\nyou should check [QGIS-Plugin-Repo](https://github.com/3liz/qgis-plugin-repo).\nIt's designed to run on CI after QGIS-Plugin-CI.\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Let qgis-plugin-ci package and release your QGIS plugins for you. Have a tea or go hiking meanwhile. Contains scripts to perform automated testing and deployment for QGIS plugins. These scripts are written for and tested on GitHub Actions, GitLab CI, Travis-CI, and Transifex.",
    "version": "2.8.8",
    "project_urls": {
        "documentation": "https://opengisch.github.io/qgis-plugin-ci/",
        "homepage": "https://opengisch.github.io/qgis-plugin-ci/",
        "repository": "https://github.com/opengisch/qgis-plugin-ci/",
        "tracker": "https://github.com/opengisch/qgis-plugin-ci/issues"
    },
    "split_keywords": [
        "qgis",
        "ci",
        "changelog",
        "plugin"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3927510a67838c36e533caa780aa0315f2048df755e7f65902d2167858741b0c",
                "md5": "5d03905fb1f89ceae1550017145f765e",
                "sha256": "9a9a2d9f24f194044e6f321fe7f00217253f562a51ec1d5c42ca8b312928ed25"
            },
            "downloads": -1,
            "filename": "qgis_plugin_ci-2.8.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5d03905fb1f89ceae1550017145f765e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 37591,
            "upload_time": "2024-02-23T14:59:56",
            "upload_time_iso_8601": "2024-02-23T14:59:56.647676Z",
            "url": "https://files.pythonhosted.org/packages/39/27/510a67838c36e533caa780aa0315f2048df755e7f65902d2167858741b0c/qgis_plugin_ci-2.8.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20378a056bcc9d281aa9780c94ac77f9566dcf4f682ac588a62c1503ab8befe8",
                "md5": "57a1ffa17ccb53b09620ae6769cbe446",
                "sha256": "0ab972cebdff0e64334e7286054938b048e8a27c754b80d2abcc394630d0a0cb"
            },
            "downloads": -1,
            "filename": "qgis-plugin-ci-2.8.8.tar.gz",
            "has_sig": false,
            "md5_digest": "57a1ffa17ccb53b09620ae6769cbe446",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 62811,
            "upload_time": "2024-02-23T14:59:58",
            "upload_time_iso_8601": "2024-02-23T14:59:58.247460Z",
            "url": "https://files.pythonhosted.org/packages/20/37/8a056bcc9d281aa9780c94ac77f9566dcf4f682ac588a62c1503ab8befe8/qgis-plugin-ci-2.8.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-23 14:59:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "opengisch",
    "github_project": "qgis-plugin-ci",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "qgis-plugin-ci"
}
        
Elapsed time: 0.34527s