supercov 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/docs/cli.md +6 -0
- package/docs/evidence.md +8 -0
- package/docs/getting-started.md +1 -1
- package/docs/supported-suites.md +10 -6
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -233,7 +233,7 @@ Java and Kotlin have no registry of their own here, so a JVM project takes the b
|
|
|
233
233
|
| PHP | Coming soon | — | — |
|
|
234
234
|
| C | Coming soon | — | — |
|
|
235
235
|
|
|
236
|
-
The `npx` path requires Node.js 22 or newer; the other installs need no Node. Rust support currently uses Rust 1.95; cargo-nextest 0.9.138 and 0.9.140 are supported. Python support requires CPython 3.
|
|
236
|
+
The `npx` path requires Node.js 22 or newer; the other installs need no Node. Rust support currently uses Rust 1.95; cargo-nextest 0.9.138 and 0.9.140 are supported. Python support requires CPython 3.9 or newer and measures pytest and unittest runs. Ruby support requires Ruby 3.3 or newer (3.4 or newer for full measurement) and measures RSpec, Minitest, test-unit and Cucumber runs. Go support requires Go 1.22 or newer and measures `go test`. Java and Kotlin support requires a JDK 17 or newer with Maven or Gradle, and measures every JUnit Platform engine -- JUnit 5, JUnit 4 through Vintage, Kotest and Spock -- as well as TestNG.
|
|
237
237
|
|
|
238
238
|
## Supported operating systems and architectures
|
|
239
239
|
|
|
@@ -245,7 +245,7 @@ The CLI is a single native binary. `npx supercov` selects the build for the mach
|
|
|
245
245
|
| Linux | arm64, x64 | glibc 2.28 or newer (Debian 10, Ubuntu 18.10, RHEL 8 and later), or musl (Alpine); chosen automatically |
|
|
246
246
|
| Windows | arm64, x64 | Windows 10 or newer |
|
|
247
247
|
|
|
248
|
-
JavaScript, TypeScript, Python, Ruby, Rust, Go, Java and Kotlin suites are verified on Linux, macOS and Windows -- CPython 3.
|
|
248
|
+
JavaScript, TypeScript, Python, Ruby, Rust, Go, Java and Kotlin suites are verified on Linux, macOS and Windows -- CPython 3.9 through 3.14 (on arm64 Windows, 3.9 and 3.10 as the x64 builds, since python.org publishes no arm64 build before 3.11), Ruby 3.3, 3.4 and 4.0, and Go 1.22, 1.25, 1.26 and 1.27 on every one, and JDK 17 and 21 on every one that has them (Temurin publishes no 17 for arm64 Windows, so that pairing is 21 alone). Containers, VMs, and remote executors run the same Linux builds. Every release publishes the same binaries to npm, PyPI (`supercov-cli`, a wheel per platform) and RubyGems (`supercov`, a gem per platform except arm64 Windows, which Ruby has no platform for), and the source to crates.io (`supercov`).
|
|
249
249
|
|
|
250
250
|
## Supported test suites
|
|
251
251
|
|
|
@@ -326,3 +326,5 @@ npx supercov clean # remove all runs and the build cache
|
|
|
326
326
|
## Contributors
|
|
327
327
|
|
|
328
328
|
- [@DaVinciTachyon](https://github.com/DaVinciTachyon)
|
|
329
|
+
- [@Uhbif2](https://github.com/Uhbif2)
|
|
330
|
+
- [@maik-intellicoach](https://github.com/maik-intellicoach)
|
package/docs/cli.md
CHANGED
|
@@ -395,6 +395,12 @@ By default, `clean` removes all stored runs and the isolated build cache.
|
|
|
395
395
|
`--keep N` keeps the newest N runs. Cleanup removes only marker-owned Supercov
|
|
396
396
|
storage.
|
|
397
397
|
|
|
398
|
+
If Supercov itself fails to publish a run the tests already paid for, it keeps
|
|
399
|
+
that run's raw evidence in `.supercov/failed-evidence/<run id>` and says so in
|
|
400
|
+
the error. Report the failure with that directory: it is what diagnoses it. Only
|
|
401
|
+
a full `clean` reclaims it -- `--keep N` leaves it alone -- and the summary says
|
|
402
|
+
when it goes.
|
|
403
|
+
|
|
398
404
|
## Read bundled documentation
|
|
399
405
|
|
|
400
406
|
```sh supercov
|
package/docs/evidence.md
CHANGED
|
@@ -110,6 +110,14 @@ Preview cleanup first. The final command removes all runs and the isolated build
|
|
|
110
110
|
cache; `--keep 20` preserves the 20 newest runs. Cleanup removes only
|
|
111
111
|
marker-owned Supercov data.
|
|
112
112
|
|
|
113
|
+
### Evidence of a run that failed to publish
|
|
114
|
+
|
|
115
|
+
A suite pays for its measurement in wall clock. If Supercov itself cannot
|
|
116
|
+
publish a run the tests already finished, the run's raw evidence is kept in
|
|
117
|
+
`.supercov/failed-evidence/<run-id>/` rather than going with the work directory,
|
|
118
|
+
and the error names the path. Attach that directory to the bug report. A full
|
|
119
|
+
`clean` reclaims it; `--keep N` does not.
|
|
120
|
+
|
|
113
121
|
## Understand test kinds
|
|
114
122
|
|
|
115
123
|
Reports group tests by kind, such as unit, integration or E2E. Supercov uses
|
package/docs/getting-started.md
CHANGED
|
@@ -119,7 +119,7 @@ if anything is missing.
|
|
|
119
119
|
- for Rust, the Rust 1.95 toolchain;
|
|
120
120
|
- for Go, Go 1.22 or newer;
|
|
121
121
|
- for Java and Kotlin, JDK 17 or newer, with Maven or Gradle;
|
|
122
|
-
- for Python, CPython 3.
|
|
122
|
+
- for Python, CPython 3.9 or newer with pytest or unittest;
|
|
123
123
|
- for Ruby, Ruby 3.4 or newer with RSpec, Minitest, test-unit or Cucumber (3.3 measures lines, methods and simple branches only).
|
|
124
124
|
|
|
125
125
|
The CLI is a native binary. `npx supercov` picks the build for your operating
|
package/docs/supported-suites.md
CHANGED
|
@@ -184,14 +184,16 @@ attribution.
|
|
|
184
184
|
|
|
185
185
|
| Runner | Attribution | Current requirement |
|
|
186
186
|
| --- | --- | --- |
|
|
187
|
-
| pytest | Exact test, worker, retry, and setup/call/teardown phase identity | CPython 3.
|
|
187
|
+
| pytest | Exact test, worker, retry, and setup/call/teardown phase identity | CPython 3.9 or newer; run with `npx supercov -- pytest` or `python -m pytest` |
|
|
188
188
|
| pytest-xdist | Exact per worker | Workers inherit the run through the environment |
|
|
189
189
|
| pytest-rerunfailures | Exact per attempt; flaky tests are reported as such | |
|
|
190
190
|
| `python -m unittest` | Exact test and setUp/test/tearDown phase identity | Serial in-process; skips and expected failures are recorded; subtest failures roll up to the parent test |
|
|
191
191
|
|
|
192
192
|
Your project runs in place with its own interpreter and virtual environment.
|
|
193
|
-
Supercov adds its
|
|
194
|
-
|
|
193
|
+
Supercov adds its runner hooks through the process environment and places a
|
|
194
|
+
probe for every obligation into each measured module as it is imported --
|
|
195
|
+
nothing on disk changes, and tracebacks keep their line numbers. You do not
|
|
196
|
+
need to rewrite tests or configure a different build.
|
|
195
197
|
|
|
196
198
|
Coverage includes statements, functions, boolean decisions, loops,
|
|
197
199
|
comprehensions, short-circuit operators, `match` cases and exception paths.
|
|
@@ -202,9 +204,11 @@ assertion checks.
|
|
|
202
204
|
|
|
203
205
|
Interpreters launched with `-I`, `-E` or `-S` ignore the required startup hook
|
|
204
206
|
and are not measured. Code compiled from strings at runtime has no source
|
|
205
|
-
obligations.
|
|
206
|
-
|
|
207
|
-
|
|
207
|
+
obligations. A measured module imported before Supercov starts, or compiled
|
|
208
|
+
past the import system, runs without probes; the run names it as a limitation
|
|
209
|
+
rather than reporting it uncovered. What a test executed survives the process
|
|
210
|
+
being killed -- `os._exit`, SIGTERM or SIGKILL -- but a corrupt or exhausted
|
|
211
|
+
evidence channel fails the run rather than reporting partial data as complete.
|
|
208
212
|
|
|
209
213
|
```sh
|
|
210
214
|
npx supercov -- pytest
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "supercov",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Code quality and coverage for coding agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -78,9 +78,9 @@
|
|
|
78
78
|
"test:clang-mcdc": "node scripts/clang-mcdc-oracle.mjs",
|
|
79
79
|
"test:test262": "cargo build --release -p supercov && node scripts/test262-equivalence.mjs",
|
|
80
80
|
"benchmark:check": "cargo build --release -p supercov && node scripts/rust-transform-benchmark.mjs",
|
|
81
|
-
"benchmark:python
|
|
81
|
+
"benchmark:python": "cargo build -p supercov && node scripts/python-benchmark.mjs",
|
|
82
82
|
"check": "cargo fmt --all -- --check && cargo clippy --workspace --all-targets -- -D warnings && npm run test && npm run test:release-tooling && npm run test:runtime && npm run test:rust-assets && npm run test:assertion-maps && npm run test:sweep-target && npm run test:skip-guard && npm run test:windows-tls && node scripts/package-preflight.mjs && node scripts/verify-binstall-metadata.mjs --offline",
|
|
83
|
-
"release:check": "cargo clean && node scripts/sweep-target.mjs && npm run check && npm run test:engine && npm run test:go && npm run test:jvm && npm run test:launcher && npm run test:fixture && npm run test:watchdog && npm run test:engine-contract && npm run test:agent && npm run test:child-attribution && npm run test:host-loader && npm run test:python
|
|
83
|
+
"release:check": "cargo clean && node scripts/sweep-target.mjs && npm run check && npm run test:engine && npm run test:go && npm run test:jvm && npm run test:launcher && npm run test:fixture && npm run test:watchdog && npm run test:engine-contract && npm run test:agent && npm run test:child-attribution && npm run test:host-loader && npm run test:python && npm run test:ruby-coverage && npm run test:rust-public-cargo && npm run test:packed-npx && npm run test:clang-mcdc && npm run benchmark:check",
|
|
84
84
|
"release:bump": "node scripts/bump-version.mjs",
|
|
85
85
|
"sweep": "node scripts/sweep-target.mjs",
|
|
86
86
|
"oracle:rust": "cargo build --release -p supercov && node scripts/rust-coverage-oracle.mjs",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"prepublishOnly": "npm run release:check",
|
|
89
89
|
"test:child-attribution": "cargo build -p supercov && node scripts/rust-child-attribution-integration.mjs",
|
|
90
90
|
"test:host-loader": "cargo build -p supercov && node scripts/rust-host-loader-integration.mjs",
|
|
91
|
-
"test:python
|
|
91
|
+
"test:python": "cargo build -p supercov && node scripts/python-integration.mjs",
|
|
92
92
|
"test:ruby-coverage": "cargo build -p supercov && node scripts/ruby-coverage-integration.mjs",
|
|
93
93
|
"test:go": "cargo test --no-fail-fast -p supercov-engine --test go_frontend --test go_run",
|
|
94
94
|
"test:jvm": "cargo test --no-fail-fast -p supercov-engine --test jvm_frontend --test jvm_run -- --include-ignored --test-threads=1",
|
|
@@ -105,14 +105,14 @@
|
|
|
105
105
|
"test:windows-tls": "node scripts/windows-tls-test.mjs"
|
|
106
106
|
},
|
|
107
107
|
"optionalDependencies": {
|
|
108
|
-
"@supercov/cli-darwin-arm64": "1.
|
|
109
|
-
"@supercov/cli-darwin-x64": "1.
|
|
110
|
-
"@supercov/cli-linux-arm64-gnu": "1.
|
|
111
|
-
"@supercov/cli-linux-arm64-musl": "1.
|
|
112
|
-
"@supercov/cli-linux-x64-gnu": "1.
|
|
113
|
-
"@supercov/cli-linux-x64-musl": "1.
|
|
114
|
-
"@supercov/cli-win32-arm64": "1.
|
|
115
|
-
"@supercov/cli-win32-x64": "1.
|
|
108
|
+
"@supercov/cli-darwin-arm64": "1.2.0",
|
|
109
|
+
"@supercov/cli-darwin-x64": "1.2.0",
|
|
110
|
+
"@supercov/cli-linux-arm64-gnu": "1.2.0",
|
|
111
|
+
"@supercov/cli-linux-arm64-musl": "1.2.0",
|
|
112
|
+
"@supercov/cli-linux-x64-gnu": "1.2.0",
|
|
113
|
+
"@supercov/cli-linux-x64-musl": "1.2.0",
|
|
114
|
+
"@supercov/cli-win32-arm64": "1.2.0",
|
|
115
|
+
"@supercov/cli-win32-x64": "1.2.0"
|
|
116
116
|
},
|
|
117
117
|
"peerDependencies": {
|
|
118
118
|
"@playwright/test": ">=1.55.0",
|