supercov 0.0.38 → 0.0.40

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 CHANGED
@@ -110,10 +110,10 @@ The same binary ships through each language's own package manager, at the same v
110
110
  npx supercov -- npm test # npm
111
111
  uvx --from supercov-cli supercov -- pytest # PyPI
112
112
  gem install supercov && supercov -- bundle exec rspec # RubyGems
113
- cargo install supercov && supercov -- cargo test # crates.io, built from source
113
+ cargo binstall supercov && supercov -- cargo test # crates.io
114
114
  ```
115
115
 
116
- `pip install supercov-cli` and `gem install supercov` install a wheel or gem that carries the binary for your platform; nothing is compiled. The crate builds from source and needs Rust 1.95.
116
+ `pip install supercov-cli` and `gem install supercov` install a wheel or gem that carries the binary for your platform; nothing is compiled. `cargo binstall` downloads that same binary from the GitHub release, while plain `cargo install supercov` builds it from source and needs Rust 1.95.
117
117
 
118
118
  ## Supported languages
119
119
 
@@ -140,7 +140,7 @@ The CLI is a single native binary. `npx supercov` selects the build for the mach
140
140
  | Linux | arm64, x64 | glibc 2.28 or newer (Debian 10, Ubuntu 18.10, RHEL 8 and later), or musl (Alpine); chosen automatically |
141
141
  | Windows | arm64, x64 | Windows 10 or newer |
142
142
 
143
- On Windows, JavaScript and TypeScript suites are verified on every release; Python, Ruby, and Rust suites are not yet verified there. 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`).
143
+ JavaScript, TypeScript, Python, Ruby and Rust suites are verified on Linux, macOS and Windows -- CPython 3.12, 3.13 and 3.14, and Ruby 3.3, 3.4 and 4.0 on every one. 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`).
144
144
 
145
145
  ## Supported test suites
146
146
 
@@ -154,6 +154,7 @@ Supercov uses exact per-test attribution where an adapter is available. For othe
154
154
  | `node:test` | Exact per test |
155
155
  | AVA and Mocha | Aggregate structural coverage |
156
156
  | Cargo's standard libtest runner | Exact test and attempt identity |
157
+ | rustdoc doctests | Exact per doctest |
157
158
  | cargo-nextest | Exact test, attempt, retry, and binary identity |
158
159
  | RSpec | Exact example and before/example/after phase identity |
159
160
  | Minitest and test-unit | Exact test and setup/test/teardown identity |
@@ -16,8 +16,7 @@ Supercov supports JavaScript, TypeScript, Rust, Python, and Ruby today.
16
16
  You need:
17
17
 
18
18
  - macOS (arm64 or x64), Linux (arm64 or x64, glibc 2.28 or newer or musl), or
19
- Windows (arm64 or x64; JavaScript and TypeScript suites are verified there
20
- today);
19
+ Windows (arm64 or x64);
21
20
  - Node.js 22 or newer;
22
21
  - a test command that already works in the repository; and
23
22
  - for Rust, the Rust 1.95 toolchain;
@@ -110,10 +110,23 @@ whatever was still buffered.
110
110
  | Runner | Attribution | Current requirement |
111
111
  | --- | --- | --- |
112
112
  | Cargo's standard libtest runner | Exact test and attempt identity | Rust 1.95; run with `npx supercov -- cargo test` |
113
+ | rustdoc doctests | Exact doctest identity; every doctest runs in a process of its own | Rust 1.95; part of `npx supercov -- cargo test` |
113
114
  | cargo-nextest | Exact test, attempt, retry, and binary identity | cargo-nextest 0.9.138 or 0.9.140 |
114
115
 
115
116
  Supercov preserves Cargo's test selection, scheduling, fail-fast behavior,
116
- environment, and exit status. Use the repository's normal flags after the
117
+ environment, and exit status. Doctests are measured like any other test:
118
+ Supercov stands in for rustdoc during `cargo test --doc`, runs each doctest
119
+ in its own process, and attributes what it executed to that doctest by name.
120
+ With nextest, Supercov is nextest's target runner, so nextest's own
121
+ scheduling, retries and output stay as they are and each attempt is recorded
122
+ separately. The measured source is what rustc compiles: every crate root and
123
+ the modules it reaches through `mod` declarations, `#[path]` attributes and
124
+ literal `include!` calls; a `.rs` file nothing declares as a module, such as
125
+ one embedded with `include_str!`, is left untouched. Statements, functions,
126
+ `if`/`while`/match-guard decisions with their conditions (let chains
127
+ included), match arms, `&&` and `||`, `for` and `while` loops and the `?`
128
+ operator each take a probe; const contexts and macro expansions stay in the
129
+ denominator behind an explicit limitation. Use the repository's normal flags after the
117
130
  wrapped command:
118
131
 
