Skip to content

Commit

Permalink
Merge pull request #12 from kartoza/kartoza
Browse files Browse the repository at this point in the history
Bring downstream changes from Kartoza
  • Loading branch information
timlinux authored Feb 3, 2025
2 parents 59e28bf + abc262d commit f223793
Show file tree
Hide file tree
Showing 703 changed files with 41,664 additions and 38,797 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/black-python-code-linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Black Python Code Linter

on:
push:
branches:
- main
pull_request:
types:
- edited
- opened
- reopened
- synchronize
branches:
- main
workflow_dispatch:

jobs:
lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: psf/black@stable
with:
options: "--check --verbose"
src: "./geest"
23 changes: 23 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Build documentation
on: workflow_dispatch

jobs:
build-docs:
runs-on: ubuntu-20.04
container:
image: qgis/qgis:release-3_16
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Fix Python command
run: apt-get install python-is-python3

- name: Install plugin dependencies
run: pip install -r requirements-dev.txt

- name: Generate plugin repo XML
run: python admin.py --verbose generate-plugin-repo-xml

- name: Update the documentation
run: mkdocs gh-deploy --force
75 changes: 75 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Continuous Integration

on:
push:
branches:
- main
pull_request:
types:
- edited
- opened
- reopened
- synchronize
branches:
- main
env:
# Global environment variable
IMAGE: qgis/qgis
WITH_PYTHON_PEP: "true"
MUTE_LOGS: "false"

jobs:
test:
runs-on: ${{ matrix.os }}
name: Running tests on ${{ matrix.os }} using QGIS ${{ matrix.qgis_version_tag }}

strategy:
fail-fast: false
matrix:
qgis_version_tag:
- release-3_30
- release-3_32
- release-3_34
- release-3_36
#- release-3_38
#- release-3_40
os: [ubuntu-22.04]

steps:

- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive

- name: Preparing docker-compose environment
env:
QGIS_VERSION_TAG: ${{ matrix.qgis_version_tag }}
ORS_API_KEY: ${{ secrets.ORS_API_KEY }}
run: |
cat << EOF > .env
QGIS_VERSION_TAG=${QGIS_VERSION_TAG}
IMAGE=${IMAGE}
ON_TRAVIS=true
MUTE_LOGS=${MUTE_LOGS}
WITH_PYTHON_PEP=${WITH_PYTHON_PEP}
ORS_API_KEY=${ORS_API_KEY}
EOF
- name: Install python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install plugin dependencies
run: pip install -r requirements-dev.txt

- name: Preparing test environment
run: |
docker pull "${IMAGE}":${{ matrix.qgis_version_tag }}
python admin.py build --tests
docker compose up -d
sleep 10
- name: Run test suite
run: |
docker compose exec -T qgis-testing-environment qgis_testrunner.sh test_suite.test_package
2 changes: 1 addition & 1 deletion .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
run: |
jupyter-book build . --config docs/_config.yml --toc docs/_toc.yml
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main' && job.status == 'success'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
76 changes: 76 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Create a release
on:
push:
tags:
- "v*"

jobs:
create-release:
runs-on: ubuntu-22.04
container:
image: qgis/qgis:release-3_34
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Fix Python command
run: apt-get install python-is-python3

- name: Install python
uses: actions/setup-python@v4

- name: Install plugin dependencies
run: pip install -r requirements-dev.txt

- name: Get experimental info
id: get-experimental
run: |
echo "::set-output name=IS_EXPERIMENTAL::$(python -c "import json; f = open('config.json'); data=json.load(f); print(str(data['general']['experimental']).lower())")"
- name: Create release from tag
id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
prerelease: ${{ steps.get-experimental.outputs.IS_EXPERIMENTAL }}
draft: false

- name: Generate zip
run: python admin.py generate-zip

- name: get zip details
id: get-zip-details
run: |
echo "::set-output name=ZIP_PATH::dist/$(ls dist)\n"
echo "::set-output name=ZIP_NAME::$(ls dist)"
- name: Upload release asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create-release.outputs.upload_url}}
asset_path: ${{ steps.get-zip-details.outputs.ZIP_PATH}}
asset_name: ${{ steps.get-zip-details.outputs.ZIP_NAME}}
asset_content_type: application/zip

- name: Checkout code
uses: actions/checkout@v2
with:
ref: release
- name: Update custom plugin repository to include latest release
run: |
echo "$(python admin.py generate-plugin-repo-xml)" >> docs/repository/plugins.xml
python admin.py --verbose generate-plugin-repo-xml
echo " " >> docs/repository/plugins.xml
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global --add safe.directory /__w/GEEST2/GEEST2
git add -A
git commit -m "Update on plugins.xml"
git push origin release
86 changes: 86 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Packages
*.egg
*.egg-info/
dist/
build/
*.whl

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/

# mkdocs documentation
/site/

# Environments
.env
.venv
env/
venv/
ENV/
.env.*
.envrc

# PyInstaller
*.**`.gitignore` continued:**
```plaintext
# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Pyre type checker
.pyre/

# VS Code
.vscode/
.vscode-extensions/

# Nix
result/
nix-result/

# nix
.direnv/

data
app.py
/geest.zip
.~lock.*
/.idea/GEEST2-main.iml
/.idea/misc.xml
/.idea/modules.xml
/.idea/inspectionProfiles/profiles_settings.xml
/.idea/vcs.xml

.shell.nix.swp
geest.tar.gz
gitlog.txt
geest/resources/models/prepare_mask_area.model3
test/output

# Ignore files named 'core'
core

# Don't ignore directories named 'core'
!core/
18 changes: 18 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
repos:
- repo: https://github.com/psf/black
rev: 24.4.0
hooks:
- id: black
name: black
language_version: python3
additional_dependencies: []
args: [geest]

- repo: local
hooks:
- id: remove-core-file
name: Remove core file if it exists
entry: bash -c '[[ -f core && ! -d core ]] && rm core || exit 0'
language: system
stages:
- pre-commit
109 changes: 109 additions & 0 deletions Aggregation.drawio

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# GEEST Plugin Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age,
body size, disability, ethnicity, gender identity and expression, level of
experience, nationality, personal appearance, race, religion, or sexual
identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project email
address, posting via an official social media account, or acting as an
appointed representative at an online or offline event. Representation of a
project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [[email protected]]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an
incident. Further details of specific enforcement policies may be posted
separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor
Covenant](https://www.contributor-covenant.org), version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).

For answers to common questions about this code of conduct, see
[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq).

Loading

0 comments on commit f223793

Please sign in to comment.