| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 0709904 commit 35eccc5
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -61,6 +61,24 @@ variables literal; `expand_vars=True` is unsupported. Callers wanting expansion | |||
| 61 | 61 | must perform it before passing the path. Discovery still uses Gix/Git after | |
| 62 | 62 | ordinary input-path canonicalization. | |
| 63 | 63 | ||
| 64 | + Repository construction validates storage and configuration through Gix/Git; | ||
| 65 | + overriding `Repo.config_reader()` does not replace that native discovery parser. | ||
| 66 | + sbxloop 2.1.36's `_MetadataRepo` subclass relied on the released constructor's | ||
| 67 | + permissive Python discovery and overridden no-includes reader. Five upstream | ||
| 68 | + tests still differ: malformed includes prevent opening, malformed local config | ||
| 69 | + is rejected before its custom `ProvisionError`, and version-0 repositories | ||
| 70 | + with version-1 storage extensions are rejected before its format check. Released | ||
| 71 | + GitPython 3.2.1 passes those five tests. This is a breaking subclass contract, | ||
| 72 | + not a demonstrated Gix-versus-Git mismatch: both backends reject the metadata. | ||
| 73 | + GixPython `OpenOptions` has strict/lossy configuration controls and overrides, | ||
| 74 | + but no supported option to open a repository while omitting its local include | ||
| 75 | + graph. A replacement must expose separately controlled metadata discovery and | ||
| 76 | + literal local configuration access with Git-compatible format validation. | ||
| 77 | + Do not bypass validation or reconstruct discovery/storage in Python to restore | ||
| 78 | + the old constructor. Downstream must construct its trusted metadata view before | ||
| 79 | + opening it with `Repo`, and handle native discovery errors explicitly; its | ||
| 80 | + original tests remain failed in the audit. | ||
| 81 | + | ||
| 64 | 82 | `git.GitDB` and `git.db.GitDB` remain compatibility aliases for | |
| 65 | 83 | `GitCmdObjectDB`, so legacy `Repo(..., odbt=GitDB)` selectors use the same | |
| 66 | 84 | managed backend. Aider 0.86.2 uses that selector for every repository open. | |
@@ -1151,7 +1169,7 @@ IDs, providing native evidence for a future adapter correction. Fetch remains | |||
| 1151 | 1169 | a CLI fallback: GixPython 0.2.0 must expose per-ref identities, status and notes | |
| 1152 | 1170 | before its fetch outcome can satisfy `FetchInfo`. Do not infer namespaces or | |
| 1153 | 1171 | reimplement fetch semantics in Python. Reproduction and baseline evidence are | |
| 1154 | - retained in the [third downstream audit](../test/downstream/audit-2026-10-22-batch-3.md). | ||
| 1172 | + retained in the [downstream audit](../test/downstream/audit.md#airflow-ambiguous-mirror-fetch-results). | ||
| 1155 | 1173 | ||
| 1156 | 1174 | ### Downstream empty configuration sections | |
| 1157 | 1175 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -65,6 +65,12 @@ API changes | |||
| 65 | 65 | * Editable/source imports expose the release version in ``git.__version__``, | |
| 66 | 66 | matching built distributions. Salt's GitPython provider checks can parse the | |
| 67 | 67 | version instead of rejecting the unstamped ``"git"`` build placeholder. | |
| 68 | + * ``Repo`` construction validates repository configuration through Git/Gix. | ||
| 69 | + A subclass override of ``config_reader()`` no longer controls discovery or | ||
| 70 | + suppresses its include graph. Malformed configuration and invalid repository | ||
| 71 | + extensions can fail before downstream custom validation runs. sbxloop's | ||
| 72 | + metadata-reader subclass exposes this remaining compatibility break; callers | ||
| 73 | + must prepare their trusted metadata view before opening it with ``Repo``. | ||
| 68 | 74 | * Revision root trees such as ``Repo.rev_parse("HEAD:")`` retain their empty | |
| 69 | 75 | path and can be iterated. Missing paths within a valid tree revision retain | |
| 70 | 76 | ``Tree.join()``'s ``KeyError`` and missing-component message, restoring MCP | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,12 @@ | |||
| 1 | 1 | # Downstream compatibility | |
| 2 | 2 | ||
| 3 | + The [October 22–23, 2026 audit](audit.md) summarizes **115 projects**, beginning | ||
| 4 | + with known incompatibilities and retaining each project's release, results and | ||
| 5 | + coverage limits. It covers every identified current declared consumer in the | ||
| 6 | + September snapshot's top 15,000 distributions, plus known Git-focused users. | ||
| 7 | + This is not a strict popularity ranking or proof of complete application coverage. | ||
| 8 | + The runner below automates five CI profiles; it is not the complete audit inventory. | ||
| 9 | + | ||
| 3 | 10 | Run released projects' GitPython-related tests against this checkout with | |
| 4 | 11 | [uv](https://docs.astral.sh/uv/) and Git 2.52 or newer: | |
| 5 | 12 | ||
@@ -35,19 +42,22 @@ settings, pytest options/plugins, and Python import paths are cleared before | |||
| 35 | 42 | setup and testing. Select a different Git executable by putting its directory | |
| 36 | 43 | first on `PATH`. | |
| 37 | 44 | ||
| 38 | - ## Selection and coverage | ||
| 45 | + ## Automated CI profiles | ||
| 39 | 46 | ||
| 40 | - The selection uses current runtime users, including optional end-user features, | ||
| 47 | + These five profiles use current runtime users, including optional end-user features, | ||
| 41 | 48 | ranked by September 2026 PyPI distribution downloads. Development, documentation, | |
| 42 | 49 | and test-only dependencies are excluded. Downloads are not unique installations. | |
| 43 | 50 | ||
| 44 | 51 | | Project | Distribution downloads | Last tested release | Selected coverage | | |
| 45 | 52 | | --- | ---: | --- | --- | | |
| 46 | 53 | | LangChain Community | 27,882,881 | 0.4.2 | 2 upstream GitLoader tests: real clones, commits, checkout, tree traversal, ignored paths, and remote validation | | |
| 47 | - | MLflow (`mlflow-skinny`) | 25,850,354 | 3.17.0 | 47 upstream tests: 31 repository/project/model-versioning cases plus 16 Git context and credential-redaction contract cases | | ||
| 54 | + | MLflow (`mlflow-skinny`) | 25,850,354 | 3.17.2 | 53 unique upstream repository/project/model-versioning, Git context and credential-redaction cases in the expanded audit | | ||
| 48 | 55 | | Bandit | 24,935,372 | 1.9.4 | 12 upstream baseline CLI tests: real repository creation, commits, branches, resets, discovery, and dirty state | | |
| 49 | 56 | | SWE-bench | 22,942,741 | 5.0.2 | 4 supplemental integration cases for `AutoContextManager`; no upstream tests cover its GitPython callers | | |
| 50 | - | DataHub (`acryl-datahub`) | 5,019,402 | 1.7.0.14 | 7 upstream tests passed, 1 credential-dependent skip: public clone/checkout, SSH timeout, exception/redaction contracts, and configuration | | ||
| 57 | + | DataHub (`acryl-datahub`) | 5,019,402 | 1.7.0.16 | 8 upstream tests passed, 1 credential-dependent skip: clone/checkout, SSH timeout, exception/redaction contracts, configuration and ODCS sourcing | | ||
| 58 | + | ||
| 59 | + The runner automates the original selections. The linked audit broadens MLflow | ||
| 60 | + with `tests/projects/test_utils.py` and DataHub with its ODCS Git sourcing test. | ||
| 51 | 61 | ||
| 52 | 62 | Source: [top-pypi-packages](https://hugovk.github.io/top-pypi-packages/top-pypi-packages.min.json), | |
| 53 | 63 | snapshot updated **2026-10-01 12:40:51 UTC**. Its | |
| Back | FazBrowse Home | New Git URL |
0 commit comments