119
132
  ```sh
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supercov",
3
- "version": "0.0.38",
3
+ "version": "0.0.40",
4
4
  "description": "Zero-edit, runner-aware coverage completeness for JavaScript, TypeScript, Rust, Python, and Ruby test suites",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -39,8 +39,6 @@
39
39
  "check:rustc-backend-spike": "(cd spikes/rustc-backend && RUSTC_BOOTSTRAP=1 RUSTUP_TOOLCHAIN=1.95.0 cargo fmt --check && RUSTC_BOOTSTRAP=1 RUSTUP_TOOLCHAIN=1.95.0 cargo clippy --all-targets -- -D warnings)",
40
40
  "test:rustc-backend-spike": "node scripts/rustc-backend-spike.mjs",
41
41
  "test:rust-compiler-spikes": "cargo build -p supercov && node scripts/rust-libtest-companion-spike.mjs && node scripts/rust-async-attribution-spike.mjs && node scripts/rust-subprocess-attribution-spike.mjs && node scripts/rust-custom-harness-spike.mjs && node scripts/rust-libtest-builder-lifecycle-spike.mjs",
42
- "test:rust-cargo-runner": "cargo build -p supercov && node scripts/rust-cargo-runner-integration.mjs",
43
- "test:rust-nextest-runner": "cargo build -p supercov && node scripts/rust-nextest-runner-integration.mjs",
44
42
  "test": "cargo test --workspace",
45
43
  "test:runtime": "node --test tests/runtime/*.test.mjs",
46
44
  "test:fixture": "cargo build -p supercov && node scripts/rust-fixture-matrix.mjs",
@@ -63,25 +61,27 @@
63
61
  "test:test262": "cargo build --release -p supercov && node scripts/test262-equivalence.mjs",
64
62
  "benchmark:check": "cargo build --release -p supercov && node scripts/rust-transform-benchmark.mjs",
65
63
  "benchmark:python-monitoring": "cargo build -p supercov && node scripts/python-monitoring-benchmark.mjs",
66
- "check": "cargo fmt --all -- --check && cargo clippy --workspace --all-targets -- -D warnings && npm run test && npm run test:runtime && npm run test:rust-assets && node scripts/package-preflight.mjs",
67
- "release:check": "npm run check && npm run test:engine && 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-monitoring && npm run test:ruby-coverage && npm run test:packed-npx && npm run test:clang-mcdc && npm run benchmark:check",
64
+ "check": "cargo fmt --all -- --check && cargo clippy --workspace --all-targets -- -D warnings && npm run test && npm run test:runtime && npm run test:rust-assets && node scripts/package-preflight.mjs && node scripts/verify-binstall-metadata.mjs --offline",
65
+ "release:check": "cargo clean && node scripts/sweep-target.mjs && npm run check && npm run test:engine && 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-monitoring && 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",
68
66
  "release:bump": "node scripts/bump-version.mjs",
67
+ "sweep": "node scripts/sweep-target.mjs",
69
68
  "prepack": "node scripts/package-preflight.mjs",
70
69
  "prepublishOnly": "npm run release:check",
71
70
  "test:child-attribution": "cargo build -p supercov && node scripts/rust-child-attribution-integration.mjs",
72
71
  "test:host-loader": "cargo build -p supercov && node scripts/rust-host-loader-integration.mjs",
73
72
  "test:python-monitoring": "cargo build -p supercov && node scripts/python-monitoring-integration.mjs",
74
- "test:ruby-coverage": "cargo build -p supercov && node scripts/ruby-coverage-integration.mjs"
73
+ "test:ruby-coverage": "cargo build -p supercov && node scripts/ruby-coverage-integration.mjs",
74
+ "test:rust-public-cargo": "cargo build -p supercov && node scripts/rust-public-cargo-integration.mjs"
75
75
  },
76
76
  "optionalDependencies": {
77
- "@supercov/cli-darwin-arm64": "0.0.38",
78
- "@supercov/cli-darwin-x64": "0.0.38",
79
- "@supercov/cli-linux-arm64-gnu": "0.0.38",
80
- "@supercov/cli-linux-arm64-musl": "0.0.38",
81
- "@supercov/cli-linux-x64-gnu": "0.0.38",
82
- "@supercov/cli-linux-x64-musl": "0.0.38",
83
- "@supercov/cli-win32-arm64": "0.0.38",
84
- "@supercov/cli-win32-x64": "0.0.38"
77
+ "@supercov/cli-darwin-arm64": "0.0.40",
78
+ "@supercov/cli-darwin-x64": "0.0.40",
79
+ "@supercov/cli-linux-arm64-gnu": "0.0.40",
80
+ "@supercov/cli-linux-arm64-musl": "0.0.40",
81
+ "@supercov/cli-linux-x64-gnu": "0.0.40",
82
+ "@supercov/cli-linux-x64-musl": "0.0.40",
83
+ "@supercov/cli-win32-arm64": "0.0.40",
84
+ "@supercov/cli-win32-x64": "0.0.40"
85
85
  },
86
86
  "peerDependencies": {
87
87
  "@playwright/test": ">=1.55.0",