diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..3f3789fb --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*.py] +indent_style = space +indent_size = 4 +max_line_length = 80 + +[*.{yml,yaml}] +indent_size = 2 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..3c775ec6 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,42 @@ +name: Tests (tox) + +on: + push: + branches: [master] + pull_request: + branches: [master] + +permissions: + contents: read + +jobs: + test: + name: test with ${{ matrix.py }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + py: + - "3.12" + - "3.11" + - "3.10" + - "3.9" + - "3.8" + os: + - ubuntu-latest + - macos-latest + - windows-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Setup python for test ${{ matrix.py }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.py }} + - name: Install tox + run: python -m pip install tox-gh>=1.2 + - name: Setup test suite + run: tox -vv --notest + - name: Run test suite + run: tox --skip-pkg-install diff --git a/pyproject.toml b/pyproject.toml index c7888154..efe71ce6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,12 +52,16 @@ gcalcli = "gcalcli.cli:main" [tool.distutils.bdist_wheel] universal = true -[tool.isort] -profile = "google" -force_single_line = false -float_to_top = true -combine_star = true -py_version = 3 +[tool.ruff] +line-length = 80 + +[tool.ruff.lint] +# Enable Errors, Warnings, Flakes +select = ["E", "W", "F"] + +[tool.ruff.format] +# Permit mixed quote style, project currently uses a mix of both. +quote-style = "preserve" [[tool.mypy.overrides]] module = ["gcalcli"] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 6eb71261..00000000 --- a/setup.cfg +++ /dev/null @@ -1,9 +0,0 @@ -[flake8] -import-order-style = google -exclude = - .git, - __pycache__, - venv, - .env, - .tox, - .venv diff --git a/tox.ini b/tox.ini index 34afb90a..7fb4b716 100644 --- a/tox.ini +++ b/tox.ini @@ -6,9 +6,17 @@ usedevelop=true deps = pytest pytest-cov coverage - flake8 + ruff vobject commands=py.test -vv --cov=./gcalcli --pyargs tests {posargs} coverage html - flake8 + ruff check + +[gh] +python = + 3.12 = py312, type, lint + 3.11 = py311 + 3.10 = py310 + 3.9 = py39 + 3.8 = py38