{"id":13710657,"url":"https://github.com/opengisch/qgis-plugin-ci","last_synced_at":"2025-05-06T19:32:22.424Z","repository":{"id":35019231,"uuid":"192772739","full_name":"opengisch/qgis-plugin-ci","owner":"opengisch","description":"Let it package and release your QGIS plugin and do something funnier instead!","archived":false,"fork":false,"pushed_at":"2025-04-29T10:18:28.000Z","size":3828,"stargazers_count":56,"open_issues_count":18,"forks_count":19,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-29T10:47:26.623Z","etag":null,"topics":["ci-cd","cli","qgis","qgis-plugin"],"latest_commit_sha":null,"homepage":"https://opengisch.github.io/qgis-plugin-ci/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opengisch.png","metadata":{"funding":{"github":["opengisch"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null},"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-06-19T17:00:33.000Z","updated_at":"2025-04-29T10:04:31.000Z","dependencies_parsed_at":"2023-10-01T15:10:10.961Z","dependency_job_id":"4b2c0fcc-c09e-4f90-be86-eac1c229dc2a","html_url":"https://github.com/opengisch/qgis-plugin-ci","commit_stats":{"total_commits":512,"total_committers":17,"mean_commits":30.11764705882353,"dds":0.662109375,"last_synced_commit":"9a0621644a8845d6eb6208a45d92d242af9ad2b0"},"previous_names":[],"tags_count":85,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opengisch%2Fqgis-plugin-ci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opengisch%2Fqgis-plugin-ci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opengisch%2Fqgis-plugin-ci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opengisch%2Fqgis-plugin-ci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opengisch","download_url":"https://codeload.github.com/opengisch/qgis-plugin-ci/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252753680,"owners_count":21798993,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","cli","qgis","qgis-plugin"],"created_at":"2024-08-02T23:00:59.435Z","updated_at":"2025-05-06T19:32:17.394Z","avatar_url":"https://github.com/opengisch.png","language":"Python","funding_links":["https://github.com/sponsors/opengisch"],"categories":["Plugin Resources"],"sub_categories":[],"readme":"# 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\u0026labelColor=ef8336)](https://pycqa.github.io/isort/)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopengisch%2Fqgis-plugin-ci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopengisch%2Fqgis-plugin-ci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopengisch%2Fqgis-plugin-ci/lists"}