Files
flow/pyproject.toml
Tomas Mirchev 6a0eb9f6ef chore(test,docs): add make test, CI, e2e container, refresh example
- Makefile gains `test` and `test-e2e` targets; `deps` now installs the
  dev extras so pytest is available after `make deps`.
- .github/workflows/test.yml runs unit tests on push and PR to main
  (Python 3.13 on ubuntu-latest, ignores tests/e2e by default).
- tests/e2e/Containerfile + test_dotfiles_e2e.py scaffold a real
  container-based smoke test of `flow dotfiles init` + `link` against
  the example dotfiles repo. Gated by FLOW_RUN_E2E=1 so unit runs
  stay fast; verified locally with podman.
- tests/fakes.FakeRunner uses ordered subsequence matching instead of
  unordered containment -- prevents accidental match between unrelated
  commands that happen to share tokens.
- example/README.md rewritten for the current command surface
  (no more `dotfiles undo`, `dotfiles modules ...`, `--relink`,
  `bootstrap list/show/run --profile`, `bootstrap packages --resolved`).
  Adds an "External modules" section documenting `_module.yaml`.
- example/dotfiles-repo profiles.yaml drops `allow-sudo: true` along
  with the runtime support.
- pyproject.toml adds [tool.coverage] config.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:02:19 +03:00

35 lines
690 B
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "flow"
dynamic = ["version"]
description = "DevFlow - A unified toolkit for managing development instances, containers, and profiles"
requires-python = ">=3.9"
dependencies = ["pyyaml>=6.0"]
[project.optional-dependencies]
build = ["pyinstaller>=6.0"]
dev = ["pytest>=7.0"]
[project.scripts]
flow = "flow.cli:main"
[tool.hatch.version]
path = "src/flow/__init__.py"
[tool.hatch.build.targets.wheel]
packages = ["src/flow"]
[tool.pytest.ini_options]
testpaths = ["tests"]
[tool.coverage.run]
source = ["src/flow"]
branch = true
[tool.coverage.report]
show_missing = true
skip_covered = false