Repository navigation
Commit 0025843
committed
chore: Verify the sdist in CI and make its file list an allowlist
The exclude list had the wrong default. Every new repository file shipped
unless somebody remembered to exclude it. An allowlist inverts that, but its
failure mode is a needed file going missing, which nothing would notice.
So the allowlist comes with a job that proves it. The job builds the sdist,
unpacks it outside the checkout, and runs the unit tests, the type checks and
both contract suites from the unpacked tree.
The test-count check is what makes the job meaningful. An sdist that shipped
half its tests would still pass the tests it did ship, so the job counts
collected tests in the checkout and in the sdist and fails if the sdist
collects fewer. The contract-test steps cover the other half, since a missing
contract-tests directory changes no test count.
One job on one Python version. The matrix already covers the checkout. The
job runs the contract suites without persistence tests, because it starts no
database services; the linux job still covers those.
Hatchling force-includes pyproject.toml, README.md, LICENSE.txt, PKG-INFO and
.gitignore whatever the file list says, so an allowlist cannot make the sdist
unbuildable or uninstallable.
Verified locally. The allowlist produces the same 262-file sdist as the
exclude list did, 1,983 tests collect from it, and 1,628 pass with 355
database tests skipped, matching make test.1 parent f945823 commit 0025843
2 files changed
Lines changed: 86 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
96 | 167 | | |
97 | 168 | | |
98 | 169 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
109 | 109 | | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
118 | 120 | | |
0 commit comments