Skip to content

Commit d4bbedb

Browse files
committed
Lower Python requirement to 3.9; CI matrix adds 3.9
The codebase already uses 'from __future__ import annotations' everywhere, so PEP 604 union syntax (str | None) and similar 3.10+ annotations are strings at runtime and don't break on 3.9. Tests have been running on 3.9 locally throughout development with no failures. Lowering requires-python eliminates the '--ignore-requires-python' workaround for users on macOS-default Python 3.9 (still common despite 3.10's release). Changes: - pyproject.toml: requires-python = '>=3.9' - .github/workflows/test.yml: matrix adds 3.9 alongside 3.10/3.11/3.12 - README, README.ru, QUICKSTART: drop the workaround note, state 'Python 3.9+'
1 parent a5f32ee commit d4bbedb

5 files changed

Lines changed: 8 additions & 14 deletions

File tree

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: ["3.10", "3.11", "3.12"]
15+
python-version: ["3.9", "3.10", "3.11", "3.12"]
1616

1717
steps:
1818
- uses: actions/checkout@v4

QUICKSTART.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ python3 --version # macOS / Linux
1919
python --version # Windows (WSL)
2020
```
2121

22-
You should see **Python 3.10 or higher**.
23-
24-
> **Note:** If you see Python 3.9, you can still install with `pip install -e . --ignore-requires-python`. The code works on 3.9, but official support and CI target 3.10+.
22+
You should see **Python 3.9 or higher**. (CI tests 3.9, 3.10, 3.11, 3.12.)
2523

2624
If Python is not installed:
2725
- **macOS:** install from [python.org/downloads](https://www.python.org/downloads/) or run `brew install python`
@@ -197,7 +195,7 @@ pip install -e .
197195
| Empty `.md` files | No messages in session | Check `messageCount` in `list` output |
198196
| Corrupt JSONL warning | Malformed `.jsonl` lines | Normal — tool skips bad lines, continues |
199197
| Windows: command not found | Native CMD/PowerShell | Use **WSL2** — native Windows not tested |
200-
| Python version error | Running Python 3.9 | `pip install -e . --ignore-requires-python` or upgrade to 3.10+ |
198+
| Python version error | Running Python <3.9 | Upgrade to Python 3.9 or newer |
201199

202200
---
203201

README.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,12 @@ New users: see [QUICKSTART.md](./QUICKSTART.md) for the full step-by-step guide
6464

6565
## Install
6666

67-
Requires **Python 3.10+** (CI tests 3.10, 3.11, 3.12).
67+
Requires **Python 3.9+** (CI tests 3.9, 3.10, 3.11, 3.12).
6868

6969
```bash
7070
pip install -e .
7171
```
7272

73-
> **Note:** If you only have Python 3.9, you can install with `pip install -e . --ignore-requires-python`. The code uses `from __future__ import annotations` and works on 3.9, but official support is 3.10+.
74-
7573
---
7674

7775
## Usage
@@ -199,7 +197,7 @@ pip install -e ".[dev]"
199197
pytest -v --cov=claude_backup
200198
```
201199

202-
CI runs on Python 3.10, 3.11, and 3.12 — see [.github/workflows/test.yml](.github/workflows/test.yml).
200+
CI runs on Python 3.9, 3.10, 3.11, and 3.12 — see [.github/workflows/test.yml](.github/workflows/test.yml).
203201

204202
**Test coverage: 91%** (68/68 tests passing) — covers the real Claude Code format, the legacy spec format, edge cases (empty/corrupt JSONL, unicode, missing index), `--mode` selection (both / minimal / full), and CLI integration.
205203

README.ru.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,12 @@ claude-backup export-all --output ~/claude-backups/
6464

6565
## Установка
6666

67-
Требуется **Python 3.10+** (CI тестирует 3.10, 3.11, 3.12).
67+
Требуется **Python 3.9+** (CI тестирует 3.9, 3.10, 3.11, 3.12).
6868

6969
```bash
7070
pip install -e .
7171
```
7272

73-
> **Примечание:** Если у вас Python 3.9, установка возможна с `pip install -e . --ignore-requires-python`. Код использует `from __future__ import annotations` и работает на 3.9, но официальная поддержка — 3.10+.
74-
7573
---
7674

7775
## Использование
@@ -196,7 +194,7 @@ pip install -e ".[dev]"
196194
pytest -v --cov=claude_backup
197195
```
198196

199-
CI запускается на Python 3.10, 3.11 и 3.12 — см. [.github/workflows/test.yml](.github/workflows/test.yml).
197+
CI запускается на Python 3.9, 3.10, 3.11 и 3.12 — см. [.github/workflows/test.yml](.github/workflows/test.yml).
200198

201199
**Покрытие тестами: 91%** (68/68 тестов проходят) — реальный формат Claude Code, legacy-формат из спеки, edge-кейсы (пустой/битый JSONL, unicode, отсутствующий индекс), выбор `--mode` (both / minimal / full), и интеграционные тесты CLI.
202200

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "claude-backup"
77
version = "0.1.0"
88
description = "Export Claude Code session history to Markdown"
99
readme = "README.md"
10-
requires-python = ">=3.10"
10+
requires-python = ">=3.9"
1111
license = {text = "MIT"}
1212
authors = [
1313
{name = "parallelclaw"}

0 commit comments

Comments
 (0)