Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 0 additions & 55 deletions .github/workflows/tests-poetry.yml

This file was deleted.

53 changes: 53 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: tests

on:
push:
branches:
- master
paths-ignore:
- '*.md'
pull_request:
branches:
- master
paths-ignore:
- '*.md'

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Install uv
uses: astral-sh/setup-uv@v5

- name: Install dependencies
run: uv sync

- name: Lint with ruff
run: uv run ruff check hooks/ tests/

- name: Check formatting with ruff
run: uv run ruff format --check hooks/ tests/

test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.13"]
os: [ubuntu-latest, windows-latest]
name: Test (Python ${{ matrix.python-version }} on ${{ matrix.os }})
steps:
- uses: actions/checkout@v6

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: uv sync

- name: Test with pytest
run: uv run pytest tests
13 changes: 12 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.4.0] - 2026-05-04

### Added
- Placeholder for future updates and new features.
- New `lint` job in CI (`tests.yml`) runs `ruff check` and `ruff format --check` on `hooks/` and `tests/` on every push and PR.
- Added `ruff>=0.15.12` to dev dependencies with `[tool.ruff]` config (excludes Jinja2 template files).

### Changed
- Migrated root tooling from Poetry to uv: `pyproject.toml` converted to PEP 621 `[project]` format, `poetry.lock` replaced by `uv.lock`, GitHub Actions workflow updated to use `astral-sh/setup-uv@v5` (via `uvx migrate-to-uv`).
- Renamed CI workflow `tests-poetry.yml` → `tests.yml`; updated badge in README.
- Updated `actions/checkout` from v5 to v6 in CI.
- Updated `typer` from `^0.21.1` to `>=0.25.0`, `setuptools` from `^80.10.2` to `>=82.0.0` (Renovate).
- Updated pre-commit hooks in generated project template: `astral-sh/ruff-pre-commit` v0.14.14 → v0.15.12, `pycqa/isort` 6.1.0 → 8.0.1, `asottile/pyupgrade` v3.20.0 → v3.21.2 (Renovate).
- Updated uv Dockerfile base image from `python:3.13-slim-bookworm` to `python:3.14-slim-bookworm` (Renovate).

## [1.3.0] - 2026-01-27

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# AT Python Template

[![Build](https://img.shields.io/github/actions/workflow/status/at-gmbh/at-python-template/tests-poetry.yml?branch=master)](https://github.com/at-gmbh/at-python-template/actions?query=branch%3Amaster+)
[![Build](https://img.shields.io/github/actions/workflow/status/at-gmbh/at-python-template/tests.yml?branch=master)](https://github.com/at-gmbh/at-python-template/actions?query=branch%3Amaster+)
![Python Version](https://img.shields.io/badge/python-3.10%20--%203.13-blue)
[![Latest Version](https://img.shields.io/github/v/tag/at-gmbh/at-python-template?label=version&sort=semver)](https://github.com/at-gmbh/at-python-template/releases)
[![Commit Activity](https://img.shields.io/github/commit-activity/m/at-gmbh/at-python-template)](https://github.com/at-gmbh/at-python-template/commits/master)
Expand Down Expand Up @@ -192,8 +192,8 @@ This Readme file contains our technical documentation, a user guide can be found

Hints for developers:

* install dependencies in a fresh virtualenv with `pip install -r requirements.txt`
* run unit tests with `pytest tests`. There are unit tests for every available choice in [`tests/test_options.py`](./tests/test_options.py). If you add more choices, please update these tests.
* install dependencies with `uv sync` (installs uv first if needed: `pip install uv`)
* run unit tests with `uv run pytest tests`. There are unit tests for every available choice in [`tests/test_options.py`](./tests/test_options.py). If you add more choices, please update these tests.
* be careful with code formatters: Many files in this project contain [jinja2 templates](https://jinja.palletsprojects.com) (you'll find statements like `{% if cookiecutter.config_file == 'yaml' %}...{% endif %}` all over the place). These templates mean that the source code becomes syntactically incorrect and some formatters might do unexpected things.
* you can make your life easier when updating templated files by using [cookiecutter-server](https://github.com/at-gmbh/cookiecutter-server) to get live previews of your templates
* before your first commit, set up pre-commit hooks by running `pre-commit install`
Expand Down
Loading
Loading