Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
280210a
docs(initiative-g): phase 3 design + swarm-ready plan + module scaffo…
matteius May 12, 2026
e04195b
docs(initiative-g): lock in Q-A through Q-F phase-3 decisions
matteius May 12, 2026
93bc3f7
feat(resolver): T2 — MetadataFetcher (PEP 658 + wheel-head fallback) …
matteius May 12, 2026
a5ac1ef
feat(resolver): T1 — Requirement dataclass for pure-python backend (I…
matteius May 12, 2026
db106a4
test(resolver): T11 — Requirement unit-test coverage ≥ 95 % (Initiati…
matteius May 12, 2026
c8e397f
feat(resolver): T3 — PurePythonProvider.identify + Candidate.extras (…
matteius May 12, 2026
0741b24
test(resolver): T12 — MetadataFetcher unit-test coverage ≥ 90 % (Init…
matteius May 12, 2026
82f5ceb
feat(resolver): T4 — PurePythonProvider.find_matches (Initiative G ph…
matteius May 12, 2026
3fa8137
feat(resolver): T5 — PurePythonProvider.get_preference (Q-C strict mi…
matteius May 13, 2026
b88baac
feat(resolver): T6 — PurePythonProvider.is_satisfied_by (Initiative G…
matteius May 13, 2026
a8a1d4b
feat(resolver): T7 — PurePythonProvider.get_dependencies + _SdistEnco…
matteius May 13, 2026
079c403
test(resolver): T8 — PurePythonProvider integration smoke + _drive_re…
matteius May 13, 2026
2630ff6
test(resolver): T13 — PurePythonProvider unit-test coverage ≥ 90 % (I…
matteius May 13, 2026
362cfcf
feat(resolver): T9 — PurePythonBackend + fail-loud sdist + Q-F pre-ch…
matteius May 13, 2026
72cba48
feat(resolver): T10 — register PurePythonBackend in backend registry …
matteius May 13, 2026
2587ef7
test(resolver): T14 — PurePythonBackend unit-test coverage ≥ 90 % (In…
matteius May 13, 2026
f5a4e83
fix(resolver): T9b — PurePythonBackend self-bootstraps collaborators …
matteius May 13, 2026
9a92d9c
feat(lock): T_PLUMBING — --backend CLI flag + [pipenv] resolver_backe…
matteius May 13, 2026
8b24ace
fix(resolver): response shape polymorphism for PipSession vs urllib3 …
matteius May 13, 2026
eb89e65
docs(initiative-g): phase 3b plan — sdists + markers + CI dogfood
matteius May 13, 2026
518961b
feat(resolver): T_M1 — Requirement.introducing_marker for transitive …
matteius May 13, 2026
7d43125
feat(resolver): T_S1 — pure_python_sdist.py PEP 517 METADATA extracto…
matteius May 13, 2026
628b083
feat(resolver): T_S2 — fetch_metadata routes sdist candidates through…
matteius May 13, 2026
c383291
feat(resolver): T_M2 — get_dependencies threads Requires-Dist marker …
matteius May 13, 2026
73c1b52
feat(resolver): T_M3 — _translate_mapping emits markers from Requires…
matteius May 13, 2026
4f57889
refactor(resolver): T_S3 — remove _SdistEncountered fail-loud from pr…
matteius May 13, 2026
7f225fa
feat(resolver): T_M4 — _translate_mapping emits source name for index…
matteius May 13, 2026
ecb3a63
refactor(resolver): T_S4 — repurpose Q-F pre-check as top-level empti…
matteius May 13, 2026
1d6acb6
feat(resolver): T_S5 — _translate_mapping collects hashes from all di…
matteius May 13, 2026
dcbb82f
test(resolver): T_M5 — marker / index / hash edge-case coverage (Init…
matteius May 13, 2026
35594cc
test(resolver): T_S6 — defensive gap-fill tests for sdist + bootstrap…
matteius May 13, 2026
7ebc316
ci(resolver): T_CI1 — dogfood pure-python backend in CI matrix (Initi…
matteius May 13, 2026
7e384e3
docs(resolver): T_CI2 — Phase 3b acceptance gate + Q-A flip (Initiati…
matteius May 13, 2026
f02c443
Merge branch 'maintenance/code-cleanup-phase5-perf-2026-06' into main…
matteius May 13, 2026
0555df7
Merge branch 'maintenance/code-cleanup-phase5-perf-2026-06' into main…
matteius May 13, 2026
818e588
perf(install): make Pipfile name recasing opt-in (PIPENV_RECASE_PIPFILE)
matteius May 13, 2026
4fbc182
refactor(pipfile): recase opt-in moves from PIPENV_RECASE_PIPFILE env…
matteius May 13, 2026
2ab6e7f
fix(manifest-cache): retry os.replace on Windows ERROR_ACCESS_DENIED
matteius May 13, 2026
8f5bf1f
fix(test): use tmp_path instead of /dev/shm in archive-extracts-to-no…
matteius May 13, 2026
21d932a
fix(resolver/pure-python): strip pip CLI flags from wire-shape spec_v…
matteius May 13, 2026
13e44fe
feat(resolver/pure-python): build sdist METADATA in PEP 517 isolated env
matteius May 13, 2026
254f7fa
vendor build backend
matteius May 13, 2026
bf10e85
vendor build backend
matteius May 13, 2026
40a6e6f
docs(news): update sdist-build-isolation fragment for vendored :pypi:…
matteius May 13, 2026
ab18fe4
fix(resolver/pure-python): honour PEP 592 yanked + raise resolver rou…
matteius May 13, 2026
f405b51
fix(resolver/pure-python): prefer wheels over sdists at the same vers…
matteius May 13, 2026
a212435
fix(resolver/pure-python): two-pass prerelease filter — strict first,…
matteius May 13, 2026
7c28051
fix(resolver/pure-python): thread extras through find_matches/get_dep…
matteius May 13, 2026
032718c
Merge branch 'maintenance/code-cleanup-phase5-perf-2026-06' into main…
matteius May 13, 2026
d6f039f
perf(install): parallel wheel pre-fetch before pip install — ~30% col…
matteius May 13, 2026
fd282c9
refactor(install): drop redundant --upgrade from sync's pip install; …
matteius May 13, 2026
55f67a8
Merge branch 'maintenance/code-cleanup-phase5-perf-2026-06' into main…
matteius May 13, 2026
c6b7ef3
Potential fix for pull request finding
matteius May 13, 2026
b6f7f76
Potential fix for pull request finding
matteius May 13, 2026
64f370e
fix: include effective resolver backend in resolution cache key
Copilot May 13, 2026
d6e59a1
fix: sanitize sdist archive_name, use urllib3.Timeout, include PIPENV…
Copilot May 13, 2026
376bdae
chore: clarify default backend cache-key compatibility comment
Copilot May 13, 2026
21e97be
refine: address code review feedback on three PR fixes
Copilot May 13, 2026
7c8e632
fix: non-blocking executor shutdown on sdist timeout; fix _FakeSessio…
Copilot May 13, 2026
c8729f2
fix: add prefetch cleanup, update design doc, add sdist hash verifica…
Copilot May 13, 2026
f913baf
docs: clarify Path.name/daemon-thread behavior in sdist cleanup code
Copilot May 13, 2026
2306b17
refactor: move imports to module level per code review
Copilot May 13, 2026
0661b56
Merge branch 'maintenance/code-cleanup-phase5-perf-2026-06' into main…
matteius May 14, 2026
02a608d
fix(auth): Pipfile creds win netrc; expand env vars in pylock sources…
matteius May 14, 2026
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
57 changes: 57 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,63 @@ jobs:
run: |
pipenv run pytest -ra -n auto -v --fulltrace tests

tests-pure-python-backend:
# Initiative G phase 3b (T_CI1): run the full pipenv test suite
# under ``PIPENV_RESOLVER=pure-python`` to dogfood the new
# pure-Python resolver backend. Non-blocking
# (``continue-on-error: true``) — the acceptance gate is "matrix
# runs and produces a result", not "matrix passes", until the
# backend reaches feature parity with pip. Ubuntu + 3.12 only at
# this phase to keep CI minutes reasonable; widen the matrix once
# the backend is consistently green.
name: Tests (pure-python backend) / Ubuntu / 3.12
needs: [tests-smoke]
runs-on: ubuntu-latest
continue-on-error: true
timeout-minutes: 45
steps:
- uses: actions/checkout@v5
- name: Set up Python 3.12
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install latest pip, setuptools, wheel
run: |
python -m pip install --upgrade pip setuptools wheel
- name: Install dependencies
env:
PIPENV_DEFAULT_PYTHON_VERSION: "3.12"
PYTHONWARNINGS: ignore:DEPRECATION
PYTHONIOENCODING: "utf-8"
GIT_ASK_YESNO: "false"
run: |
git submodule sync
git submodule update --init --recursive
python -m pip install -e . --upgrade
pipenv install --deploy --dev --python=3.12
pipenv run python -m pip install -e ".[tests,dev]" --upgrade
- name: Run pypiserver with pipenv
run: |
pipenv run pypi-server --version
pipenv run pypi-server run -v --host=0.0.0.0 --port=8080 --hash-algo=sha256 --disable-fallback --welcome /dev/null ./tests/pypi/ ./tests/fixtures &
- name: Run tests with pure-python backend
env:
PIPENV_DEFAULT_PYTHON_VERSION: "3.12"
PYTHONWARNINGS: ignore:DEPRECATION
PIPENV_NOSPIN: "1"
CI: "1"
GIT_ASK_YESNO: "false"
PYPI_VENDOR_DIR: "./tests/pypi/"
PYTHONIOENCODING: "utf-8"
GIT_SSH_COMMAND: ssh -o StrictHostKeyChecking=accept-new -o CheckHostIP=no
# T_CI1 (Initiative G phase 3b): select the pure-Python
# backend via the documented env-var path. Honoured by
# ``pipenv.resolver.core._selected_backend_name`` after the
# parent-side CLI / Pipfile chain falls through.
PIPENV_RESOLVER: pure-python
run: |
pipenv run pytest -ra -n auto -v --fulltrace tests

resolver-module-coverage:
# Initiative G phase 1 (T17): enforce per-module coverage floors
# for the new pure-Python simple-API client surface. Without this
Expand Down
Loading
Loading