You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 19030de
Browse filesBrowse the repository at this point in the historyBrowse files
-[] 6.4: Run `ruff check`, `ty check`, `pytest` locally — all pass (no tests yet; pytest should exit 5 = "no tests collected", treat as pass for scaffold)
81
-
-[] 6.5: Initialize git repo with first commit on `main`
41
+
-[x]**Task 1: Initialize uv library scaffold**
42
+
-[x] 1.1: Run `uv init --lib` in `/Users/kevinsmith/src/pypi/httpware/`
-[x] 3.3: Copied`[tool.pytest.ini_options]` (asyncio_mode="auto", asyncio_default_fixture_loop_scope="function"); adjusted `pythonpath` to `["src"]` and `--cov` to `src/httpware` for src/-layout
58
+
-[x] 3.4: Copied`[tool.coverage]` config
59
+
-[x] 3.5: Added dev dep group: pytest, pytest-cov, pytest-asyncio, pytest-repeat, pytest-benchmark, hypothesis
60
+
-[x] 3.6: Added lint dep group: ruff, ty, eof-fixer, typing-extensions
-[x] 6.4: `ruff format`, `ruff check`, `ty check`all pass on empty `src/httpware/__init__.py`; `pytest` collected 0 tests (expected — scaffold story has no library code yet)
82
+
-[x] 6.5: Initialized git repo (auto-created by `uv init --lib`), staged all scaffold files, committed as `fe4df95 chore: initial project scaffold (Story 1.1)` on `main`
82
83
83
84
## Dev Notes
84
85
@@ -117,26 +118,87 @@ input_documents:
117
118
118
119
### Implementation Plan
119
120
120
-
To be filled in during Step 5.
121
+
1.**Initialize via `uv init --lib`** in the empty `/Users/kevinsmith/src/pypi/httpware/` directory — single command sets up `src/httpware/__init__.py`, `py.typed`, minimal `pyproject.toml`, `.gitignore`, `.python-version`, `README.md`, and a fresh `.git/` repo.
122
+
2.**Fetch the authoritative `modern-python/modern-di` config files** via `gh api` (pyproject.toml, Justfile, .github/workflows/{ci,publish}.yml, .gitignore, CLAUDE.md, context7.json) and use them as the verbatim source for org conventions, adjusting only:
123
+
- Python floor: `>=3.10,<4` → `>=3.11,<4` (per PRD Story 1.1 AC and architecture decision to use `TaskGroup`/`except*`)
7.**Commit**: stage everything except gitignored files (`.python-version`, `.venv`, `uv.lock`), single initial commit on `main`.
121
133
122
134
### Debug Log
123
135
124
-
(empty)
136
+
-`uv init --lib` auto-created `py.typed` (good — no need to add manually as originally planned in subtask 1.3).
137
+
- Initial `httpx2>=2.0.0b1,<3.0` constraint caused `uv pip install` (without `--prerelease=allow`) to skip httpx2 in clean-venv smoke test. Tightened to `>=2.0.0,<3.0` after verifying `httpx2==2.0.0` GA is published on PyPI. Updated PRD and architecture should follow in a future cleanup pass (the docs currently say `>=2.0.0b1,<3.0`; not blocking).
138
+
-`uv build` warned about `[build-system] requires = ["uv_build"]` lacking an upper bound. Pinned to `>=0.11,<0.12` to silence the warning and prevent future breakage when uv_build 0.12 ships.
139
+
-`git add` initially refused `.python-version` (in `.gitignore` from modern-di's convention); kept it untracked. Same for `uv.lock` (added to `.gitignore` after initial commit attempt staged it).
125
140
126
141
### Completion Notes
127
142
128
-
(to be filled at story completion)
143
+
**AC verification — all 7 satisfied:**
144
+
145
+
-**AC1** ✓ `src/httpware/__init__.py` and `src/httpware/py.typed` exist; `pyproject.toml` declares `httpx2>=2.0.0,<3.0` and `pydantic>=2.0,<3.0`.
146
+
-**AC2** ✓ Extras `[msgspec]`, `[otel]`, `[niquests]`, `[all]` all declared in `[project.optional-dependencies]`.
-**AC6** ✓ `.github/workflows/ci.yml` runs ruff/ty/pytest with coverage upload on Python 3.11–3.14 matrix (3.10 dropped per our floor; 3.14 included since GA is on `actions/setup-python`).
151
+
-**AC7** ✓ `uv build` produced wheel+sdist; clean-venv install of the wheel resolved 12 packages (httpware + httpx2 2.0.0 + pydantic 2.13.4 + transitive); `python -c "import httpware"` exited 0 with `__all__ == []`.
-`uv build` succeeds; wheel installs and imports cleanly in a fresh venv
159
+
- File List complete; Change Log updated
160
+
- Initial commit on `main` (`fe4df95`)
161
+
162
+
**Deviations from PRD/Architecture docs (worth noting for future cleanup):**
163
+
164
+
- PRD and Architecture currently specify `httpx2>=2.0.0b1,<3.0` (set when only the beta was published). Story tightened to `>=2.0.0,<3.0` after verifying GA. Update planning artifacts in a follow-up pass.
165
+
-`module-name = "httpware"` and `module-root = "src"` (src/ layout) chosen over modern-di's flat layout, per architecture decision §Starter Template (rationale: src/ layout prevents test code from accidentally importing local source).
166
+
167
+
**Tests written:** None — scaffold story has no library code. Tests begin in Story 1.2.
129
168
130
169
## File List
131
170
132
-
To be populated as files are created.
171
+
Files added (15 total):
172
+
173
+
-`.github/workflows/ci.yml` — CI workflow (ruff/ty/pytest, Python 3.11-3.14 matrix)
0 commit comments