# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.2.0] - 2026-10-22
### Changed
  - Bump the minimum supported Python from 3.10 (EOL) to 3.11.
  - Add support for Python 3.15.
  - Limit to `sqlalchemy<2.1` support as `sqlalchemy>=2.1` makes psycopg 3 the default PostgreSQL
    driver which has a different API which this package do not support yet.
  - Limit to `pandas<3` as pandas 3 API not yet supported.
### Fixed
  - Raise the `[build-system]` floor from `setuptools>=61.0` to `setuptools>=77`. The
    `license = "MIT"` SPDX string (PEP 639) needs setuptools 77+, so building the sdist with an
    older setuptools and build isolation off failed with an opaque `project.license must be valid
    exactly by one definition` error.
  - Dev dependencies not defined within `[dependency-groups]` block in `pyproject.toml`.
  - Lint changes to pass latest version of mypy.

## [0.1.0] - 2026-07-30
### Changed
  - Bump the minimum supported Python from 3.9 (EOL) to 3.10. CircleCI executors bumped from
    `circleci/python:3.9` to `cimg/python:3.10` accordingly.
  - Bump the PostgreSQL CircleCI executor from `circleci/postgres:9.5.10` to `cimg/postgres:18.4`.
  - Release to PyPI via a GitHub Actions workflow using PyPI Trusted Publishing (OIDC),
    instead of a CircleCI job using a long-lived API token. CircleCI still runs lint, unit, and
    functional tests.
  - Replace `twine` with `uv publish` for building/publishing/checking release artifacts.
  - Derive the package version from the git tag at build time via `setuptools-scm`,
    instead of a committed `version` field in `pyproject.toml`. Releases no longer
    require a version-bump commit before tagging; `scripts/verify_version.py` is
    removed since there's no longer a committed version to verify against tags.
    `tentaclio_postgres.__version__` is now exposed at runtime via `importlib.metadata`.
### Fixed
  - Mutable default `dict` default argument to `get_df_unsafe()`.
  - Make `isort` and `black` behaviour consistent for imports sorting and formatting.
### Added
  - Add `Programming Language :: Python :: 3.12`, `Programming Language :: Python :: 3.13` and
    `Programming Language :: Python :: 3.14` classifiers.

## [0.0.1]
### Added
 - Postgres client.
