Skip to content

Commit

Permalink
Generalize template for GUI framework plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
rmartin16 committed Nov 11, 2023
1 parent 6b0c557 commit 8822812
Show file tree
Hide file tree
Showing 13 changed files with 519 additions and 484 deletions.
30 changes: 23 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,37 @@ concurrency:
group: ${{ github.ref }}
cancel-in-progress: true

defaults:
run:
shell: bash

env:
FORCE_COLOR: "1"

jobs:
pre-commit:
name: Pre-commit checks
uses: beeware/.github/.github/workflows/pre-commit-run.yml@main
with:
pre-commit-source: "-r requirements.txt"

unit-tests:
needs: pre-commit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4.1.1

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v4.7.1
with:
python-version: "3.X"
- name: Install dependencies
run: |
python -m pip install tox

- name: Install Dependencies
run: python -m pip install tox

- name: Test with tox
run: |
tox
run: tox

verify-apps:
name: Build App
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/pre-commit-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Update pre-commit

on:
schedule:
- cron: "0 20 * * SUN" # Sunday @ 2000 UTC
workflow_dispatch:

jobs:
pre-commit-update:
name: Update pre-commit
uses: beeware/.github/.github/workflows/pre-commit-update.yml@main
secrets: inherit
42 changes: 42 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
exclude: ^{{ cookiecutter.app_name }}/
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: check-toml
- id: check-yaml
- id: check-case-conflict
- id: check-docstring-first
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: isort
additional_dependencies: [toml]
- repo: https://github.com/asottile/pyupgrade
rev: v3.15.0
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/PyCQA/docformatter
rev: v1.7.5
hooks:
- id: docformatter
args: [--in-place, --black]
- repo: https://github.com/psf/black
rev: 23.10.1
hooks:
- id: black
language_version: python3
- repo: https://github.com/PyCQA/flake8
rev: 6.1.0
hooks:
- id: flake8
args: [--max-line-length=119]
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
hooks:
- id: codespell
additional_dependencies:
- tomli
1 change: 0 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,3 @@ BeeWare <3's contributions!
Please be aware, BeeWare operates under a Code of Conduct.

See [CONTRIBUTING to BeeWare](https://beeware.org/contributing) for details.

30 changes: 21 additions & 9 deletions cookiecutter.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,34 @@
"Proprietary",
"Other"
],
"gui_framework": [
"Toga",
"PySide2",
"PySide6",
"PursuedPyBear",
"Pygame",
"None"
],
"test_framework": [
"pytest",
"unittest"
],
"app_source": "",
"app_start_source": "",
"pyproject_table_briefcase_additional": "",
"pyproject_table_briefcase_app_additional": "",
"pyproject_requires": "",
"pyproject_test_requires": "",
"pyproject_table_macOS": "",
"pyproject_table_linux": "",
"pyproject_table_linux_system_debian": "",
"pyproject_table_linux_system_rhel": "",
"pyproject_table_linux_system_suse": "",
"pyproject_table_linux_system_arch": "",
"pyproject_table_linux_appimage": "",
"pyproject_table_linux_flatpak": "",
"pyproject_table_windows": "",
"pyproject_table_iOS": "",
"pyproject_table_android": "",
"pyproject_table_web": "",
"pyproject_extra_content": "",
"briefcase_version": "Unknown",
"template_source": "Not provided",
"template_branch": "Not provided",
"_extensions": [
"briefcase.integrations.cookiecutter.TOMLEscape"
]
],
"_jinja2_env_vars": {"lstrip_blocks": true, "trim_blocks": true}
}
10 changes: 3 additions & 7 deletions hooks/pre_gen_project.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import re
import sys


# The restriction on application naming comes from PEP508
PEP508_NAME_RE = re.compile(
r'^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$',
re.IGNORECASE
)
PEP508_NAME_RE = re.compile(r"^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$", re.IGNORECASE)

app_name = '{{ cookiecutter.app_name }}'
app_name = "{{ cookiecutter.app_name }}"

if not re.match(PEP508_NAME_RE, app_name):
print('ERROR: `%s` is not a valid Python package name!' % app_name)
print("ERROR: `%s` is not a valid Python package name!" % app_name)

# exits with status 1 to indicate failure
sys.exit(1)
7 changes: 7 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
briefcase @ git+https://github.com/beeware/briefcase.git
cookiecutter ==2.4.0
flake8 ==6.1.0
pre-commit ==3.5.0
pytest ==7.4.3
toml ==0.10.2
tox ==4.11.3
Loading

0 comments on commit 8822812

Please sign in to comment.